Wie funktioniert TI CC3000 Wifi Smart Config?

25

Der ti cc3000 WLAN-Chip verfügt über einen speziellen Smart-Konfigurationsmodus, der die Erstkonfiguration der WLAN-Zugangsdaten ermöglicht.

Die cc3000-Wiki-Seite enthält einige Details zur Funktionsweise.

  1. Der Chip wechselt in einen Smart Config "Listen" -Modus
  2. Die Anwendung auf dem Smartphone sendet ein "UDP" -Paket mit Zugangspunkteinstellungen
  3. Der Chip erfasst diese Daten und konfiguriert sich selbst

Ich bin mir der Paketerfassung und des WLAN-Schnüffelns bewusst, aber wie "entschlüsselt" der Chip das Rohpaket, um Informationen daraus zu erhalten? Ich verwende wpa2-personal mit AES auf meinem Router.

Srinathhs
quelle
3
Vielen Dank, dass Sie in den TI-Foren ein Gespräch darüber aufgenommen haben - e2e.ti.com/support/low_power_rf/f/851/p/253463/983616.aspx - Ich habe dort weitere Fragen gestellt. Und nicht sehr zufrieden mit den Antworten. Es scheint, dass der CC3000 auf Sicherheit durch Unbekanntheit angewiesen ist, wenn er nicht mit einem AES-Schlüssel verwendet wird. Beachten Sie, dass sie behaupten, dass die Seite processors.wiki.ti.com/index.php/…, auf die von @GregSadetsky verwiesen wird, veraltet ist, aber nicht darauf eingeht, was sie ersetzt.
George Hawkins

Antworten:

33

Wie @Colin erwähnt, wird das Schema, das TI jetzt verwendet, um eine Netzwerk-SSID und eine Schlüsselphrase von einer Setup-Anwendung an ein CC3000-fähiges Gerät zu übertragen, als Smart Config bezeichnet.

Smart Config muss Informationen (die Netzwerk-SSID und die Schlüsselphrase) von einem sicheren WLAN-Netzwerk an ein CC3000-fähiges Gerät übertragen, das den Datenverkehr in diesem Netzwerk noch nicht entschlüsseln kann.

Anfänglich ist der CC3000 nicht mit dem Netzwerk verbunden (kann jedoch den Datenverkehr überwachen ), sodass die Smart Config-Anwendung ihre Informationen nicht direkt an das Gerät senden kann. Stattdessen werden UDP-Pakete an einen anderen vorhandenen Computer im Netzwerk gesendet - den Wifi Access Point (AP). Dass der AP nicht daran interessiert ist, sie zu empfangen, ist irrelevant. Es ist nur wichtig, dass die Pakete im Netzwerk sichtbar sind.

Während der CC3000 den Datenverkehr überwachen kann, kann er ihn nicht entschlüsseln, er kann jedoch nicht sicher sagen, dass ein bestimmtes verschlüsseltes Paket UDP-Daten enthält. Wie kann es also die UDP-Pakete heraussuchen oder irgendetwas Nützliches damit anfangen?

Grundsätzlich codiert Smart Config seine Informationen nicht im Inhalt der gesendeten Pakete, sondern in ihrer Länge. Die WLAN-Verschlüsselung wirkt sich auf die Länge der Pakete aus, jedoch auf konsistente Weise, dh, sie fügt der Größe jedes Pakets L zusätzliche Bytes hinzu, wobei L eine Konstante ist.

Die Smart Config-Anwendung codiert die SSID und die Schlüsselphrase in die Paketlängen einer Sequenz von UDP-Paketen. Der CC3000 kann die verschlüsselten Pakete und ihre Größen sehen.

In vielen Umgebungen kann der CC3000 Datenverkehr von mehreren in der Nähe befindlichen Netzwerken sehen. Wie kann er den relevanten Datenverkehr erkennen? Selbst nach der Verschlüsselung kann man die MAC-Adressen der Quelle und des Ziels eines Pakets sehen, so dass man den Verkehr auf diese Weise gruppieren kann. Zusätzlich zu den primären Informationen, die Smart Config zu senden versucht, werden auch regelmäßig wiederkehrende Muster mit Paketlängen gesendet. Daher gruppiert der CC3000 den Datenverkehr wie beschrieben und sucht dann nach solchen Mustern, wenn er sie im Datenverkehr eines bestimmten Typs findet Das Quell- und Zielpaar wird dann fokussiert, um die primären Informationen wiederherzustellen.

Natürlich gibt es auch mehr als das: Wie filtert der CC3000 die Smart Config-Pakete aus anderem, nicht miteinander in Beziehung stehendem Datenverkehr zwischen dem AP und die Maschine? Ich habe das alles in einer Reihe von Blog-Posts geschrieben.

