O chip wifi ti cc3000 possui um modo de configuração inteligente especial, para permitir a configuração inicial dos detalhes de acesso wifi.
A página wiki do cc3000 fornece alguns detalhes de como o processo funciona,
- O chip entra no modo inteligente de "escuta" da configuração
- Aplicativo no smartphone envia um pacote "UDP" com configurações de ponto de acesso
- O chip captura esses dados e se configura
Estou ciente da captura de pacotes e do sniffing de wifi, mas como o chip "descriptografa" o pacote bruto para obter informações sobre ele? Eu uso wpa2-personal com AES no meu roteador.
wifi
texas-instruments
srinathhs
fonte
fonte
Respostas:
Como o @Colin menciona, o esquema que a TI agora usa para comunicar um SSID da rede e uma frase-chave de um aplicativo de configuração para um dispositivo habilitado para CC3000 é chamado de Configuração Inteligente.
O Smart Config precisa comunicar informações (o SSID da rede e a frase-chave) de uma rede wifi segura para um dispositivo habilitado para CC3000 que ainda não é capaz de descriptografar o tráfego nessa rede.
Inicialmente, o CC3000 não está conectado à rede (mas pode monitorar o tráfego); portanto, o aplicativo Smart Config não pode enviar suas informações diretamente para o dispositivo. Em vez disso, envia pacotes UDP para outra máquina existente na rede - o ponto de acesso wifi (AP). Como o AP não está interessado em recebê-los é irrelevante, é importante que os pacotes estejam visíveis na rede.
Embora o CC3000 possa monitorar o tráfego que não pode descriptografá-lo, ele não pode nem ter certeza de que um determinado pacote criptografado contém dados UDP. Então, como ele pode selecionar os pacotes UDP ou fazer alguma coisa útil com eles?
Basicamente, o Smart Config codifica suas informações não no conteúdo dos pacotes que está enviando, mas em seu comprimento. A criptografia Wifi afeta o comprimento dos pacotes, mas de maneira consistente, ou seja, adiciona L bytes adicionais ao tamanho de cada pacote, onde L é uma constante.
O aplicativo Smart Config codifica o SSID e a frase-chave nos comprimentos dos pacotes de uma sequência de pacotes UDP. O CC3000 pode ver os pacotes criptografados e seus tamanhos.
Em muitos ambientes, o CC3000 poderá ver o tráfego de várias redes próximas, então como ele pode identificar o tráfego relevante? Mesmo após a criptografia, ainda é possível ver os endereços MAC da origem e destino de um pacote, para que se possa agrupar o tráfego dessa maneira. Além das informações principais que o Smart Config está tentando enviar, também envia regularmente padrões repetidos de tamanho de pacote, de modo que o CC3000 agrupa o tráfego conforme descrito e depois procura esses padrões, quando os encontra no tráfego de um determinado par de origem e destino, ele se concentra na recuperação das informações principais.
Obviamente, é mais do que isso, por exemplo, mesmo depois de o CC3000 encontrar o par de origem e destino, que corresponde ao AP e à máquina que está executando o aplicativo Smart Config, como ele filtra os pacotes do Smart Config de outro tráfego não relacionado entre o AP e a máquina? Eu escrevi tudo isso em uma série de postagens no blog.
A mais detalhada tecnicamente abrange o coração do Smart Config - como ele codifica o SSID e a frase-chave e os transmite de forma que um CC3000 possa buscá-los:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-transmitting-ssid.html
Então, eu tenho um post que é menos técnico, mais uma opinião sobre por que você sempre deve usar uma chave AES com o Smart Config:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-aes.html
Há um detalhe técnico no meio que descreve brevemente como você configuraria uma cifra em Java com a transformação AES necessária para funcionar como o CC3000 espera.
E, finalmente, a prova do pudim - escrevi um aplicativo para emular o comportamento relacionado ao Smart Config do CC3000, ou seja, ele pode recuperar o SSID e a frase-chave transmitida por qualquer aplicativo Smart Config sem precisar decodificar o tráfego de rede relevante. Você pode encontrar onde baixar a fonte e todos os detalhes aqui:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-keyphrase.html
Isso deve permitir testar o comportamento de qualquer aplicativo Smart Config que se escreve, ou seja, é possível ver o que um CC3000 seria capaz de reconstruir a partir dos dados transmitidos pelo aplicativo.
Também tenho mais alguns posts relacionados ao Smart Config / CC3000:
http://depletionregion.blogspot.ch/search/label/CC3000
Para obter algumas informações básicas, também pode ser interessante ler esses tópicos no fórum da TI relevante para o CC3000.
Primeiro, cobrindo o próprio Smart Config:
http://e2e.ti.com/support/low_power_rf/f/851/t/253463.aspx
E um no mDNS, o mecanismo pelo qual um aplicativo Smart Config detecta que um dispositivo habilitado para CC3000 ingressou na rede:
http://e2e.ti.com/support/low_power_rf/f/851/p/290584/1020839.aspx
Nos dois tópicos, algumas mensagens iniciais podem não parecer tão relevantes, mas também há algumas informações interessantes. Mas também há muitas informações imprecisas, portanto, não presuma que todas estejam corretas, mesmo informações de funcionários da TI ou de mim (aprendi muito eventualmente, mas comecei com algumas suposições / crenças incorretas).
As patentes foram mencionadas algumas vezes, no entanto, não consigo encontrar nenhuma evidência de que haja patentes pendentes ou concedidas nessa tecnologia.
fonte
NB Como observado nos comentários a esta resposta e nas outras respostas, a resposta abaixo não reflete o procedimento atual. Deixando isso para o registro histórico.
Parece que o CC3000 está realmente ouvindo (em "modo promíscuo") em todos os canais wifi para uma solicitação de análise de AP, o SSID do AP analisado (e falso) contendo as informações necessárias para que o CC3000 se configure para se conectar ao "verdadeiro" AP através do qual ele se conectará à Internet.
Depois de pesquisar um pouco, encontrei esta descrição da configuração inicial do dispositivo, que deve deixar claro:
http://processors.wiki.ti.com/index.php/CC3000_First_Time_Configuration
Parte mais interessante:
fonte
Veja esta página para obter informações.
O AP não está envolvido nesse processo. O CC3000 está ouvindo os pacotes UDP do telefone celular ou outro dispositivo. Essa comunicação é criptografada com o AES, sendo ambos os dispositivos. O celular envia informações sobre a chave WPA2 do roteador nesses pacotes. O CC3000 conhece a chave AES usada pelo telefone celular, decodifica os dados e se conecta ao roteador.
fonte
A resposta de @Greg Sadetsky (descrevendo "First Time Configuration") resume bem o processo básico. Mas foi revelado na discussão no fórum da TI que o CC3000 mudou o processo pelo qual essa configuração automática é realizada. O novo processo é chamado "smartconfig" em vez de First Time Configuration, e a TI aparentemente está preparando um pedido de patente para a tecnologia. Parece usar um esquema semelhante no qual solicitações especiais de "análise" de Wi-Fi são enviadas, que codificam de maneira inteligente as credenciais de rede do CC3000.
Se você optar por não usar uma chave de criptografia AES para a configuração automática, o algoritmo smartconfig utilizará um método não documentado para ofuscar o SSID do ponto de acesso e a chave de segurança. Isso não é inerentemente seguro, pois se alguém aprender o algoritmo de ofuscação, através de engenharia reversa ou outros meios, a segurança da rede sem fio será comprometida. Depois que o pedido de patente é registrado, é de domínio público e você deve usar uma chave de criptografia AES com o modo de configuração automática do CC3000 para garantir sua segurança.
Em setembro de 2013, o pedido de patente não foi arquivado, com base na análise dos pedidos de patente 2012-2013 da Texas Instruments ( Link de pesquisa de patentes do Google: Texas Instruments, classificado pela data mais recente do depósito ).
TI tem reconheceu a insegurança do modo de configuração não-AES e disse que recomendará o uso do AES e o tornará o padrão no futuro .
fonte