Como funciona a configuração inteligente de TI CC3000 wifi?

25

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,

  1. O chip entra no modo inteligente de "escuta" da configuração
  2. Aplicativo no smartphone envia um pacote "UDP" com configurações de ponto de acesso
  3. 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.

srinathhs
fonte
3
Obrigado por iniciar uma conversa sobre isso nos fóruns da TI - e2e.ti.com/support/low_power_rf/f/851/p/253463/983616.aspx - eu fiz perguntas de acompanhamento lá. E não fiquei muito feliz com as respostas. Ele parece o CC3000 conta com segurança pela obscuridade se não for usá-lo com uma chave AES. Observe que eles afirmam que a página processors.wiki.ti.com/index.php/… apontada por @GregSadetsky está desatualizada, mas não entra no que a substitui.
George Hawkins

Respostas:

33

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.

George Hawkins
fonte
11
Veja esta resposta , com comentários relacionados, a uma pergunta que fiz na troca de pilha Cryto - parece mostrar claramente a arte anterior para a idéia de codificação de tamanho de pacote no coração do Smart Config. Isso deve ser relevante para saber se alguma parte do processo pode ser patenteada.
George Hawkins
3

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:

Um dispositivo como um telefone celular ou tablet usado para executar uma primeira vez que a Configuração precisa ser configurada para conectar-se a um AP com um SSID especialmente criado. Esse SSID inclui o nome do SSID ao qual queremos que o CC3000 se conecte, além de informações sobre opções de segurança, como chave e tipo de segurança.

Greg Sadetsky
fonte
2
Ponto secundário - o CC3000 sempre utilizava o modo monitor em vez do modo promíscuo. A abordagem First Configuration Configuration descrita nesta resposta e na página vinculada à TI foi substituída por uma chamada Smart Config, que é abordada na minha resposta .
George Hawkins
2
Esta resposta não está relacionada à abordagem SmartConfig, mas ao procedimento antigo que não é mais usado pelos dispositivos atuais.
Johannes Overmann
2

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.

Gustavo Litovsky
fonte
11
oi, Na página "o dispositivo usado para configurar (smartphone, tablet ou PC) permanece conectado à rede doméstica do usuário durante o processo de configuração (em oposição a outros métodos que exigem desconexão)". Como eu não desconecto minha conexão existente, qualquer pacote enviado será criptografado no wpa2, você pode explicar isso mais?
srinathhs
@srinathhs: Não sei explicar a discrepância. Poste no fórum E2E, eles responderão.
Gustavo Litovsky
2

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 .

Colin D Bennett
fonte
Olá Colin, você mencionou que, em setembro de 2013, a patente não foi registrada. Você pode dar uma fonte para isso? Obrigado.
Alexandros Marinos
@Alexandros Marinos - fiz uma pesquisa de patentes on-line para solicitações de patentes registradas pela Texas Instruments e não encontrei patentes que pareçam relacionadas à conexão a uma LAN sem fio. Olhei para trás no ano passado e não vi nada relacionado.
Colin D Bennett
11
Obrigado pela resposta. Nos EUA e no Reino Unido, as patentes registradas permanecem confidenciais por 18 meses, infelizmente. Você pode ver isso fazendo uma pesquisa de patentes no Google para solicitações de patentes registradas nos últimos 18 meses. Portanto, a TI provavelmente solicitou uma patente sobre isso, mas o aplicativo não tem idade suficiente para ser publicado. Não poder ver esta patente é realmente irritante, pois minha empresa também encontrou uma maneira de conseguir a mesma coisa, mas não temos certeza se ela infringe o pedido de patente da TI.
Alexandros Marinos