1 puntos por GN⁺ 2024-12-29 | 1 comentarios | Compartir por WhatsApp
  • El ESP32 es tan común que probablemente se usen miles solo en CCH, pero su componente central, el stack Wi‑Fi, es cerrado, por lo que resulta difícil modificarlo y auditarlo
  • La sesión de 38c3 parte de la ingeniería inversa del periférico Wi‑Fi y aborda el proceso de crear un stack Wi‑Fi de código abierto
  • El objetivo no es solo una implementación alternativa, sino permitir verificar y corregir directamente el software que puede manejar datos sensibles
  • Si el nuevo stack se consolida, el ESP32 podría expandirse más allá de un SoC IoT común y convertirse en una plataforma inalámbrica económica para investigación y experimentación
  • Si se abren suficientes funciones, serían posibles usos como herramientas de pentesting, routers mesh B.A.T.M.A.N. y clientes de AirDrop

Por qué abrir un stack Wi‑Fi cerrado

  • El stack Wi‑Fi existente del ESP32 funciona, pero al ser una implementación cerrada es difícil revisar su funcionamiento interno o modificarlo según las necesidades
  • El objetivo central de un stack Wi‑Fi de código abierto es permitir modificar y auditar el área que potencialmente maneja datos sensibles
  • En CCH probablemente hay miles de ESP32, y el hecho de que todos ejecuten este stack Wi‑Fi cerrado aumenta la preocupación

De la ingeniería inversa al nuevo stack

  • El proyecto comenzó con la ingeniería inversa del stack Wi‑Fi propietario del ESP32
  • Luego avanzó hacia la implementación de un stack Wi‑Fi de código abierto que controla directamente el periférico Wi‑Fi del ESP32
  • En este proceso también se tratan Wi‑Fi, ESP32, ingeniería inversa en general y cómo abordar proyectos de este tipo

Usos cuando el ESP32 esté abierto

  • Si sus funciones se abren por completo, el ESP32 podrá asumir roles más variados como herramienta de investigación y SoC IoT
  • Algunos ejemplos de usos posibles son:
    • Herramientas de pentesting
    • Router mesh B.A.T.M.A.N.
    • Cliente de AirDrop

Información de la sesión y condiciones de publicación

  • Los ponentes son Frostie314159 y Jasper Devreker
  • Es una sesión de 38 minutos del track Hardware & Making de 38c3, realizada en Saal 1, con fecha 2024-12-27
  • El video y el audio están disponibles en formatos MP4, WebM, MP3 y Opus
  • El material se publica bajo los términos de http://creativecommons.org/licenses/by/4.0

