Cómo hackear Bluetooth explotando la vulnerabilidad de criptografía de curva elíptica
Recientemente, investigadores israelíes de Technion publicaron un artículo sobre un ataque inteligente contra el proceso de emparejamiento de dispositivos Bluetooth vulnerables.
Esta vulnerabilidad permite a los atacantes evadir las medidas de seguridad de Bluetooth y hacer un Man-in-the-Middle (MITM). Todo esto para espiar o incluso cambiar el contenido de una conexión Bluetooth.
La causa raíz de esta vulnerabilidad es una implementación defectuosa de la criptografía de curva elíptica dentro de estos dispositivos.
Como suele suceder, comprender esta vulnerabilidad es una oportunidad perfecta para aprender cómo funcionan realmente las cosas. Por lo tanto, esta publicación no se detiene en la explicación de la vulnerabilidad de Bluetooth, sino que proporciona una explicación amigable para humanos.
Explicamos los principios básicos de la criptografía de curva elíptica (ECC) que se encuentra en el corazón de muchas tecnologías relevantes, incluido el protocolo SSL/TLS. Este protocolo protege nuestras comunicaciones por Internet y también las firmas ECDSA que protegen las transacciones de Bitcoin y Ethereum contra modificaciones.
La criptografía de curva elíptica es como un juego de billar
Siguiendo la terminología del blog de Nick Sullivan de Cloudflare, la criptografía de curva elíptica (ECC) se puede describir como un juego de billar.
La curva elíptica, descrita con la ecuación y² = x³ + ax + b es nuestra mesa de billar.
Agregar dos puntos en la curva, A y B, es nuestro tiro de billar. Para agregar A y B, debes colocar la pelota en el punto A y disparar hacia el punto B.
Cuando golpea la curva, la pelota rebota hacia arriba (si está por debajo del eje x). O hacia abajo (si está por encima del eje x) al otro lado de la curva y este es el resultado C.
Pero, ¿qué sucede cuando deseas “duplicar” un punto, es decir, agregar un Punto a sí mismo (A + A). ¿Cómo puedes disparar una pelota desde A hacia A?
Para hacerlo, escojamos el punto A ‘muy cerca de A y disparemos hacia él. A medida que acercamos A ‘más y más a A, la línea de conexión entre ellos se acerca a la Tangente de A.
Movimientos básicos
Ahora que aprendimos los movimientos básicos, definamos las reglas del juego. El jugador juega solo en la sala.
El juego comienza cuando la pelota se coloca en un punto conocido P. El jugador puede elegir arbitrariamente cuántas veces disparar sucesivamente hacia el mismo Punto P.
Cuando el jugador termina, otra persona entra en la sala e intenta adivinar cuántas veces la pelota fue golpeada. La única forma para que él descubra eso es mediante la reproducción del juego tiro tras tiro, hasta que la mesa alcance el mismo estado.
Sin embargo, el jugador original que sabe de antemano la cantidad de veces que tiene la intención de golpear, puede conocer de manera eficiente el estado final del tablero sin realmente tomar todos estos disparos. Por lo tanto, este juego logra la propiedad de “trampilla” de la criptografía deseada: fácil de hacer, difícil de deshacer.
En términos más matemáticos, calcular n*P sobre curvas elípticas es fácil. Sin embargo, dado n*P y P es difícil determinar n.
Curva elíptica Diffie-Hellman: billar de dobles
El algoritmo Diffie-Hellman de curva elíptica (ECDH) amplía aún más este concepto y utiliza la dureza de “deshacer” la cantidad de veces que se golpeó la pelota. Esto para crear un secreto compartido entre dos partes (Alice y Bob) en presencia de un espía (Eve).
En este juego de dobles, Alice juega nuestro juego de billar sola en una habitación. Ella comienza colocando la pelota en un punto conocido P y golpeando S₁ veces (S₁*P) de tu elección.
Cuando Alice termina, le envía una foto de la mesa a Bob. Bob coloca la pelota en el mismo lugar de su mesa (S₁*P) de acuerdo con la imagen y luego golpea S₂ veces (S₂* (S₁*P)).
Al mismo tiempo, Bob comienza un nuevo juego en otra mesa y golpea S₂ veces (S₂*P), enviando una foto a Alice para que pueda golpear S₁ veces. (S₁*(S₂*P)).
Al hacerlo, Alice y Bob llegaron individualmente a la misma posición de la mesa final (S₁*S₂*P = S₂*S₁*P). Ahora pueden usar la coordenada X de este punto final como su secreto compartido.
En una notación más formal: S₁, S₂ se llaman claves secretas, mientras que S₁ * P, S₂ * P se llaman claves públicas y se denotan como Pb₁ y Pb₂.
En este proceso, ni Alice ni Bob se enteraron del secreto individual de la otra parte. Más importante aún, Eve no aprendió sobre S₁, S₂ o la posición final de la mesa y el secreto compartido resultante. Aunque tuvo acceso a las imágenes de la mesa intercambiadas en el medio del juego.
Las imágenes indican el estado de la mesa en el medio del juego, pero revelar S₁ o S₂ es imposible. Recordemos que “deshacer” la cantidad de veces que se golpeó la pelota es difícil.
¡Eve contraataca!
¡Pero Eve aún no ha terminado! Aunque no puede obtener el secreto compartido simplemente escuchando, puede meterse activamente con las imágenes enviadas por Alice y Bob. Esto para crear cálculos incorrectos que, con suerte, la ayudarán a obtener el secreto compartido.
Los diseñadores de Bluetooth eran conscientes de ese riesgo. Cuando se emparejan dos dispositivos Bluetooth (es decir, se conectan entre sí). Usan ECDH para crear un secreto compartido que luego se utilizará para proteger el secreto y la integridad de la comunicación.
Protección
Para protegerse contra un Man-in-the-Middle activo que puede manipular los mensajes ECDH, se agregó una capa adicional de protección. Esto para verificar que las coordenadas X de los puntos de claves públicas enviadas (las “imágenes” en nuestra analogía) no se modificaron por un atacante.
Sin embargo, el protocolo Bluetooth no exige la verificación de las coordenadas Y. Esa es exactamente la brecha que los investigadores pudieron abusar para romper por completo la seguridad del proceso de emparejamiento de Bluetooth.
La forma en que Eve puede abusar de este hecho es cambiando las imágenes de la mesa. Puede colocar la pelota (clave pública) en un lugar muy especial en otra forma de la mesa (otra curva).
En términos matemáticos, Eve pone a cero la coordenada Y de las claves públicas intercambiadas por Alice y Bob. Dado que las coordenadas Y no están verificadas por el protocolo, Eve puede salirse con la suya.
Este punto de la curva tiene una propiedad muy interesante. Por lo general, cuando jugamos nuestro juego disparando repetidamente la pelota hacia el mismo punto, la pelota golpea la curva en todo tipo de ángulo. Luego cambia su posición con cada disparo sin volver al mismo punto. Sin embargo, cuando colocamos la pelota en el eje X y la disparamos hacia ese punto repetidamente, el juego es muy aburrido.
Duplicar
Cuando recuerdes duplicar, un punto se dispara en la dirección de la tangente, que es una línea recta (ver la figura anterior). Esta línea en realidad nunca se cruza con la curva y, por lo tanto, la pelota debe detenerse “artificialmente” en un punto llamado “punto al infinito” o ∞.
En el siguiente tiro, la pelota se dispara hacia el punto original y termina allí. Los siguientes tiros simplemente repiten ese proceso.
En cada adición, la pelota alcanza ∞, En cada adición extraña, la bola vuelve al eje X. Es como disparar la bola de billar en ángulo recto, dado que no golpea la curva con un ángulo. Solo puede rebotar desde el borde de la mesa en ángulo recto de una manera muy predecible y aburrida.
¡Pero aburrido y predecible es exactamente lo que Eve quiere! Ella reemplaza las imágenes originales (Pb₁, Pb₂) de la mesa con imágenes de mesas “arregladas” (Pb₁ ‘, Pb₂’).
Si ambos S₁, S₂ son pares, el resultado será S₂*Pb₁ ‘= ∞ = S₁*Pb₂’. Como resultado, el emparejamiento será exitoso y creará una clave compartida que Eve conoce.
En cualquier otro caso, es decir, si s1 o s2 son impares, el emparejamiento fallará como Pb₁ ‘≠ Pb₂’ ≠ ∞.
Por lo tanto, Eve tiene una tasa de éxito del 25% para encontrar el secreto compartido para espiar y manipular el tráfico de Bluetooth.
El 25% puede sonar bajo, pero dado que es muy probable que los usuarios víctimas vuelvan a intentar emparejarse si el emparejamiento ha fallado. Eventualmente Eve tendrá éxito. Y dado que las coordenadas Y no están validadas en el resto del protocolo, el engaño de Eve no está expuesto.
(Los investigadores detallan un ataque más sofisticado que tiene una tasa de éxito del 50%, pero eso es un tema para otra publicación).
Conclusiones
Implementar el cifrado es difícil e incluso los errores más sutiles pueden ser castigados fuertemente. Las implementaciones deben ser analizadas para asegurarse de que realmente se adhieran a las mejores prácticas.
Por otro lado, comprender los ataques contra la implementación puede ayudar a los desarrolladores a obtener una mejor comprensión. Deben tener no solo comprensión de la implementación correcta, sino también de cómo funcionan realmente las cosas.