Pese a que la criptografía matemática es en general bastante segura en cuanto a algoritmia y protocolos, a la hora de realizar implementaciones prácticas es fácil subvertir esa seguridad inicial añadiendo vectores de ataque que permiten ‘explotar’ vulnerabilidades que pongan en peligro la seguridad. La charla versará sobre ejemplos prácticos de como atacar y sacar partido a herramientas criptográficas de amplio uso (SmartCards, certificados SSL, comunicaciones seguras, etc) Junto con la charla se presentará y liberará un ejemplo de ‘Troyano’ que ataca al DNI-E haciendo operaciones seguras de forma desatendida una vez robado el PIN 3. Relación de temas
Problemas relacionados con gestión de certificados SSL (no verificabilidad, falsa sensación de seguridad, fallos en procesos de registro)
Problemas relacionados con certificados en formato PKCS#12
Problemas relacionados con comunicaciones seguras cifradas (ataques MitM avanzados)
Vectores prácticos de ataques a SmartCards (Dni-e)
1. APPLIED CRYPTOGRAPHY
Dime un algoritmo para cifrar
la base de datos FAILS
#Rooted2012
Base64 !
Yago Jesus / @YJesus
2. TODO VIP (Cosas pendientes por hacer)
1- Dar una charla en Rootedcon
2- Besar por primera vez a una chica humana
3- Viajar a Moscú
4- Conducir un F1
5- Hacer que SbD tenga mas visitas que 'el lado del mal'
3. Presentación
$ whois YagoJesus
Domain name : YagoJesus
Record expires on :??-??-??
Record created on :10-08-1977
Administrative Contact: Yjesus@security-projects.com
Twitter: @Yjesus
Blog: www.securitybydefault.com
Homepage: www.security-projects.com
4. Algunas cosas que he hecho
A nivel profesional
• Despliegue de la PKI Dni-e
• Diseño aplicativo para cifrado de dispositivos móviles
• Responsable área Seguridad en proyecto sector
defensa
Como Hobby
• 'Unhide': Herramienta forense
• 'Patriot NG': Herramienta anti-malware
5. DISCLAIMER
De que NO va esta charla
• DivertidaZZzzZZ explicaciones sobre P y Q
• Factorización de números primos
• Colisiones
• Ataques de cumpleaños
7. Criptografía aplicada
• Una vez elegidos los
algoritmos criptográficos toca
diseñar la arquitectura y hacer
la implementación.
• Estas fases son las mas críticas
y donde se cometen mas
errores
• Incluso aunque la tecnología y
algoritmia escogida sean
robustas, un mal diseño da al
traste con todo
8. CONTENIDO DE LA CHARLA
• Comunicaciones seguras
• Entidades de certificación (CAs)
• Certificados digitales SSL
• Certificados digitales en software
• SmartCards
10. Comunicaciones Seguras
• Cuando se desea enviar información
sensible se emplean comunicaciones
seguras
• Existen sistemas basados en VPN con
autenticación mutua
• O simplemente envíos encapsulados
bajo protocolo SSL
11. Comunicaciones Seguras
Wazzup WhatsApp !
• Sistema de envío de mensajes
para dispositivos móviles
• Disponible en casi cualquier
plataforma (Android, IOS,
Symbian)
• Ampliamente difundido en
España
• Proceso de alta de usuarios
'oscuro'
12. Comunicaciones Seguras
Wazzup WhatsApp !
Verificación por auto-envío de sms
MD5 ads0ersdssds
Creación contraseña aleatoria
SSL
https://xmpp-reg.whatsapp.net
15. Comunicaciones Seguras
Wazzup WhatsApp !
• WhatsApp VERIFICA que el
certificado emitido provenga de
una CA de confianza
• Adicionalmente, comprueba que
exista una cadena de
certificados CA --> CA Sub -->
Certificado
22. Entidades de certificación (CAs)
• Son el garante de la seguridad de las
comunicaciones en Internet
• Deben pasar un exhaustivo proceso
para ser admitidas por Microsoft o
Mozilla
• Deben cumplir estrictas políticas de
emisión de certificados
24. Entidades de certificación (CAs)
¿En manos de quién está la seguridad
en Internet?
• 130 Entidades con CAs reconocidas por Microsoft
• 44 Países
• CAs de países NO democráticos (China, Tunez)
• CAs de paraísos fiscales (Bermudas, Singapur)
Problema: Cualquiera puede emitir certificados para :
26. Entidades de certificación (CAs)
Realmente necesito confiar en :
• Japanese Government (Japón)
• China Internet Network Information Center (China)
• Hongkong Post (Hong Kong)
• U.S. Government (EEUU)
• Autoridad de Certificacion Raiz del Estado Venezolano
... Y otros muchos ejemplos más
•
28. Entidades de certificación (CAs)
SSL Cop 1.0
• Permite bloquear CAs en función de su procedencia
geográfica
• Windows / Explorer / Chrome
• Futuras versiones: Firefox / Linux
33. El axioma del Candado SSL = Confianza
¿Que hay que hacer para obtener un
certificado digital SSL?
Tener acceso a una de estas cuentas de correo del
dominio:
• admin@
• administrator@
• hostmaster@
• info@
• root@
• ssladmin@
• sysadmin@
• webmaster@
34. El axioma del Candado SSL = Confianza
El caso VODAFAIL
Vodafone ofrece a sus
clientes la posibilidad de
registrar una cuenta de
correo como por ejemplo:
Carlos.garcia@vodafone.es
Y también disponible:
ssladmin@vodafone.es
35. El axioma del Candado SSL = Confianza
El caso VODAFAIL
¡ Gracias Comodo por
simplificar tanto el
proceso !
36. El axioma del Candado SSL = Confianza
El caso VODAFAIL
37. El axioma del Candado SSL = Confianza
Más sitios vulnerables
38. El axioma del Candado SSL = Confianza
¿Puedo conseguir un
certificado SSL para
un dominio
‘TypoSquatting’ que
albergue PHISHING ?
#SaberYGanar
39. El axioma del Candado SSL = Confianza
https://www.payopal.net
40. El axioma del Candado SSL = Confianza
https://www.payopal.net
https://www.payopal.net
41. El axioma del Candado SSL = Confianza
Consideraciones finales
• Los certificados SSL 'normales' son claramente una
falacia
• Existen otro tipo de certificados denominados 'de
validación extendida' (EV) que requieren una auditoría
previa para su obtención
• Precio de un certificado SSL normal= 10$
• Precio de un certificado EV = 1.000$
43. Certificados digitales en software
• La generación de claves se realiza
mediante un elemento software (sistema
operativo, navegador web ...)
• La custodia de las claves privadas está
protegida por software
• S/MIME
• Certificados personales E-Administración
48. Certificados digitales en software
Generación de claves en navegador
Niveles de seguridad en Windows para custodia de claves
privadas:
Bajo (Solo XP): La clave privada se puede usar a
discreción sin notificación o conocimiento del usuario
Medio: Para usar la clave privada es necesario que el
usuario pulse 'OK'
Alto: Para hacer uso de la clave privada hay que introducir
una contraseña
49. Certificados digitales en software
Generación de claves en navegador
ActiveX Xenroll (Windows XP)
put_GenKeyFlags
CRYPT_USER_PROTECTED --> nivel medio
CRYPT_FORCE_KEY_PROTECTION_HIGH --> nivel medio
ActiveX Certenroll (Windows Vista / 7)
put_KeyProtection
XCN_NCRYPT_UI_PROTECT_KEY_FLAG --> nivel medio
XCN_NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG --> nivel alto
50. Certificados digitales en software
FNMT: Insecure By Default
• Entidad pública de certificación
• Más de 2.500.000 de
certificados emitidos
• Toda la 'E-Admistración' es
accesible con sus certificados
• Comúnmente empleados para la
declaración de la Renta
51. Certificados digitales en software
FNMT: Insecure By Default
Durante la generación de claves hay dos elementos
inseguros en el proceso:
1- La clave privada queda marcada como 'exportable'
2- El nivel de seguridad elegido en Windows es 'medio'
52. Certificados digitales en software
FNMT: Insecure By Default
Recapitulando:
Claves exportables + Nivel 2 de seguridad
¡¡ Estamos a un click de las claves privadas !!
53. Certificados digitales en software
FNMT: Insecure By Default
CertDump
Herramienta de auditoría de contenedores criptográficos
•
en Windows
Permite extraer las claves privadas exportables con nivel
•
de seguridad 1 y 2
Hace un 'bypass' del nivel de seguridad 2
•
'auto-aceptando' el popup llamando a la función
SendInput() que permite enviar pulsaciones de teclas
Http://www.security-projects.com/?CertDump
56. SmartCards
• La generación de claves se realiza
enteramente en el dispositivo
Hardware
• Para hacer uso de la clave privada se
exige un PIN
• Las claves privadas NO son
exportables ni recuperables
57. SmartCards
• Pese a que una solución SmartCard resulta inviolable
desde el punto de vista criptográfico, el entorno sigue
siendo vulnerable
• La interactuación con la tarjeta se realiza con medios
gestionados por el sistema operativo (Teclado)
• Las SmartCards no tienen forma de verificar si están
siendo empleadas con intervención humana o no
• Windows es un sistema operativo 'rico' en APIs para
automatizar procesos gráficos
58. SmartCards
Ataque al DNI-e
• Proyecto pionero en despliegue
masivo de SmartCards a nivel
ciudadano
• Más de 23.000.000 de DNIs
electrónicos expedidos
• Numerosas iniciativas han
promovido su uso regalando
lectores
• Firma digital = firma manuscrita
60. SmartCards
Ataque al DNI-e
Robando el PIN (Keylogger)
• Las operaciones de firma digital
con el DNI-e requieren
introducir un PIN en una
ventana similar a esta
• Ni el DNI-e ni el software que lo
acompaña habilita defensa anti
'keyloggers'
62. SmartCards
Ataque al DNI-e
Robando el PIN (Keylogger)
• Empleando la función FindWindow() podemos localizar
cualquier ventana por su 'caption'
• La función GetAsyncKeyState() permite capturar las
pulsaciones del teclado
• Una vez localizada la ventana del PIN, podemos
capturar el PIN leyendo las pulsaciones del teclado
67. SmartCards
Ataque al DNI-e
Lanzando una petición desatendida
• Haciendo uso de la función GetLastInputInfo() podemos
saber cuando el equipo permanece inactivo
• Empleando el objeto OLE InternetExplorer.Application
podemos usar Internet Explorer de forma desatendida
• Navegamos hacia una web que requiera DNI-e
• Cuando aparezca el popup enviamos el PIN capturado
empleando SendInput()
68. SmartCards
Ataque al DNI-e
Ideas malévolas
• Obtener los datos fiscales
• Modificar los datos fiscales
• Solicitar una beca fraudulentamente
• Firmar un E-Contrato
• Acceder a banca Online y hacer operaciones