Как работает TI CC3000 wifi smart config?

25

Микросхема Wi-Fi ti cc3000 имеет специальный режим интеллектуального конфигурирования, позволяющий выполнить начальную настройку параметров доступа Wi-Fi.

Вики-страница cc3000 дает некоторые подробности о том, как этот процесс работает,

  1. Чип входит в умный конфиг «слушай» режим
  2. Приложение на смартфон отправляет пакет «UDP» с настройками точки доступа
  3. Чип захватывает эти данные и настраивает себя

Я знаю о захвате пакетов и слежке за Wi-Fi, но как чип "расшифровывает" необработанный пакет, чтобы получить какую-либо информацию из него? Я использую wpa2-personal с AES на моем роутере.

srinathhs
источник
3
Спасибо за начало разговора об этом на форумах TI - e2e.ti.com/support/low_power_rf/f/851/p/253463/983616.aspx - я задал дополнительные вопросы там. И не очень довольны ответами. Это кажется CC3000 полагается на безопасность через неизвестность , если один не использует его с помощью ключа AES. Обратите внимание, что они утверждают, что страница processors.wiki.ti.com/index.php/…, на которую указывает @GregSadetsky, устарела, но не указывает, что ее заменяет.
Джордж Хокинс

Ответы:

33

Как @Colin упоминает схему, которую TI теперь использует для передачи сетевого SSID и ключевой фразы из приложения установки на устройство с поддержкой CC3000, называется Smart Config.

Smart Config должен передавать информацию (сетевой SSID и ключевую фразу) из защищенной сети Wi-Fi на устройство с поддержкой CC3000, которое еще не может расшифровать трафик в этой сети.

Изначально CC3000 не подключен к сети (но может отслеживать трафик), поэтому приложение Smart Config не может отправлять свою информацию непосредственно на устройство. Вместо этого он отправляет пакеты UDP на другой существующий компьютер в сети - точку доступа Wi-Fi (AP). То, что AP не заинтересована в их получении, не имеет значения, просто важно, чтобы пакеты были видны в сети.

Хотя CC3000 может отслеживать трафик, он не может его расшифровать, но он даже не может точно сказать, что данный зашифрованный пакет содержит данные UDP. Так как же он может выбрать пакеты UDP или сделать что-нибудь полезное с ними?

В основном Smart Config кодирует свою информацию не в содержимом отправляемых пакетов, а в их длине. Шифрование Wi-Fi влияет на длину пакетов, но согласованным образом, то есть добавляет L дополнительных байтов к размеру каждого пакета, где L - это константа.

Приложение Smart Config кодирует SSID и ключевую фразу в длины пакетов последовательности пакетов UDP. CC3000 может видеть зашифрованные пакеты и их размеры.

Во многих средах CC3000 сможет видеть трафик из нескольких соседних сетей, так как же он может обнаружить соответствующий трафик? Даже после шифрования можно по-прежнему видеть MAC-адреса источника и назначения пакета, поэтому можно группировать трафик таким образом. В дополнение к основной информации, которую Smart Config пытается отправить, он также отправляет регулярно повторяющиеся шаблоны длин пакетов, поэтому CC3000 группирует трафик, как описано, и затем ищет такие шаблоны, когда находит их в трафике данного исходная и целевая пары затем фокусируются на восстановлении первичной информации.

Это, очевидно, и нечто большее, например, даже когда CC3000 обнаружил пару источника и назначения, которые соответствуют точке доступа и машине, на которой запущено приложение Smart Config, как он фильтрует пакеты Smart Config от другого несвязанного трафика, проходящего между AP и машина? Я написал все это в серии постов в блоге.

Наиболее технически подробный рассказывает о сути Smart Config - о том, как он кодирует SSID и ключевую фразу и передает их так, что CC3000 может их подобрать:

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

Тогда у меня есть пост, который менее технический, более подробный, чтобы узнать, почему вы всегда должны использовать ключ AES со Smart Config:

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

В середине есть технический раздел, в котором кратко описывается, как настроить шифр в Java с необходимым преобразованием AES, необходимым для работы, как ожидает CC3000.

И, наконец, доказательство пудинга - я написал приложение для эмуляции поведения CC3000, связанного со Smart Config, то есть он может восстановить SSID и ключевую фразу, переданные любым приложением Smart Config, без необходимости расшифровывать соответствующий сетевой трафик. Вы можете найти где скачать исходники и все подробности здесь:

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

Это должно позволить протестировать поведение любого приложения Smart Config, которое он пишет, т.е. можно увидеть, что CC3000 сможет восстановить из данных, переданных приложением.

У меня также есть еще несколько сообщений, связанных с Smart Config / CC3000:

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

Для некоторой справочной информации также может быть интересно прочитать эти темы на форуме TI, имеющем отношение к CC3000.

Первый, охватывающий сам Smart Config:

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

И один на mDNS, механизм, с помощью которого приложение Smart Config обнаруживает, что устройство с поддержкой CC3000 присоединилось к сети:

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

В обоих потоках некоторые первоначальные сообщения могут показаться не такими актуальными, но есть и некоторая интересная информация. Но есть также много неточной информации, поэтому не думайте, что все это правильно, даже информация от сотрудников TI или от меня (я многому научился, но начал с некоторых неправильных предположений / убеждений).

