Raúl Siles y José A. Guasch - Seguridad Web de aplicaciones basadas en DNI-e [RootedCON 2012]

RootedCON
RootedCONRootedCON
Seguridad de aplicaciones
     web basadas en el DNIe

                               Raúl Siles
w w w. t a d d o n g . c o m   José A. Guasch
@taddong                       3 Marzo 2012
DNI Electrónico (DNIe o eDNI)
• Estructura interna del DNIe
  – Zonas: pública, privada (PIN) y de seguridad
  – Datos biométricos (huella dactilar, foto y firma)
• ISO 7816 (evolución de PKCS#15)
• Certificados (y dos pares de claves)
  – Identificación (KeyUsage = Digital Signature)
  – Firma (KeyUsage = contentCommitment)
     • Validez legal
• CWA 14169: Dispositivo seguro
  de creación de firma (EAL4+)
                                                        2
El DNIe es seguro…
El DNIe es 10 veces más seguro…




                                  4
Amenazas reales sobre el DNIe
• Obtener el DNIe físicamente y conocer el PIN
• Comprometer el ordenador del usuario
• Ejemplos: (DNIe/smartcards)
  – “Man-In-Remote: PKCS11 for fun and non-profit”.
    Gabriel González. RootedCON 2011
     • Uso remoto del PIN y PKCS#11
  – Variante del troyano Sykipot – China (AlientVault)
     • Robo de PINs de smartcards del US DoD
     • Keylogger + Acceso a memoria certs. Windows
     • Suplantación remota de usuarios (proxy)
        – Diciembre 2011 (Marzo?)
                                                         5
El DNIe es seguro, pero…
¿se usa de forma segura?
¿Quién tiene DNIe?
• 25 millones de DNIe expedidos (29/09/2011)
   – Proyecto iniciado en 2005
   – Más de la mitad de la población
• España es líder mundial en tarjetas con firma
  electrónica (identidad electrónica)
   – 26 países en todo el mundo (tarjeta y firma)
• Ministerio del Interior (DGPyGC):
   – 1.500 puestos de expedición (+341 millones de €)

 http://www.mir.es/press/la-policia-nacional-supera-los-25-
        millones-de-dni-electronicos-expedidos-12920
                                                              7
¿Para qué usamos el DNIe?
• Escritorio (ordenador)
   –   Acceso al ordenador (login)
   –   Firma de documentos (facturas)
   –   Control de acceso a redes Wi-Fi y VPN
   –   Autentificación de llamadas VoIP

• Aeropuertos de Madrid y Barcelona
   – Proyecto ABC System de control automático de
     fronteras (Indra) – Policía Nacional
   – Autoservicio
   – DNIe, fotografía y huella dactilar
   – Premio ENISE 2010

                                                    8
¿Para qué más usamos el DNIe?

•   Cajeros automáticos…
•   TDT (eAdministración)
•   Móviles (mDNI)
•   …
• Administraciones Públicas (AAPP)
    – Servicios telemáticos
• Empresas privadas
    – Comercio electrónico, banca electrónica,
      servicios electrónicos…
                                                 9
Usamos el DNIe en aplicaciones web

                  e-BANKING




                                     10
¿Qué tipo de aplicaciones web?

• Sector público (AAPP)
  – Más de 2.000 servicios en la red, incluyendo
    más del 99% de trámites AGE on-line
  – Marzo de 2011: 2.015
    • 407 AGE, 1.453 CCAA, 78 de entidades locales y
      77 de otras instituciones del Estado
• Sector privado
  – Bancos y cajas, compañías de seguros,
    empresas de telecomunicaciones, empresas
    de suministros (agua, electricidad, gas…)

                                                       11
eAccesibility vs. Security




                             12
Fomentando el uso del DNIe…




                              13
El DNIe es seguro,
lo usamos en aplicaciones
web, pero…
¿se usa de forma segura?
Aplicaciones web basadas en el DNIe
• Autentificación web mediante el DNIe
  – Protocolo HTTPS
     • Solución estándar y transparente para el usuario
     • Integrado en los navegadores web
     • Autentificación mediante certificados digitales (X.509) cliente
  – Componente cliente: Applet Java o control ActiveX
    (IE & Windows)
     • Solución propietaria
  – Autentificación en la nube
• Firma mediante el DNIe
  – Componente cliente o Javascript o …
  – Sello de tiempo

                                                                         15
Componentes cliente

• Firma en el navegador web con el DNIe
  – Solución propietaria
    • IE (CAPICOM) o Firefox (crypto.signText() )
  – Firma de (partes de) formularios con
    Javascript, pero y… ¿ficheros locales?
    • Restricciones de seguridad en Javascript
• Componentes cliente (firmados)
  – Applets Java y controles ActiveX
    • Máximos permisos, sin limitaciones, acceso a
      ficheros locales, etc

                                                     16
Análisis de seguridad de
aplicaciones web basadas
        en el DNIe




                            17
Obtener autorización




                       18
Áreas vulnerables en las aplicaciones web
           basadas en el DNIe

     1               2              3




                                            19
20
1   HTTPS (SSL/TLS)
• Herramienta TLSSLed (Oct 2011 – v1.2)
   – Evaluar la seguridad de la implementación SSL/TLS
     (HTTPS) de un servidor web
   – sslscan & openssl (GNU/Linux y Mac OS X)
   – SSLv2, SSLv3/TLSv1, TLSv1.1/v1.2 (BEAST), cifrado
     nulo, alg. cifrado débiles (40/56 bits) & robustos (AES
     128/256 bits), cert. firmados MD5, longitud de la clave
     del cert., sujeto, emisor (CA), periodo de validez,
     cabecera STS, cookies (in)seguras, RFC 5746:
     renegociación SSL/TLS segura…
• Nuevas versiones en 2012…
     http://blog.taddong.com/2011/10/tlssled-v12.html
                                                               21
2   DNIe

• Análisis de seguridad de aplicaciones web
  – Registro y autentificación mediante el DNIe
  – Controles de acceso
• Limitación de los proxies de interceptación
  web al usar smartcards
  – Herramientas comerciales u open-source
  – Drivers o librerías de acceso a la smartcard
• Errores HTTPS: certificado cliente
                 … OWASP ZAP
                                                   22
3    Gestión de sesiones en aplicaciones web

    • Vulnerabilidades web: SQLi, XSS, CSRF…
       – ¿Gestión de sesiones? OWASP Top 10 (A3)
    • Malware: OddJob (Febrero 2011)
       – Robar las sesiones de los usuarios y mantenerlas
         activas (Bancos de USA & EU)
    • OWASP Session Management Cheat Sheet
       – Julio 2011 (v1.0) & Febrero 2012 (v2.0)
       – ∞ retos: HTTP sin estado, complejidad, en manos de
         los desarrolladores web, cookies, HTTPS…
http://blog.taddong.com/2012/02/owasp-session-management-cheat-sheet.html
    https://www.owasp.org/index.php/Session_Management_Cheat_Sheet
                                                                       23
DNIe: PKCS#11 y Java
PKCS#11 y DNIe en Java – Windows

• Estáticamente (ej. para keytool)
  – Depende de la plataforma: Win, Linux o Mac
  – %JAVA_HOME%/lib/security/java.security
security.provider.10=sun.security.pkcs11.SunPKCS11
         C:/Program Files (x86)/Java/jre6/lib/security/
         dnie_pkcs11.cfg

  – Fichero de configuración para SunPKCS11:
# Provider.getName() = SunPKCS11-DNIe
name = DNIe
# DNIe library
library = C:WINDOWSSysWOW64UsrPkcs11.dll


                                                          25
PKCS#11 y DNIe en Java – Linux

• Estáticamente (ej. para keytool)
  – Depende de la plataforma: Win, Linux o Mac
  – $JAVA_HOME/lib/security/java.security
security.provider.10=sun.security.pkcs11.SunPKCS11
 /usr/lib/jvm/java-6-sun/jre/lib/security/dnie_pkcs11.cfg


  – Fichero de configuración para SunPKCS11:
# Provider.getName() = SunPKCS11-DNIe
name = DNIe
# DNIe library
library = /usr/lib/opensc-pkcs11.so


                                                            26
PKCS#11 y DNIe en Java – Mac

• Estáticamente (ej. para “keytool”)
  – Depende de la plataforma: Win, Linux o Mac
  – $JAVA_HOME/lib/security/java.security
security.provider.10=sun.security.pkcs11.SunPKCS11
/.../1.6.0.jdk/Contents/Home/lib/security/dnie_pkcs11.cfg


  – Fichero de configuración para SunPKCS11:
# Provider.getName() = SunPKCS11-DNIe
name = DNIe
# DNIe library
library = /usr/lib/opensc-pkcs11.so

  – Java VM de 32 bits: $ java –d32 …
                                                            27
PKCS#11 y DNIe en Java - Consulta

• Java keytool (ej. Windows)
  – Listar los contenidos del DNIe (token PKCS11)
C:> keytool [-v] -keystore NONE -storetype PKCS11 –list
Escriba la contraseña del almacén de claves: ...


  – Sin el proveedor configurado en java.security
C:> keytool -keystore NONE -storetype PKCS11
        -providerClass sun.security.pkcs11.SunPKCS11
        -providerArg “C:Program Files(x86)Javajre6
                        libsecuritydnie_pkcs11.cfg”
        -list



                                                           28
PKCS#11 y DNIe en Java – Código
...
// Add PKCS11 provider
String cardConfig = "dnie_pkcs11.cfg"; // or InputStream
Provider pkcs11 = new sun.security.pkcs11.SunPKCS11(cardConfig);
Security.addProvider(pkcs11);

// Init the keystore
KeyStore ks = KeyStore.getInstance("PKCS11“, pkcs11);
ks.load(null, pin.toCharArray());

KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, pin.toCharArray());
KeyManager[] kms = kmf.getKeyManagers();

X509TrustManager trustManager = new X509TrustManager() { ... }
TrustManager[] tms = new TrustManager[] {trustManager};

// Init SSL context
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(kms, tms, new java.security.SecureRandom());             ...
                                                                   29
OWASP ZAP - Zed Attack Proxy

• Proxy de interceptación web (y …)
  – Código abierto y basado en Java
  – Multiplataforma: Windows, Linux y Mac OS X
  – Evolución de Paros y Andiparos (WebScarab)
• Soporte para certificados digitales cliente
  y smartcards
  – Tools - Options - Certificate
  – Keystore: PKCS11, PKCS12…
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
                http://code.google.com/p/zaproxy/
                                                                 30
Soporte del DNIe en ZAP

 • PKCS#11 (tras instalar drivers DNIe…)
  1   – Windows: (XP & 7 – 32 y 64 bits)
         • C:WindowsSystem32UsrPkcs11.dll
         • C:WindowsSysWOW64UsrPkcs11.dll
  0   – GNU/Linux: /usr/lib/opensc-pkcs11.so (o /usr/lib64/)
  0   – Mac OS X: /Library/OpenSC/lib/opensc-pkcs11.so
         • /usr/lib/opensc-pkcs11.so (link) & Java en 32 bits

 • drivers.xml
      – ¿Cómo compilar ZAP desde SVN?
http://blog.taddong.com/2012/02/building-owasp-zap-using-eclipse-ide.html
                                                                       31
Publicación del DNIe en ZAP

• Nueva funcionalidad reciente (SVN)
  – Renegociación SSL/TLS insegura
  – Acceso al proveedor PKCS#11 (bugs)
  – Intentos fallidos del PIN/contraseña (3) - PUK
  –…
• Repositorio SVN de ZAP: drivers.xml
  – Próximamente ZAP 1.4…



                                                     32
Resultados y
Recomendaciones




                  33
Motivación, alcance y objetivos
• Pruebas de intrusión sobre aplicaciones web
  basadas en el DNIe
  – Sector público (AAPP) y sector privado nacional
  – Servicios públicos electrónicos (aplicaciones web)
    que hacen uso del DNIe (Java, ASP .NET, PHP…)
  – Año 2011: de mayo a diciembre
  – Más allá de inyección SQL, XSS, XSRF, etc
• Auditorías de seguridad de los mecanismos de
  autentificación (y no firma) mediante el DNIe y
  gestión de sesiones de aplicaciones web
• Aplicaciones web objetivo: 15 (muy relevantes)

                                                         34
Áreas vulnerables en las aplicaciones web
           basadas en el DNIe

     1               2              3




                                            35
Impacto de las áreas vulnerables
1•   Implementación de HTTPS (SSL/TLS)
     – Integración nativa con el DNIe y certificados digitales
       cliente
         • Autentificación y componentes de firma
     – Descifrar tráfico web, ataques MitM, DoS, etc
2•   Registro y autentificación de usuarios mediante el
     DNIe
     – Manipulación de los datos de registro y autentificación
     – Suplantación completa de usuarios (ciudadanos)
3•   Mecanismos de gestión de sesiones en las
     aplicaciones web
     – DNIe = identificador de sesión (cookie)
     – Suplantación completa de usuarios (ciudadanos)
         … con la confianza que ofrece el usar el DNIe
                                                                 36
1




HTTPS




        37
HTTPS - Autentificación

• Certs. AC-APE y FNMT Clase 2 (Firefox)




                                           38
HTTPS - Estadísticas

                                                                                          FNMT C2
        AC              31                    38                         31
                                                                                          AC APE
                0            20        40               60          80              100   Otras



   Versión          0                                                                 TLSv1.1/1.2
                                            100
  protocolo                                 46                                        SSLv3/TLSv1
                                                                                      SSLv2
                0        20        40              60          80             100



 Algoritmos                                       62
                                                                              Fuertes (128/256)
(bits claves)                                                 85
                                                                              Débiles (40/56)
                0       20        40         60          80        100

                                                                                                    39
HTTPS - Estadísticas
 TCP/80                               42
                                                                                    Redirección
 (HTTP)                                     50
                                                                                    Abierto
          0           20         40              60         80          100

                                                 54                           Habilitada
Renegociación                    31                                           ! RFC5746
   cliente
  (HTTPS)                             38                                      -
                            15                                                RFC5746
                                                                              … y habilitada
                 0          20    40             60        80     100
  DoS (CVE-2011-1473)
  Tráfico (CVE-2009-3555)

  Cabeceras
   HTTP(S)                                                                             STS
                0           20         40             60         80           100
                                                                                                  40
HTTPS - Renegociación

• Renegociación HTTPS (SSL/TLS) segura




                                         41
HTTPS - Autentificación
(Mediante componentes cliente…)

         Utilización de
         HTTPS, firma
         componente,
         permisos…




                                  42
2




Registro y autentificación mediante
              el DNIe




                                      43
Registro con el DNIe - Estadísticas

• Registro de usuarios en la app-web (DNIe)
  1. Autentificación mediante el DNIe
  2. Formulario con los datos de registro
        • ¿Ausencia de verificación?
        • Manipulación de todos los datos del usuario
          víctima: NIF, nombre y apellidos, dirección, tfno…
• Posibilidad de manipulación de los datos de
  registro (de las que lo requieren ≈ 25%)
                   67
                                                       Vuln.
  0         20          40     60       80       100
                                                               44
Registro con el DNIe - Estadísticas




                                      45
Autentificación DNIe - Estadísticas

• Trámites/operaciones en uno o varios pasos
• ¿DNIe necesario en todos los recursos?
   – Suplantación del usuario: anónima o con DNIe

DNIe                 58                       42               Autent. sólo
                                                               Todos
       0       20         40        60        80        100


• Verificación del DNIe vs. identificador sesión
           8
                                                                     Verificación
       0        20             40        60        80         100

                                                                                    46
3




Gestión de sesiones




                      47
ID sesión = Credenciales
• Ataques sobre los mecanismos de gestión
  de sesiones para evitar la autentificación
• ID es equivalente (temporalmente) a…
  – Contraseñas
  – Passphrases
  – Certificados
  – Smartcards
  – Biometría


                                               48
El DNIe en realidad es…




          =


                          49
Gestión de sesiones - Estadísticas

                                                                                 Cookies
  ID sesión                   75                             17         8
                                                                                 Params.
               0    20            40         60             80          100      N/A



ID aleatorio       36
                                                                            Insuficiente
               0   20        40         60             80         100


   Fijación
                             64
   sesión                                                                             Vuln.
               0        20         40             60              80          100



                                                                                              50
Gestión de sesiones - Estadísticas
  Secure               11

HttpOnly       0
                                                                             Atributos
 Domain                                                          89
                                                                             cookies
    Path                              33

           0                20         40        60        80         100

                                                      Cierre de sesión (temporizadores)
    T. relativo                                                                    100

   T. absoluto               9

        Botón                                         55

(sigue abierta)                  18

                   0             20         40          60            80         100

                                                                                          51
El DNIe es seguro,
lo usamos en aplicaciones
web, no se usa de forma
segura, y…
¿mi ordenador está seguro?
Seguridad en componentes
cliente de aplicaciones web
    basadas en el DNIe
¿A quién afecta esta charla?
                     charla?
Text


                 ActiveX
                object + clssid (cab, exe)




    Java applet
applet + codebase + archive (jar)
Java Network Launching Protocol (jnlp)
CÓMO ANALIZAR
COMPONENTES
ACTIVEX Y JAVA APPLETS
ANALIZANDO ACTIVEX             Text




OLE/COM Object Viewer    }   Visor



                         }
                  IDA

               OllyDBG
                             Debuggers
     Immunity Debugger




                         }
               AxMan

           COMRaider         Fuzzers
              dranzer
ANALIZANDO JAVA APPLETS


Descompresor de ficheros
                            } Descompresor
                                   jar = zip




                            }
 DJ Java Decompiler (jad)
                                Decompiladores
                   jd-gui


              JavaSnoop
                            } Debugger
VULNERABILIDADES COMUNES
EN COMPONENTES
VULNERABILIDADES EN COMPONENTES
                               Text




                                     inglis pitinglis


‣ Abuso de funcionalidades (gestión ficheros, descarga...)
                                             exec(, cmd...
‣ Ejecución de comandos en cliente
                                              semilla, password, ...
‣ Información sensible en código fuente
                                                  descifrar(, test(
‣ Funciones y procedimientos de depuración
‣ Desbordamientos de búfer, heap-based, stack-based...

                         h4rdc0r3 h4x0rs!!!!
VULNERABILIDADES ACTIVEX                             Text




 http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=activex



                                ✴ Adobe
                                ✴ Oracle
834 CVEs                        ✴ Akamai
                                ✴ Cisco
                                ✴ Microsoft
                                ✴ ...
VULNERABILIDADES ACTIVEX              Text




  ADOBE – CVE-2005-0035
  Determinar existencia de ficheros
VULNERABILIDADES ACTIVEX                      Text




ORACLE – CVE-2010-3595
Lectura de ficheros sabiendo su ruta completa
VULNERABILIDADES ACTIVEX               Text




IBM Access Support eGatherer ActiveX - CVE-2004-2663
Creación de ficheros
VULNERABILIDADES ACTIVEX                 Text




Chilkat – CVE-2008-5002
Creación y sobre-escritura de ficheros
* Permitiría ejecución de comandos
VULNERABILIDADES ACTIVEX                 Text




TuxSystem ActiveX - CVE-2012-1065
Creación y sobre-escritura de ficheros
COMPONENTES PARA DNIe Y
CERTIFICADOS DIGITALES
BUSCANDO COMPONENTES                                  Text




‣Buscador de soluciones de “Autenticación y certificación digital”
BUSCANDO COMPONENTES




‣ https://zonatic.usatudni.es/es/aplicaciones-busca/search/search.html
BUSCANDO COMPONENTES




                       Logs de HijackThis




70
BUSCANDO COMPONENTES




         inurl:sede preguntas frecuentes activex
                  inurl:sede applet dni-e
Manuales para configurar componente en navegador...
COMPONENTES                                     Text



                                                                        ActiveX /
    COMPONENTE                           RESPONSABLE
                                                                        APPLET
@firma                    Centro de Transferencia Tecnológica             Applet
CActiveX                  AEAT                                           ActiveX
CryptoSign                Realsec                                        ActiveX
eSigna Website            inDenova                                        Applet
id@zki                    IZENPE                                     ActiveX / APPLET
OpenSignX (TrustedX)      Safelayer                                       Applet
SIAVAL                    Sistemas Informáticas Abiertos                  Applet
smartAPPLET               bit4id Ibérica S.L.                             Applet
viafirma                  Viafirma S.L                                    Applet
WebSigner (ASF-Firma)     TB-Solutions Advanced Technologies, S.L.   ActiveX / APPLET
             ...                                ...                         ...

             https://www.owasp.org/index.php/Spain/Projects/DNIe-3
SEGURIDAD EN COMPONENTES
Text



https://aeat.es/instalar
Text



 AEAT, Renta 2008, tarde y mal




                                        - Certificado inválido (caducado)

                                        - Editor desconocido




http://www.securitybydefault.com/2009/04/aeat-renta-2008-tarde-y-mal.html
Text



     Weaponized XSS – El caso de la Agencia Tributaria




                                           - Abuso de funcionalidades (XSS)




http://blog.48bits.com/2010/08/03/weaponized-xss-el-caso-de-la-agencia-tributaria/
Text
ClientE @firma
Centro de Transferencia de Tecnología (CTT)



             Open Source
Text



ClientE @firma
El Cliente de Firma es una herramienta
de Firma Electrónica que soporta los
siguientes formatos de firma: PAdES-
BES / EPES, XAdES-BES / EPES,
CAdES-BES / EPES, ODF, OOXML,
CMS y XMLDsig




MiniApplet

Conjunto limitado de métodos NUEVOS
para operaciones tipo de firma
electrónica y que permite generar
firmas en los siguientes formatos:
CAdES, XAdES PAdES y ODF.
Text




VERSIÓN MINI
DEMO VERSION MINI
  MCFv1.0.1_EjemploDEMO_despliegue_MiniApplet[
  clienteFirma]




  ‣ Las funciones requieren interacción con el usuario
Text




VERSIÓN COMPLETA
Buscando información en código...




C:UsersA122466DesktopBorrarpruebatamano
Text




DEMO VERSION COMPLETA
     https://sedechachi.gob.es
     [clienteFirma]




      ‣ Lectura de ficheros
      ‣ Escritura/Sobreescritura de ficheros
¡A REPORTARLO!
¡A REPORTARLO!
¡A REPORTARLO!




87
Text




Suite ASF = CC EAL3+




  http://www.oc.ccn.cni.es/ProdCert_es.html
Text
DEMO
WebSigner2.cab
¿Y EL APPLET?
public static String addMozillaPKCS11Provider (String paramString1, String
                      addMozillaPKCS11Provider
                                                paramString2)
                                                paramString2)


• IF de obtención de sistema operativo del cliente.
• Si el cliente NO se encuentra en un entornoWindows:

Runtime.getRuntime().exec(
Runtime.getRuntime().exec("ln -s " + paramString2 + "/libnssckbi.so " +
                                                    "/libnssckbi.so
                            WebSignerCore.configDir + "/libnssckbi.so");
                                                        "/libnssckbi.so"




addMozillaPKCS11Provider (“BLABLA”, “a a;touch /tmp/pwned;…”)
                                                tmp/pwned;…”)
Conclusiones




               93
Concienciación




                 94
No hagamos las cosas mal…




                            95
Hagamos las cosas bien…




                          96
Conclusiones




               97
Peligro




          98
Soluciones




             99
El DNIe es seguro, pero…
¿se usa de forma segura?
Proyecto OWASP DNIe
• El objetivo es evaluar y mejorar la seguridad de las
  aplicaciones web que hacen uso del DNIe, para la
  autenticación de usuarios, así como la posterior gestión
  de sesiones y controles de acceso, y para los procesos
  de creación y verificación de firma
   – Capítulo español de OWASP - Raúl Siles (Junio 2011)
• DNIe-1: Encuesta sobre las tecnologías…
• DNIe-2 y 3: Vulnerabilidades app-web & componentes
   – José A. Guasch & Raúl Siles
• DNIe-4: Herramientas
• DNIe-5 y 6: Recomendaciones app-web & componentes

  https://www.owasp.org/index.php/Spain/Projects/DNIe
                                                             101
Proyecto creado por y
para la comunidad…




                        102
Seguridad de aplicaciones web
     basadas en el DNIe

                     Raúl Siles - raul@taddong.com
                     José A. Guasch - jaguasch@gmail.com




w w w. t a d d o n g . c o m
@taddong
1 of 103

Recommended

Infraestructura PKI by
Infraestructura PKIInfraestructura PKI
Infraestructura PKICinthia Duque
2.8K views30 slides
Infraestructura de clave pública con Software Libre by
Infraestructura de clave pública con Software LibreInfraestructura de clave pública con Software Libre
Infraestructura de clave pública con Software LibreToni de la Fuente
3.6K views39 slides
Infrestructura pki by
Infrestructura pkiInfrestructura pki
Infrestructura pkidansterec
412 views32 slides
Pki by
PkiPki
Pkidanielmon1
1.1K views24 slides
3. certificados y pki by
3. certificados y pki3. certificados y pki
3. certificados y pki1 2d
4.3K views55 slides
Pki by
PkiPki
PkiMyrian Medina
1.3K views20 slides

More Related Content

Viewers also liked

Acuario de Gijón by
 Acuario de Gijón Acuario de Gijón
Acuario de GijónVillafria
486 views26 slides
Ventas rápidas y seguras movilizando su fuerza de ventas - Sergio Aquino by
Ventas rápidas y seguras movilizando su fuerza de ventas - Sergio AquinoVentas rápidas y seguras movilizando su fuerza de ventas - Sergio Aquino
Ventas rápidas y seguras movilizando su fuerza de ventas - Sergio AquinoGeneXus
764 views23 slides
Gesundes Lingenau - Herbst 2012 by
Gesundes Lingenau - Herbst 2012Gesundes Lingenau - Herbst 2012
Gesundes Lingenau - Herbst 2012gemeindelingenau
1.6K views9 slides
Thông tư 26-2011-BTNMT - Quy định chi tiết một số điều của Nghị định số 29 về... by
Thông tư 26-2011-BTNMT - Quy định chi tiết một số điều của Nghị định số 29 về...Thông tư 26-2011-BTNMT - Quy định chi tiết một số điều của Nghị định số 29 về...
Thông tư 26-2011-BTNMT - Quy định chi tiết một số điều của Nghị định số 29 về...Công ty môi trường Newtech Co
782 views78 slides
Export consulting for IT&C companies by
Export consulting for IT&C companiesExport consulting for IT&C companies
Export consulting for IT&C companiesAilanthus Advance SL
493 views18 slides
Cadeira burigoto by
Cadeira burigotoCadeira burigoto
Cadeira burigotoSergio Levin
1.6K views24 slides

Viewers also liked(20)

Acuario de Gijón by Villafria
 Acuario de Gijón Acuario de Gijón
Acuario de Gijón
Villafria486 views
Ventas rápidas y seguras movilizando su fuerza de ventas - Sergio Aquino by GeneXus
Ventas rápidas y seguras movilizando su fuerza de ventas - Sergio AquinoVentas rápidas y seguras movilizando su fuerza de ventas - Sergio Aquino
Ventas rápidas y seguras movilizando su fuerza de ventas - Sergio Aquino
GeneXus764 views
Gordon Biersch Final Book by RamonHernandez
Gordon Biersch Final BookGordon Biersch Final Book
Gordon Biersch Final Book
RamonHernandez2.5K views
Anukret 192-on-adjustment-of-customs-duty-and-excise-tax by SAM SEYLA HUN (DA)
Anukret 192-on-adjustment-of-customs-duty-and-excise-taxAnukret 192-on-adjustment-of-customs-duty-and-excise-tax
Anukret 192-on-adjustment-of-customs-duty-and-excise-tax
SAM SEYLA HUN (DA)381 views
Curso Básico de Redes LAN by Alexandra6924
Curso Básico de Redes LANCurso Básico de Redes LAN
Curso Básico de Redes LAN
Alexandra6924361 views
Semantic Search overview at SSSW 2012 by Peter Mika
Semantic Search overview at SSSW 2012Semantic Search overview at SSSW 2012
Semantic Search overview at SSSW 2012
Peter Mika2.9K views
Informe Cuatrecasas & ManpowerGroup by Sergi Serrano
Informe Cuatrecasas & ManpowerGroupInforme Cuatrecasas & ManpowerGroup
Informe Cuatrecasas & ManpowerGroup
Sergi Serrano686 views
Trabajo historia fernando b2 d astérix by Fernando_2D
Trabajo historia fernando b2 d astérixTrabajo historia fernando b2 d astérix
Trabajo historia fernando b2 d astérix
Fernando_2D985 views
Manual instruções Koos Jané by Viver Qualidade
Manual instruções Koos JanéManual instruções Koos Jané
Manual instruções Koos Jané
Viver Qualidade4.3K views
FOLLETO CURSO VIRTUAL by camilamongui
FOLLETO CURSO VIRTUALFOLLETO CURSO VIRTUAL
FOLLETO CURSO VIRTUAL
camilamongui1.1K views
Bolormaa Terbish_Der ''Mongolenfleck''_02.Apr.2014 by Terbish Bolormaa
Bolormaa Terbish_Der ''Mongolenfleck''_02.Apr.2014Bolormaa Terbish_Der ''Mongolenfleck''_02.Apr.2014
Bolormaa Terbish_Der ''Mongolenfleck''_02.Apr.2014
Terbish Bolormaa12.9K views
TecnologiaycomunicacionTURISMO by robr2702
TecnologiaycomunicacionTURISMOTecnologiaycomunicacionTURISMO
TecnologiaycomunicacionTURISMO
robr2702539 views
YO RECICLO, PROYECTO DE AULA AMBIENTAL , UCEVA 2016 by Daisy Miranda
YO RECICLO, PROYECTO DE AULA AMBIENTAL , UCEVA 2016YO RECICLO, PROYECTO DE AULA AMBIENTAL , UCEVA 2016
YO RECICLO, PROYECTO DE AULA AMBIENTAL , UCEVA 2016
Daisy Miranda259 views

Similar to Raúl Siles y José A. Guasch - Seguridad Web de aplicaciones basadas en DNI-e [RootedCON 2012]

Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad) by
Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad)Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad)
Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad)Logicalis Latam
1.6K views44 slides
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P... by
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...Websec México, S.C.
136 views58 slides
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule by
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMariano Tejedor
716 views35 slides
Ignorancia inalámbrica by
Ignorancia inalámbricaIgnorancia inalámbrica
Ignorancia inalámbricaSergiu Mesesan
109 views25 slides
VPN / VLAN por Frey Alfonso Santamaría Buitrago by
VPN / VLAN por Frey Alfonso Santamaría BuitragoVPN / VLAN por Frey Alfonso Santamaría Buitrago
VPN / VLAN por Frey Alfonso Santamaría BuitragoUPTC
3K views69 slides
La problemática de la identificación de los participantes en las plataformas ... by
La problemática de la identificación de los participantes en las plataformas ...La problemática de la identificación de los participantes en las plataformas ...
La problemática de la identificación de los participantes en las plataformas ...Jaime Sánchez
4.7K views39 slides

