Introducción

Introducción

OpenSSL es un poderoso conjunto de herramientas de criptografía. Muchos de nosotros ya hemos usado OpenSSL para crear claves privadas RSA o CSR (solicitud de firma de certificado). Sin embargo, ¿sabía que puede usar OpenSSL para comparar la velocidad de su computadora o que también puede cifrar archivos o mensajes? Este artículo le proporcionará algunos consejos simples de seguir sobre cómo cifrar mensajes y archivos utilizando OpenSSL.

Cifrar y descifrar mensajes

Primero podemos comenzar encriptando mensajes simples. El siguiente comando de Linux cifrará un mensaje "Bienvenido a LinuxCareer.com ”usando la codificación de base64:

$ echo "Bienvenido a LinuxCareer.com "| OpenSSL ENC -Base64
V2vsy29tzsb0bybmaw51eenhcmvlci5jb20k

La salida del comando anterior es una cadena cifrada que contiene un mensaje codificado "Bienvenido a LinuxCareer.com ". Para descifrar la cadena codificada a su mensaje original, necesitamos revertir el pedido y adjuntar -d opción para el descifrado:

$ echo "v2vsy29tzsb0bybmaw51eenhcmvlci5jb20k" | OpenSSL ENC -BASE64 -D
Bienvenido a LinuxCareer.comunicarse

El cifrado anterior es fácil de usar, sin embargo, carece de una característica importante de una contraseña, que debe usarse para el cifrado. Por ejemplo, intente descifrar la siguiente cadena con una contraseña "aprobar":

U2FSDGVKX181XSCMHKPIA6J0QD76N/NSJJTC9NRDUC0CBSLPZQXQ2DB7IPD7KEXJ

Para hacer eso, use OpenSSL nuevamente con la opción -d y el método de codificación AES-256-CBC:

echo "U2FSDGVKX181XSCMHKPIA6J0QD76N/NSJJTC9NRDUC0CBSLPZQXQ22DB7IPD7KEXJ" | OpenSSL ENC -AES -256 -CBC -D -A

Como probablemente ya haya adivinado, para crear un mensaje encriptado con una contraseña, ya que la anterior puede usar el siguiente comando Linux:

 $ Echo "OpenSsl" | OPENSSL ENC -AES-256-CBC -A Ingrese la contraseña de cifrado AES-256-CBC:
Verificación: ingrese la contraseña de cifrado AES-256-CBC:
U2FSDGVKX185E3H2ME2D+QMCFKESXDTN8NCN/4SBLR8 =


Si desea almacenar la salida de OpenSSL en un archivo en lugar de stdout, simplemente use la redirección de stdout ">". Al almacenar la salida encriptada en un archivo, también puede omitir -a opción ya que ya no necesita que la salida esté basada en el texto ASCII:

$ Echo "OpenSsl" | OpenSSL ENC -AES-256-CBC> OpenSSL.dat
Ingrese la contraseña de cifrado AES-256-CBC:
Verificación: ingrese la contraseña de cifrado AES-256-CBC:
$ Archivo OpenSSL.dat
openssl.DAT: datos

Para descifrar el openssl.Dat File Volver a su mensaje original Uso:

$ OpenSSL ENC -AES -256 -CBC -D -In OpenSSL.dat
Ingrese la contraseña de descifrado AES-256-CBC:
Openssl

Cijar y descifrar el archivo

Cifrar archivos con OpenSSL es tan simple como cifrar mensajes. La única diferencia es que en lugar del eco comando usamos el -en opción con el archivo real nos gustaría cifrar y -afuera Opción, que instruirá a OpenSSL que almacene el archivo encriptado bajo un nombre de determinación:

Advertencia: asegúrese de que el archivo de salida cifrado tenga un nombre de archivo diferente al archivo de entrada simple original. También se recomienda hacer pocas pruebas de cifrado/descifrado que se ejecutan en datos ficticios antes de encriptar contenido importante.

$ OpenSSL ENC -AES -256 -CBC -IN /ETC /SERVICIOS -OUT Servicios.dat

