GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encriptar un archivo grande en openssl usando una clave pública

Solución para codificar cualquier archivo de forma segura y altamente segura en OpenSSL y línea de comandos:

Debería tener listo algún certificado X.509 para cifrar archivos en formato PEM.

Cifrar archivo:

openssl smime -encrypt -binary -aes-256-cbc -in plainfile.zip -out encrypted.zip.enc -outform DER yourSslCertificate.pem

Qué es qué:

  • sonrisa - Comando ssl para la utilidad S/MIME (smime(1))
  • -cifrar - método elegido para el proceso de archivos
  • -binario - utilizar un proceso de archivo seguro. Normalmente, el mensaje de entrada se convierte a formato "canónico" según lo requiera la especificación S/MIME, este interruptor lo deshabilita. Es necesario para todos los archivos binarios (como imágenes, sonidos, archivos ZIP).
  • -aes-256-cbc - cifrado AES elegido en 256 bits para el cifrado (fuerte). Si no se especifica, se utiliza RC2 de 40 bits (muy débil). (Cifrados admitidos)
  • -en archivo simple.zip - nombre del archivo de entrada
  • -fuera encriptado.zip.enc - nombre del archivo de salida
  • -superar DER - codificar el archivo de salida como binario. Si no se especifica, el archivo está codificado en base64 y el tamaño del archivo aumentará en un 30 %.
  • suCertificadoSSl.pem - nombre de archivo de su certificado. Debería estar en formato PEM.

Ese comando puede cifrar de manera muy efectiva archivos grandes independientemente de su formato.
Problema conocido: Ocurre algo incorrecto cuando intenta cifrar un archivo enorme (> 600 MB). No arroja ningún error, pero el archivo cifrado se dañará. ¡Verifique siempre cada archivo! (o use PGP, que tiene mayor soporte para el cifrado de archivos con clave pública)

Descifrar archivo:

openssl smime -decrypt -binary -in encrypted.zip.enc -inform DER -out decrypted.zip -inkey private.key -passin pass:your_password

Qué es qué:

  • -informar a DER - igual que -outform anterior
  • -inkey llave.privada - nombre de archivo de su clave privada. Debe estar en formato PEM y puede cifrarse mediante contraseña.
  • -passin pass:tu_contraseña - su contraseña para cifrar la clave privada. (argumentos de frase de contraseña)

La criptografía de clave pública no es para cifrar archivos arbitrariamente largos. Uno usa un cifrado simétrico (digamos AES) para hacer el cifrado normal. Cada vez que se genera, utiliza y luego se cifra una nueva clave simétrica aleatoria con el cifrado RSA (clave pública). El texto cifrado junto con la clave simétrica cifrada se transfiere al destinatario. El destinatario descifra la clave simétrica usando su clave privada y luego usa la clave simétrica para descifrar el mensaje.

La clave privada nunca se comparte, solo la clave pública se usa para cifrar el cifrado simétrico aleatorio.


Linux
  1. Cómo cifrar y descifrar archivos y directorios utilizando Tar y OpenSSL

  2. Cómo cifrar y descifrar archivos/carpetas en Linux usando GnuPG

  3. ¿Cómo iniciar sesión en la instancia OpenStack o VM a través de PuTTY usando Key?

  4. Cómo cifrar y descifrar un archivo usando GnuPG en Linux

  5. ¿Cómo especificar la clave privada al descifrar un archivo usando GnuPG?

Cómo usar OpenSSL e Internet PKI en sistemas Linux

Cómo crear un archivo grande de 1 GB o 10 GB en Linux

Cómo cifrar archivos en Linux

Cómo agregar una clave pública SSH al servidor

Cómo:una introducción al uso de Git

Agregar clave pública al archivo unknown_hosts