Similar to Raúl Siles y José A. Guasch - Seguridad Web de aplicaciones basadas en DNI-e [RootedCON 2012](20)

Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad) by Logicalis Latam
Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad)Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad)
Firma Digital - Certificados SSL (Diego Laborero - MacroSeguridad)
Logicalis Latam1.6K views
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P... by Websec México, S.C.
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...
OWASP IoTGoat - Enseñando a desarrolladores IoT a crear productos seguros - P...
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule by Mariano Tejedor
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
Mariano Tejedor716 views
VPN / VLAN por Frey Alfonso Santamaría Buitrago by UPTC
VPN / VLAN por Frey Alfonso Santamaría BuitragoVPN / VLAN por Frey Alfonso Santamaría Buitrago
VPN / VLAN por Frey Alfonso Santamaría Buitrago
UPTC3K views
La problemática de la identificación de los participantes en las plataformas ... by Jaime Sánchez
La problemática de la identificación de los participantes en las plataformas ...La problemática de la identificación de los participantes en las plataformas ...
La problemática de la identificación de los participantes en las plataformas ...
Jaime Sánchez4.7K views
Jgv actividad 5 infraestructura pk ix by JorgeGValarezo
Jgv actividad 5   infraestructura pk ixJgv actividad 5   infraestructura pk ix
Jgv actividad 5 infraestructura pk ix
JorgeGValarezo254 views
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards by Sofia2 Smart Platform
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboardsTaller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
Taller IoT: desarrollo visual en Sofia2 con Raspberry Pi, Node-RED y dashboards
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens... by Internet Security Auditors
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
Protocolo de redes ssl by NANO-06
Protocolo de redes sslProtocolo de redes ssl
Protocolo de redes ssl
NANO-06406 views
Microsoft Windows Server 2003 Y Windows 2000 by teddy666
Microsoft Windows Server 2003 Y Windows 2000Microsoft Windows Server 2003 Y Windows 2000
Microsoft Windows Server 2003 Y Windows 2000
teddy6661.2K views
Microsoft Windows Server 2003 Y Windows 2000 I by teddy666
Microsoft Windows Server 2003 Y Windows 2000 IMicrosoft Windows Server 2003 Y Windows 2000 I
Microsoft Windows Server 2003 Y Windows 2000 I
teddy6661.7K views
Seguridad de información para criptoactivos by Eudy Zerpa
Seguridad de información para criptoactivosSeguridad de información para criptoactivos
Seguridad de información para criptoactivos
Eudy Zerpa74 views
Herramientas para la seguridad informática, un problema de dirección by Adonys Maceo
Herramientas para la seguridad informática, un problema de direcciónHerramientas para la seguridad informática, un problema de dirección
Herramientas para la seguridad informática, un problema de dirección
Adonys Maceo14.4K views
Herramientas de Licenciamiento de Software y Protección de Software HARdkey by Andres Gallo
Herramientas de Licenciamiento de Software y Protección de Software HARdkeyHerramientas de Licenciamiento de Software y Protección de Software HARdkey
Herramientas de Licenciamiento de Software y Protección de Software HARdkey
Andres Gallo729 views

