1 votos

¿Cómo puedo hacer un cifrado asimétrico en la línea de comandos, sin confiar en los llaveros instalados, etc.?

La computadora de mi casa se compone de un host de VMWare corriendo Linux Mint, y un número de VMWare clientes.

Puedo ejecutar copias de seguridad cada noche que comprimir mi Vhd para una unidad de disco extraíble.

Me gustaría cifrar las imágenes comprimidas. Y me gustaría hacerlo sin la inclusión de una contraseña en mi scripts de copia de seguridad.

Tengo varios discos extraíbles que puedo rotar a través de, y me tomo uno para trabajar, todos los días, así que tengo una copia fuera. Y tengo que incluir una copia de mi scripts de copia de seguridad en cada disco de copia de seguridad, para hacer más fácil para mí para averiguar lo que tengo que hacer para hacer una restauración.

Mi pensamiento es que si he utilizado el cifrado de clave pública, podría cifrar con la clave pública, y que requieren de la clave privada para descifrar y, a continuación, los scripts de copia de seguridad podría ejecutar sin necesidad de una contraseña.

(Me gustaría mantener la clave privada, o la frase de contraseña para el archivo de clave privada, en mi base de datos de KeePass, que también voy a escribir a mi copia de seguridad de los medios de comunicación.)

Pero la cosa es que - me gustaría correr esta auto-contenida, así que yo podría descifrar las copias de seguridad usando nada más que lo que fue escrito para los discos de copia de seguridad. Es decir, si puedo usar gpg, yo quiero una copia de gpg en los discos de copia de seguridad, que podría funcionar por sí misma, sin tener que instalar ni configurar nada. (Que es, sin dependencias en ~/.gpgconf, etc.)

Y no he sido capaz de averiguar cómo hacer esto, el uso de gpg. Los manuales parecen asumir que vas a instalar y configurar para el usuario actual, y tengo que ser capaz de funcionar cuando nada de eso ha sucedido.

Cualquier idea sobre cómo:

  • Ejecutar gpg en un desinstalado modo, o
  • cómo hacerlo utilizando alguna otra herramienta? (openssl?)

Agrega comentarios...

¿Por qué no puedo solo instalar gpg?

El problema es hacer un restore.

Supongamos que tengo un sistema completo fracaso, tal vez quemado mi casa, y todo fue destruido.

Así que estoy empezando una restauración con un equipo nuevo, desnudo unidades, y mi más reciente del apagado-sitio de copias de seguridad.

¿Qué debo hacer?

Yo arranque alguna versión de Linux que se puede montar el sistema de archivos ext4 particiones de una unidad de disco usb, y empezar a poner las cosas de nuevo juntos.

Yo no puedo depender de otra cosa que de las utilidades básicas del sistema y lo he puesto en los discos de copia de seguridad.

0voto

demonkoryu Puntos 75

He estado jugando con este problema, y creo que tengo un enfoque.

En primer lugar, un tiempo, antes de hacer las copias de seguridad:

Generar una clave RSA de par:

$ openssl genpkey -out backupkey.pem -aes-256-cbc -algorithm rsa
.................++
............................++
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
$ 

Utilizar una buena frase - no es algo que nadie va a hackear. De seis a ocho palabras que funciona bien. No recoger las citas de los libros favoritos o canciones.

A continuación, extraiga su nueva clave pública de el .pem archivo que acaba de crear:

$ openssl rsa -in backupkey.pem -pubout -out backupkey.key
Enter pass phrase for backupkey.pem:
writing RSA key
$ ls -l backupkey.*
-rw-r--r-- 1 jdege jdege  800 Jan 15 20:26 backupkey.key
-rw-r--r-- 1 jdege jdege 3418 Jan 15 20:16 backupkey.pem
$ 

Guarde estas en algún lugar, que vamos a estar utilizando en cada copia de seguridad. Yo los guarde con mis scripts de copia de seguridad, y poner copias en mi KeePass password de la base de datos.

A continuación, en cada copia de seguridad

Generar una clave de sesión aleatoria:

$ openssl rand -hex 128 > session.key
$

A continuación, ejecute la copia de seguridad, haciendo que el cifrado de los resultados el último paso de la tubería:

$ generate-my-backup.sh |
> gzip |
> openssl enc -aes-256-cbc -pass file:./session.key -out /mnt/backups/20190115/backup.bup.gz.enc
$ 

Siguiente, cifrar la clave de sesión con la clave pública RSA, eliminar la clave de sesión, y copia de la clave de sesión cifrada para su copia de seguridad de los medios de comunicación:

$ openssl rsautl -encrypt -inkey backupkey.key -pubin -in session.key -out session.key.enc
$ cp session.key.enc /mnt/backups/20190115/
$ rm session.key
$ 

Y copiar el archivo que contiene la clave privada de sus medios de copia de seguridad:

$ cp backupkey.pem /mnt/backups/20190115/
$ 

Si tiene que restaurar

Es muy sencillo, si sabes la contraseña de su clave privada:

$ openssl rsautl -decrypt -inkey backupkey.pem  -in session.key.enc |
> openssl enc -d -aes-256-cbc -in backup.bup.gz.enc -pass stdin |
> gunzip |
> restore-my-backup.sh
Enter pass phrase for backupkey.pem:
$

Estamos ejecutando "openssl rsautl" para descifrar la clave de sesión cifrada a stdout, y entonces estamos ejecutando "openssl enc -d" para descifrar el backupfile, la lectura de su clave a partir de la entrada estándar y escribe el resultado en la salida estándar, por lo que puede pasar a cualquier otra cosa de la tubería es necesario poner el archivo a donde pertenece.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: