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.