More from RootedCON

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde by
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRootedCON
288 views41 slides
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c... by
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...RootedCON
1K views55 slides
Rooted2020 hunting malware-using_process_behavior-roberto_amado by
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRootedCON
369 views29 slides
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_ by
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_RootedCON
408 views22 slides
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op... by
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...RootedCON
352 views86 slides
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r... by
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...RootedCON
304 views15 slides

More from RootedCON(20)

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde by RootedCON
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
RootedCON288 views
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c... by RootedCON
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
RootedCON1K views
Rooted2020 hunting malware-using_process_behavior-roberto_amado by RootedCON
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amado
RootedCON369 views
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_ by RootedCON
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
RootedCON408 views
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op... by RootedCON
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
RootedCON352 views
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r... by RootedCON
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
RootedCON304 views
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca... by RootedCON
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
RootedCON277 views
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer by RootedCON
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
RootedCON510 views
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav... by RootedCON
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
RootedCON440 views
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy by RootedCON
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
RootedCON256 views
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom... by RootedCON
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
RootedCON175 views
Rooted2020 virtual pwned-network_-_manel_molina by RootedCON
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molina
RootedCON156 views
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an... by RootedCON
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
RootedCON174 views
Rooted2020 todo a-siem_-_marta_lopez by RootedCON
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopez
RootedCON178 views
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero by RootedCON
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
RootedCON134 views
Rooted2020 live coding--_jesus_jara by RootedCON
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jara
RootedCON130 views
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un... by RootedCON
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
RootedCON98 views
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-... by RootedCON
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
RootedCON143 views
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste by RootedCON
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
RootedCON147 views
Rooted2020 encontrando 0days-en_2020_-_antonio_morales by RootedCON
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
RootedCON128 views

