- 1. Dani Gutirrez Porset [email_address]
2. ndice
3. Introduccin
- openssl es una librera y un comando de shell para:
-
- Operaciones bsicas de criptografa: valores aleatorios, hash y
cifrados simtricos, asimtricos.
-
- Gestin de certificados X.509 y formatos asociados
-
- Protocolos SSL (v2, v3), TLS (v1) y S/MIME
-
- Librera para distintos lenguajes
4. Valores aleatorios
- prime: comprobacin de nmeros primos
- rand: generador de nmeros aleatorios
5. Funciones hash
- Funciones resumen. Firma y verificacin a partir de claves
privada/pblica:
-
- dgst, md2, md5, mdc2, rmd160, sha1, sha
- passwd: hash (crypt, md5 bsd o apache) de password
-
- Hash md5: openssl dgst -md5 mifichero.txt
6. Cifrado simtrico
- Encriptacin/desencriptacin simtrica (base64, blowfish, CAST,
DES, triple DES, IDEA, RC2, RC4, RC5):
-
- Convertir a base64, ej. en ficheros ldif: openssl base64 -in
fich.in -out fich.out echo -n cadena | openssl base64
-
- Decodificar de base64: openssl base64 -d -in fich.in -out
fich.out echo -n cadena64 | openssl base64 -d
7. Cifrado asimtrico
- Gestin de claves y parmetros RSA, DH, DSA, Curvas
elpticas:
-
- dsaparam, gendsa, dsa. A diferencia de rsa, tiene un paso
intermedio de parmetros (nmeros p, q, g)
- Firma/verificacin, encriptacin/desencriptacin RSA
8. Cifrado asimtrico
-
- Generar una clave DSA con contrasea: openssl dsaparam -out
paramdsa.pem 1024 openssl gendsa -des3 -out privkey.pem
paramdsa.pem
-
- Generar una clave RSA sin contrasea: openssl genrsa -out
privkey.pem 1024
-
- Quitar la contrasea de una clave privada DSA: openssl dsa -in
privkey.pem -out privkey2.pem
9. Gestin de certificados X.509
-
-
- -new: genera un CSR; si no est -key genera una RSA
-
-
- -newkey: genera una clave
-
-
- -text: muestra informacin
-
-
- -out o: CSR o certificado autofirmado
10. Gestin de certificados X.509
-
- Generar un CSR y una clave privada: (Importante: campo cn
coincidente con el nombre del servicio ej. mail.acme.com,
intranet.acme.com) openssl req -new -out cert.pem -keyout
privkey.pem
-
- Crear un certificado autofirmado y una clave privada con
contrasea: openssl req -new -x509 -days 365 -out cert.pem -keyout
privkey.pem
-
- Crear un certificado autofirmado y una clave privada sin
contrasea: openssl req -new -x509 -nodes -days 365 -out cert.pem
-keyout privkey.pem
11. Gestin de certificados X.509
-
-
- -signkey i: crea un certificado autofirmado con la clave i
(cambiando la clave pblica a la correspondiente a i)
-
-
- -CA f: crea un certificado firmado por la CA indicada en f
-
-
- -text: muestra informacin
-
-
- -req: indica que el fichero de entrada es un csr
-
-
- -out o: CSR o certificado autofirmado
12. Gestin de certificados X.509
-
- Mostrar info de un certificado: openssl x509 -text -in
cert.pem
-
- Convertir un certificado de der a pem: openssl x509 -in
cert.der -inform der -out cert.pem
13. Gestin de certificados X.509
-
-
- -out o:certificado firmado
14. Gestin de certificados X.509
- ca tiene opciones definidas en /etc/openssl.conf. Por
defecto:
-
- Ficheros y directorios requeridos:
-
-
- demoCA/newcerts/private/cakey.pem
-
-
- demoCA/serial con algn valor, ej. 01
-
- Valores que han de ser iguales en el csr y la ca:
15. Gestin de certificados X.509
- crl: procesamiento de ficheros crl
- verify: certificar certificados contra ficheros de CAs
-
- Validar un certificado: openssl verify -CApath /...
cert.pem
16. Gestin de certificados X.509
-
- Protocolo para validar certificados en modo
cliente-servidor.
-
- Ms pensado a modo de prueba. Algo limitado (ineficiencia,
comando post de http,...)
-
-
- Modo lnea y un fichero (-issuer, -cert/-serial)
-
-
- Modo lnea y varios ficheros (-reqin, -respin)
-
-
- Url (-url) o Host, puerto y path (-host)
17. Gestin de formatos
- asn1parse: d (depth), hl (header length), l (length),
valores
- pkcs8, pkcs7, crl2pkcs7, pkcs12
-
- Convertir un certificado a pkcs12: openssl pkcs12 -export
-inkey priv.pem -in cert.pem-out cert.p12
18. SSL/TLS y S/MIME
-
- Listado de ciphers para SSL/TLS:
-
-
- s_client, s_server, sess_id, s_time
-
-
- Ej. Validar certificado de un servidor mediante conexin al
mismo: openssl s_client -CAfile CAcertificado -connect
servidor:puerto
- Gestin de correo encriptado o con firma s/mime:
19. Otros comandos
- engine: interface a mdulos C
- errstr: bsqueda de cdigos de errores
- speed: medida de la velocidad de la librera
- Varios Netscape: nseq, spkac
20. Configuracin
- /etc/ssl/openssl.cnf: fichero de configuracin. Secciones para
ca, req, crl
- /etc/ssl/private/: claves privadas
- /etc/ssl/certs/: certificados. Muchos son enlaces a los que
estn en /usr/share/ca-certificates/mozilla
21. Licencia de uso
-
- http://creativecommons.org/licenses/by-sa/3.0/