Las bombillas inteligentes podrían revelar tus secretos de contraseña

Blog

HogarHogar / Blog / Las bombillas inteligentes podrían revelar tus secretos de contraseña

Aug 02, 2023

Las bombillas inteligentes podrían revelar tus secretos de contraseña

Un trío de investigadores divididos entre Italia y el Reino Unido publicaron recientemente un artículo sobre las inseguridades criptográficas que encontraron en una bombilla inteligente ampliamente conocida. Los investigadores parecen haber elegido

Un trío de investigadores divididos entre Italia y el Reino Unido publicaron recientemente un artículo sobre las inseguridades criptográficas que encontraron en una bombilla inteligente ampliamente conocida.

Los investigadores parecen haber elegido su dispositivo objetivo, el TP-Link Tapo L530E, basándose en que es "actualmente [el] más vendido en Amazon Italia", por lo que no sabemos cómo se comparan otras bombillas inteligentes, pero su De todos modos, el informe tiene mucho que enseñarnos.

Los investigadores dicen que:

Nos comunicamos diligentemente con TP-Link a través de su Programa de investigación de vulnerabilidades (VRP), informando las cuatro vulnerabilidades que encontramos.

Reconocieron todos ellos y nos informaron que comenzaron a trabajar en correcciones tanto en la aplicación como en los niveles de firmware de la bombilla, planeando lanzarlas a su debido tiempo.

Para bien o para mal (los autores del artículo no dicen si se acordaron fechas de divulgación con TP-Link, por lo que no sabemos cuánto tiempo ha estado trabajando la compañía en sus parches), los investigadores ahora han revelado cómo sus ataques funcionan, aunque sin proporcionar ningún código de ataque que se pueda copiar y pegar para que los aspirantes a piratas informáticos domésticos lo exploten a voluntad.

Por lo tanto, pensamos que valía la pena examinar el documento.

Como muchos dispositivos llamados "inteligentes", el Tapo L530E está diseñado para que pueda configurarse rápida y fácilmente a través de Wi-Fi.

Aunque la configuración inalámbrica es común incluso para dispositivos que funcionan con baterías y que se pueden cargar y configurar a través de puertos USB integrados, como cámaras y accesorios para bicicletas, las bombillas generalmente no tienen puertos USB, sobre todo por cuestiones de espacio y seguridad. razones, ya que están diseñados para enchufarse y dejarse en una toma de corriente.

Al encender y apagar una bombilla Tapo L530E repetidamente en el interruptor de pared durante un segundo a la vez, puede forzarla al modo de configuración (aparentemente, la bombilla parpadea automáticamente tres veces para indicarle cuando está lista para la configuración).

Como la mayoría de los dispositivos configurables automáticamente, esto hace que la bombilla inteligente se convierta en un punto de acceso Wi-Fi con un nombre de red fácil de reconocer del tipo Tapo Bulb XXXX, donde las X forman una cadena de dígitos.

Luego te conectas a ese punto de acceso temporal, que no está protegido con contraseña, desde una aplicación en tu teléfono inteligente.

Luego le indicas a la bombilla cómo conectarse tanto a tu red Wi-Fi doméstica protegida con contraseña como a tu cuenta en la nube de TP-Link en el futuro, después de lo cual el firmware de la bombilla puede reiniciarse y conectarse a Internet, permitiéndote administrarla. desde la aplicación de tu teléfono.

La bombilla puede unirse a la red doméstica, lo que significa que puedes contactarla directamente a través de tu propio Wi-Fi cuando estés en casa, incluso si tu ISP está desconectado en ese momento.

Y la bombilla se puede conectar a través de Internet a su cuenta en la nube, por lo que también puede enviarle comandos indirectamente a través de su cuenta en la nube mientras está de viaje, por ejemplo, para encender y apagar las luces si llega tarde. para dar la impresión de que hay alguien en casa.

Probablemente puedas adivinar hacia dónde va esto.

Si la aplicación en su teléfono no tiene ninguna forma criptográficamente sólida de determinar que realmente se ha conectado a una bombilla genuina cuando realiza el proceso de configuración...

…entonces un atacante cercano que por casualidad inicia un punto de acceso Tapo Bulb XXXX falso en el momento adecuado podría incitarlo a enviar esos importantes secretos de configuración a su dispositivo de “bombilla impostor” en lugar de al dispositivo real, capturando así tanto su Wi -Contraseña de Fi y los datos de tu cuenta TP-Link.

La buena noticia es que los investigadores notaron que tanto la aplicación Tapo como el firmware L530E incluían una verificación de seguridad básica para ayudar a que la aplicación y las bombillas se encontraran entre sí de manera confiable, reduciendo así el riesgo de que la aplicación revelara sus contraseñas cuando debería. 't.

