Cifrado de archivos Openssl / OpenPGP - aviso de seguridad [duplicado]

0

Planeo usar Openssl para cifrar nuestras copias de seguridad semanales fuera del sitio mediante un archivo de claves (cifrado simétrico) y después de algunas investigaciones encontré el siguiente comando GnuPGP:

base64 -w0 <keyfile.jpg | gpg --symmetric --passphrase-fd -0 backup.tar.gz

Sin embargo, esto genera el siguiente error:

gpg: Warning: using insecure memory!
gpg: Fatal: out of core in secure memory while allocating 32800 bytes


Por eso intenté usar OpenSSl y ahora tengo este comando:

pass=$(sha256sum keyfile.jpg | awk {'print $1'})
openssl aes-256-cbc -md sha512 -salt -a -e -in backup.tar.gz -out encrypted.tar.gz.aes -pass pass:$pass
pass=""

¿Se considera que ese es un método seguro para el cifrado de archivos o fue GnuPGP la mejor opción?

    
pregunta Anhofer 07.11.2018 - 00:12
fuente

2 respuestas

2

Ambos esquemas parecen un poco demasiado complejos. Trate de mantenerlo lo más simple posible, porque si alguna vez necesita realmente descifrar estos archivos, probablemente ya tenga un mal día porque se está recuperando de un desastre.

También te animo a que uses claves asimétricas con gpg por un par de razones:

  1. Cada mensaje (archivo) obtiene una clave simétrica aleatoria nueva
  2. El 99% de la guía en Internet sobre gpg se basa en claves asimétricas, por lo que cuando tenga un mal día, será más fácil encontrar ayuda.

También puede cifrar un archivo para múltiples destinatarios de clave privada con GPG, y simplemente cifra la misma clave de sesión repetidamente usando diferentes claves públicas. Esto es excelente para eliminar el "factor de bus de 1" en los archivos de copia de seguridad cifrados.

    
respondido por el nbering 07.11.2018 - 01:48
fuente
2
  

... [este comando gpg] genera el siguiente error:      gpg: Advertencia: usando memoria insegura!      gpg: Fatal: fuera del núcleo en la memoria segura mientras se asignan 32800 bytes

Está intentando utilizar una clave simétrica demasiado grande. Usted es base64 codificando un archivo jpg y usando la salida completa como su clave. Así que un archivo grande producirá una clave grande. En lugar de codificar en base64 el jpg, podría codificar el jpg (como eligió en el segundo script que presentó) para producir una clave de tamaño razonable (una clave que no varía en tamaño con el tamaño del archivo). Pero no te recomiendo que hagas eso ...

  

... Intenté usar OpenSSl y ahora tengo este comando:

     

pass = $ (sha256sum keyfile.jpg | awk {'print $ 1'})

     

openssl aes-256-cbc -md sha512 -salt -a -e -in backup.tar.gz -out encrypted.tar.gz.aes > -pasar pase: $ pasar

     

pass=""

En este segundo caso, es SHA256 el hashing del archivo jpg en lugar de la base64 que lo codifica ... Esto le da una clave de tamaño más razonable. Con respecto a los otros parámetros en su comando openssl: Ahora está usando aes256 en el modo CBC (aes-256-cbc). El modo CBC no es una buena opción. Es mejor utilizar el modo GCM o CCM con AES256.

    
respondido por el hft 07.11.2018 - 02:10
fuente

Lea otras preguntas en las etiquetas