1 comentarios

 
GN⁺ 2024-12-29
Opiniones en Hacker News
  • Artículo relacionado: https://zeus.ugent.be/blog/23-24/open-source-esp32-wifi-mac/

    • Parece que habría grandes ventajas si la versión open source fuera compatible con la API cerrada
      Si fuera compatible, se podrían aprovechar tal cual la ayuda y los ejemplos que ya existen en internet, y también bajaría el costo de entrada. Incluso alguien que solo quiera modificar muy poco la capa MAC podría entrar con el método existente, sin la carga de aprender una API nueva, y retocar solo la parte que le interesa
    • Soy el autor. La serie completa de artículos también está en https://esp32-open-mac.be/
  • Todavía me parece bastante raro que solo Espressif haya logrado meter un módem WiFi en un microcontrolador bastante decente
    ST sigue estando muy atrasada en este aspecto

    • Otros ejemplos son las familias BK72xx (BK7231T, BK7231N), RTL87xx (RTL8710BN, RTL8710BX) y el RP2040
      Aunque el WiFi de la placa RP2040 W parece un módulo externo. Fuente: https://esphome.io
    • Espressif acertó bien con la combinación de bajo precio, accesibilidad, hardware fácil, software fácil y ausencia de restricciones raras de licencia
      Se puede comprar en unidades de a una en cualquier lado, se vende en varias placas breakout con alimentación USB, puerto de programación y pines etiquetados, y tiene buena documentación, ejemplos, Arduino IDE y NodeMCU. Arduino también fue parecido al principio, pero se quedó demasiado tiempo con chips AVR de bajo rendimiento, las placas que no eran chinas eran caras y no tenía WiFi. Raspberry Pi Pico tiene buenas funciones, pero al inicio era difícil de conseguir; el resto se parece más a “chips sueltos” que se compran en lugares como DigiKey, con envíos caros, documentación de más de 600 páginas, más de 300 páginas necesarias para enviar un primer ping, necesidad de soldar en la placa y, por lo general, equipos caros para programar
    • Nordic Semiconductor también tiene microcontroladores con Bluetooth y WiFi. Aunque son mucho menos comunes que las soluciones de Espressif
    • La mayoría de los módulos basados en TuYa de AliExpress son Beken
    • TI tiene microcontroladores WiFi+Bluetooth desde hace casi 10 años, y también ofrece Cortex-M4
  • Todavía no vi el video, así que perdón si ya lo trataron, pero me pregunto si la certificación inalámbrica del ESP32 está atada al firmware de caja negra oficial
    Si se usa firmware abierto en el mismo hardware, ¿habría que enviarlo de nuevo a la FCC y otros organismos de certificación para comprobar conformidad?

    • Si lo distribuyes así, sí; si el usuario final lo modifica por su cuenta, no
      No recuerdo de memoria el artículo del CFR, pero la FCC permite explícitamente que cualquiera use pequeñas cantidades de dispositivos no certificados. Si ese dispositivo infringe otras normas, sigue siendo una infracción, pero el solo hecho de haber modificado el hardware o el software no está prohibido
    • Yo lo veo como una zona gris. Si no estoy muy equivocado, en la certificación solo se prueba y documenta el rendimiento inalámbrico en el peor caso, y el resto de la documentación técnica se parece más a un folleto bastante detallado con diagramas de bloques de alto nivel y teoría de operación que a documentación de diseño moderna, como archivos de fabricación de PCB o scripts de compilación de firmware
      Casi ni se reconoce la existencia del firmware. Hay una razón para eso: se espera que los equipos de radio sin licencia certificados, como WiFi, sean resistentes a manipulaciones por el bien público. Por eso, cuando la FCC discutió los requisitos de certificación para routers WiFi, consideró extenderlos hasta el software obligando a todos esos routers WiFi basura e inseguros a usar secure boot, pero era una idea terrible y se descartó. Por ahora, mientras el firmware resultante no produzca emisiones claramente fuera de especificación, diría que está a medio camino entre legal e ilegal. No soy abogado
    • Correcto
  • https://github.com/esp32-open-mac

  • Hace tiempo tuve una idea para provisionar contraseñas WiFi. Se podrían transmitir el SSID y la contraseña modulando la longitud de los paquetes
    El nuevo dispositivo IoT obviamente no podría descifrar los paquetes, pero sí podría observar su longitud. Incluso hice una implementación de ejemplo para Linux, pero no encontré ningún chip IoT que ofreciera el acceso PHY de bajo nivel suficiente para hacerlo

    • SmartConfig de TI funciona así, usando el campo de longitud. Así que basta con usar un chip IoT que lo implemente, y TI ofrece bastantes de esos chips
    • https://www.keacher.com/xmas24/ usa OOK para la comunicación de datos, y tiene la ventaja de que recolecta energía de la señal WiFi, así que no necesita batería
    • Como último recurso, ¿no se podría hacer ingeniería inversa, o es imposible?
    • Hoy en día simplemente usaría WPA3
  • Pregunta tangencial: uno de los presentadores publicó un número DECT. ¿Eso significa que todavía hay gente que lleva teléfonos viejos para usarlos en conferencias técnicas?

    • Operan varias redes para comunicación de voz durante el evento. Buscando un poco, normalmente usan DECT, SIP y GSM juntos
      También hay un panel de estado que muestra métricas durante el evento
      [1] https://events.ccc.de/2024/12/22/38c3-poc-isdn-version/
      [2] https://dashboard.eventphone.de/d/de7sgxz63vzeoe/38c3?orgId=...
    • Sí. En campamentos hacker es bastante práctico, y yo todavía tengo uno
      Sobre todo en las zonas de camping, donde la cobertura WiFi puede ser irregular, puedes recibir llamadas incluso si caminas hasta el edificio de baños o el estacionamiento. Como usa sus propias frecuencias, tampoco satura más las bandas que usan WiFi, Bluetooth y Zigbee. Podrías usar alguna app, pero DECT es muy estable y tiene mucho más alcance que WiFi. Tengo un equipo Siemens decente, del tamaño aproximado de un Nokia 8210, así que tampoco hace falta andar cargando un ladrillo. A estas alturas la batería seguramente está casi muerta, pero, como las baterías de esa época, es reemplazable
  • Dentro de las casas particulares en Alemania, DECT sigue siendo muy popular
    Mucho más robusto que VoIP sobre WiFi

    • Lo veo como una tradición del CCC
    • Correcto. Aunque también se puede usar GSM o SIP y, en la práctica, aunque se use una red moderna, como el espacio de numeración es el mismo, se le suele llamar número DECT
      Como DECT estuvo primero, quedó establecido casi como el nombre genérico de la red telefónica interna
  • Me da curiosidad qué tan profundo llega el hack. La transmisión de tramas parece simplemente configurar algunos registros y esperar una interrupción, así que sospecho que quizá esté hablando con otra capa de firmware que hace el trabajo real
    Me recuerda a la placa Raspberry Pi Pico. Tiene el SoC principal RP2040, pero el WiFi es un módulo WiFi/BT separado (CYW43xx) con su propio núcleo Arm. La interfaz de registros externa del módulo WiFi tampoco está documentada públicamente, pero existe un driver open source (https://github.com/georgerobotics/cyw43-driver/tree/cf924bb0...) que permite inferir la especificación. Sin embargo, ese driver al final también se comunica con software que corre en el núcleo Arm interno del módulo, y ese código lo proporciona el fabricante como un enorme blob binario de firmware. Ese blob de hecho está dentro de los archivos de cabecera del directorio firmware del repositorio enlazado. Me pregunto cómo se corresponde este hack del ESP32 con esa estructura

  • Me impresionó lo jóvenes que se ven los presentadores. Es interesante ver cómo acumulan ese nivel de conocimiento técnico a una edad tan temprana

    • Hoy en día todo está disponible públicamente. Los chicos pueden aprender lo que quieran a edades cada vez más tempranas
      El ajedrez es el ejemplo perfecto. Antes mucho del conocimiento estaba en libros, a menudo en libros en idiomas extranjeros. Ahora todo está disponible públicamente y, una vez que alcanzas cierto nivel, puedes jugar fácilmente contra rivales del top 100, así que el ritmo de crecimiento es más rápido
  • Estamos un paso más cerca de una biblioteca de MicroPython que soporte modo promiscuo

    • ¿Por qué? Eso ya lo soporta el SDK de ESP
  • Ver sin descargar: https://media.ccc.de/v/38c3-liberating-wi-fi-on-the-esp32/pl...