Pero la mala noticia es que el protocolo utilizado para esto ¿realmente eres una bombilla? El intercambio estaba claramente diseñado para evitar errores más que para prevenir ataques.

En términos generales, la aplicación localiza cualquier bombilla en su red transmitiendo paquetes UDP especiales al puerto 20002 y viendo qué dispositivos responden, si corresponde.

Para ayudar a las bombillas que escuchan a decidir ¿estás ahí? La solicitud provino de la aplicación Tapo, en lugar de algún otro producto o servicio desconocido que también usa el puerto 20002, la solicitud incluye lo que se conoce en la jerga como hash con clave.

¡Estoy aquí! La respuesta de la bombilla incluye el mismo tipo de suma de verificación codificada para ayudar a la aplicación a filtrar respuestas UDP inesperadas y no deseadas.

En pocas palabras, el hash con clave es una suma de verificación basada no solo en los datos del paquete UDP sino también en algunos bytes de clave adicionales que también se incluyen en la suma de verificación.

Desafortunadamente, el protocolo Tapo utiliza bytes de clave fija para su suma de verificación, con la misma "clave" conectada a la aplicación y al firmware de cada bombilla Tapo.

En otras palabras, una vez que alguien ha descompilado la aplicación, o el firmware de la bombilla, o ambos, y ha recuperado esta "clave", debe asumir que todos sabrán qué es, por lo que ¿estás ahí?/Estoy ¡aquí! mensajes triviales de falsificar.

Peor aún, los investigadores descubrieron que no necesitaban descompilar nada, porque esta “clave” no tan secreta tiene solo 32 bits de largo, lo que significa que al configurar su propia bombilla Tapo en modo de configuración y luego alimentarla, estará allí. ? mensajes usando las 232 claves de suma de verificación posibles, eventualmente presionarás la tecla correcta mediante lo que se conoce como fuerza bruta.

Ese es el equivalente criptográfico de girar los diales para probar cada combinación en el candado de una bicicleta, digamos de 000 a 999, hasta que tienes suerte y el candado se abre. (En promedio, abrirás la cerradura después de probar la mitad de las combinaciones posibles, pero nunca te llevará más de 1000 intentos).

De hecho, no necesitaron enviar 232 mensajes desde la aplicación a una bombilla para descifrar la llave.

Al capturar solo un mensaje genuino conocido con un hash con clave válido, podían probar todas las claves posibles fuera de línea hasta producir un mensaje que tenía el mismo hash con clave que el que habían guardado.

Eso significa que el ataque de fuerza bruta podría realizarse a la velocidad de la CPU, no simplemente a la velocidad de los paquetes de la red Wi-Fi, y los investigadores afirman que "en nuestra configuración, el ataque de fuerza bruta siempre tuvo éxito en un promedio de 140 minutos".

(Suponemos que lo intentaron repetidamente solo para probar que su código de descifrado funcionaba correctamente, aunque con una llave cableada compartida por todas las bombillas Tapo, solo su primer descifrado habría sido suficiente).

El siguiente problema criptográfico apareció en la siguiente etapa del proceso de configuración de la bombilla y fue un tipo de error similar.

Después de aceptar una bombilla como genuina basándose en un hash con clave que en realidad no tiene una clave, la aplicación acuerda una clave de sesión para cifrar su tráfico con la bombilla "genuina"...

…pero una vez más no tiene forma de comprobar si el acuerdo clave se produjo con una bombilla real o con un impostor.

Acordar una clave de sesión es importante, porque garantiza que nadie más en la red pueda espiar las contraseñas de Wi-Fi y Tapo cuando posteriormente se envían desde la aplicación Tapo a lo que cree que es una bombilla de Tapo.

Pero no tener un proceso de verificación para el acuerdo clave en sí es como conectarse a un sitio web a través de HTTPS y luego no molestarse en realizar ni siquiera la verificación más básica del certificado web que envía: su tráfico estará seguro en tránsito, pero no obstante, podría ir directamente a manos de un delincuente.

La aplicación Tapo se identifica ante la bombilla (o lo que cree que es una bombilla) enviándole una clave pública RSA, que el otro extremo utiliza para cifrar una clave AES generada aleatoriamente para proteger los datos intercambiados durante la sesión.

Pero el dispositivo de bombilla no proporciona ningún tipo de identificación, ni siquiera una suma de verificación con una clave cableada de 32 bits, de regreso a la aplicación Tapo.

Así, la aplicación no tiene más remedio que aceptar la clave de sesión sin saber si procede de una bombilla real o de un dispositivo impostor.

