Estoy desarrollando un software que se utilizará para la copia de seguridad de datos.
El servidor se ejecutará en Linux. La seguridad en el transporte no es un problema (HTTPS o SSH), pero los datos deben almacenarse encriptados en el servidor.
Los datos no están vinculados a una sola computadora, por lo que varias computadoras deberían poder acceder a los mismos datos, si se les proporciona una clave (la clave compartida es aceptable).
El cliente debe tener la seguridad de que los datos no se pueden ver en el servidor, ni por un empleado curioso ni por un pirata informático. Esto significa que el servidor no debe almacenar la clave utilizada para descifrar el cifrado, pero podría usarlo en una transacción si es necesario.
Al ser un servidor de archivos, la red estará saturada, por lo que se prefiere enviar deltas a enviar archivos completos. Los archivos también serán administrados (en el servidor) por un sistema de control de versiones; mientras que el cliente puede o no tener control de versiones. El espacio es una consideración.
Esto es lo que he encontrado:
- Cada usuario tiene su propio punto de montaje
- Cada punto de montaje estará encriptado
- Los archivos se descifran, se aplica el delta y luego se vuelven a cifrar
Esto suena un poco ineficiente, por lo que he venido aquí como guía.
¿Se pueden aplicar deltas de archivos a un archivo cifrado?
Los requisitos más importantes son:
- Integridad de los datos (las actualizaciones nunca deben romper un archivo)
- Minimizar la sobrecarga de red / almacenamiento (conservar CPU / RAM sería bueno, pero no es necesario)
- Debe poder ser controlado por la versión