Come funziona la configurazione intelligente wifi TI CC3000?


25

Il chip wifi ti cc3000 ha una speciale modalità di configurazione intelligente, che consente la configurazione iniziale dei dettagli di accesso wifi.

La pagina wiki cc3000 fornisce alcuni dettagli su come funziona il processo,

  1. Il chip entra in una modalità di "ascolto" di configurazione intelligente
  2. L'applicazione su smartphone invia un pacchetto "UDP" con impostazioni del punto di accesso
  3. Il chip acquisisce questi dati e si configura da solo

Sono a conoscenza dell'acquisizione di pacchetti e dello sniffing wifi, ma in che modo il chip "decodifica" il pacchetto non elaborato per ricavarne informazioni? Uso wpa2-personal con AES sul mio router.


3
Grazie per aver iniziato una conversazione su questo nei forum TI - e2e.ti.com/support/low_power_rf/f/851/p/253463/983616.aspx - Ho fatto domande di follow-up lì. E non sono stato molto contento delle risposte. E sembra il CC3000 si basa sulla sicurezza attraverso l'oscurità se uno non sta usando con una chiave AES. Nota che affermano che la pagina processors.wiki.ti.com/index.php/… indicata da @GregSadetsky è obsoleta ma non entra in ciò che la sostituisce.
George Hawkins,

Risposte:


33

Come @Colin menziona lo schema che TI ora utilizza per comunicare un SSID di rete e una frase chiave da un'applicazione di configurazione a un dispositivo abilitato CC3000 si chiama Smart Config.

Smart Config deve comunicare informazioni (SSID di rete e frase chiave) da una rete wifi sicura a un dispositivo abilitato CC3000 che non è ancora in grado di decrittografare il traffico su quella rete.

Inizialmente CC3000 non è collegato alla rete (ma può monitorare il traffico), quindi l'applicazione Smart Config non può inviare le sue informazioni direttamente al dispositivo. Invece, invia pacchetti UDP a un'altra macchina esistente sulla rete: il punto di accesso wifi (AP). Che l'AP non sia interessato a riceverli è irrilevante, è solo importante che i pacchetti siano visibili sulla rete.

Mentre CC3000 può monitorare il traffico che non può decrittografarlo, non può nemmeno dire con certezza che un determinato pacchetto crittografato contiene dati UDP. Quindi, come può scegliere i pacchetti UDP o fare qualcosa di utile con loro?

Fondamentalmente Smart Config codifica le sue informazioni non nel contenuto dei pacchetti che sta inviando ma nella loro lunghezza. La crittografia WiFi influenza la lunghezza dei pacchetti, ma in modo coerente, ovvero aggiunge L byte aggiuntivi alla dimensione di ogni pacchetto, dove L è una costante.

L'applicazione Smart Config codifica l'SSID e la frase chiave nelle lunghezze dei pacchetti di una sequenza di pacchetti UDP. CC3000 può vedere i pacchetti crittografati e le loro dimensioni.

In molti ambienti il ​​CC3000 sarà in grado di vedere il traffico proveniente da più reti vicine, quindi come può individuare il traffico rilevante? Anche dopo la crittografia si possono ancora vedere gli indirizzi MAC dell'origine e della destinazione di un pacchetto in modo da poter raggruppare il traffico in questo modo. Oltre alle informazioni primarie che Smart Config sta tentando di inviare, invia anche schemi ripetitivi periodici di lunghezze di pacchetti, quindi il CC3000 raggruppa il traffico come descritto e quindi cerca tali schemi, quando li trova nel traffico di un dato coppia sorgente e destinazione su cui si concentra per recuperare le informazioni primarie.

Ovviamente c'è anche di più, ad es. Anche quando CC3000 ha trovato la coppia sorgente e destinazione, che corrispondono all'AP e alla macchina che esegue l'applicazione Smart Config, come filtra i pacchetti Smart Config da altro traffico non correlato che passa tra AP e la macchina? Ho scritto tutto in una serie di post sul blog.

Il più tecnicamente dettagliato copre il cuore di Smart Config: come codifica l'SSID e la frase chiave e li trasmette in modo che un CC3000 possa prenderli:

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

Poi ho un post che è meno tecnico, più un'opinione sul perché dovresti sempre usare una chiave AES con Smart Config:

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

Nel mezzo c'è un bit tecnico che descrive brevemente come configurare un codice in Java con la trasformazione AES necessaria per funzionare come previsto da CC3000.

E infine la prova del budino: ho scritto un'applicazione per emulare il comportamento relativo a Smart Config di CC3000, ovvero può recuperare l'SSID e la frase chiave trasmessi da qualsiasi applicazione di Smart Config senza dover essere in grado di decrittografare il traffico di rete pertinente. Puoi trovare dove scaricare la fonte e tutti i dettagli qui:

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

Ciò dovrebbe consentire di testare il comportamento di qualsiasi applicazione Smart Config che si scrive, vale a dire si può vedere cosa un CC3000 sarebbe in grado di ricostruire dai dati trasmessi dall'applicazione.

Ho anche alcuni post relativi a Smart Config / CC3000:

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

Per alcune informazioni di base può anche essere interessante leggere questi thread sul forum TI relativi al CC3000.

Il primo riguarda Smart Config stesso:

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

E uno su mDNS, il meccanismo con cui un'applicazione Smart Config rileva che un dispositivo abilitato CC3000 si è unito alla rete:

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

In entrambi i thread alcuni messaggi iniziali potrebbero non sembrare così rilevanti ma ci sono anche alcune informazioni interessanti mescolate. Ma ci sono anche molte informazioni imprecise, quindi non dare per scontato che siano tutte corrette, anche le informazioni dai dipendenti di TI o da me (alla fine ho imparato molto ma ho iniziato con alcune ipotesi / credenze errate).

