¿Cómo funciona la configuración inteligente wifi TI CC3000?

25

El chip wifi ti cc3000 tiene un modo de configuración inteligente especial, esto es para permitir la configuración inicial de los detalles de acceso wifi.

La página wiki cc3000 brinda algunos detalles sobre cómo funciona el proceso,

  1. El chip entra en un modo inteligente de "escucha" de configuración
  2. La aplicación en el teléfono inteligente envía un paquete "UDP" con la configuración del punto de acceso
  3. El chip captura estos datos y se configura a sí mismo.

Soy consciente de la captura de paquetes y el rastreo de wifi, pero ¿cómo "descifra" el chip el paquete sin procesar para obtener información? Yo uso wpa2-personal con AES en mi enrutador.

srinathhs
fuente
3
Gracias por comenzar una conversación sobre esto en los foros de TI: e2e.ti.com/support/low_power_rf/f/851/p/253463/983616.aspx . He hecho preguntas de seguimiento allí. Y no quedé muy contento con las respuestas. Se parece al CC3000 se basa en la seguridad por oscuridad si no lo está utilizando con una clave AES. Tenga en cuenta que afirman que la página processors.wiki.ti.com/index.php/… a la que apunta @GregSadetsky está desactualizada pero no entra en lo que la reemplaza.
George Hawkins el

Respuestas:

33

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.

George Hawkins
fuente
1
Vea esta respuesta , con comentarios relacionados, a una pregunta que hice en el intercambio de pila Cryto: parece mostrar una técnica anterior clara para la idea de codificación de longitud de paquete en el corazón de Smart Config. Esto debería ser relevante para determinar si alguna parte del proceso puede ser patentada.
George Hawkins el
3

NB Como se señaló en los comentarios a esta respuesta, y en las otras respuestas, la respuesta a continuación no refleja el procedimiento actual. Dejando esto para el registro histórico.


Parece que el CC3000 realmente está escuchando (en "modo promiscuo") en todos los canales wifi para una solicitud de sonda AP, el SSID del AP sondeado (y falso) que contiene la información que el CC3000 requiere para configurarse para conectarse al "verdadero" AP a través del cual se conectará a Internet.

Después de buscar un poco, encontré esta descripción de la configuración inicial del dispositivo que debería dejar en claro:

http://processors.wiki.ti.com/index.php/CC3000_First_Time_Configuration

Lo más interesante:

Un dispositivo como un teléfono móvil o una tableta utilizado para realizar una configuración por primera vez debe configurarse para conectarse a un AP con un SSID especialmente diseñado. Este SSID incluye el nombre del SSID al que queremos que se conecte el CC3000, así como información sobre las opciones de seguridad, como el tipo y la clave de seguridad.

Greg Sadetsky
fuente
2
Punto menor: el CC3000 siempre usaba el modo monitor en lugar del modo promiscuo. El enfoque de Configuración por primera vez descrito en esta respuesta, y en la página vinculada a TI, ha sido reemplazado por uno llamado Configuración inteligente, que se cubre en mi respuesta .
George Hawkins el
2
Esta respuesta no se relaciona con el enfoque SmartConfig sino con el procedimiento anterior que ya no se usa en los dispositivos actuales.
Johannes Overmann
2

Mira esta página para más información.

El AP no está involucrado en este proceso. El CC3000 está escuchando los paquetes UDP desde el teléfono móvil u otro dispositivo. Esta comunicación está encriptada con AES, ambos dispositivos la tienen. El teléfono móvil envía información sobre la clave WPA2 del enrutador en estos paquetes. El CC3000 conoce la clave AES utilizada por el teléfono móvil, decodifica los datos y se conecta al enrutador thr.

Gustavo Litovsky
fuente
1
hola, desde la página "el dispositivo utilizado para configurar (teléfono inteligente, tableta o PC) permanece conectado a la red doméstica del usuario durante el proceso de configuración (a diferencia de otros métodos que requieren desconexión)". Dado que no desconecto mi conexión existente, cualquier paquete enviado se cifrará en wpa2, ¿puede explicarlo más?
srinathhs
@srinathhs: No puedo explicar la discrepancia. Publica en el foro E2E, ellos responderán.
Gustavo Litovsky
2

La respuesta de @Greg Sadetsky (que describe "Configuración por primera vez") resume bien el proceso básico. Pero se reveló en la discusión en el foro de TI que el CC3000 ha cambiado el proceso mediante el cual se realiza esta configuración automática. El nuevo proceso se llama "smartconfig" en lugar de First Time Configuration, y TI aparentemente está preparando una solicitud de patente para la tecnología. Parece utilizar un esquema similar donde se envían solicitudes especiales de "sonda" de Wi-Fi, que codifican inteligentemente las credenciales de red para el CC3000.

Si elige no utilizar una clave de cifrado AES para la configuración automática, el algoritmo smartconfig utiliza un método no documentado para ofuscar el SSID del punto de acceso y la clave de seguridad. Esto no es inherentemente seguro, ya que si alguien aprende el algoritmo de ofuscación, a través de la ingeniería inversa u otros medios, la seguridad de la red inalámbrica está en peligro. Una vez que se presenta la solicitud de patente, es de dominio público y debe usar una clave de cifrado AES con el modo de configuración automática CC3000 para estar segura.

Hasta septiembre de 2013, la solicitud de patente no se había presentado, según la revisión de las solicitudes de patente 2012-2013 por parte de Texas Instruments ( Enlace de búsqueda de patentes de Google: Texas Instruments, ordenado por la fecha de presentación más reciente )

TI ha reconocido la inseguridad del modo de configuración no AES y ha dicho que recomendarán usar AES y convertirlo en el predeterminado en el futuro .

Colin D Bennett
fuente
Hola Colin, mencionas que hasta septiembre de 2013, la patente no se había presentado. ¿Puedes dar una fuente para eso? Gracias.
Alexandros Marinos
@Alexandros Marinos - Hice una búsqueda de patentes en línea para solicitudes de patentes presentadas por Texas Instruments, y no encontré ninguna patente que parezca relacionada con la conexión a una LAN inalámbrica. Miré hacia atrás el año pasado y no vi nada relacionado.
Colin D Bennett
1
Gracias por la respuesta. En los Estados Unidos y el Reino Unido, las patentes archivadas permanecen confidenciales durante 18 meses, lamentablemente. Puede ver esto haciendo una búsqueda de patentes en Google para solicitudes de patentes presentadas en los últimos 18 meses. Por lo tanto, TI probablemente ha solicitado una patente sobre esto, pero la aplicación no tiene la edad suficiente para ser publicada. No poder ver esta patente es realmente irritante ya que mi compañía también ha encontrado una manera de lograr lo mismo, pero no estamos seguros de si infringe la solicitud de patente de TI.
Alexandros Marinos