Openssl
Upcoming SlideShare
Loading in...5
×
 

Openssl

on

  • 5,990 views

 

Statistics

Views

Total Views
5,990
Views on SlideShare
5,948
Embed Views
42

Actions

Likes
1
Downloads
62
Comments
0

1 Embed 42

http://www.slideshare.net 42

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Openssl Openssl Presentation Transcript

  • openssl Dani Gutiérrez Porset jdanitxu@gmail.com
  • Índice ● Introducción ● Comandos y ejemplos ● Configuración ● Licencia de uso 2
  • 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
  • Valores aleatorios ● prime: comprobación de números primos ● rand: generador de números aleatorios 4
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Licencia de uso http://creativecommons.org/licenses/by-sa/3.0/ 21