PDF de programación - Generador de Números Pseudo-Aleatorios Predecible en Debian - El Qué y El Cómo

Imágen de pdf Generador de Números Pseudo-Aleatorios Predecible en Debian - El Qué y El Cómo

Generador de Números Pseudo-Aleatorios Predecible en Debian - El Qué y El Cómográfica de visualizaciones

Publicado el 1 de Abril del 2018
399 visualizaciones desde el 1 de Abril del 2018
8,3 MB
55 paginas
Creado hace 14a (03/10/2009)
Generador de Números Pseudo-Aleatorios

Predecible en Debian

El Qué y El Cómo

Luciano Bello1,2 Maximiliano Bertacchini2

luciano at debian.org

mbertacchini at citefa.gov.ar

1Debian Project

(Instituto de Investigaciones Científicas y Técnicas para la Defensa, Argentina)

2Si6 Labs - CITEFA

III Encuentro Internacional de Seguridad Informática

Manizales, Colombia

7, 8 y 9 de Octubre de 2009

Introducción

1

INTRODUCCI ÓN

2 LAS CR ÓNICAS DE DEBIAN OPENSSL

3 AN ÁLISIS DE OPENSSL

4 EXPLOTACI ÓN

5 CONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

2 / 34

INTRODUCCI ÓN A DSA-1571

Introducción

H T T P://W W W.D E B I A N.O R G/S E C U R I T Y/2008/D S A-1571

El generador de números pseudoaleatorios (PRNG) del paquete

OpenSSL de Debian ha sido predecible por 2 años

Causado por un parche específico de Debian
En consecuencia, se puede deducir material clave criptográfico
Afecta a otros paquetes enlazados con libssl
Afecta a otros sistemas operativos basados en Debian
Otros sistemas se ven afectados si contienen claves débiles
importadas (incluso las públicas)
La primera versión vulnerable es 0.9.8c-1 (publicada el
17/09/2006). Incluída en la versión estable actual (Etch)
El advisory y el parche fueron publicados el 13/05/2008
¡No afecta a las claves generadas por GnuPG o GNUTLS!

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

3 / 34

EN OTRAS PALABRAS

Introducción

En consecuencia, el espacio de claves de un criptosistema depende
de:

PID MAX (típicamente 215)
La arquitectura / endianness del equipo
Estado del generador (bytes pedidos anteriormente, etc.)

Todo el material criptográfico es débil (predecible por ataque de fuerza
bruta en un espacio de 215):

Autenticación de cliente / servidor
Firmas DSA
Key agreement
Claves de sesión
Datos públicos aleatorios (Salt, IV)
Passwords/passphrases automáticas (OTP, generadas por
pwsafe, etc)

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

4 / 34

PAQUETES AFECTADOS

Introducción

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

5 / 34

Las Crónicas de Debian OpenSSL

1

INTRODUCCI ÓN

2 LAS CR ÓNICAS DE DEBIAN OPENSSL

3 AN ÁLISIS DE OPENSSL

4 EXPLOTACI ÓN

5 CONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

6 / 34

Las Crónicas de Debian OpenSSL

UN MAL COMIENZO
“UNA SERIE DE HECHOS DESAFORTUNADOS”