Raúl Siles y José A. Guasch - Seguridad Web de aplicaciones basadas en DNI-e [RootedCON 2012]

  • 1. Seguridad de aplicaciones web basadas en el DNIe Raúl Siles w w w. t a d d o n g . c o m José A. Guasch @taddong 3 Marzo 2012
  • 2. DNI Electrónico (DNIe o eDNI) • Estructura interna del DNIe – Zonas: pública, privada (PIN) y de seguridad – Datos biométricos (huella dactilar, foto y firma) • ISO 7816 (evolución de PKCS#15) • Certificados (y dos pares de claves) – Identificación (KeyUsage = Digital Signature) – Firma (KeyUsage = contentCommitment) • Validez legal • CWA 14169: Dispositivo seguro de creación de firma (EAL4+) 2
  • 3. El DNIe es seguro…
  • 4. El DNIe es 10 veces más seguro… 4
  • 5. Amenazas reales sobre el DNIe • Obtener el DNIe físicamente y conocer el PIN • Comprometer el ordenador del usuario • Ejemplos: (DNIe/smartcards) – “Man-In-Remote: PKCS11 for fun and non-profit”. Gabriel González. RootedCON 2011 • Uso remoto del PIN y PKCS#11 – Variante del troyano Sykipot – China (AlientVault) • Robo de PINs de smartcards del US DoD • Keylogger + Acceso a memoria certs. Windows • Suplantación remota de usuarios (proxy) – Diciembre 2011 (Marzo?) 5
  • 6. El DNIe es seguro, pero… ¿se usa de forma segura?
  • 7. ¿Quién tiene DNIe? • 25 millones de DNIe expedidos (29/09/2011) – Proyecto iniciado en 2005 – Más de la mitad de la población • España es líder mundial en tarjetas con firma electrónica (identidad electrónica) – 26 países en todo el mundo (tarjeta y firma) • Ministerio del Interior (DGPyGC): – 1.500 puestos de expedición (+341 millones de €) http://www.mir.es/press/la-policia-nacional-supera-los-25- millones-de-dni-electronicos-expedidos-12920 7
  • 8. ¿Para qué usamos el DNIe? • Escritorio (ordenador) – Acceso al ordenador (login) – Firma de documentos (facturas) – Control de acceso a redes Wi-Fi y VPN – Autentificación de llamadas VoIP • Aeropuertos de Madrid y Barcelona – Proyecto ABC System de control automático de fronteras (Indra) – Policía Nacional – Autoservicio – DNIe, fotografía y huella dactilar – Premio ENISE 2010 8
  • 9. ¿Para qué más usamos el DNIe? • Cajeros automáticos… • TDT (eAdministración) • Móviles (mDNI) • … • Administraciones Públicas (AAPP) – Servicios telemáticos • Empresas privadas – Comercio electrónico, banca electrónica, servicios electrónicos… 9
  • 10. Usamos el DNIe en aplicaciones web e-BANKING 10
  • 11. ¿Qué tipo de aplicaciones web? • Sector público (AAPP) – Más de 2.000 servicios en la red, incluyendo más del 99% de trámites AGE on-line – Marzo de 2011: 2.015 • 407 AGE, 1.453 CCAA, 78 de entidades locales y 77 de otras instituciones del Estado • Sector privado – Bancos y cajas, compañías de seguros, empresas de telecomunicaciones, empresas de suministros (agua, electricidad, gas…) 11
  • 13. Fomentando el uso del DNIe… 13
  • 14. El DNIe es seguro, lo usamos en aplicaciones web, pero… ¿se usa de forma segura?
  • 15. Aplicaciones web basadas en el DNIe • Autentificación web mediante el DNIe – Protocolo HTTPS • Solución estándar y transparente para el usuario • Integrado en los navegadores web • Autentificación mediante certificados digitales (X.509) cliente – Componente cliente: Applet Java o control ActiveX (IE & Windows) • Solución propietaria – Autentificación en la nube • Firma mediante el DNIe – Componente cliente o Javascript o … – Sello de tiempo 15
  • 16. Componentes cliente • Firma en el navegador web con el DNIe – Solución propietaria • IE (CAPICOM) o Firefox (crypto.signText() ) – Firma de (partes de) formularios con Javascript, pero y… ¿ficheros locales? • Restricciones de seguridad en Javascript • Componentes cliente (firmados) – Applets Java y controles ActiveX • Máximos permisos, sin limitaciones, acceso a ficheros locales, etc 16
  • 17. Análisis de seguridad de aplicaciones web basadas en el DNIe 17
  • 19. Áreas vulnerables en las aplicaciones web basadas en el DNIe 1 2 3 19
  • 20. 20
  • 21. 1 HTTPS (SSL/TLS) • Herramienta TLSSLed (Oct 2011 – v1.2) – Evaluar la seguridad de la implementación SSL/TLS (HTTPS) de un servidor web – sslscan & openssl (GNU/Linux y Mac OS X) – SSLv2, SSLv3/TLSv1, TLSv1.1/v1.2 (BEAST), cifrado nulo, alg. cifrado débiles (40/56 bits) & robustos (AES 128/256 bits), cert. firmados MD5, longitud de la clave del cert., sujeto, emisor (CA), periodo de validez, cabecera STS, cookies (in)seguras, RFC 5746: renegociación SSL/TLS segura… • Nuevas versiones en 2012… http://blog.taddong.com/2011/10/tlssled-v12.html 21
  • 22. 2 DNIe • Análisis de seguridad de aplicaciones web – Registro y autentificación mediante el DNIe – Controles de acceso • Limitación de los proxies de interceptación web al usar smartcards – Herramientas comerciales u open-source – Drivers o librerías de acceso a la smartcard • Errores HTTPS: certificado cliente … OWASP ZAP 22
  • 23. 3 Gestión de sesiones en aplicaciones web • Vulnerabilidades web: SQLi, XSS, CSRF… – ¿Gestión de sesiones? OWASP Top 10 (A3) • Malware: OddJob (Febrero 2011) – Robar las sesiones de los usuarios y mantenerlas activas (Bancos de USA & EU) • OWASP Session Management Cheat Sheet – Julio 2011 (v1.0) & Febrero 2012 (v2.0) – ∞ retos: HTTP sin estado, complejidad, en manos de los desarrolladores web, cookies, HTTPS… http://blog.taddong.com/2012/02/owasp-session-management-cheat-sheet.html https://www.owasp.org/index.php/Session_Management_Cheat_Sheet 23
  • 25. PKCS#11 y DNIe en Java – Windows • Estáticamente (ej. para keytool) – Depende de la plataforma: Win, Linux o Mac – %JAVA_HOME%/lib/security/java.security security.provider.10=sun.security.pkcs11.SunPKCS11 C:/Program Files (x86)/Java/jre6/lib/security/ dnie_pkcs11.cfg – Fichero de configuración para SunPKCS11: # Provider.getName() = SunPKCS11-DNIe name = DNIe # DNIe library library = C:WINDOWSSysWOW64UsrPkcs11.dll 25
  • 26. PKCS#11 y DNIe en Java – Linux • Estáticamente (ej. para keytool) – Depende de la plataforma: Win, Linux o Mac – $JAVA_HOME/lib/security/java.security security.provider.10=sun.security.pkcs11.SunPKCS11 /usr/lib/jvm/java-6-sun/jre/lib/security/dnie_pkcs11.cfg – Fichero de configuración para SunPKCS11: # Provider.getName() = SunPKCS11-DNIe name = DNIe # DNIe library library = /usr/lib/opensc-pkcs11.so 26
  • 27. PKCS#11 y DNIe en Java – Mac • Estáticamente (ej. para “keytool”) – Depende de la plataforma: Win, Linux o Mac – $JAVA_HOME/lib/security/java.security security.provider.10=sun.security.pkcs11.SunPKCS11 /.../1.6.0.jdk/Contents/Home/lib/security/dnie_pkcs11.cfg – Fichero de configuración para SunPKCS11: # Provider.getName() = SunPKCS11-DNIe name = DNIe # DNIe library library = /usr/lib/opensc-pkcs11.so – Java VM de 32 bits: $ java –d32 … 27
  • 28. PKCS#11 y DNIe en Java - Consulta • Java keytool (ej. Windows) – Listar los contenidos del DNIe (token PKCS11) C:> keytool [-v] -keystore NONE -storetype PKCS11 –list Escriba la contraseña del almacén de claves: ... – Sin el proveedor configurado en java.security C:> keytool -keystore NONE -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg “C:Program Files(x86)Javajre6 libsecuritydnie_pkcs11.cfg” -list 28
  • 29. PKCS#11 y DNIe en Java – Código ... // Add PKCS11 provider String cardConfig = "dnie_pkcs11.cfg"; // or InputStream Provider pkcs11 = new sun.security.pkcs11.SunPKCS11(cardConfig); Security.addProvider(pkcs11); // Init the keystore KeyStore ks = KeyStore.getInstance("PKCS11“, pkcs11); ks.load(null, pin.toCharArray()); KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); kmf.init(ks, pin.toCharArray()); KeyManager[] kms = kmf.getKeyManagers(); X509TrustManager trustManager = new X509TrustManager() { ... } TrustManager[] tms = new TrustManager[] {trustManager}; // Init SSL context SSLContext sc = SSLContext.getInstance("SSL"); sc.init(kms, tms, new java.security.SecureRandom()); ... 29
  • 30. OWASP ZAP - Zed Attack Proxy • Proxy de interceptación web (y …) – Código abierto y basado en Java – Multiplataforma: Windows, Linux y Mac OS X – Evolución de Paros y Andiparos (WebScarab) • Soporte para certificados digitales cliente y smartcards – Tools - Options - Certificate – Keystore: PKCS11, PKCS12… https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project http://code.google.com/p/zaproxy/ 30
  • 31. Soporte del DNIe en ZAP • PKCS#11 (tras instalar drivers DNIe…) 1 – Windows: (XP & 7 – 32 y 64 bits) • C:WindowsSystem32UsrPkcs11.dll • C:WindowsSysWOW64UsrPkcs11.dll 0 – GNU/Linux: /usr/lib/opensc-pkcs11.so (o /usr/lib64/) 0 – Mac OS X: /Library/OpenSC/lib/opensc-pkcs11.so • /usr/lib/opensc-pkcs11.so (link) & Java en 32 bits • drivers.xml – ¿Cómo compilar ZAP desde SVN? http://blog.taddong.com/2012/02/building-owasp-zap-using-eclipse-ide.html 31
  • 32. Publicación del DNIe en ZAP • Nueva funcionalidad reciente (SVN) – Renegociación SSL/TLS insegura – Acceso al proveedor PKCS#11 (bugs) – Intentos fallidos del PIN/contraseña (3) - PUK –… • Repositorio SVN de ZAP: drivers.xml – Próximamente ZAP 1.4… 32
  • 34. Motivación, alcance y objetivos • Pruebas de intrusión sobre aplicaciones web basadas en el DNIe – Sector público (AAPP) y sector privado nacional – Servicios públicos electrónicos (aplicaciones web) que hacen uso del DNIe (Java, ASP .NET, PHP…) – Año 2011: de mayo a diciembre – Más allá de inyección SQL, XSS, XSRF, etc • Auditorías de seguridad de los mecanismos de autentificación (y no firma) mediante el DNIe y gestión de sesiones de aplicaciones web • Aplicaciones web objetivo: 15 (muy relevantes) 34
  • 35. Áreas vulnerables en las aplicaciones web basadas en el DNIe 1 2 3 35
  • 36. Impacto de las áreas vulnerables 1• Implementación de HTTPS (SSL/TLS) – Integración nativa con el DNIe y certificados digitales cliente • Autentificación y componentes de firma – Descifrar tráfico web, ataques MitM, DoS, etc 2• Registro y autentificación de usuarios mediante el DNIe – Manipulación de los datos de registro y autentificación – Suplantación completa de usuarios (ciudadanos) 3• Mecanismos de gestión de sesiones en las aplicaciones web – DNIe = identificador de sesión (cookie) – Suplantación completa de usuarios (ciudadanos) … con la confianza que ofrece el usar el DNIe 36
  • 37. 1 HTTPS 37
  • 38. HTTPS - Autentificación • Certs. AC-APE y FNMT Clase 2 (Firefox) 38
  • 39. HTTPS - Estadísticas FNMT C2 AC 31 38 31 AC APE 0 20 40 60 80 100 Otras Versión 0 TLSv1.1/1.2 100 protocolo 46 SSLv3/TLSv1 SSLv2 0 20 40 60 80 100 Algoritmos 62 Fuertes (128/256) (bits claves) 85 Débiles (40/56) 0 20 40 60 80 100 39
  • 40. HTTPS - Estadísticas TCP/80 42 Redirección (HTTP) 50 Abierto 0 20 40 60 80 100 54 Habilitada Renegociación 31 ! RFC5746 cliente (HTTPS) 38 - 15 RFC5746 … y habilitada 0 20 40 60 80 100 DoS (CVE-2011-1473) Tráfico (CVE-2009-3555) Cabeceras HTTP(S) STS 0 20 40 60 80 100 40
  • 41. HTTPS - Renegociación • Renegociación HTTPS (SSL/TLS) segura 41
  • 42. HTTPS - Autentificación (Mediante componentes cliente…) Utilización de HTTPS, firma componente, permisos… 42
  • 43. 2 Registro y autentificación mediante el DNIe 43
  • 44. Registro con el DNIe - Estadísticas • Registro de usuarios en la app-web (DNIe) 1. Autentificación mediante el DNIe 2. Formulario con los datos de registro • ¿Ausencia de verificación? • Manipulación de todos los datos del usuario víctima: NIF, nombre y apellidos, dirección, tfno… • Posibilidad de manipulación de los datos de registro (de las que lo requieren ≈ 25%) 67 Vuln. 0 20 40 60 80 100 44
  • 45. Registro con el DNIe - Estadísticas 45
  • 46. Autentificación DNIe - Estadísticas • Trámites/operaciones en uno o varios pasos • ¿DNIe necesario en todos los recursos? – Suplantación del usuario: anónima o con DNIe DNIe 58 42 Autent. sólo Todos 0 20 40 60 80 100 • Verificación del DNIe vs. identificador sesión 8 Verificación 0 20 40 60 80 100 46
  • 48. ID sesión = Credenciales • Ataques sobre los mecanismos de gestión de sesiones para evitar la autentificación • ID es equivalente (temporalmente) a… – Contraseñas – Passphrases – Certificados – Smartcards – Biometría 48
  • 49. El DNIe en realidad es… = 49
  • 50. Gestión de sesiones - Estadísticas Cookies ID sesión 75 17 8 Params. 0 20 40 60 80 100 N/A ID aleatorio 36 Insuficiente 0 20 40 60 80 100 Fijación 64 sesión Vuln. 0 20 40 60 80 100 50
  • 51. Gestión de sesiones - Estadísticas Secure 11 HttpOnly 0 Atributos Domain 89 cookies Path 33 0 20 40 60 80 100 Cierre de sesión (temporizadores) T. relativo 100 T. absoluto 9 Botón 55 (sigue abierta) 18 0 20 40 60 80 100 51
  • 52. El DNIe es seguro, lo usamos en aplicaciones web, no se usa de forma segura, y… ¿mi ordenador está seguro?
  • 53. Seguridad en componentes cliente de aplicaciones web basadas en el DNIe
  • 54. ¿A quién afecta esta charla? charla?
  • 55. Text ActiveX object + clssid (cab, exe) Java applet applet + codebase + archive (jar) Java Network Launching Protocol (jnlp)
  • 57. ANALIZANDO ACTIVEX Text OLE/COM Object Viewer } Visor } IDA OllyDBG Debuggers Immunity Debugger } AxMan COMRaider Fuzzers dranzer
  • 58. ANALIZANDO JAVA APPLETS Descompresor de ficheros } Descompresor jar = zip } DJ Java Decompiler (jad) Decompiladores jd-gui JavaSnoop } Debugger
  • 60. VULNERABILIDADES EN COMPONENTES Text inglis pitinglis ‣ Abuso de funcionalidades (gestión ficheros, descarga...) exec(, cmd... ‣ Ejecución de comandos en cliente semilla, password, ... ‣ Información sensible en código fuente descifrar(, test( ‣ Funciones y procedimientos de depuración ‣ Desbordamientos de búfer, heap-based, stack-based... h4rdc0r3 h4x0rs!!!!
  • 61. VULNERABILIDADES ACTIVEX Text http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=activex ✴ Adobe ✴ Oracle 834 CVEs ✴ Akamai ✴ Cisco ✴ Microsoft ✴ ...
  • 62. VULNERABILIDADES ACTIVEX Text ADOBE – CVE-2005-0035 Determinar existencia de ficheros
  • 63. VULNERABILIDADES ACTIVEX Text ORACLE – CVE-2010-3595 Lectura de ficheros sabiendo su ruta completa
  • 64. VULNERABILIDADES ACTIVEX Text IBM Access Support eGatherer ActiveX - CVE-2004-2663 Creación de ficheros
  • 65. VULNERABILIDADES ACTIVEX Text Chilkat – CVE-2008-5002 Creación y sobre-escritura de ficheros * Permitiría ejecución de comandos
  • 66. VULNERABILIDADES ACTIVEX Text TuxSystem ActiveX - CVE-2012-1065 Creación y sobre-escritura de ficheros
  • 67. COMPONENTES PARA DNIe Y CERTIFICADOS DIGITALES
  • 68. BUSCANDO COMPONENTES Text ‣Buscador de soluciones de “Autenticación y certificación digital”
  • 70. BUSCANDO COMPONENTES Logs de HijackThis 70
  • 71. BUSCANDO COMPONENTES inurl:sede preguntas frecuentes activex inurl:sede applet dni-e Manuales para configurar componente en navegador...
  • 72. COMPONENTES Text ActiveX / COMPONENTE RESPONSABLE APPLET @firma Centro de Transferencia Tecnológica Applet CActiveX AEAT ActiveX CryptoSign Realsec ActiveX eSigna Website inDenova Applet id@zki IZENPE ActiveX / APPLET OpenSignX (TrustedX) Safelayer Applet SIAVAL Sistemas Informáticas Abiertos Applet smartAPPLET bit4id Ibérica S.L. Applet viafirma Viafirma S.L Applet WebSigner (ASF-Firma) TB-Solutions Advanced Technologies, S.L. ActiveX / APPLET ... ... ... https://www.owasp.org/index.php/Spain/Projects/DNIe-3
  • 75. Text AEAT, Renta 2008, tarde y mal - Certificado inválido (caducado) - Editor desconocido http://www.securitybydefault.com/2009/04/aeat-renta-2008-tarde-y-mal.html
  • 76. Text Weaponized XSS – El caso de la Agencia Tributaria - Abuso de funcionalidades (XSS) http://blog.48bits.com/2010/08/03/weaponized-xss-el-caso-de-la-agencia-tributaria/
  • 77. Text
  • 78. ClientE @firma Centro de Transferencia de Tecnología (CTT) Open Source
  • 79. Text ClientE @firma El Cliente de Firma es una herramienta de Firma Electrónica que soporta los siguientes formatos de firma: PAdES- BES / EPES, XAdES-BES / EPES, CAdES-BES / EPES, ODF, OOXML, CMS y XMLDsig MiniApplet Conjunto limitado de métodos NUEVOS para operaciones tipo de firma electrónica y que permite generar firmas en los siguientes formatos: CAdES, XAdES PAdES y ODF.
  • 81. DEMO VERSION MINI MCFv1.0.1_EjemploDEMO_despliegue_MiniApplet[ clienteFirma] ‣ Las funciones requieren interacción con el usuario
  • 83. Buscando información en código... C:UsersA122466DesktopBorrarpruebatamano
  • 84. Text DEMO VERSION COMPLETA https://sedechachi.gob.es [clienteFirma] ‣ Lectura de ficheros ‣ Escritura/Sobreescritura de ficheros
  • 88. Text Suite ASF = CC EAL3+ http://www.oc.ccn.cni.es/ProdCert_es.html
  • 89. Text
  • 92. public static String addMozillaPKCS11Provider (String paramString1, String addMozillaPKCS11Provider paramString2) paramString2) • IF de obtención de sistema operativo del cliente. • Si el cliente NO se encuentra en un entornoWindows: Runtime.getRuntime().exec( Runtime.getRuntime().exec("ln -s " + paramString2 + "/libnssckbi.so " + "/libnssckbi.so WebSignerCore.configDir + "/libnssckbi.so"); "/libnssckbi.so" addMozillaPKCS11Provider (“BLABLA”, “a a;touch /tmp/pwned;…”) tmp/pwned;…”)
  • 95. No hagamos las cosas mal… 95
  • 96. Hagamos las cosas bien… 96
  • 98. Peligro 98
  • 100. El DNIe es seguro, pero… ¿se usa de forma segura?
  • 101. Proyecto OWASP DNIe • El objetivo es evaluar y mejorar la seguridad de las aplicaciones web que hacen uso del DNIe, para la autenticación de usuarios, así como la posterior gestión de sesiones y controles de acceso, y para los procesos de creación y verificación de firma – Capítulo español de OWASP - Raúl Siles (Junio 2011) • DNIe-1: Encuesta sobre las tecnologías… • DNIe-2 y 3: Vulnerabilidades app-web & componentes – José A. Guasch & Raúl Siles • DNIe-4: Herramientas • DNIe-5 y 6: Recomendaciones app-web & componentes https://www.owasp.org/index.php/Spain/Projects/DNIe 101
  • 102. Proyecto creado por y para la comunidad… 102
  • 103. Seguridad de aplicaciones web basadas en el DNIe Raúl Siles - raul@taddong.com José A. Guasch - jaguasch@gmail.com w w w. t a d d o n g . c o m @taddong