Das technisch ausführlichste behandelt das Herz von Smart Config - wie es die SSID und die Schlüsselphrase codiert und so überträgt, dass ein CC3000 sie abholen kann:

http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-transmitting-ssid.html

Dann habe ich einen Beitrag, der weniger technisch ist, als vielmehr eine Meinung dazu, warum Sie in Smart Config immer einen AES-Schlüssel verwenden sollten:

http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-aes.html

In der Mitte befindet sich ein technisches Teil, in dem kurz beschrieben wird, wie Sie eine Verschlüsselung in Java mit der erforderlichen AES-Umwandlung konfigurieren, die für den erwarteten Betrieb des CC3000 erforderlich ist.

Und schließlich der Beweis für den Pudding: Ich habe eine Anwendung geschrieben, mit der das Smart Config-bezogene Verhalten des CC3000 nachgebildet werden kann, dh die SSID und die Schlüsselphrase, die von jeder Smart Config-Anwendung übertragen werden, können wiederhergestellt werden, ohne dass der relevante Netzwerkverkehr entschlüsselt werden muss. Hier können Sie den Quellcode und alle Details herunterladen:

http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-keyphrase.html

Dies sollte es einem ermöglichen, das Verhalten jeder Smart Config-Anwendung zu testen, die man schreibt, dh man kann sehen, was ein CC3000 aus den von der Anwendung übertragenen Daten rekonstruieren kann.

Ich habe auch ein paar weitere Beiträge zu Smart Config / CC3000:

http://depletionregion.blogspot.ch/search/label/CC3000

Für einige Hintergrundinformationen kann es auch interessant sein, diese Threads im für den CC3000 relevanten TI-Forum durchzulesen.

Erste, die Smart Config selbst behandelt:

http://e2e.ti.com/support/low_power_rf/f/851/t/253463.aspx

Und einer in mDNS, dem Mechanismus, mit dem eine Smart Config-Anwendung erkennt, dass ein CC3000-fähiges Gerät dem Netzwerk beigetreten ist:

http://e2e.ti.com/support/low_power_rf/f/851/p/290584/1020839.aspx

In beiden Threads scheinen einige anfängliche Nachrichten nicht so relevant zu sein, aber es gibt auch einige interessante Informationen. Es gibt aber auch eine Menge ungenauer Informationen. Gehen Sie also nicht davon aus, dass alle Informationen korrekt sind, auch nicht von TI-Mitarbeitern oder von mir.

Patente wurden einige Male erwähnt, ich kann jedoch keine Beweise dafür finden, dass für diese Technologie Patente angemeldet oder erteilt wurden.

George Hawkins
quelle
1
Sehen Sie sich diese Antwort mit verwandten Kommentaren zu einer Frage an, die ich beim Austausch von Cryto-Stapeln gestellt habe - es scheint einen klaren Stand der Technik für die Idee der Paketlängencodierung im Herzen von Smart Config zu geben. Dies sollte relevant sein, um festzustellen, ob ein Teil des Prozesses patentiert werden kann.
George Hawkins
3

NB Wie in den Kommentaren zu dieser Antwort und in den anderen Antworten angegeben, spiegelt die Antwort unten nicht das aktuelle Verfahren wider. Lassen Sie dies für die historische Aufzeichnung.


Es scheint, als würde der CC3000 tatsächlich (im "Promiscuous-Modus") auf allen WLAN-Kanälen nach einer AP-Prüfanforderung suchen, wobei die SSID des geprüften (und gefälschten) AP die Informationen enthält, die der CC3000 benötigt, um sich selbst zu konfigurieren, um eine Verbindung zum "True" herzustellen. AP, über den eine Verbindung zum Internet hergestellt wird.

Nachdem ich ein bisschen gesucht hatte, fand ich diese Beschreibung der erstmaligen Konfiguration des Geräts, die es klar machen sollte:

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

Das interessanteste Stück:

Ein Gerät wie ein Mobiltelefon oder ein Tablet, das für die erstmalige Konfiguration verwendet wird, muss so konfiguriert werden, dass eine Verbindung zu einem AP mit einer speziell gestalteten SSID hergestellt wird. Diese SSID enthält den Namen der SSID, zu der der CC3000 eine Verbindung herstellen soll, sowie Informationen zu Sicherheitsoptionen wie Sicherheitstyp und Schlüssel.

Greg Sadetsky
quelle
2
Minor Point - Der CC3000 verwendete immer den Monitor-Modus und nicht den Promiscuous-Modus. Der in dieser Antwort und auf der mit TI verknüpften Seite beschriebene Ansatz der Erstkonfiguration wurde durch einen Ansatz mit dem Namen Smart Config ersetzt, der in meiner Antwort behandelt wird .
George Hawkins
2
Diese Antwort bezieht sich nicht auf den SmartConfig-Ansatz, sondern auf die alte Prozedur, die von aktuellen Geräten nicht mehr verwendet wird.
Johannes Overmann
2

Schauen Sie sich diese Seite für Informationen an.

Der AP ist an diesem Prozess nicht beteiligt. Der CC3000 hört die UDP-Pakete vom Mobiltelefon oder einem anderen Gerät ab. Diese Kommunikation wird mit AES verschlüsselt, beide Geräte haben es. Das Mobiltelefon sendet in diesen Paketen Informationen über den WPA2-Schlüssel des Routers. Der CC3000 kennt den vom Mobiltelefon verwendeten AES-Schlüssel, decodiert die Daten und verbindet sich mit dem Router.

Gustavo Litovsky
quelle
1
hi, Von der Seite "bleibt das zur Konfiguration verwendete Gerät (Smartphone, Tablet oder PC) während des Konfigurationsvorgangs mit dem Heimnetzwerk des Benutzers verbunden (im Gegensatz zu anderen Methoden, bei denen die Verbindung getrennt werden muss)." Da ich meine bestehende Verbindung nicht trenne, wird jedes gesendete Paket an wpa2 verschlüsselt. Können Sie das näher erläutern?
Srinathhs
@srinathhs: Ich kann die Diskrepanz nicht erklären. Poste im E2E Forum, sie werden antworten.
Gustavo Litovsky
2

Die Antwort von @Greg Sadetsky (die "Erstkonfiguration" beschreibt) fasst den grundlegenden Prozess gut zusammen. In der Diskussion im TI-Forum wurde jedoch deutlich, dass der CC3000 den Prozess geändert hat, mit dem diese automatische Konfiguration durchgeführt wird. Der neue Prozess heißt "smartconfig" anstelle von "First Time Configuration" und TI bereitet offenbar eine Patentanmeldung für die Technologie vor. Es scheint ein ähnliches Schema zu verwenden, bei dem spezielle Wi-Fi-Prüfanforderungen gesendet werden, die die Netzwerkanmeldeinformationen für den CC3000 geschickt codieren.

Wenn Sie für die automatische Konfiguration keinen AES-Verschlüsselungsschlüssel verwenden, verwendet der smartconfig-Algorithmus eine undokumentierte Methode, um die SSID und den Sicherheitsschlüssel des Zugriffspunkts zu verschleiern. Dies ist von Natur aus nicht sicher, da die Sicherheit des drahtlosen Netzwerks gefährdet ist, wenn jemand den Verschleierungsalgorithmus durch Reverse Engineering oder andere Maßnahmen lernt. Sobald die Patentanmeldung eingereicht wurde, ist sie gemeinfrei und Sie müssen einen AES-Verschlüsselungsschlüssel mit dem automatischen Konfigurationsmodus CC3000 verwenden, um sicher zu sein.

Bis September 2013 wurde die Patentanmeldung nicht eingereicht, basierend auf der Überprüfung der Patentanmeldungen 2012-2013 durch Texas Instruments ( Link zur Google-Patentsuche: Texas Instruments, sortiert nach dem jüngsten Anmeldetag ).

TI hat die Unsicherheit des Nicht-AES-Konfigurationsmodus anerkannt und erklärt, dass die Verwendung von AES empfohlen und in Zukunft als Standard festgelegt wird .

Colin D Bennett
quelle
Hallo Colin, Sie erwähnen, dass das Patent seit September 2013 nicht mehr angemeldet wurde. Können Sie eine Quelle dafür angeben? Vielen Dank.
Alexandros Marinos
@Alexandros Marinos - Ich habe eine Online-Patentrecherche für von Texas Instruments eingereichte Patentanmeldungen durchgeführt und keine Patente gefunden, die mit der Verbindung zu einem WLAN in Verbindung zu stehen scheinen. Ich habe das letzte Jahr durchgesehen und nichts Ähnliches gesehen.
Colin D Bennett
1
Danke für die Antwort. In den USA und im Vereinigten Königreich bleiben eingereichte Patente leider 18 Monate lang vertraulich. Sie können dies feststellen, indem Sie bei Google nach Patentanmeldungen suchen, die in den letzten 18 Monaten eingereicht wurden. Daher hat TI wahrscheinlich ein Patent angemeldet, aber die Anmeldung ist noch nicht alt genug, um veröffentlicht zu werden. Es ist wirklich irritierend, dieses Patent nicht sehen zu können, da mein Unternehmen ebenfalls einen Weg gefunden hat, um das Gleiche zu erreichen, aber wir sind unsicher, ob es gegen die Patentanmeldung von TI verstößt.
Alexandros Marinos