Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Yago Jesús - Applied Cryptography FAILs [RootedCON 2012]

11,017 views

Published on

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)

Yago Jesús - Applied Cryptography FAILs [RootedCON 2012]

  1. 1. APPLIED CRYPTOGRAPHYDime un algoritmo para cifrarla base de datos FAILS #Rooted2012 Base64 ! Yago Jesus / @YJesus
  2. 2. TODO VIP (Cosas pendientes por hacer)1- Dar una charla en Rootedcon2- Besar por primera vez a una chica humana3- Viajar a Moscú4- Conducir un F15- Hacer que SbD tenga mas visitas que el lado del mal
  3. 3. Presentación$ whois YagoJesusDomain name : YagoJesusRecord expires on :??-??-??Record created on :10-08-1977Administrative Contact: Yjesus@security-projects.comTwitter: @YjesusBlog: www.securitybydefault.comHomepage: www.security-projects.com
  4. 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. 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
  6. 6. Cryptography is typically bypassed, not penetrated -Adi Shamir
  7. 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. 8. CONTENIDO DE LA CHARLA•  Comunicaciones seguras•  Entidades de certificación (CAs)•  Certificados digitales SSL•  Certificados digitales en software•  SmartCards
  9. 9. COMUNICACIONESSEGURAS(?)
  10. 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. 11. Comunicaciones SegurasWazzup 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. 12. Comunicaciones SegurasWazzup WhatsApp ! Verificación por auto-envío de sms MD5 ads0ersdssds Creación contraseña aleatoria SSL https://xmpp-reg.whatsapp.net
  13. 13. Comunicaciones SegurasWazzup WhatsApp ! Ataque Man In The Middle AKA Remedios Cervantes ¡¡ Que mal rollo Whatsapp !!
  14. 14. Comunicaciones SegurasWazzup WhatsApp !Primer intento: MitM clásico #FAIL !
  15. 15. Comunicaciones SegurasWazzup 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
  16. 16. Comunicaciones SegurasWazzup WhatsApp ! Lo que espera WhatsApp xmpp-reg.whatsapp.net
  17. 17. Comunicaciones SegurasWazzup WhatsApp ! Lo que nosotros queremos LOW ASSURANCE SSL xmpp-reg.whatsapp.net
  18. 18. Comunicaciones SegurasWazzup WhatsApp ! ROOT CA SUB CA xmpp-reg.whatsapp.net
  19. 19. Comunicaciones SegurasWazzup WhatsApp ! Cargamos el certificado de nuestra CA en el keystore Lanzamos un ataque ARP Spoof Capturamos la petición
  20. 20. Comunicaciones SegurasWazzup WhatsApp ! POST /client/iphone/ ae5cba216aec3b0dfbe449ec219c24b.php HTTP/1.1 Content-Length: 61 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Host: xmpp-reg.whatsapp.net Connection: Keep-Alive User-Agent: WhatsApp/2.6.4531 Android/2.2 Device/ unknown-sdk cc=34&me=682334455&udid=5284047f4ffb4e04824a2fd1d 1f0cd62&bb=1
  21. 21. Entidades de certificación (CAs)
  22. 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
  23. 23. Entidades de certificación (CAs)Shit Happens
  24. 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 :
  25. 25. Entidades de certificación (CAs)10 CAs reconocidas por Microsoft Nikto ¡¡ 198 VULNERABILIDADES !!
  26. 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• 
  27. 27. Entidades de certificación (CAs)
  28. 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
  29. 29. CERTIFICADOS SSL
  30. 30. El axioma del Candado SSL = ConfianzaCómo funciona SSL undominio.com
  31. 31. El axioma del Candado SSL = ConfianzaUn certificado digital SSL:Asegura la identidad de un sitio web Certifica la seguridad del contenido• 
  32. 32. El axioma del Candado SSL = Confianza
  33. 33. El axioma del Candado SSL = Confianza¿Que hay que hacer para obtener uncertificado digital SSL?Tener acceso a una de estas cuentas de correo deldominio:•  admin@•  administrator@•  hostmaster@•  info@•  root@•  ssladmin@•  sysadmin@•  webmaster@
  34. 34. El axioma del Candado SSL = ConfianzaEl 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. 35. El axioma del Candado SSL = ConfianzaEl caso VODAFAIL ¡ Gracias Comodo por simplificar tanto el proceso !
  36. 36. El axioma del Candado SSL = ConfianzaEl caso VODAFAIL
  37. 37. El axioma del Candado SSL = ConfianzaMás sitios vulnerables
  38. 38. El axioma del Candado SSL = Confianza ¿Puedo conseguir un certificado SSL para un dominio ‘TypoSquatting’ que albergue PHISHING ? #SaberYGanar
  39. 39. El axioma del Candado SSL = Confianzahttps://www.payopal.net
  40. 40. El axioma del Candado SSL = Confianzahttps://www.payopal.net https://www.payopal.net
  41. 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$
  42. 42. Certificados digitales en Software
  43. 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
  44. 44. Certificados digitales en softwarePKCS #12 PIN (Intentos ilimitados)
  45. 45. Certificados digitales en software Brute12 Herramienta para hacer brute forcing de ficheros •  PKCS#12Http://www.security-projects.com/?Brute12
  46. 46. Certificados digitales en software
  47. 47. Certificados digitales en softwareGeneración de claves en navegador
  48. 48. Certificados digitales en softwareGeneració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. 49. Certificados digitales en softwareGeneración de claves en navegadorActiveX Xenroll (Windows XP)put_GenKeyFlags CRYPT_USER_PROTECTED --> nivel medio CRYPT_FORCE_KEY_PROTECTION_HIGH --> nivel medioActiveX Certenroll (Windows Vista / 7)put_KeyProtection XCN_NCRYPT_UI_PROTECT_KEY_FLAG --> nivel medio XCN_NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG --> nivel alto
  50. 50. Certificados digitales en softwareFNMT: 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. 51. Certificados digitales en softwareFNMT: 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. 52. Certificados digitales en softwareFNMT: Insecure By Default Recapitulando: Claves exportables + Nivel 2 de seguridad ¡¡ Estamos a un click de las claves privadas !!
  53. 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 teclasHttp://www.security-projects.com/?CertDump
  54. 54. Certificados digitales en softwareFNMT: Insecure By Default
  55. 55. SmartCards
  56. 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. 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. 58. SmartCardsAtaque 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
  59. 59. SmartCardsAtaque al DNI-e Robo de PIN Petición web reutilizando el PIN Robo de datos confidenciales
  60. 60. SmartCardsAtaque 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
  61. 61. SmartCardsAtaque al DNI-e Robando el PIN (Keylogger) Fingerprinting DNI-E
  62. 62. SmartCardsAtaque 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
  63. 63. SmartCardsAtaque al DNI-e Robando el PIN (Phishing) Fake Window
  64. 64. SmartCardsAtaque al DNI-e Esperando a que el PC esté inactivo GetLastInputInfo()
  65. 65. SmartCardsAtaque al DNI-e Threads para rellenar ventanas FindWindow() SendInput()
  66. 66. SmartCardsAtaque al DNI-e Objeto OLE Internet Explorer InternetExplorer.Application
  67. 67. SmartCardsAtaque 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. 68. SmartCardsAtaque 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
  69. 69. md5sum{ ¿Dudas? }
  70. 70. sha1sum{ ¡¡ Gracias !! } @YJesus

×