Jak @Colin wspomina schemat, że TI teraz używać do komunikowania się z SSID sieci i keyphrase z aplikacji konfiguracyjnej Do CC3000 włączone urządzenie nazywa Inteligentne Config.
Smart Config musi przesyłać informacje (SSID sieci i hasło) z bezpiecznej sieci Wi-Fi do urządzenia obsługującego CC3000, które nie jest jeszcze w stanie odszyfrować ruchu w tej sieci.
Początkowo CC3000 nie jest podłączony do sieci (ale może monitorować ruch), więc aplikacja Smart Config nie może wysłać swoich informacji bezpośrednio do urządzenia. Zamiast tego wysyła pakiety UDP do innego istniejącego komputera w sieci - punktu dostępu Wi-Fi (AP). Nie ma znaczenia, że AP nie jest zainteresowany ich otrzymaniem, ważne jest, aby pakiety były widoczne w sieci.
Chociaż CC3000 może monitorować ruch, którego nie może odszyfrować, nie może nawet z całą pewnością stwierdzić, że dany zaszyfrowany pakiet zawiera dane UDP. Jak więc wybrać pakiety UDP lub zrobić z nimi coś pożytecznego?
Zasadniczo Smart Config koduje informacje nie w treści wysyłanych pakietów, ale w ich długości. Szyfrowanie Wi-Fi wpływa na długość pakietów, ale w spójny sposób, tzn. Dodaje L dodatkowych bajtów do wielkości każdego pakietu, gdzie L jest stałą.
Aplikacja Smart Config koduje identyfikator SSID i hasło w długościach sekwencji pakietów UDP. CC3000 może zobaczyć zaszyfrowane pakiety i ich rozmiary.
W wielu środowiskach CC3000 będzie w stanie zobaczyć ruch z wielu pobliskich sieci, więc w jaki sposób może wykryć odpowiedni ruch? Nawet po szyfrowaniu nadal widać adresy MAC źródła i przeznaczenia pakietu, dzięki czemu można grupować ruch w ten sposób. Oprócz podstawowych informacji, które Smart Config próbuje wysłać, wysyła również regularnie powtarzające się wzorce długości pakietów, więc CC3000 grupuje ruch zgodnie z opisem, a następnie wyszukuje takie wzorce, gdy znajdzie je w ruchu danego następnie para źródłowa i docelowa koncentruje się w celu odzyskania podstawowych informacji.
Jest oczywiście coś więcej, np. Nawet gdy CC3000 znajduje parę źródłową i docelową, które odpowiadają punktowi dostępowemu i maszynie z aplikacją Smart Config, w jaki sposób filtruje pakiety Smart Config od innego niezwiązanego ruchu przechodzącego między AP i maszyna? Wszystko to napisałem w szeregu postów na blogu.
Najbardziej szczegółowy pod względem technicznym obejmuje serce Smart Config - sposób, w jaki koduje SSID i hasło oraz przesyła je w taki sposób, aby CC3000 mógł je odebrać:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-transmitting-ssid.html
Potem mam post mniej techniczny, bardziej opiniujący, dlaczego zawsze powinieneś używać klucza AES w Smart Config:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-aes.html
Pośrodku jest fragment techniczny, który krótko opisuje, jak skonfigurować szyfr w Javie z niezbędną transformacją AES potrzebną do działania zgodnie z oczekiwaniami CC3000.
I na koniec dowód puddingu - napisałem aplikację do emulacji zachowania CC3000 związanego ze Smart Config, tzn. Może odzyskać SSID i słowo kluczowe przesyłane przez dowolną aplikację Smart Config bez potrzeby odszyfrowywania odpowiedniego ruchu sieciowego. Tutaj możesz znaleźć, gdzie pobrać źródło i wszystkie szczegóły:
http://depletionregion.blogspot.ch/2013/10/cc3000-smart-config-and-keyphrase.html
Powinno to umożliwić przetestowanie zachowania dowolnej zapisanej aplikacji Smart Config, tzn. Zobaczyć, co CC3000 byłby w stanie zrekonstruować na podstawie danych przesyłanych przez aplikację.
Mam też kilka innych postów związanych ze Smart Config / CC3000:
http://depletionregion.blogspot.ch/search/label/CC3000
Aby uzyskać pewne informacje ogólne, interesujące może być również przeczytanie tych wątków na forum TI dotyczącym CC3000.
Pierwszy dotyczy samego Smart Config:
http://e2e.ti.com/support/low_power_rf/f/851/t/253463.aspx
I jeden w mDNS, mechanizm, za pomocą którego aplikacja Smart Config wykrywa, że urządzenie obsługujące CC3000 dołączyło do sieci:
http://e2e.ti.com/support/low_power_rf/f/851/p/290584/1020839.aspx
W obu wątkach niektóre początkowe komunikaty mogą nie wydawać się tak trafne, ale zawiera też kilka interesujących informacji. Ale jest też wiele niedokładnych informacji, więc nie zakładaj, że wszystkie są poprawne, nawet informacje od pracowników TI lub ode mnie (w końcu wiele się nauczyłem, ale zacząłem od niepoprawnych założeń / przekonań).
Patenty zostały wspomniane kilka razy, jednak nie mogę znaleźć żadnych dowodów na to, że istnieją lub nie udzielono patentów na tę technologię.