OpenSSL.
Algunos comandos de utilidad1:
Cifrado simétrico:
o Generar clave aleatoria (ej. 256 bits): openssl rand -out <ruta/><key.txt> -base64 32
o Cifrar (ej. aes-256-cbc):
openssl enc -aes-256-cbc -pass file:<ruta/><key.txt> -in <ruta/><fichero.claro> -out
<ruta/><fichero.enc> -pbkdf2
o Descifrar:
openssl enc -aes-256-cbc -d -pass file:<ruta/><key.txt> -in <ruta/><fichero.enc> -out
<ruta/><fichero.claro> -pbkdf2
Cifrado asimétrico:
o Generar clave RSA:
openssl genrsa -out <ruta/><clave> <1024|2048|4096|4192>
o Ver contenido de clave RSA:
openssl rsa -in <ruta/><clave> -text -out <ruta/><clave.texto>
o Extraer clave pública de clave privada:
openssl rsa -in <ruta/><privada> -out <ruta/><publica> -pubout
o Cifrar clave simétrica:
openssl pkeyutl2 -encrypt -in <ruta/><key.txt> -out <ruta/><key.enc> -inkey <ruta/><publica> -pubin
o Descifrar clave simétrica:
openssl pkeyutl3 -decrypt -in <ruta/><key.enc> -out <ruta/><key.txt> -inkey
<ruta/><privada>
Integridad (de <resumen.hash>):
o Generar resumen:
openssl dgst –sha1 -out <ruta/><resumen2.hash> <ruta/><fichero>
y comparar <resumen.hash> con <resumen2.hash>
Autenticidad e integridad:
o Firmar resumen:
openssl dgst -c -sign <ruta/><privada> -out <ruta/><resumen.firmado> <ruta/>/<resumen.hash>
o Verificar:
openssl dgst -c -verify <ruta/><publica> -signature <ruta/><resumen.firmado> <ruta/><resumen.hash>
Certificados digitales:
o Contenido de un certificado:
openssl x509 -in <ruta/><certificado.crt> -text –noout|out <ruta/><certificado.txt>
o Generar clave y certificado autofirmado:
openssl req -x509 -sha256 -newkey rsa:1024 -keyout <ruta/><claveCA> -out
<ruta/><certificadoCA>.crt -days 1024 -nodes -subj '/CN=Nombre de la CA'
o Solicitar un certificado:
openssl req –new –key <ruta/><privada> -out <ruta/><solicitud.csr>
o Firmar solicitud:
openssl x509 –req –days 365 -in <ruta/><solicitud.csr> -CA <ruta/><certificadoCA>.crt –
CAkey <ruta/><clavePrivadaCA> -set_serial <nnn> -out <ruta/><certificado.crt>
o Añadir clave privada a un certificado (.pfx, | .p12). Requiere contraseña:
openssl pkcs12 -export -out <ruta/><certi.pfx> -inkey <ruta/><privada> -in
<ruta/><certi.crt>
o Obtener un certificado con solo clave pública (.crt) a partir de uno con clave privada (.pfx, .p12) 3.
openssl pkcs12 -in <ruta/><certi.pfx> -clcerts –nokeys -out <ruta/><certi.crt>
o Extraer claves desde certificados:
(.crt):
openssl x509 -inform pem -in <ruta/><certi.crt>–out <ruta/><publica> -pubkey -noout
(.p12)3:
openssl pkcs12 -in <ruta/><certi.p12 |.pfx> -out <ruta/><privada> -nocerts -nodes
1
Cómo cifrar archivos con OpenSSL (Alejandro Alcalde)
2
rsautl en versiones 1.1.1.x
3
Requiere conocer contraseña