Патенты упоминались несколько раз, однако я не могу найти никаких доказательств того, что есть патенты, ожидающие или выданные на эту технологию.

Джордж Хокинс
источник
1
Посмотрите этот ответ с соответствующими комментариями на вопрос, который я задал при обмене стеками Cryto - кажется, он показывает ясный уровень техники для идеи кодирования длины пакета в основе Smart Config. Это должно иметь отношение к тому, может ли какая-либо часть процесса быть запатентована.
Джордж Хокинс
3

NB. Как отмечено в комментариях к этому ответу и в других ответах, ответ ниже не отражает текущую процедуру. Оставляя это для исторического отчета.


Похоже, что CC3000 фактически прослушивает (в «неразборчивом режиме») по всем каналам Wi-Fi запрос зондирующего AP, проверенный (и фальшивый) SSID AP, содержащий информацию, которую CC3000 требует для настройки для подключения к «истине» AP, через которую он будет подключаться к Интернету.

После небольшого поиска я нашел это описание конфигурации устройства в первый раз, которое должно прояснить это:

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

Самое интересное немного:

Устройство, такое как мобильный телефон или планшет, используемое для первого конфигурирования, необходимо настроить для подключения к точке доступа со специально созданным SSID. Этот SSID включает в себя имя SSID, к которому мы хотим подключить CC3000, а также информацию о параметрах безопасности, таких как тип безопасности и ключ.

Грег Садецкий
источник
2
Минорная точка - CC3000 всегда использовал режим мониторинга, а не беспорядочный режим. Подход первой конфигурации, описанный в этом ответе и на странице, связанной с TI, был заменен одним из них, называемым Smart Config, который описан в моем ответе .
Джордж Хокинс
2
Этот ответ относится не к подходу SmartConfig, а к старой процедуре, которая больше не используется текущими устройствами.
Йоханнес Оверманн
2

Посмотрите на эту страницу для информации.

AP не участвует в этом процессе. CC3000 прослушивает UDP-пакеты с мобильного телефона или другого устройства. Это сообщение зашифровано с помощью AES, оба устройства имеют его. Мобильный телефон отправляет информацию о ключе маршрутизатора WPA2 в этих пакетах. CC3000 знает ключ AES, используемый мобильным телефоном, декодирует данные и подключается к маршрутизатору.

Густаво Литовский
источник
1
привет, со страницы «устройство, используемое для настройки (смартфон, планшет или ПК), остается подключенным к домашней сети пользователя в процессе настройки (в отличие от других методов, требующих отключения)». Поскольку я не отключаю существующее соединение, любой отправленный пакет будет зашифрован на wpa2, можете ли вы объяснить это дальше?
srinathhs
@srinathhs: я не могу объяснить несоответствие. Пишите на форуме E2E, они ответят.
Густаво Литовский
2

Ответ Грега Садецкого (описывающий «Первоначальную настройку») хорошо описывает основной процесс. Но в ходе обсуждения на форуме TI выяснилось, что CC3000 изменил процесс выполнения этой автоматической настройки. Новый процесс называется «smartconfig» вместо «First Time Configuration», и TI, очевидно, готовит патентную заявку на технологию. Похоже, что используется аналогичная схема, в которой отправляются специальные «пробные» запросы Wi-Fi, которые хитро кодируют сетевые учетные данные для CC3000.

Если вы решите не использовать ключ шифрования AES для автоматической настройки, алгоритм smartconfig использует недокументированный метод, чтобы скрыть SSID и ключ безопасности точки доступа. Это не является безопасным по своей природе, поскольку, если кто-то изучит алгоритм запутывания с помощью обратного инжиниринга или других средств, безопасность беспроводной сети будет поставлена ​​под угрозу. Как только заявка на патент подана, она становится достоянием общественности, и вы должны использовать ключ шифрования AES с режимом автоматической настройки CC3000 для обеспечения безопасности.

По состоянию на сентябрь 2013 г. патентная заявка не была подана на основании рассмотрения патентных заявок на 2012-2013 гг. Texas Instruments ( Google Patent Search Link: Texas Instruments, отсортировано по дате последней подачи ).

TI признал небезопасность режима конфигурации, отличного от AES, и сказал, что они порекомендуют использовать AES и сделают его по умолчанию в будущем .

Колин Д Беннетт
источник
Привет, Колин, ты упоминаешь, что по состоянию на сентябрь 2013 года патент не был подан. Можете ли вы дать источник для этого? Спасибо.
Александрос Маринос
@Alexandros Marinos - я провел онлайн-поиск патентов на патентные заявки, поданные Texas Instruments, и я не нашел ни одного патента, связанного с подключением к беспроводной локальной сети. Я оглянулся назад в прошлом году и не увидел ничего связанного.
Колин Д. Беннет
1
Спасибо за ответ. К сожалению, в США и Великобритании поданные патенты остаются конфиденциальными в течение 18 месяцев. Вы можете убедиться в этом, выполнив поиск в Google по патентным заявкам, поданным за последние 18 месяцев. Таким образом, TI, вероятно, подала заявку на патент по этому вопросу, но заявка недостаточно старая для публикации. Невозможность увидеть этот патент действительно раздражает, так как моя компания также нашла способ достичь того же, но мы не уверены, что это нарушает патентную заявку TI.
Александрос Маринос