Your SlideShare is downloading. ×
Openssl
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Openssl

3,654
views

Published on

Published in: Technology, Education

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,654
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
66
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. openssl Dani Gutiérrez Porset jdanitxu@gmail.com
  • 2. Índice ● Introducción ● Comandos y ejemplos ● Configuración ● Licencia de uso 2
  • 3. Introducción ● openssl es una librería para: – Operaciones básicas de criptografía: valores aleatorios, hash y cifrados simétricos, asimétricos. – Gestión de certificados X.509 y formatos asociados – Protocolos SSL y S/MIME ● Usos: – En comandos de la shell – Como librería de distintos lenguajes 3
  • 4. Valores aleatorios ● prime: comprobación de números primos ● rand: generador de números aleatorios 4
  • 5. Funciones hash ● Funciones resumen. Firma y verificación a partir de claves privada/pública: – dgst, md2, md5, mdc2, rmd160, sha1, sha ● passwd: hash (crypt, md5 bsd o apache) de password ● Ejemplos: – Hash md5: openssl dgst ­md5 mifichero.txt 5
  • 6. Cifrado simétrico ● Encriptación/desencriptación simétrica (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 6
  • 7. Cifrado asimétrico ● Gestión de claves y parámetros RSA, DH, DSA, Curvas elípticas: – dhparam, gendh, dh – genrsa, rsa – dsaparam, gendsa, dsa. A diferencia de rsa, tiene un paso intermedio de parámetros (números p, q, g) – ec, ecparam ● Firma/verificación, encriptación/desencriptación RSA – rsautl 7
  • 8. Cifrado asimétrico ● Ejemplos: – Generar una clave DSA con contraseña: openssl dsaparam ­out paramdsa.pem 1 4 02 openssl gendsa ­des3 ­out privkey .pem paramdsa.pem – Generar una clave RSA sin contraseña: openssl genrsa ­out privkey .pem 1 4 02 – Quitar la contraseña de una clave privada DSA: openssl dsa ­in privkey .pem ­out privkey2.pem 8
  • 9. Gestión 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 información – Parámetros Input: ● -key i: key input – Parámetros Output: ● -out o: CSR o certificado autofirmado ● -keyout o: key output 9
  • 10. Gestión 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 contraseña: openssl req ­new ­x509 ­days 365 ­out cert.pem  ­keyout privkey .pem – Crear un certificado autofirmado y una clave privada sin contraseña: openssl req ­new ­x509 ­nodes ­days 365 ­out  cert.pem ­keyout privkey .pem 10
  • 11. Gestión de certificados X.509 ● x509 – Acciones: ● -signkey i: crea un certificado autofirmado con la clave i (cambiando la clave pública a la correspondiente a i) ● -CA f: crea un certificado firmado por la CA indicada en f ● -text: muestra información – Parámetros Input: ● -in f: certificado o csr ● -req: indica que el fichero de entrada es un csr – Parámetros Output: ● -out o: CSR o certificado autofirmado 11
  • 12. Gestión 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 ­infor m der ­out cert.pem 12
  • 13. Gestión de certificados X.509 ● ca – Acciones: ● Firma de uno o más csr ● Creación de CRLs – Parámetros Input: ● -in f: csr – Parámetros Output: ● -out o: certificado firmado 13
  • 14. Gestión de certificados X.509 ● ca tiene opciones definidas en /etc/openssl.conf. Por defecto: – Ficheros y directorios requeridos: ● demoCA/cacacert.pem ● demoCA/index.txt vacío ● demoCA/newcerts/ ● demoCA/newcerts/private/cakey.pem ● demoCA/serial con algún valor, ej. 01 – Valores que han de ser iguales en el csr y la ca: ● C (country) ● S (state) ● O (organization) 14
  • 15. Gestión 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 15
  • 16. Gestión de certificados X.509 ● ocsp – Protocolo para validar certificados en modo cliente- servidor. – Más pensado a modo de prueba. Algo limitado (ineficiencia, comando post de http,...) – Modos: ● cliente ● servidor o responder – Formas de validación: ● Modo línea y un fichero (-issuer, -cert/-serial) ● Modo línea y varios ficheros (-reqin, -respin) ● Url (-url) o Host, puerto y path (-host) 16
  • 17. Gestión 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 17
  • 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 ● Gestión de correo encriptado o con firma s/mime: – smime 18
  • 19. Otros comandos ● engine: interface a módulos C ● errstr: búsqueda de códigos de errores ● speed: medida de la velocidad de la librería ● Varios Netscape: nseq, spkac 19
  • 20. Configuración ● /etc/ssl/openssl.cnf: fichero de configuración. Secciones para ca, req, crl ● /etc/ssl/private/: claves privadas ● /etc/ssl/certs/: certificados. Muchos son enlaces a los que están en /usr/share/ca-certificates/mozilla 20
  • 21. Licencia de uso http://creativecommons.org/licenses/by-sa/3.0/ 21

×