SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
#CyberCamp18
La autenticación con certificados en
las Sedes Electrónicas
El sector público en peligro
#CyberCamp18
1. Las Sedes Electrónicas del Sector Público y la
Identificación del Ciudadano en ellas.
2. Autenticación por certificado en aplicaciones web.
3. Despropósitos con certificado en aplicaciones web.
4. ¿Qué estoy haciendo mal?
5. Phishing para obtener firmas electrónicas.
Índice
#CyberCamp18
▪ Tomás García-Merás Capote
▪ Consultor de Sector Público especializado en Administración Electrónica.
□ Autor de sistemas de firma electrónica: Cliente @firma, AutoFirma, FIRe, etc.
□ Consultor para numerosas administraciones públicas:
• Ministerio de Asuntos Exteriores, Unión Europea y Cooperación, Ministerio del Interior,
Senado de España, Fábrica Nacional de Moneda y Timbre, CIEMAT, Metro de Madrid, etc.
▪ Gerente de Sector Público en la empresa atSistemas.
▪ Miembro de los grupos de trabajo de Blockchain NWC10Lab
(https://www.nwc10lab.com/) y BAES Blockchain Labs (Universidad de Alicante,
https://baes.iei.ua.es/).
Presentación
#CyberCamp18
▪ Tomás García-Merás Capote
▪ ¡Ávido colaborador de MAME! (preservación y emulación de máquinas
antiguas: https://github.com/mamedev/mame).
▪ Si dispones o tienes acceso a placas arcade, hardware antiguo (de cualquier
tipo…), cartuchos extraños de videojuegos, máquinas olvidadas… ¡Llámame!
Presentación
#CyberCamp18
Las Sedes Electrónicas del Sector Público y la
Identificación del Ciudadano en ellas
#CyberCamp18
▪ La sede electrónica no es una web normal, es el equivalente
electrónico a la vieja “ventanilla” en la que los ciudadanos se
relacionan con las administraciones públicas.
▪ Están fuertemente reguladas por Ley (Leyes 39 y 40 de 2015, de
procedimiento administrativo y régimen jurídico de las
administraciones).
▪ Deben permitir a los ciudadanos identificarse mediante
certificados electrónicos.
¿Qué es una sede electrónica?
6
#CyberCamp18
Ejemplo de Sede Electrónica: Seguridad Social
7
#CyberCamp18
Autenticación por certificado en
aplicaciones web
#CyberCamp18
▪ Prácticamente, solo hay dos maneras de implementar bien
la autenticación con certificado (que son la misma):
▪ Implementar autenticación con SSL cliente (bajo HTTPS).
▪ Delegar la autenticación en un proveedor de identidad… Que implemente
autenticación por SSL cliente (bajo HTTPS).
□ En el sector público se utiliza el proveedor de identidad Cl@ve
(https://administracionelectronica.gob.es/ctt/clave).
¿Cómo se implementa (correctamente) la autenticación
con certificado en una aplicación web?
9
#CyberCamp18
Ejemplo de autenticación en la sede de la Seguridad
Social
10
#CyberCamp18
Ejemplo de autenticación en la sede de la Seguridad
Social
11
#CyberCamp18
▪ Únicamente es necesario configurar en el servidor web:
▪ La obligatoriedad de que el usuario se identifique con su certificado.
▪ Qué certificados aceptamos (de qué emisores).
▪ Los medios de validación del certificado (OCSP, CRL…).
▪ La aplicación recibe entonces el certificado con el que el usuario
se ha identificado.
▪ El servidor web ha comprobado que el usuario dispone de la clave privada, que el
certificado ha sido emitido por una autoridad soportada y que es válido (está dentro de
su fecha de validez y no ha sido revocado).
Implementación de la autenticación SSL cliente (I)
12
#CyberCamp18
▪ Una vez configurado el servidor web, nuestra aplicación puede entonces
usar los datos del certificado para identificar al usuario (por nombre, DNI,
clave pública…).
Implementación de la autenticación SSL cliente (II)
13
@Override
protected void service(final HttpServletRequest request, final HttpServletResponse response) {
final X509Certificate[] certs =
(X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate");
try (
final PrintWriter out = response.getWriter();
) {
if (null != certs && certs.length > 0) {
out.write("<h1>Autenticado con certificado: '" + certs[0] + "'</h1>");
}
else {
out.write("<h1>Autenticado sin certificado</h1>"); //$NON-NLS-1$
}
}
}
#CyberCamp18
Despropósitos con certificado en
aplicaciones web gracias a la aplicación
AutoFirma
#CyberCamp18
La aplicación AutoFirma (I)
15
#CyberCamp18
▪ La aplicación AutoFirma permite hacer firmas electrónicas
en trámites puramente Web.
▪ Consiste en una aplicación local (que debe instalar el ciudadano en su equipo,
disponible para Linux, macOS y Windows) y una biblioteca de integración
JavaScript (que debe usar el integrador en su aplicación Web para solicitar una
firma electrónica).
▪ Es una aplicación pensada para la firma electrónica de documentos, pero no
para la autenticación de usuarios.
La aplicación AutoFirma (II)
16
#CyberCamp18
La aplicación AutoFirma (III) - ¿Cómo funciona?
#CyberCamp18
La aplicación AutoFirma (IV) - ¿Cómo funciona?
#CyberCamp18
▪ Para evitar el “problema” de configurar SSL cliente, muchos
organismos optan por pervertir la finalidad de AutoFirma y
usarlo para autenticar a los usuarios
▪ La idea es simple, desde la aplicación solicitamos al usuario que firma
electrónicamente (con su certificado) un token de autenticación usando
AutoFirma.
La aplicación AutoFirma (V) - Autenticación
19
#CyberCamp18
La aplicación AutoFirma (y VI) - Autenticación
20
#CyberCamp18
Empieza la fiesta:
¿Qué estoy haciendo mal?
#CyberCamp18
Uso de un token predecible para autenticación (I)
22
#CyberCamp18
▪ Se hace firmar al usuario un texto predecible
▪ Un mismo token firmado no puede reutilizarse (es predecible, pero único), pero
si consigo engañar al usuario (phishing) para que firme un token que preveo
será válido, tendremos acceso a una sesión con su identidad en la sede.
□ Un ejemplo es hacerle firmar la fecha y hora de inicio del trámite, y rechazar
valores que se desplacen más allá de una ventana de tiempo (unos minutos).
□ En el phishing puedo hacer que firme varios posibles valores del token, para
tener varios intentos.
Uso de un token predecible para autenticación (II)
23
#CyberCamp18
▪ Clasificación:
Uso de un token predecible para autenticación (y III)
24
ABERRACIÓN
#CyberCamp18
Uso de un token fijo para autenticación (I)
25
#CyberCamp18
▪ Se hace firmar al usuario un texto... Pero este texto es
siempre el mismo
▪ Un mismo token firmado podría reutilizarse todas las veces que queramos, ya
que nunca varía.
▪ Si conseguimos interceptar un token firmado o engañar al usuario para que lo
firme (phishing) tendremos acceso total a su identidad en la sede electrónica.
Uso de un token fijo para autenticación (II)
26
#CyberCamp18
▪ Clasificación:
Uso de un token fijo para autenticación (y III)
27
ABOMINACIÓN
#CyberCamp18
Uso de un token, pero no comprobarlo (I)
28
#CyberCamp18
▪ Se hace firmar al usuario un token, pero luego no se
comprueba qué es lo que ha firmado realmente, solo quién
lo ha firmado
▪ Con enviarle una firma válida (que podemos extraer de un PDF firmado o de
cualquier lado) va a darlo por bueno.
□ A veces hay organismos que ni tan siquiera comprueban que la firma sea
válida…
Uso de un token, pero no comprobarlo (II)
29
#CyberCamp18
▪ Clasificación:
Uso de un token, pero no comprobarlo (y III)
30
ABOMINACIÓN
#CyberCamp18
Uso de la clave pública para autenticación (I)
31
#CyberCamp18
▪ En vez de enviar la firma al servidor se envía el certificado
usado para generar la firma.
▪ Pero… ¡Los certificados son públicos! Pueden ser extraídos sin dificultad de
cualquier documento firmado, desde un PDF hasta un correo electrónico
firmado.
□ Se ha usado realmente la clave pública para autenticar al usuario.
▪ Increíble, pero este procedimiento se ha usado intensivamente en el pasado
en sedes electrónicas… Y se sigue usando en algunas.
Uso de la clave pública para autenticación (II)
32
#CyberCamp18
▪ Clasificación:
Uso de la clave pública para autenticación (y III)
33
No hay palabra élfica, ni en
lengua ent, ni de Mordor ni
humana que pueda describir
este horror
#CyberCamp18
¿Phishing para obtener firmas
electrónicas? Más fácil de lo que parece
#CyberCamp18
▪ ¡Sorpresa! AutoFirma permite desencadenar firmas
electrónicas sin la autorización explícita del firmante…
¡Incluso desencadenar un lote de múltiples firmas!
▪ Solo necesitamos que entre en una página Web y pulse un botón o un enlace
(en ciertos navegadores web ni eso, con que entre en la página vale).
▪ El usuario verá la imagen de arranque de AutoFirma (splash), pero no puede
cancelar el proceso.
□ Incluso si cierra el navegador web probablemente será demasiado tarde.
Firmas sin autorización con AutoFirma
35
#CyberCamp18
GRACIAS
Tomás García-Merás Capote:
• tgarciameras@atSistemas.com
• clawgrip@hotmail.com
• https://www.linkedin.com/in/tomas-gmeras/

Más contenido relacionado

Similar a CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas

Certificado en internet
Certificado en internet Certificado en internet
Certificado en internet
Mesyodi
 
Infraestructura PKI
Infraestructura PKIInfraestructura PKI
Infraestructura PKI
dsantosc
 
Diapositivas telemática
Diapositivas telemáticaDiapositivas telemática
Diapositivas telemática
Luis David
 
Infraestructura pki
Infraestructura pkiInfraestructura pki
Infraestructura pki
gcalahorrano
 

Similar a CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas (20)

Seguridad activa jgu
Seguridad activa jguSeguridad activa jgu
Seguridad activa jgu
 
La firma digital.
La firma digital.La firma digital.
La firma digital.
 
Encriptacion Autenticacion y Autorizacion.ppt
Encriptacion Autenticacion y Autorizacion.pptEncriptacion Autenticacion y Autorizacion.ppt
Encriptacion Autenticacion y Autorizacion.ppt
 
17 certdigitalespkcs
17 certdigitalespkcs17 certdigitalespkcs
17 certdigitalespkcs
 
Certificado en internet
Certificado en internet Certificado en internet
Certificado en internet
 
Infraestructura PKI
Infraestructura PKIInfraestructura PKI
Infraestructura PKI
 
Firma digital
Firma digital Firma digital
Firma digital
 
Certificados digitales
Certificados digitalesCertificados digitales
Certificados digitales
 
Certificado Digital Y Factura ElectróNica
Certificado Digital Y Factura ElectróNicaCertificado Digital Y Factura ElectróNica
Certificado Digital Y Factura ElectróNica
 
Respuestas
RespuestasRespuestas
Respuestas
 
Certificados digitales
Certificados digitalesCertificados digitales
Certificados digitales
 
Cuadro explicativo informatica
Cuadro explicativo informaticaCuadro explicativo informatica
Cuadro explicativo informatica
 
Diapositivas telemática
Diapositivas telemáticaDiapositivas telemática
Diapositivas telemática
 
Mitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en BlockchainMitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en Blockchain
 
E administracion y dni electrónico
E administracion y dni electrónicoE administracion y dni electrónico
E administracion y dni electrónico
 
Cuadro explicativo informatica
Cuadro explicativo informaticaCuadro explicativo informatica
Cuadro explicativo informatica
 
Brochure tecnologias ceropapel
Brochure tecnologias ceropapelBrochure tecnologias ceropapel
Brochure tecnologias ceropapel
 
Certificados digitales mishelita
Certificados digitales mishelitaCertificados digitales mishelita
Certificados digitales mishelita
 
Unidad 7 - Seguridad en Transacciones Comerciales
Unidad 7 - Seguridad en Transacciones ComercialesUnidad 7 - Seguridad en Transacciones Comerciales
Unidad 7 - Seguridad en Transacciones Comerciales
 
Infraestructura pki
Infraestructura pkiInfraestructura pki
Infraestructura pki
 

Más de Tomás García-Merás

Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Tomás García-Merás
 
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
Tomás García-Merás
 
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
Tomás García-Merás
 

Más de Tomás García-Merás (20)

NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19
 
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridadHacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
 
Blockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector públicoBlockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector público
 
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en BlockchainT3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
 
Confidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloquesConfidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloques
 
Madres Digitales 2017
Madres Digitales 2017Madres Digitales 2017
Madres Digitales 2017
 
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicosDesarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
 
2016 04 --curso_portafirmas_movil_v3
2016 04 --curso_portafirmas_movil_v32016 04 --curso_portafirmas_movil_v3
2016 04 --curso_portafirmas_movil_v3
 
2016 04 --curso_cliente_movil_v3
2016 04 --curso_cliente_movil_v32016 04 --curso_cliente_movil_v3
2016 04 --curso_cliente_movil_v3
 
2016 04 --curso_novedades_auto_firma
2016 04 --curso_novedades_auto_firma2016 04 --curso_novedades_auto_firma
2016 04 --curso_novedades_auto_firma
 
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosCl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
 
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con AndroidProgramación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
 
2015 10 - Curso Cliente @firma INAP día 1
2015 10 - Curso Cliente @firma INAP día 12015 10 - Curso Cliente @firma INAP día 1
2015 10 - Curso Cliente @firma INAP día 1
 
2015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 32015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 3
 
2015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 22015 10 - Curso Cliente @firma INAP día 2
2015 10 - Curso Cliente @firma INAP día 2
 
Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...
 
Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014
 
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
 
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
 
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
 

Último

QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (18)

infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 

CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas

  • 1. #CyberCamp18 La autenticación con certificados en las Sedes Electrónicas El sector público en peligro
  • 2. #CyberCamp18 1. Las Sedes Electrónicas del Sector Público y la Identificación del Ciudadano en ellas. 2. Autenticación por certificado en aplicaciones web. 3. Despropósitos con certificado en aplicaciones web. 4. ¿Qué estoy haciendo mal? 5. Phishing para obtener firmas electrónicas. Índice
  • 3. #CyberCamp18 ▪ Tomás García-Merás Capote ▪ Consultor de Sector Público especializado en Administración Electrónica. □ Autor de sistemas de firma electrónica: Cliente @firma, AutoFirma, FIRe, etc. □ Consultor para numerosas administraciones públicas: • Ministerio de Asuntos Exteriores, Unión Europea y Cooperación, Ministerio del Interior, Senado de España, Fábrica Nacional de Moneda y Timbre, CIEMAT, Metro de Madrid, etc. ▪ Gerente de Sector Público en la empresa atSistemas. ▪ Miembro de los grupos de trabajo de Blockchain NWC10Lab (https://www.nwc10lab.com/) y BAES Blockchain Labs (Universidad de Alicante, https://baes.iei.ua.es/). Presentación
  • 4. #CyberCamp18 ▪ Tomás García-Merás Capote ▪ ¡Ávido colaborador de MAME! (preservación y emulación de máquinas antiguas: https://github.com/mamedev/mame). ▪ Si dispones o tienes acceso a placas arcade, hardware antiguo (de cualquier tipo…), cartuchos extraños de videojuegos, máquinas olvidadas… ¡Llámame! Presentación
  • 5. #CyberCamp18 Las Sedes Electrónicas del Sector Público y la Identificación del Ciudadano en ellas
  • 6. #CyberCamp18 ▪ La sede electrónica no es una web normal, es el equivalente electrónico a la vieja “ventanilla” en la que los ciudadanos se relacionan con las administraciones públicas. ▪ Están fuertemente reguladas por Ley (Leyes 39 y 40 de 2015, de procedimiento administrativo y régimen jurídico de las administraciones). ▪ Deben permitir a los ciudadanos identificarse mediante certificados electrónicos. ¿Qué es una sede electrónica? 6
  • 7. #CyberCamp18 Ejemplo de Sede Electrónica: Seguridad Social 7
  • 9. #CyberCamp18 ▪ Prácticamente, solo hay dos maneras de implementar bien la autenticación con certificado (que son la misma): ▪ Implementar autenticación con SSL cliente (bajo HTTPS). ▪ Delegar la autenticación en un proveedor de identidad… Que implemente autenticación por SSL cliente (bajo HTTPS). □ En el sector público se utiliza el proveedor de identidad Cl@ve (https://administracionelectronica.gob.es/ctt/clave). ¿Cómo se implementa (correctamente) la autenticación con certificado en una aplicación web? 9
  • 10. #CyberCamp18 Ejemplo de autenticación en la sede de la Seguridad Social 10
  • 11. #CyberCamp18 Ejemplo de autenticación en la sede de la Seguridad Social 11
  • 12. #CyberCamp18 ▪ Únicamente es necesario configurar en el servidor web: ▪ La obligatoriedad de que el usuario se identifique con su certificado. ▪ Qué certificados aceptamos (de qué emisores). ▪ Los medios de validación del certificado (OCSP, CRL…). ▪ La aplicación recibe entonces el certificado con el que el usuario se ha identificado. ▪ El servidor web ha comprobado que el usuario dispone de la clave privada, que el certificado ha sido emitido por una autoridad soportada y que es válido (está dentro de su fecha de validez y no ha sido revocado). Implementación de la autenticación SSL cliente (I) 12
  • 13. #CyberCamp18 ▪ Una vez configurado el servidor web, nuestra aplicación puede entonces usar los datos del certificado para identificar al usuario (por nombre, DNI, clave pública…). Implementación de la autenticación SSL cliente (II) 13 @Override protected void service(final HttpServletRequest request, final HttpServletResponse response) { final X509Certificate[] certs = (X509Certificate[]) request.getAttribute("javax.servlet.request.X509Certificate"); try ( final PrintWriter out = response.getWriter(); ) { if (null != certs && certs.length > 0) { out.write("<h1>Autenticado con certificado: '" + certs[0] + "'</h1>"); } else { out.write("<h1>Autenticado sin certificado</h1>"); //$NON-NLS-1$ } } }
  • 14. #CyberCamp18 Despropósitos con certificado en aplicaciones web gracias a la aplicación AutoFirma
  • 16. #CyberCamp18 ▪ La aplicación AutoFirma permite hacer firmas electrónicas en trámites puramente Web. ▪ Consiste en una aplicación local (que debe instalar el ciudadano en su equipo, disponible para Linux, macOS y Windows) y una biblioteca de integración JavaScript (que debe usar el integrador en su aplicación Web para solicitar una firma electrónica). ▪ Es una aplicación pensada para la firma electrónica de documentos, pero no para la autenticación de usuarios. La aplicación AutoFirma (II) 16
  • 17. #CyberCamp18 La aplicación AutoFirma (III) - ¿Cómo funciona?
  • 18. #CyberCamp18 La aplicación AutoFirma (IV) - ¿Cómo funciona?
  • 19. #CyberCamp18 ▪ Para evitar el “problema” de configurar SSL cliente, muchos organismos optan por pervertir la finalidad de AutoFirma y usarlo para autenticar a los usuarios ▪ La idea es simple, desde la aplicación solicitamos al usuario que firma electrónicamente (con su certificado) un token de autenticación usando AutoFirma. La aplicación AutoFirma (V) - Autenticación 19
  • 20. #CyberCamp18 La aplicación AutoFirma (y VI) - Autenticación 20
  • 22. #CyberCamp18 Uso de un token predecible para autenticación (I) 22
  • 23. #CyberCamp18 ▪ Se hace firmar al usuario un texto predecible ▪ Un mismo token firmado no puede reutilizarse (es predecible, pero único), pero si consigo engañar al usuario (phishing) para que firme un token que preveo será válido, tendremos acceso a una sesión con su identidad en la sede. □ Un ejemplo es hacerle firmar la fecha y hora de inicio del trámite, y rechazar valores que se desplacen más allá de una ventana de tiempo (unos minutos). □ En el phishing puedo hacer que firme varios posibles valores del token, para tener varios intentos. Uso de un token predecible para autenticación (II) 23
  • 24. #CyberCamp18 ▪ Clasificación: Uso de un token predecible para autenticación (y III) 24 ABERRACIÓN
  • 25. #CyberCamp18 Uso de un token fijo para autenticación (I) 25
  • 26. #CyberCamp18 ▪ Se hace firmar al usuario un texto... Pero este texto es siempre el mismo ▪ Un mismo token firmado podría reutilizarse todas las veces que queramos, ya que nunca varía. ▪ Si conseguimos interceptar un token firmado o engañar al usuario para que lo firme (phishing) tendremos acceso total a su identidad en la sede electrónica. Uso de un token fijo para autenticación (II) 26
  • 27. #CyberCamp18 ▪ Clasificación: Uso de un token fijo para autenticación (y III) 27 ABOMINACIÓN
  • 28. #CyberCamp18 Uso de un token, pero no comprobarlo (I) 28
  • 29. #CyberCamp18 ▪ Se hace firmar al usuario un token, pero luego no se comprueba qué es lo que ha firmado realmente, solo quién lo ha firmado ▪ Con enviarle una firma válida (que podemos extraer de un PDF firmado o de cualquier lado) va a darlo por bueno. □ A veces hay organismos que ni tan siquiera comprueban que la firma sea válida… Uso de un token, pero no comprobarlo (II) 29
  • 30. #CyberCamp18 ▪ Clasificación: Uso de un token, pero no comprobarlo (y III) 30 ABOMINACIÓN
  • 31. #CyberCamp18 Uso de la clave pública para autenticación (I) 31
  • 32. #CyberCamp18 ▪ En vez de enviar la firma al servidor se envía el certificado usado para generar la firma. ▪ Pero… ¡Los certificados son públicos! Pueden ser extraídos sin dificultad de cualquier documento firmado, desde un PDF hasta un correo electrónico firmado. □ Se ha usado realmente la clave pública para autenticar al usuario. ▪ Increíble, pero este procedimiento se ha usado intensivamente en el pasado en sedes electrónicas… Y se sigue usando en algunas. Uso de la clave pública para autenticación (II) 32
  • 33. #CyberCamp18 ▪ Clasificación: Uso de la clave pública para autenticación (y III) 33 No hay palabra élfica, ni en lengua ent, ni de Mordor ni humana que pueda describir este horror
  • 34. #CyberCamp18 ¿Phishing para obtener firmas electrónicas? Más fácil de lo que parece
  • 35. #CyberCamp18 ▪ ¡Sorpresa! AutoFirma permite desencadenar firmas electrónicas sin la autorización explícita del firmante… ¡Incluso desencadenar un lote de múltiples firmas! ▪ Solo necesitamos que entre en una página Web y pulse un botón o un enlace (en ciertos navegadores web ni eso, con que entre en la página vale). ▪ El usuario verá la imagen de arranque de AutoFirma (splash), pero no puede cancelar el proceso. □ Incluso si cierra el navegador web probablemente será demasiado tarde. Firmas sin autorización con AutoFirma 35
  • 36. #CyberCamp18 GRACIAS Tomás García-Merás Capote: • tgarciameras@atSistemas.com • clawgrip@hotmail.com • https://www.linkedin.com/in/tomas-gmeras/