El resultado combinado de estas dos fallas es que un atacante en su red podría primero convencerlo de que su punto de acceso fraudulento era una bombilla genuina esperando a ser configurada y, por lo tanto, atraerlo al lugar equivocado y luego convencerlo de que la envíe. una copia cifrada de tus propias contraseñas de Wi-Fi y Tapo.

Irónicamente, esas contraseñas filtradas realmente estarían a salvo de todos... excepto del impostor con el punto de acceso fraudulento.

Desafortunadamente, hay más.

Cuando dijimos anteriormente que "esas contraseñas filtradas realmente serían seguras", no fue del todo correcto.

La clave de sesión que se establece durante el proceso de acuerdo de claves que describimos anteriormente no se maneja correctamente porque los programadores cometieron un error en el uso de AES.

Cuando la aplicación cifra cada solicitud que envía a una bombilla, utiliza un modo de cifrado llamado AES-128-CBC.

No explicaremos CBC (encadenamiento de bloques de cifrado) aquí, pero solo mencionaremos que el modo CBC está diseñado para que, si cifra el mismo fragmento de datos más de una vez (como solicitudes repetidas para encender y encender la luz). desactivado, donde los datos sin procesar en la solicitud son los mismos cada vez), no obtiene el mismo resultado cada vez.

Si cada solicitud de encendido y apagado de luz saliera idéntica, entonces una vez que un atacante hubiera adivinado cómo era un paquete de apagado, no sólo podría reconocer esos paquetes en el futuro sin descifrarlos, sino también reproducir esos mismos paquetes sin necesidad de saberlo. cómo cifrarlos en primer lugar.

Da la casualidad de que el cifrado basado en CBC se basa efectivamente en "sembrar" el proceso de cifrado para cada fragmento de datos mezclando primero un bloque de datos único, elegido al azar en el proceso de cifrado, creando así una secuencia única de datos cifrados en el resto. del trozo.

Estos datos “semilla” se conocen en la jerga como IV, abreviatura de vector de inicialización, y aunque no pretenden ser secretos, deben ser impredeciblemente diferentes cada vez.

En pocas palabras: misma clave + IV único = salida de texto cifrado único, pero misma clave + mismo IV = cifrado predecible.

Desafortunadamente, los codificadores TP-Link generaron un IV al mismo tiempo que crearon su clave de sesión AES, y luego usaron el mismo IV una y otra vez para cada paquete de datos posterior, incluso cuando los datos anteriores se repitieron exactamente.

Eso es un no-no criptográfico.

El último problema criptográfico que encontraron los investigadores aún podría dañar la seguridad incluso si se solucionara el problema del vector de inicialización, es decir, que los mensajes antiguos, independientemente de que un atacante sepa lo que significan o no, pueden reproducirse más tarde como si fueran nuevos.

Normalmente, este tipo de ataque de repetición se maneja en protocolos criptográficos mediante algún tipo de número de secuencia, marca de tiempo, o ambos, que se incluye en cada paquete de datos para limitar su validez.

Como la fecha en un boleto de tren que lo delatará si intenta usarlo dos días seguidos, incluso si el boleto en sí nunca es cancelado por una máquina expendedora o marcado por un inspector de boletos, números de secuencia y marcas de tiempo en paquetes de datos. sirven para dos propósitos importantes.

En primer lugar, los atacantes no pueden registrar el tráfico hoy y reproducirlo fácilmente más tarde y potencialmente causar estragos.

En segundo lugar, el código con errores que envía solicitudes repetidas veces por error, por ejemplo debido a respuestas perdidas o a la falta de reconocimientos de red, se puede detectar y controlar de forma fiable.

Si eres usuario de bombillas Tapo,manténgase atento a las actualizaciones de firmware de TP-Link que solucionen estos problemas.

Si es un programador responsable de proteger el tráfico de red y las configuraciones de productos basados ​​en red,Lea el trabajo de investigación para asegurarse de no haber cometido ningún error similar.

Recuerde las siguientes reglas:

Seguir@NakedSecurity en Twitterpara conocer las últimas noticias sobre seguridad informática.

Seguir@NakedSecurity en Instagram¡Para fotografías, gifs, vídeos y LOL exclusivos!

Si eres usuario de bombillas Tapo,Si es un programador responsable de proteger el tráfico de red y las configuraciones de productos basados ​​en red,La criptografía no se trata sólo de secreto.Asegúrese de que las claves únicas o IV sean verdaderamente únicas.Protéjase contra ataques de repetición.@NakedSecurity en Twitter@NakedSecurity en Instagram