Para descifrar el uso de nuestro archivo de servicios:

$ OpenSSL ENC -AES -256 -CBC -D -In Servicios.Dat> Servicios.TXT
Ingrese la contraseña de descifrado AES-256-CBC:

Directorio de cifrado y descrypt

En caso de que necesite usar OpenSSL para cifrar un directorio completo que debe, los Firs, deben crear Tarball GZIP y luego cifrar el Tarball con el método anterior o puede hacer ambas cosas al mismo tiempo utilizando tubería:

# alquitrán cz /etc | OpenSSL ENC -AES -256 -CBC -Out, etc.alquitrán.GZ.dat
alquitrán: eliminar el liderazgo '/' de los nombres de los miembros
Ingrese la contraseña de cifrado AES-256-CBC:
Verificación: ingrese la contraseña de cifrado AES-256-CBC:

Para descifrar y extraer todo el directorio ETC/ a su uso actual del directorio de trabajo:

# OpenSSL ENC -AES -256 -CBC -D -IN ETC.alquitrán.GZ.dat | Tar xz
Ingrese la contraseña de descifrado AES-256-CBC:

El método anterior puede ser bastante útil para copias de seguridad encriptadas automatizadas.



Usar claves públicas y privadas

En esta sección mostraremos cómo cifrar y descifrar archivos utilizando claves públicas y privadas. Primero necesitamos generar claves privadas y públicas. Esto simplemente se puede hacer por:

$ OpenSSL Genrsa -Out private_key.PEM 1024
Generación de la clave privada RSA, módulo de 1024 bits largo
… ++++++
… ++++++
E es 65537 (0x10001)

Desde la clave privada podemos generar la clave pública:

$ openssl rsa -in private_key.PEM -Out public_key.PEM -Outform Pem -Pubout
Escribir la llave RSA

En este punto, debe tener una clave pública y privada disponible en su directorio de trabajo actual.

$ LS
llave privada.PEM public_key.pem

A continuación, creamos un archivo de muestra llamado CiCrypt.txt con cualquier texto arbitrario:

$ echo "Bienvenido a LinuxCareer.com "> encrypt.TXT
$ CAT CIRRYPT.TXT
Bienvenido a LinuxCareer.comunicarse

Ahora estamos listos para cifrar este archivo con la clave pública:

$ openssl rsautl -encrypt -inkey public_key.PEM -Pubin -in encrypt.txt -out encrypt.dat
$ LS
encriptar.dat encrypt.txt private_key.PEM public_key.pem
$ Archivo CIRRYPT.dat
encriptar.DAT: datos

Como puedes ver nuestro nuevo cifrado.El archivo DAT ya no es archivos de texto. Para descifrar este archivo necesitamos usar la clave privada:

$ openssl rsautl -Decrypt -inkey private_key.Pem -in encrypt.dat -out new_encrypt.TXT
$ Cat New_enCrypt.TXT
Bienvenido a LinuxCareer.comunicarse

La sintaxis anterior es bastante intuitiva. Como puede ver, hemos descifrado un archivo encrypt.dat a su formulario original y guárdelo como new_encrypt.TXT. Puede, por ejemplo, combinar esta sintaxis con los directores de cifrado, el ejemplo anterior para crear un script de copia de seguridad encriptado automatizado.

Conclusión

Lo que acabas de leer fue una introducción básica al cifrado OpenSSL. Cuando se trata de OpenSSL como un kit de herramientas de cifrado, literalmente no tiene límite en lo que puede hacer. Para ver cómo usar diferentes métodos de codificación, consulte la página del manual de OpenSSL: Hombre OpenSsl

Tutoriales de Linux relacionados:

  • Cómo configurar un servidor OpenVPN en Ubuntu 20.04
  • Cómo generar un certificado SSL autofirmado en Linux
  • Cosas para instalar en Ubuntu 20.04
  • Prueba de referencia de unidad USB en Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cómo comparar el rendimiento del disco en Linux
  • Prueba de clientes HTTPS utilizando OpenSSL para simular un servidor
  • Mastering Bash Script Loops
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..