Estoy diseñando mi sistema de copia de seguridad para Amazon S3 (probablemente Singapur) y me gustaría que todos mis archivos estuvieran fuertemente cifrados en el servidor. Yo uso ArchLinux x64. Mi sistema solo se agregará una vez que se cargue una carpeta cifrada, nada cambiará dentro de esta carpeta. p.ej. Tengo documentos y cada mes subiré una carpeta para ese mes.
tenga en cuenta que no quiero usar Amazon SSE algo acerca de que tener las claves de mis datos es una pérdida de tiempo para mí (puedo usar esto además de lo que describo a continuación) .
Deseo hacer lo siguiente (para cifrar la carpeta foo):
- sha512 cada archivo en foo y coloca la lista de hashes en foo / hashes.sha512
-
dd if=/dev/urandom | tr -dc '[:print:]' | fold -w 256 | head -n 1 > foo.key
-
tar -cvjO "foo" | openssl aes-256-cbc -salt -kfile foo.key | dd of="foo.enc"
- sha512sum foo.enc > > foo.key (openssl solo lee la primera línea de la clave)
- sha512sum foo / hashes.sha512 > > foo.key
- openssl aes-256-cbc -salt -in foo.key -out foo.key.enc
- Especifique manualmente la contraseña
- Sube foo.enc a S3
- Mantenga foo.key.enc a salvo!
Tengo algunas preguntas clave:
- ¿Es este un uso adecuado de cada una de estas herramientas?
- ¿Está utilizando
/dev/urandom
un buen método para generar una contraseña? - ¿Mi método para almacenar localmente el archivo encriptado con la clave más débil (la que recuerdo) y solo para cargar los archivos encriptados con las claves únicas más grandes es tan fuerte como parece?
- ¿Cuál es el valor más grande que puedo poner como el valor clave para openssl?
- ¿Algún problema serio obvio?