I brevetti sono stati citati alcune volte, tuttavia non riesco a trovare alcuna prova che ci siano brevetti in corso o concessi su questa tecnologia.


1
Vedi questa risposta , con relativi commenti, a una domanda che ho posto sullo scambio di stack Cryto: sembra mostrare una tecnica nota per l'idea di codifica della lunghezza del pacchetto nel cuore di Smart Config. Ciò dovrebbe essere rilevante per stabilire se qualsiasi parte del processo può essere brevettata.
George Hawkins,

3

NB Come indicato nei commenti a questa risposta, e nelle altre risposte, la risposta di seguito non riflette la procedura corrente. Lasciando questo per il record storico.


Sembra che il CC3000 stia effettivamente ascoltando (in "modalità promiscua") su tutti i canali wifi una richiesta di sonda AP, l'SSID dell'AP sondato (e falso) contenente le informazioni che il CC3000 richiede per configurarsi per connettersi al "vero" AP attraverso il quale si collegherà a Internet.

Dopo aver cercato un po ', ho trovato questa descrizione della prima configurazione del dispositivo che dovrebbe chiarire:

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

Bit più interessante:

Un dispositivo come un telefono cellulare o un tablet utilizzato per eseguire la configurazione per la prima volta deve essere configurato per connettersi a un AP con un SSID appositamente predisposto. Questo SSID include il nome dell'SSID a cui vogliamo connettere CC3000, nonché informazioni sulle opzioni di sicurezza come tipo e chiave di sicurezza.


2
Punto minore: CC3000 utilizzava sempre la modalità monitor anziché la modalità promiscua. L'approccio First Time Configuration descritto in questa risposta, e nella pagina TI collegata, è stato sostituito da uno chiamato Smart Config, che è trattato nella mia risposta .
George Hawkins,

2
Questa risposta non si riferisce all'approccio SmartConfig ma alla vecchia procedura che non è più utilizzata dai dispositivi attuali.
Johannes Overmann,

2

Guarda questa pagina per informazioni.

L'AP non è coinvolto in questo processo. CC3000 sta ascoltando i pacchetti UDP dal telefono cellulare o da un altro dispositivo. Questa comunicazione è crittografata con AES, con entrambi i dispositivi. Il telefono cellulare invia informazioni sulla chiave WPA2 del router in questi pacchetti. Il CC3000 conosce la chiave AES utilizzata dal telefono cellulare, decodifica i dati e si collega al router.


1
ciao, Dalla pagina "il dispositivo utilizzato per configurare (smartphone, tablet o PC) rimane connesso alla rete domestica dell'utente durante il processo di configurazione (al contrario di altri metodi che richiedono la disconnessione)". Dato che non disconnetto la mia connessione esistente, qualsiasi pacchetto inviato verrà crittografato su wpa2, puoi spiegarlo ulteriormente?
srinathhs

@srinathhs: non riesco a spiegare la discrepanza. Pubblica sul forum E2E, risponderanno.
Gustavo Litovsky,

2

La risposta di @Greg Sadetsky (che descrive "First Time Configuration") riassume bene il processo di base. Ma è stato rivelato nella discussione sul forum TI che CC3000 ha cambiato il processo mediante il quale viene eseguita questa configurazione automatica. Il nuovo processo si chiama "smartconfig" invece di First Time Configuration e TI sta apparentemente preparando una domanda di brevetto per la tecnologia. Sembra utilizzare uno schema simile in cui vengono inviate speciali richieste "probe" Wi-Fi, che codificano abilmente le credenziali di rete per CC3000.

Se si sceglie di non utilizzare una chiave di crittografia AES per la configurazione automatica, l'algoritmo smartconfig utilizza un metodo non documentato per offuscare il SSID del punto di accesso e la chiave di sicurezza. Questo non è intrinsecamente sicuro poiché se qualcuno impara l'algoritmo di offuscamento, attraverso il reverse engineering o altri mezzi, la sicurezza della rete wireless è compromessa. Una volta che la domanda di brevetto è stata presentata, è di dominio pubblico ed è necessario utilizzare una chiave di crittografia AES con la modalità di configurazione automatica CC3000 per essere sicuri.

A partire da settembre 2013 la domanda di brevetto non è stata depositata, in base alla revisione delle domande di brevetto 2012-2013 da parte di Texas Instruments ( link di ricerca brevetti Google: Texas Instruments, ordinati per data di deposito più recente ).

TI ha riconosciuto l'insicurezza della modalità di configurazione non AES e ha affermato che raccomanderà di utilizzare AES e renderlo predefinito in futuro .


Ciao Colin, dici che a settembre 2013 il brevetto non è stato depositato. Puoi dare una fonte per questo? Grazie.
Alexandros Marinos,

@Alexandros Marinos - Ho fatto una ricerca di brevetti online per domande di brevetto depositate da Texas Instruments e non ho trovato alcun brevetto che sembra correlato alla connessione a una LAN wireless. Ho guardato indietro l'anno scorso e non ho visto nulla di correlato.
Colin D Bennett,

1
Grazie per la risposta. Negli Stati Uniti e nel Regno Unito, i brevetti depositati rimangono purtroppo riservati per 18 mesi. Puoi vederlo facendo una ricerca di brevetti su Google per domande di brevetto depositate negli ultimi 18 mesi. Quindi probabilmente TI ha richiesto un brevetto su questo, ma l'applicazione non è abbastanza vecchia per essere pubblicata. Non essere in grado di vedere questo brevetto è davvero irritante in quanto la mia azienda ha anche trovato un modo per ottenere la stessa cosa, ma non siamo sicuri che violi la domanda di brevetto di TI.
Alexandros Marinos,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.