Como @Colin menciona que el esquema que TI usa ahora para comunicar un SSID de red y una frase clave desde una aplicación de configuración a un dispositivo habilitado para CC3000 se llama Configuración inteligente.
Smart Config tiene que comunicar información (el SSID de la red y la frase clave) desde una red wifi segura a un dispositivo habilitado para CC3000 que aún no puede descifrar el tráfico en esa red.
Inicialmente, el CC3000 no está conectado a la red (pero puede monitorear el tráfico), por lo que la aplicación Smart Config no puede enviar su información directamente al dispositivo. En su lugar, envía paquetes UDP a otra máquina existente en la red: el punto de acceso wifi (AP). Que el AP no esté interesado en recibirlos es irrelevante, solo es importante que los paquetes estén visibles en la red.
Si bien el CC3000 puede monitorear el tráfico, no puede descifrarlo, ni siquiera puede decir con certeza que un paquete cifrado dado contenga datos UDP. Entonces, ¿cómo puede elegir los paquetes UDP o hacer algo útil con ellos?
Básicamente, Smart Config codifica su información no en el contenido de los paquetes que envía sino en su longitud. El cifrado Wifi afecta la longitud de los paquetes, pero de manera consistente, es decir, agrega L bytes adicionales al tamaño de cada paquete, donde L es una constante.
La aplicación Smart Config codifica el SSID y la frase clave en las longitudes de paquetes de una secuencia de paquetes UDP. El CC3000 puede ver los paquetes cifrados y sus tamaños.
En muchos entornos, el CC3000 podrá ver el tráfico de múltiples redes cercanas, entonces, ¿cómo puede detectar el tráfico relevante? Incluso después del cifrado, todavía se pueden ver las direcciones MAC del origen y el destino de un paquete, de modo que se puede agrupar el tráfico de esta manera. Además de la información primaria que Smart Config está tratando de enviar, también envía patrones repetidos regularmente de longitudes de paquetes, por lo que el CC3000 agrupa el tráfico como se describe y luego busca dichos patrones, cuando los encuentra en el tráfico de un determinado fuente y destino se enfoca para recuperar la información primaria.
Obviamente, hay más que eso, por ejemplo, incluso una vez que el CC3000 ha encontrado el par de origen y destino, que corresponden al AP y la máquina que ejecuta la aplicación Smart Config, ¿cómo filtra los paquetes de Smart Config de otro tráfico no relacionado que va entre el AP y la máquina? He escrito todo esto en una serie de publicaciones de blog.
El más detallado técnicamente cubre el corazón de Smart Config: cómo codifica el SSID y la frase clave y los transmite de modo que un CC3000 pueda recogerlos:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-transmitting-ssid.html
Luego tengo una publicación que es menos técnica, más un artículo de opinión sobre por qué siempre debes usar una clave AES con Smart Config:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-aes.html
Hay un bit técnico en el medio que describe brevemente cómo configuraría un cifrado en Java con la transformación AES necesaria para funcionar como lo espera el CC3000.
Y finalmente, la prueba del budín: escribí una aplicación para emular el comportamiento relacionado con Smart Config del CC3000, es decir, puede recuperar el SSID y la frase clave transmitida por cualquier aplicación Smart Config sin necesidad de poder descifrar el tráfico de red relevante. Puede encontrar dónde descargar la fuente y todos los detalles aquí:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-keyphrase.html
Esto debería permitir probar el comportamiento de cualquier aplicación Smart Config que se escriba, es decir, se puede ver lo que un CC3000 podría reconstruir a partir de los datos transmitidos por la aplicación.
También tengo algunas publicaciones relacionadas con Smart Config / CC3000 más:
http://depletionregion.blogspot.ch/search/label/CC3000
Para obtener información general, también puede ser interesante leer estos hilos en el foro de TI relevante para el CC3000.
El primero cubre Smart Config en sí:
http://e2e.ti.com/support/low_power_rf/f/851/t/253463.aspx
Y uno en mDNS, el mecanismo por el cual una aplicación Smart Config detecta que un dispositivo habilitado para CC3000 se ha unido a la red:
http://e2e.ti.com/support/low_power_rf/f/851/p/290584/1020839.aspx
En ambos hilos, algunos mensajes iniciales pueden no parecer tan relevantes, pero también hay información interesante mezclada. Pero también hay mucha información inexacta, así que no asuma que toda es correcta, incluso la información de los empleados de TI o de mí (eventualmente aprendí mucho pero comencé con algunas suposiciones / creencias incorrectas).
Las patentes se han mencionado varias veces, sin embargo, no puedo encontrar ninguna evidencia de que haya patentes pendientes o otorgadas en esta tecnología.