1 pontos por GN⁺ 2024-12-29 | 1 comentários | Compartilhar no WhatsApp
  • O ESP32 é tão comum que provavelmente há milhares deles só no CCH, mas sua peça central, a pilha de Wi‑Fi, é fechada, o que dificulta modificá-la e auditá-la
  • A sessão da 38c3 parte da engenharia reversa do periférico de Wi‑Fi e mostra o processo de criação de uma pilha de Wi‑Fi open source
  • O objetivo não é apenas uma implementação alternativa, mas permitir verificar e corrigir diretamente o software que pode lidar com dados sensíveis
  • Se a nova pilha se consolidar, o ESP32 poderá ir além de um SoC IoT comum e se expandir como uma plataforma sem fio de baixo custo para pesquisa e experimentação
  • Quando funcionalidades suficientes forem abertas, será possível usá-lo em ferramentas de pentest, roteadores mesh B.A.T.M.A.N. e clientes AirDrop

Por que abrir uma pilha de Wi‑Fi fechada

  • A pilha de Wi‑Fi atual do ESP32 funciona, mas é uma implementação fechada, então é difícil inspecionar seu funcionamento interno ou modificá-la conforme a necessidade
  • O principal objetivo de uma pilha de Wi‑Fi open source é permitir modificação e auditoria em uma área que potencialmente lida com dados sensíveis
  • O fato de provavelmente existirem milhares de ESP32 no CCH, todos executando essa pilha de Wi‑Fi fechada, reforça a preocupação

Da engenharia reversa à nova pilha

  • O projeto começou com a engenharia reversa da pilha de Wi‑Fi proprietária do ESP32
  • Depois, evoluiu para a implementação de uma pilha de Wi‑Fi open source que lida diretamente com o periférico de Wi‑Fi do ESP32
  • Nesse processo, também são abordados Wi‑Fi, ESP32, engenharia reversa em geral e formas de abordar esse tipo de projeto

Usos possíveis quando o ESP32 estiver aberto

  • Se suas funcionalidades forem totalmente abertas, o ESP32 poderá assumir papéis mais diversos como ferramenta de pesquisa e SoC IoT
  • Exemplos de uso possíveis incluem
    • ferramentas de pentest
    • roteadores mesh B.A.T.M.A.N.
    • clientes AirDrop

Informações da sessão e condições de publicação

  • Os palestrantes são Frostie314159 e Jasper Devreker
  • É uma sessão de 38 minutos realizada em 2024-12-27 na trilha Hardware & Making da 38c3, no Saal 1
  • Vídeo e áudio são oferecidos nos formatos MP4, WebM, MP3 e Opus
  • O material é publicado sob os termos de http://creativecommons.org/licenses/by/4.0

