Openssl
-
Upload
dani-gutierrez-porset -
Category
Documents
-
view
8.779 -
download
2
Transcript of Openssl
- 1. Dani Gutirrez Porset [email_address]
-
- openssl
-
2. ndice
- Introduccin
- Comandos y ejemplos
- Configuracin
- Licencia de uso
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
- Interfaces:
-
- Comandos de la shell
-
- 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
- Ejemplos:
-
- Hash md5: openssl dgst -md5 mifichero.txt
6. Cifrado simtrico
- Encriptacin/desencriptacin simtrica (base64, blowfish, CAST, DES, triple DES, IDEA, RC2, RC4, RC5):
-
- enc,...
- Ejemplos:
-
- 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:
-
- dhparam, gendh, dh
-
- genrsa, rsa
-
- dsaparam, gendsa, dsa. A diferencia de rsa, tiene un paso intermedio de parmetros (nmeros p, q, g)
-
- ec, ecparam
- Firma/verificacin, encriptacin/desencriptacin RSA
-
- rsautl
8. Cifrado asimtrico
- Ejemplos:
-
- 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
- req
-
- Acciones:
-
-
- -new: genera un CSR; si no est -key genera una RSA
-
-
-
- -newkey: genera una clave
-
-
-
- -x509: autofirmado
-
-
-
- -text: muestra informacin
-
-
- Parmetros Input:
-
-
- -key i: key input
-
-
- Parmetros Output:
-
-
- -out o: CSR o certificado autofirmado
-
-
-
- -keyout o: key output
-
10. Gestin de certificados X.509
- Ejemplos:
-
- 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
- x509
-
- Acciones:
-
-
- -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
-
-
- Parmetros Input:
-
-
- -in f: certificado o csr
-
-
-
- -req: indica que el fichero de entrada es un csr
-
-
- Parmetros Output:
-
-
- -out o: CSR o certificado autofirmado
-
12. Gestin de certificados X.509
- Ejemplos:
-
- 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
- ca
-
- Acciones:
-
-
- Firma de uno o ms csr
-
-
-
- Creacin de CRLs
-
-
- Parmetros Input:
-
-
- -in f: csr
-
-
- Parmetros Output:
-
-
- -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/cacacert.pem
-
-
-
- demoCA/index.txt vaco
-
-
-
- demoCA/newcerts/
-
-
-
- demoCA/newcerts/private/cakey.pem
-
-
-
- demoCA/serial con algn valor, ej. 01
-
-
- Valores que han de ser iguales en el csr y la ca:
-
-
- C (country)
-
-
-
- S (state)
-
-
-
- O (organization)
-
15. Gestin de certificados X.509
- crl: procesamiento de ficheros crl
- verify: certificar certificados contra ficheros de CAs
- Ejemplos:
-
- Validar un certificado: openssl verify -CApath /... cert.pem
16. Gestin de certificados X.509
- ocsp
-
- Protocolo para validar certificados en modo cliente-servidor.
-
- Ms pensado a modo de prueba. Algo limitado (ineficiencia, comando post de http,...)
-
- Modos:
-
-
- cliente
-
-
-
- servidor o responder
-
-
- Formas de validacin:
-
-
- 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
- Ejemplos:
-
- Convertir un certificado a pkcs12: openssl pkcs12 -export -inkey priv.pem -in cert.pem-out cert.p12
18. SSL/TLS y S/MIME
- Protocolos SSL/TLS
-
- Listado de ciphers para SSL/TLS:
-
-
- ciphers
-
-
- Sesiones 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:
-
- smime
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/