Richard Kettlewell registra el bug “Valgrind-Clean the RNG” el
19/04/2006 15:18:15 UTC
(http://bugs.debian.org/363516)
Kurt (Debian OpenSSL maintainer) identificó dos líneas
“problemáticas” (http://bugs.debian.org/363516#10)
“What it’s doing is adding uninitialised numbers to the pool to
create random numbers. I’ve been thinking about commenting
those out.”

C R Y P T O/R A N D/M D R A N D.C
274:

MD_Update(&m,buf,j);

467:
#ifndef PURIFY

MD_Update(&m,buf,j); /* purify complains */

#endif

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

7 / 34

Las Crónicas de Debian OpenSSL

UN MAL COMIENZO
“UNA SERIE DE HECHOS DESAFORTUNADOS”

La memoria no inicializada puede producir un comportamiento
no-determinístico en un programa normal. Pero algunas veces se
quiere ese comportamiento, como en un PRNG (aunque no es una
buena fuente de entropía).

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

8 / 34

Las Crónicas de Debian OpenSSL

UN MAL COMIENZO
“UNA SERIE DE HECHOS DESAFORTUNADOS”

La memoria no inicializada puede producir un comportamiento
no-determinístico en un programa normal. Pero algunas veces se
quiere ese comportamiento, como en un PRNG (aunque no es una
buena fuente de entropía).

LAS “SOLUCIONES” PROPUESTAS

1 Marcar como “wontfix”

Produce gran cantidad de advertencias en Valgrind
2 Usar el mecanismo de Valgrind para que lo ignore

Es una solución específica para Valgrind
Cambia el binario en forma extraña

3 No agregar el buffer al pool

La entropía extra es despreciable
Preguntemos en openssl-dev

(http://www.mail-archive.com/[email protected]/msg21156.html)

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

8 / 34

Las Crónicas de Debian OpenSSL

EL MALENTENDIDO

(http://www.mail-archive.com/[email protected]/msg21156.html)

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

9 / 34

Las Crónicas de Debian OpenSSL

EL MALENTENDIDO

(http://www.mail-archive.com/[email protected]/msg21157.html)

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

10 / 34

Las Crónicas de Debian OpenSSL

EL FAMOSO PARCHE

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

11 / 34

Análisis de OpenSSL

1

INTRODUCCI ÓN

2 LAS CR ÓNICAS DE DEBIAN OPENSSL

3 AN ÁLISIS DE OPENSSL

4 EXPLOTACI ÓN

5 CONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

12 / 34

EL PRNG DE OPENSSL

Análisis de OpenSSL

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

13 / 34

EL PRNG DE OPENSSL

Análisis de OpenSSL

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

13 / 34

EL PRNG DE OPENSSL

Análisis de OpenSSL

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

13 / 34

¿POR QU É 247 FUE COMENTADA?

Análisis de OpenSSL

EXAMPLE (OPENSSL API)

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

14 / 34

Explotación

Autenticación

1

INTRODUCCI ÓN

2 LAS CR ÓNICAS DE DEBIAN OPENSSL

3 AN ÁLISIS DE OPENSSL

4 EXPLOTACI ÓN
Autenticación
Man in the middle
DH
DSA
Summary

5 CONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

15 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

16 / 34

AUTENTICACI ÓN POR DESAFÍO
ATAQUE POR FUERZA BRUTA

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

17 / 34

AUTENTICACI ÓN POR DESAFÍO
ATAQUE POR FUERZA BRUTA

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

17 / 34

AUTENTICACI ÓN POR DESAFÍO
ATAQUE POR FUERZA BRUTA

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

17 / 34

AUTENTICACI ÓN POR DESAFÍO
ATAQUE POR FUERZA BRUTA

Explotación

Autenticación

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

17 / 34

Explotación

Man in the middle

1

INTRODUCCI ÓN

2 LAS CR ÓNICAS DE DEBIAN OPENSSL

3 AN ÁLISIS DE OPENSSL

4 EXPLOTACI ÓN
Autenticación
Man in the middle
DH
DSA
Summary

5 CONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

18 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

AUTENTICACI ÓN POR CERTIFICADOS
ATAQUE A LOS CERTIFICADOS (MITM)

Explotación

Man in the middle

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

19 / 34

CERTIFICADOS AFECTADOS

Explotación

Man in the middle

30 de Mayo (2 semanas después del advisory). Gracias a Juergen Schmidt, Editor-in-Chief Heise Security [www.heisec.de]

Extrapolando, ≈ 24.000 certificados débiles firmados por una CA
confiable, sobre 809.000 sitios con certificados SSL válidos

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

20 / 34

Explotación

DH

1

INTRODUCCI ÓN

2 LAS CR ÓNICAS DE DEBIAN OPENSSL

3 AN ÁLISIS DE OPENSSL

4 EXPLOTACI ÓN
Autenticación
Man in the middle
DH
DSA
Summary

5 CONCLUSIONES

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

21 / 34

ACUERDO DE LLAVE DIFFIE-HELLMAN

Explotación

DH

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

22 / 34

ACUERDO DE LLAVE DIFFIE-HELLMAN

Explotación

DH

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

22 / 34

sg mod p = YXssp, g, XK = Y mod pXsccg mod p = YXccXY mod p = KXcs ACUERDO DE LLAVE DIFFIE-HELLMAN
ATAQUE POR FUERZA BRUTA

Explotación

DH

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

23 / 34

DEMO: WIRESHARK SSL DISSECTOR

Explotación

DH

(Debian, Si6-CITEFA)

Debian OpenSSL

EISI 2009

24 / 34

WIRESHARK SSL DISSECTOR/DECIPHERER

Explotación

DH

Hay que tener en cuenta que:

Distintas aplicaciones pueden utilizar diferentes exponentes
privados, dependiendo del estado del PRNG al momento de
llamar a RAND bytes()
Cuando no se utiliza DHE, no hay PFS, por lo que el ataque
podría ser aún más trivial
La mayoría de los navegadores (firefox, konqueror, etc.)
implementan su propia suite criptográfica
Apache forkquea después
  • Links de descarga
http://lwp-l.com/pdf10073

Comentarios de: Generador de Números Pseudo-Aleatorios Predecible en Debian - El Qué y El Cómo (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad