• No se han encontrado resultados

Figura 1. Desactivación del firewall

N/A
N/A
Protected

Academic year: 2021

Share "Figura 1. Desactivación del firewall"

Copied!
14
0
0

Texto completo

(1)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 1 Proyecto CLCript

Cuadernos de Laboratorio de Criptografía. Entrega nº 8 Última actualización 25/09/18 Autor: Dr. Jorge Ramió Aguirre (@criptored)

Prácticas con el algoritmo RSA: ataque por paradoja del cumpleaños con LegionRSA

• Software LegionRSA

• Software genRSA v2.1:

• Lectura de interés:

Objetivos:

1. Observar cómo se realiza un ataque por la paradoja del cumpleaños a claves RSA con el

software LegionRSA.

2. Observar con LegionRSA cómo funciona un ataque por la paradoja del cumpleaños a claves

RSA en red o paralelo y comprobar que se cumple el principio de divide y vencerás.

3. Apreciar la seguridad del algoritmo RSA basada en el uso de números primos muy grandes.

I. Arranque de Servidor y Cliente para ataque en localhost con un único cliente Ejercicio 1)

1.1. Desde la carpeta del software LegionRSA, ejecuta el programa LegionRSA.jar y activa el

modo Servidor.

1.2. Es posible que salte el firewall de tu equipo; eso es normal. Contesta Permitir el acceso.

Figura 1. Desactivación del firewall

1.3. Introduce como módulo N = 580.630.534.437.856.787 (un valor de 60 bits), como

exponente público haz que lo asigne automáticamente el programa (elegirá el valor estándar e = 65.537) y como Mensaje M con el cual realizar el ataque también acepta el valor por defecto, que será M = 2.

1.4. Antes de “Iniciar ataque distribuido”, desde la carpeta del programa vuelve a ejecutar

LegionRSA.jar y activa el modo Cliente. Se abrirá una nueva ventana. En esa ventana el programa te indicará que se usarán por defecto (x-1) procesadores siendo x la cantidad de procesadores que tenga tu máquina. Puedes aceptarlo o cambiar ese número. Si quieres puedes poner un alias a tu máquina, por ejemplo MiSuperPC (no permitidos los espacios).

(2)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 2

1.5. Hecho esto, PRIMERO activa el Cliente indicando “Unirse al ataque”. Verás que

aparecerá un mensaje de estado diciendo “UNIDO AL ATAQUE, ESPERANDO ORDENES DEL SERVIDOR”.

1.6. Recupera ahora la ventana del Servidor y observa que te dice que para el ataque tienes

1 único cliente con los procesadores que hayas elegido para el ataque.

1.7. Ahora ya puedes arrancar el ataque pulsando en “Iniciar ataque distribuido”.

1.8. Observa la información que va apareciendo en Estadísticas (lo mismo aparecerá en el

Cliente) y que después de unos 5 segundos ha encontrado que la clave privada d es el valor 408.612.856.360.527.161.

1.9. ¿Qué tasa de cifra total ha alcanzado tu PC?

1.10. Usando por ejemplo la calculadora de Windows, comprueba que el valor estimado de

cifras por la paradoja del cumpleaños es ≈ 3√N.

1.11. ¿Qué porcentaje de ese valor estimado tuvo que recorrer el ataque?

1.12. Comprueba que, dependiendo de tu máquina, cada procesador aportará una tasa de

cifra entre 100 a 150 millones de claves por segundo.

1.13. Observa toda la información que se muestra en las ventanas Servidor y Cliente.

1.14. Con el software genRSA v2.1 comprueba que el valor encontrado se trata de la clave

privada d = 408.612.856.360.527.161. Primero factoriza n = 580.630.534.437.856.787 para comprobar que p = 270.394.759 y q = 2.147.343.893. Hecho esto, introduce esos valores de p y q en la generación de claves y usa como clave pública e = 65.537. Genera ahora esta clave manualmente y comprueba que el valor de la clave privada encontrado en el ataque es el correcto.

Comprueba tu trabajo:

(3)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 3 Figura 3. Cliente en modo localhost unido al ataque

(4)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 4 Figura 5. Cliente en modo localhost terminado el ataque

Ejercicio 2)

2.1. Repite el ejercicio 1 haciendo que ahora sea el software quien elija los primos p y q.

Hazlo para una clave de 65 bits y otra de 70.

2.2. Para ello, primero debes sólo debes indicar en el Servidor que vas a “Configurar nuevo

ataque” y en el MODULO N indicar que deseas se asigne automáticamente. Al pinchar, se abrirá una ventana donde debes indicar la cantidad de bits del módulo, e.g. 70.

2.3. Observa que, aumentando tan solo 10 bits, el tiempo para que el ataque prospere pasa

de los pocos segundos a los pocos minutos.

2.4. En los tres ataques realizados hasta ahora, ¿en torno a qué porcentaje de cifrados

probados según la estimación tuvo que llegar el programa? De media, ¿se acerca al 100%?

2.5. Comprueba nuevamente con genrSA v2.1 que la clave privada encontrada en el ataque

es la correcta.

2.6. Observa que, a medida que vas haciendo el módulo más grande, la tasa de cifra

disminuye. Para ello arranca un ataque con una clave de 256 bits y detenlo cuando lleve un par de minutos para poder leer la tasa de cifra. Haz ahora otros tres ataques con una clave de 512 bits, 768 bits y 1.024 bits y detenlos a los dos minutos.

2.7. ¿Cómo ha descendido la tasa de cifra en estos 4 últimos intentos?

(5)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 5 Figura 6. Servidor en modo localhost terminado el ataque

(6)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 6 Figura 8. Comprobación con genRSA v2.1 de que el ataque es correcto

Valores aproximados de la tasa de cifra según el tamaño del módulo para un PC en particular:

• 256 bits: tasa 300.000.000 cifras/segundo

• 512 bits: tasa 170.000.000 cifras/segundo

• 768 bits: tasa 25.000.000 cifras/segundo

• 1.024 bits: tasa 20.000.000 cifras/segundo

II. Arranque de Servidor y Cliente para ataque en localhost con más de un cliente Ejercicio 3)

3.1. Repite el ejercicio con N = 580.630.534.437.856.787, arrancando de la misma manera el

Servidor.

3.2. Ahora en el Cliente primero arranca un cliente llamado PClocal1 con un solo procesador

y, después de unirte al ataque con PClocal1, ejecuta nuevamente el programa LegionRSA.jar arrancando un segundo cliente en tu máquina, en este caso con dos procesadores y de nombre PClocal2. Hecho esto, únete también al ataque con PClocal2.

3.3. Observa ahora en el Servidor que tienes dos máquinas atacando, una con 1 procesador y

la otra (es tu misma máquina claro) con 2 procesadores.

3.4. Desde Servidor, pulsa “Iniciar ataque distribuido”.

3.5. Terminado el ataque, observa las tres ventanas de Java que se han abierto. ¿Qué

máquina ha encontrado al clave, PClocal1 o PClocal2? Comprueba tu trabajo:

(7)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 7 Figura 9. Servidor en modo localhost terminado el ataque

(8)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 8 Figura 11. Cliente 2 en modo localhost terminado el ataque

III. Arranque de Servidor y de Clientes para un ataque en red Ejercicio 4)

4.1. Para este ejercicio debes tener una red de al menos 2 máquinas, la tuya que puede

hacer de Servidor y también de Cliente como ya has visto, y una segunda máquina que se unirá al ataque en modo red indicando aquí la dirección IP de tu Servidor. Lo ideal es hacer este ejercicio en un laboratorio que tenga al menos 10 máquinas conectadas en red.

4.2. Para que puedas comprobar que en un ataque en red se cumple el principio de divide y

vencerás y que el tiempo de ataque se divide aproximadamente por el número de PCs que atacan, haz primero un ataque en local para esta clave de 80 bits

850.388.606.250.257.381.605.069, con e = 65.537 y M = 2. Según las características de tu máquina, este ataque podría tardar más de una hora.

4.3. Terminado el ataque, apunta el tiempo que ha tardado en encontrar la clave, la tasa de

cifra alcanzada y lógicamente el valor de la clave privada d. Es importante que en este ataque la máquina usada tenga una potencia similar a las máquinas de la red que participarán luego en el ataque distribuido.

4.4. Repite ahora el ataque con la misma clave y abre en todos los PC del laboratorio el

Cliente, poniendo en cada uno un nombre o alias distinto, y en vez de localhost pon como Dirección del servidor la dirección IP de la máquina que haga de Servidor. Puedes encontrar dicha dirección IP desde MSDOS mediante el comando ipconfig.

4.5. Cuando todos los PCs estén unidos al ataque y esperando órdenes del servidor, mira en

el Servidor cuántos PCs hay conectados y cuántos procesadores van a intervenir en el ataque.

(9)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 9

4.7. Terminado el ataque, comprueba que se cumple esta regla: si en el ataque de forma

localhost había x procesadores y en el ataque en red hay y procesadores, entonces el ataque en red debería disminuir su tiempo en aproximadamente x/y.

4.8. Saca conclusiones de lo visto.

4.9. Sin tener en cuenta la capacidad de cómputo necesaria, ¿cuánto tiempo disponible

tendría este tipo de ataque para poder romper la clave privada de un certificado digital? Mira tiempos típicos de validez en X509.

4.10. Dado que divide y vencerás también funciona aquí en RSA, no sólo en la cifra simétrica,

¿crees que podría convertirse en una amenaza real a RSA poder realizar este tipo de ataque en grandes granjas de ordenadores o bien usando FPGA?

4.11. Con genRSA v2.1 factoriza el módulo 850.388.606.250.257.381.605.069 y crea la clave

manualmente con e = 65.537. Comprueba que la clave encontrada en el ataque es la clave privada d = 165.556.986.543.744.672.689.345.

Comprueba tu trabajo:

(10)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 10 Figura 13. Cliente en modo localhost red terminado el ataque

(11)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 11 Figura 15. Cliente 21 en modo red terminado el ataque

(12)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 12 Figura 17. Cliente 24 (que encuentra la clave) en modo red terminado el ataque

(13)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 13 Figura 19. Comprobación con genRSA v2.1 que d = 165.556.986.543.744.672.689.345 RESUMEN DEL ATAQUE EN RED

Ataque en modo local a una clave de 80 bits

• n = 850.388.606.250.257.381.605.069; e = 65.537; M = 2

• Un único cliente con 4 procesadores

• Cálculos estimados: 2.766.495.518.928

• Cálculos realizados: 2.323.012.607.374

• Porcentaje recorrido del espacio: 83%

• Tasa media de cifrados por segundo: 756.008.932

• Tiempo empleado: 51 minutos, 12 segundos (3.072 segundos)

• Clave encontrada d = 165.556.986.543.744.672.689.345

Ataque en modo red a la misma clave de 80 bits

• Ataque con 30 ordenadores y 120 procesadores

• Nota: las máquinas del laboratorio no son exactamente iguales. Algunas máquinas

alcanzaron tasas de 1.100 millones de claves por segundo, otras de 730 millones de claves por segundo y, las más lentas, tasas de 550 millones de claves por segundo.

• Cálculos estimados: 2.766.495.518.928

• Cálculos realizados: 2.323.012.607.374

• Porcentaje recorrido del espacio: 83%

• Tasa media de cifrados por segundo: 21.411.490.068

• Tiempo empleado: 1 minuto, 47 segundos (107 segundos)

• Clave encontrada d = 165.556.986.543.744.672.689.345

• Mejora: 3.072/107 = 28,71 veces más rápido

• Se acerca a 30, porque el ataque en localhost fue hecho con la máquina más rápida de

(14)

Cuadernos de Laboratorio de Criptografía © jra - Entrega nº 8 – Ataque por paradoja cumpleaños a RSA Parte 2 Página 14 Figura 20. Laboratorio Dpto. SI ETSISI UPM, 30 PCs durante el ataque en red (1)

Máquina con dos ventanas es PC21, que actúa como Servidor y Cliente

Referencias

Documento similar

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

- Un curso formativo para los técnicos de laboratorio de la UPV sobre la prevención de los residuos en los laboratorios, que se llevará a cabo los días 23, 24, 25, 26 y 27

Gastos derivados de la recaudación de los derechos económicos de la entidad local o de sus organis- mos autónomos cuando aquélla se efectúe por otras enti- dades locales o

En cuarto lugar, se establecen unos medios para la actuación de re- fuerzo de la Cohesión (conducción y coordinación de las políticas eco- nómicas nacionales, políticas y acciones

Tratando de responder la pregunta an- teriormente planteda, en el año de 2002 desarrollamos una nueva alternativa denomi- nada Sistema Insitu para el Tratamiento Dife- renciado de

Clases interactivas: aplicación por parte de los alumnos de los conocimientos previamente adquiridos ¿en su aprendizaje en las clases expositivas y su aprendizaje autónomo derivado-