SlideShare una empresa de Scribd logo
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

Más contenido relacionado

Destacado

Gestión de Certificados Digitales con OpenSSL
Gestión de Certificados Digitales con OpenSSLGestión de Certificados Digitales con OpenSSL
Gestión de Certificados Digitales con OpenSSL
Esteban Saavedra
 
Applying Security Algorithms Using openSSL crypto library
Applying Security Algorithms Using openSSL crypto libraryApplying Security Algorithms Using openSSL crypto library
Applying Security Algorithms Using openSSL crypto library
Priyank Kapadia
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADAdanyro
 
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadasalejandro
 
Samsung Presentation
Samsung PresentationSamsung Presentation
Samsung Presentation
ulugbek55
 
Samsung ppt
Samsung pptSamsung ppt
Samsung ppt
dee1987
 

Destacado (9)

Pki and OpenSSL
Pki and OpenSSLPki and OpenSSL
Pki and OpenSSL
 
Hashing
HashingHashing
Hashing
 
Gestión de Certificados Digitales con OpenSSL
Gestión de Certificados Digitales con OpenSSLGestión de Certificados Digitales con OpenSSL
Gestión de Certificados Digitales con OpenSSL
 
Applying Security Algorithms Using openSSL crypto library
Applying Security Algorithms Using openSSL crypto libraryApplying Security Algorithms Using openSSL crypto library
Applying Security Algorithms Using openSSL crypto library
 
Openssl
OpensslOpenssl
Openssl
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
 
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
 
Samsung Presentation
Samsung PresentationSamsung Presentation
Samsung Presentation
 
Samsung ppt
Samsung pptSamsung ppt
Samsung ppt
 

Similar a Openssl

Seg t2 practicas_certificado ssl
Seg t2 practicas_certificado sslSeg t2 practicas_certificado ssl
Seg t2 practicas_certificado sslgarciadebora
 
Configuracion https owcloud
Configuracion https owcloudConfiguracion https owcloud
Configuracion https owcloud
sebastianrock
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0wcuestas
 
Curso PKI
Curso PKICurso PKI
Curso PKI
Axel Díaz
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Telefónica
 
Curso pki
Curso pkiCurso pki
Curso pki
Axel d?z
 
jt2017-jt-exp_comu_a5-a8b3c1.pdf
jt2017-jt-exp_comu_a5-a8b3c1.pdfjt2017-jt-exp_comu_a5-a8b3c1.pdf
jt2017-jt-exp_comu_a5-a8b3c1.pdf
SunnyRoam
 
Nis Vs Ldap
Nis Vs LdapNis Vs Ldap
Nis Vs LdapJuan Bau
 
Nis Vs Ldap
Nis Vs LdapNis Vs Ldap
Nis Vs LdapJuan Bau
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSL
Tomás García-Merás
 
Cómo crear una VPN con OpenVPN
Cómo crear una VPN con OpenVPNCómo crear una VPN con OpenVPN
Cómo crear una VPN con OpenVPN
vladimir calderon
 
Servidor VPN en Linux - Bilal Jebari
Servidor VPN en Linux - Bilal JebariServidor VPN en Linux - Bilal Jebari
Servidor VPN en Linux - Bilal Jebari
bilaljbr
 
Seguridad de las Redes
Seguridad de las RedesSeguridad de las Redes
Seguridad de las Redes
AlexanderGarcia243
 
188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...
188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...
188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...
Agencia Aduanera Almeida
 
openssl
opensslopenssl
openssl
manu betran
 
Instalacion certificados-ssl
Instalacion certificados-sslInstalacion certificados-ssl
Instalacion certificados-ssl
Complethost Soluciones Internet
 
Seguridad j1v2
Seguridad   j1v2Seguridad   j1v2
Seguridad j1v2
Moisés Cid Deza
 

Similar a Openssl (20)

Protocolos SSL/TLS
Protocolos SSL/TLSProtocolos SSL/TLS
Protocolos SSL/TLS
 
Introducción a la Criptografia
Introducción a la CriptografiaIntroducción a la Criptografia
Introducción a la Criptografia
 
Seg t2 practicas_certificado ssl
Seg t2 practicas_certificado sslSeg t2 practicas_certificado ssl
Seg t2 practicas_certificado ssl
 
Configuracion https owcloud
Configuracion https owcloudConfiguracion https owcloud
Configuracion https owcloud
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
 
Curso PKI
Curso PKICurso PKI
Curso PKI
 
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry PiServicio VPN con OpenVPN y Latch sobre Raspberry Pi
Servicio VPN con OpenVPN y Latch sobre Raspberry Pi
 
Curso pki
Curso pkiCurso pki
Curso pki
 
jt2017-jt-exp_comu_a5-a8b3c1.pdf
jt2017-jt-exp_comu_a5-a8b3c1.pdfjt2017-jt-exp_comu_a5-a8b3c1.pdf
jt2017-jt-exp_comu_a5-a8b3c1.pdf
 
Nis Vs Ldap
Nis Vs LdapNis Vs Ldap
Nis Vs Ldap
 
Nis Vs Ldap
Nis Vs LdapNis Vs Ldap
Nis Vs Ldap
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSL
 
Cómo crear una VPN con OpenVPN
Cómo crear una VPN con OpenVPNCómo crear una VPN con OpenVPN
Cómo crear una VPN con OpenVPN
 
Servidor VPN en Linux - Bilal Jebari
Servidor VPN en Linux - Bilal JebariServidor VPN en Linux - Bilal Jebari
Servidor VPN en Linux - Bilal Jebari
 
Seguridad de las Redes
Seguridad de las RedesSeguridad de las Redes
Seguridad de las Redes
 
188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...
188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...
188997662 como-configurar-servidor-punto-multipunto-con-open vpn-y-cliente-en...
 
openssh
opensshopenssh
openssh
 
openssl
opensslopenssl
openssl
 
Instalacion certificados-ssl
Instalacion certificados-sslInstalacion certificados-ssl
Instalacion certificados-ssl
 
Seguridad j1v2
Seguridad   j1v2Seguridad   j1v2
Seguridad j1v2
 

Último

Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
sarasofiamontezuma
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
espinozaernesto427
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
ValeriaAyala48
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 

Último (20)

Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...
 
Conceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdfConceptos básicos de programación 10-5.pdf
Conceptos básicos de programación 10-5.pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 

Openssl

  • 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