Mi equipo está trabajando en una solución para almacenar información confidencial en una solución de almacenamiento remoto. Propongo que utilicemos el cifrado simétrico de los datos donde hay una clave única por documento. Las claves para esto se almacenarán de manera tal que se pueda acceder al lugar donde se utilizarán los datos, pero separados de los datos cifrados. Los datos cifrados se escribirán y leerán desde el almacenamiento. Si bien esto posiblemente sea excesivo, creo que aliviará algunas de las preocupaciones que obstaculizan la adopción de esta tecnología. La idea es que incluso si algo sale mal y alguien obtiene acceso al almacenamiento de documentos, los datos no serán útiles sin el acceso a las claves. En el caso de que alguien tenga acceso a estas claves, estos documentos serán la menor de nuestras preocupaciones.
En pocas palabras, la preocupación aquí es que alguien puede acceder a estos datos desde cualquier lugar y recuperar documentos a través de las interacciones solo con ese proveedor de almacenamiento. La solución propuesta está pensada para que sea tal que, incluso si un atacante obtuviera acceso completo y autenticado al almacén de documentos, no tendría suficiente información para obtener el contenido de los documentos. El necesitaría acceder a información que no está disponible en ese proveedor de almacenamiento. Esto (en teoría) hace que la seguridad de estos datos básicamente no sea peor que la situación actual. Este podría ser un objetivo cuestionable, pero el problema que tengo es en gran parte político.
También debo agregar que esta no es la única seguridad para estos documentos. Esto sería auxiliar a las protecciones listas para usar. Una pregunta complementaria sería si hay algo en esto que pueda debilitar esos enfoques estándar.
Después de leer un poco, creo que usar 256 AES debería ser adecuado. ¿Es este el caso y por cuánto tiempo debemos esperar que sea lo suficientemente bueno?
También entiendo que utilizando un MAC es estándar para garantizar que los datos no se hayan dañado. Después de leer la página wiki aquí y luego profundizar en más detalles y un poco de debate , estoy luchando por entenderlo en este caso de uso. La corrupción de datos no es una preocupación primordial aquí, pero no creo que duela. Pero si todo lo que quiero hacer es verificar que el mensaje no se haya corrompido, ¿hay alguna razón por la que un hash (por ejemplo, SHA-256) almacenado con mi clave no cumpla con mi requisito? Probablemente me esté perdiendo algo aquí.
¿El enfoque general y el algoritmo parecen legítimos? Cualquier ayuda con el MAC / hash se aprecia.