1 comentários

 
GN⁺ 2024-12-29
Comentários do Hacker News
  • Post relacionado: https://zeus.ugent.be/blog/23-24/open-source-esp32-wifi-mac/

    • Se a versão open source for compatível com a API fechada, parece que as vantagens serão grandes
      Se for compatível, dá para aproveitar diretamente a ajuda e os exemplos que já existem na internet, e o custo de entrada também diminui. Mesmo quem só quer mexer um pouquinho na camada MAC pode entrar pelo caminho existente e alterar apenas a parte desejada, sem o ônus de aprender uma nova API
    • Sou o autor. A série completa de posts também está em https://esp32-open-mac.be/
  • Ainda acho bem estranho que só a Espressif tenha conseguido colocar um modem WiFi em um microcontrolador bastante decente
    A ST ainda está bem atrasada nesse tipo de coisa

    • Outros exemplos são as famílias BK72xx (BK7231T, BK7231N), RTL87xx (RTL8710BN, RTL8710BX) e o RP2040
      Mas o WiFi da placa RP2040 W parece um módulo externo. Fonte: https://esphome.io
    • A Espressif acertou bem a combinação de baixo custo, acessibilidade, hardware fácil, software fácil e ausência de restrições estranhas de licença
      Dá para comprar uma unidade em qualquer lugar, são vendidos em várias placas breakout com alimentação USB, porta de programação e pinos marcados, e há boa documentação, exemplos, Arduino IDE e NodeMCU. O Arduino também era parecido no começo, mas ficou preso por tempo demais a chips AVR de baixo desempenho, as placas que não eram chinesas eram caras e não havia WiFi. O Raspberry Pi Pico tem bons recursos, mas no início era difícil de conseguir; o resto fica mais perto de um “chip único” comprado em lugares como DigiKey, com frete caro, documentação de mais de 600 páginas, mais de 300 páginas necessárias para enviar um único ping, necessidade de soldar na placa e, normalmente, equipamento caro também para programar
    • A Nordic Semiconductor também tem microcontroladores com Bluetooth e WiFi. Só que são muito menos comuns do que a solução da Espressif
    • A maioria dos módulos baseados em TuYa no AliExpress é Beken
    • A TI já tinha microcontroladores WiFi+Bluetooth havia quase 10 anos, e também oferece Cortex-M4
  • Ainda não vi o vídeo, então desculpem se isso já foi abordado, mas fico curioso se a certificação sem fio do ESP32 está vinculada ao firmware caixa-preta oficial
    Mesmo com o mesmo hardware, se usar firmware aberto, seria preciso reenviar para órgãos de certificação como a FCC para fazer testes de conformidade?

    • Se for distribuído assim, sim; se o usuário final modificar por conta própria, não
      Não lembro de cabeça o artigo do CFR, mas a FCC permite explicitamente que qualquer pessoa use pequenas quantidades de dispositivos não certificados. Se o dispositivo violar outras regras, continua sendo uma infração, mas o simples fato de modificar hardware ou software não é proibido
    • Vejo isso como uma zona cinzenta. Se eu não estiver muito errado, na certificação eles só testam e documentam o desempenho sem fio no pior caso, e o restante da documentação técnica é mais parecido com um folheto bastante detalhado, com diagrama de blocos em alto nível e teoria de operação, do que com documentos de projeto modernos, como arquivos de fabricação da PCB ou scripts de build de firmware
      A existência do firmware quase não é reconhecida. Há um motivo para isso. Equipamentos sem fio licenciados por isenção, como WiFi, devem ser resistentes a adulteração em nome do interesse público. Por isso, quando a FCC discutiu os requisitos de certificação para roteadores WiFi, chegou a considerar estender isso ao software, obrigando boot seguro em todos aqueles roteadores WiFi vulneráveis e porcarias, mas era uma ideia horrível e foi descartada. Do jeito que está, eu diria que é meio legal ou meio ilegal, desde que o firmware resultante não gere claramente emissões fora da especificação. Não sou advogado
    • Correto
  • https://github.com/esp32-open-mac

  • Antigamente eu tinha uma ideia de provisionamento de senha WiFi. Dá para transmitir o SSID e a senha modulando o comprimento dos pacotes
    O novo dispositivo IoT obviamente não consegue descriptografar os pacotes, mas consegue observar o comprimento. Cheguei a criar uma implementação de exemplo para Linux, mas não encontrei nenhum chip IoT que oferecesse acesso PHY de baixo nível suficiente para fazer isso

    • O SmartConfig da TI funciona assim, usando o campo de comprimento. Então basta usar um chip IoT que implemente isso, e a TI oferece muitos desses chips
    • https://www.keacher.com/xmas24/ usa OOK para comunicação de dados, e tem a vantagem de colher energia do sinal WiFi, sem precisar de bateria
    • Em último caso, não daria para fazer engenharia reversa, ou isso é impossível?
    • Hoje em dia eu simplesmente usaria WPA3
  • Pergunta lateral: um dos palestrantes divulgou um número DECT. Isso quer dizer que ainda há gente levando telefones antigos para usar em conferências técnicas?

    • Eles operam várias redes para comunicação de voz durante o evento. Pelo que encontrei, normalmente usam DECT, SIP e GSM juntos
      Também há um dashboard de status que mostra métricas durante o evento
      [1] https://events.ccc.de/2024/12/22/38c3-poc-isdn-version/
      [2] https://dashboard.eventphone.de/d/de7sgxz63vzeoe/38c3?orgId=...
    • Sim. Em acampamentos hacker é bem conveniente, e eu ainda tenho um
      Especialmente nas áreas de camping, a cobertura WiFi pode variar bastante, então você consegue receber chamadas mesmo caminhando até o prédio dos banheiros ou até o estacionamento. Como usa suas próprias frequências, também não congestiona ainda mais as faixas usadas por WiFi, Bluetooth e Zigbee. Daria para usar algum app, mas DECT é muito estável e tem alcance muito melhor que WiFi. Tenho um aparelho Siemens bom, mais ou menos do tamanho de um Nokia 8210, então também não preciso carregar um tijolo. A bateria provavelmente está quase morta agora, mas, como era comum naquela época, ela é substituível
  • Dentro de casas particulares na Alemanha, DECT ainda é muito popular
    É muito mais robusto do que VoIP sobre Wi-Fi

    • Vejo isso como uma tradição do CCC
    • Certo. Mas também dá para usar GSM ou SIP e, na prática, mesmo usando redes mais modernas, como o espaço de numeração é o mesmo, muita gente chama de números DECT
      Como o DECT veio primeiro, acabou se consolidando como um termo genérico para a rede telefônica interna
  • Fico curioso para saber quão profundo é o nível do hacking. A transmissão de frames parece ser apenas configurar alguns registradores e esperar uma interrupção, então me pergunto se não está conversando com alguma outra camada de firmware que faz o trabalho de verdade
    Isso me lembra a placa Raspberry Pi Pico. Ela tem o SoC principal RP2040, mas o Wi-Fi fica em um módulo Wi-Fi/BT separado (CYW43xx), com seu próprio núcleo Arm. A interface de registradores externos do módulo Wi-Fi também não é documentada publicamente, mas existe um driver open source (https://github.com/georgerobotics/cyw43-driver/tree/cf924bb0...), então dá para inferir a especificação. Mas, no fim, esse driver também se comunica com um software que roda no núcleo Arm dentro do módulo, e esse código é fornecido pelo fabricante como um enorme blob binário de firmware. Esse blob está de fato dentro dos arquivos de header do diretório firmware no repositório linkado. Fico curioso para saber como este hack do ESP32 se corresponde com essa estrutura

  • Fiquei impressionado com o quanto os apresentadores parecem jovens. É interessante ver pessoas acumularem esse nível de conhecimento técnico em uma idade tão baixa

    • Hoje em dia tudo está aberto. As crianças conseguem aprender o que querem cada vez mais cedo
      Xadrez é um exemplo perfeito. Antigamente, muito conhecimento estava em livros, muitas vezes em línguas estrangeiras. Agora tudo está aberto e, quando você chega a certo nível, consegue jogar casualmente até contra adversários do top 100, então a velocidade de evolução é maior
  • Ficamos um passo mais perto de uma biblioteca MicroPython com suporte a modo promíscuo

    • Por quê? Isso já é suportado pelo ESP SDK
  • Para assistir sem download: https://media.ccc.de/v/38c3-liberating-wi-fi-on-the-esp32/pl...