La única mejora de seguridad de su esquema (sobre la situación en la que no lo aplica) reside en lo siguiente:
Un atacante tendría que copiar todo el archivo para poder descifrar archivos sin conexión.
El resto son solo consideraciones secundarias sobre problemas de rendimiento. El núcleo de la idea, desde el punto de vista de "seguridad", es que dificulta la obtención de todo el archivo de claves a través de su gran tamaño. De hecho, hay dos tipos de ataques que te preocupan:
Ataques en línea : el atacante subvierte su servidor y, como el servidor puede descifrar todos los archivos de datos, el atacante en línea puede hacer lo mismo siempre y cuando mantenga el control del servidor .
Ataques sin conexión : el atacante toma algunos datos del servidor y los utiliza para descifrar los archivos después de el atacante ha sido desalojado desde el servidor.
Tu punto es hacer que los atacantes sin conexión sean más difíciles, es decir, hacerlos estrictamente menos poderosos que los atacantes en línea. Entonces diría que tu idea no funciona bien. De hecho, no es cierto que el atacante deba "copiar todo el archivo". El atacante necesitaría todo el archivo para poder descifrar todos los archivos; pero si obtiene solo 128 MB de todo el archivo, aún puede descifrar un archivo cada miles. Además, dependiendo de cómo se introduzca el atacante, "descargar" el archivo de clave completo podría no ser un problema para él. En particular, los atacantes a veces recuperan discos duros viejos y desechados de los basureros: si fallaban los componentes electrónicos de su disco, entonces no puede borrar fácilmente el contenido, pero un atacante motivado podría recuperar el disco, reemplazar la placa electrónica y leer el archivo completo. 128 GB no son más grandes que 128 bytes en estas condiciones: eso es solo un disco, que cabe en la palma de su mano.
Aquí hay una mejor solución, que implica el uso de hardware resistente a la manipulación indebida, por ejemplo. una tarjeta inteligente o una hardware módulo de seguridad (este último es mucho más caro, pero ofrece un rendimiento mucho mejor). Ese dispositivo descifrará alegremente las manchas cifradas asimétricamente en nombre de su servidor, pero nunca proporcionará su clave privada. En esta configuración, el dispositivo contiene un par de claves asimétricas (por ejemplo, RSA); cuando se debe cifrar un archivo, se genera una clave simétrica aleatoria K , y esa clave se utiliza para cifrar el archivo con algún algoritmo de cifrado simétrico. La clave simétrica también está asimétricamente cifrada con la clave pública RSA del dispositivo. Cuando se va a descifrar un archivo, se invoca el dispositivo para recuperar la clave simétrica K y descifrar el archivo. K se mantiene en la RAM solo durante los pocos milisegundos necesarios para el cifrado o descifrado de los datos del archivo, y cada archivo tiene su propio K .
Por construcción, un atacante en línea puede usar el dispositivo para descifrar archivos, pero una vez fuera de línea, no le queda nada. Este es un sistema de protección mucho más completo que las suposiciones sobre la supuesta dureza de la descarga de algunos gigabytes desde un servidor conectado a Internet.