- Профили Bluetooth
-
Bluetooth (/bluːtuːθ/, переводится синий зуб, в честь Харальда I Синезубого[1][2]; разговорные названия: блутус, блутуз, синезуб) — производственная спецификация беспроводных персональных сетей (Wireless personal area network, WPAN).
Bluetooth обеспечивает обмен информацией между такими устройствами как карманные и обычные персональные компьютеры, мобильные телефоны, ноутбуки, принтеры, цифровые фотоаппараты, мышки, клавиатуры, джойстики, наушники, гарнитуры на надёжной, недорогой, повсеместно доступной радиочастоте для ближней связи.
Bluetooth позволяет этим устройствам сообщаться, когда они находятся в радиусе до 10-100 метров друг от друга (дальность очень сильно зависит от преград и помех), даже в разных помещениях.
История создания и развития
Спецификация Bluetooth была разработана группой Bluetooth Special Interest Group (Bluetooth SIG)[1][3], которая была основана в 1998 году. В неё вошли компании IBM, Toshiba и Microsoft, Motorola, вступили в неё как ассоциированные члены. Впоследствии Bluetooth SIG и IEEE достигли соглашения, на основе которого спецификация Bluetooth стало частью стандарта IEEE 802.15.1 (дата опубликования — 14 июня 2002 года)
Класс Максимальная мощность, мВт Максимальная мощность, дБм Радиус действия (приблизительно), м 1 100 20 100 2 2,5 4 10 3 1 0 1 Принцип действия Bluetooth
Радиосвязь Bluetooth осуществляется в ISM-диапазоне (англ. Industry, Science and Medicine), который используется в различных бытовых приборах и беспроводных сетях (свободный от лицензирования диапазон 2,4-2,48 ГГц). Спектр сигнала формируется по методу FHSS (Frequency Hopping Spread Spectrum — псевдослучайная перестройка рабочей частоты). Метод FHSS прост в реализации, обеспечивает устойчивость к широкополосным помехам, а оборудование стоит недорого.
Согласно алгоритму FHSS, в Bluetooth несущая частота сигнала скачкообразно меняется 1600 раз в секунду (всего выделяется 79 рабочих частот, а в Японии, Франции и Испании полоса у́же — 23 частотных канала). Последовательность переключения между частотами для каждого соединения является псевдослучайной и известна только передатчику и приёмнику, которые каждые 625 мкс (один временной слот) синхронно перестраиваются с одной несущей частоты на другую. Таким образом, если рядом работают несколько пар приёмник-передатчик, то они не мешают друг другу. Этот алгоритм является также составной частью системы защиты конфиденциальности передаваемой информации: переход происходит по псевдослучайному алгоритму и определяется отдельно для каждого соединения. При передаче цифровых данных и аудиосигнала (64 Кбит/с в обоих направлениях) используются различные схемы кодирования: аудио-сигнал не повторяется (как правило), а цифровые данные в случае утери пакета информации будут переданы повторно. Без помехоустойчивого кодирования это обеспечивает передачу данных со скоростями 723,2 Кбит/с с обратным каналом 57,6 Кбит/с, или 433,9 Кбит/c в обоих направлениях.
Спецификации
Устройства версий 1.0 (1998) и 1.0B имели плохую совместимость между продуктами различных производителей. В 1.0 и 1.0B была обязательной передача адреса устройства (BD_ADDR) на этапе установления связи, что делало невозможной реализацию анонимности соединения на протокольном уровне и было основным недостатком данной спецификации.
В Bluetooth 1.1 было исправлено множество ошибок, найденных в 1.0B, добавлена поддержка для нешифрованных каналов, индикация уровня мощности принимаемого сигнала (RSSI).
В версии 1.2 была добавлена технология адаптивной перестройки рабочей частоты (AFH), что улучшило сопротивляемость к электромагнитной интерференции (помехам) путём использования разнесённых частот в последовательности перестройки. Также увеличилась скорость передачи и добавилась технология eSCO, которая улучшала качество передачи голоса путём повторения повреждённых пакетов. В HCI добавилась поддержка трёх-проводного интерфейса UART.
Bluetooth версии 2.0 (2004) полностью совместим с версиями 1.x. Основным нововведением стала поддержка EDR (Enhanced Data Rate), что позволило повысить скорость передачи до 2,1 Мбит/с.
В Bluetooth версии 2.1 (2007) добавлена технология расширенного запроса характеристик устройства (для дополнительной фильтрации списка при спаривании), энергосберегающая технология Sniff Subrating, которая позволяет увеличить продолжительность работы устройства от одного заряда аккумулятора в 3-10 раз. Кроме того обновленная спецификация существенно упрощает и ускоряет установление связи между двумя устройствами, позволяет производить обновление ключа шифрования без разрыва соединения, а также делает указанные соединения более защищёнными, благодаря использованию технологии Near Field Communication.
Профили Bluetooth
Нижеуказанные профили определены и одобрены группой разработки Bluetooth SIG:
Advanced Audio Distribution Profile (A2DP)
A2DP разработан для передачи двухканального стерео аудиопотока, например музыки, к беспроводной гарнитуре или любому другому устройству. Профиль полностью поддерживает низкокомпресированный кодек Sub_Band_Codec (SBC) и опционально поддерживает MPEG-1,2 аудио, MPEG-2,4 AAC и ATRAC, способен поддерживать кодеки определённые производителем.
Audio / Video Remote Control Profile (AVRCP)
Этот профиль разработан для управления стандартными функциями телевизоров, Hi-Fi оборудования и проч. То есть позволяет создавать устройства с функциями дистанционного управления. Может использоваться в связке с профилями A2DP или VDPT.
Basic Imaging Profile (BIP)
Профиль разработан для пересылки изображений между устройствами и включает возможность изменения размера изображения и конвертирование в поддерживаемый формат принимающего устройства.
Basic Printing Profile (BPP)
Профиль позволяет пересылать текст, e-mails, vCard и другие элементы на принтер. Профиль не требует от принтера специфических драйверов, что выгодно отличает его от HCRP.
Common ISDN Access Profile (CIP)
Профиль для доступа устройств к ISDN.
Cordless Telephony Profile (CTP)
Профиль беспроводной телефонии.
Device ID Profile (DID)
Профиль позволяет идентифицировать класс устройства, производителя, версию продукта.
Dial-up Networking Profile (DUN)
Протокол предоставляет стандартный доступ к интернету или другому телефонному сервису через Bluetooth. Базируется на SPP, включает в себя PPP и AT команды определённые в спецификации ETSI 07.07.
Fax Profile (FAX)
Профиль предоставляет интерфейс между мобильным или стационарным телефоном и ПК на котором установлено программное обеспечение для факсов. Поддерживает ITU T.31 и/или ITU T.32 набор AT команд. Голосовой звонок или передача данных профилем не поддерживается.
File Transfer Profile (FTP_profile)
Профиль обеспечивает доступ к файловой системе устройства. Включает стандартный набор команд FTP, позволяющий получать список директорий, изменения директорий, получать, передавать и удалять файлы. В качестве транспорта используется OBEX, базируется на GOEP.
General Audio / Video Distribution Profile (GAVDP)
Профиль является базой для A2DP и VDP.
Generic Access Profile (GAP)
Профиль является базой для всех остальных профилей.
Generic Object Exchange Profile (GOEP)
Профиль является базой для других профилей передачи данных, базируется на OBEX.
Hard Copy Cable Replacement Profile (HCRP)
Профиль предоставляет простую альтернативу кабельного соединения между устройством и принтером. Минус профиля в том, что для принтера необходимы специфичные драйвера, что делает профиль неуниверсальным.
Hands-Free Profile (HFP)
Профиль используется для соединения беспроводной гарнитуры и телефона, передаёт монозвук в одном канале.
Human Interface Device Profile (HID)
Обеспечивает поддержку устройств с HID (Human Interface Device), таких как мышки, джойстики, клавиатуры и проч. Использует медленный канал, работает на пониженной мощности.
Headset Profile (HSP)
Профиль используется для соединения беспроводной гарнитуры и телефона. Поддерживает минимальный набор AT команд спецификации GSM 07.07 для обеспечения возможности совершать звонки, отвечать на звонки, завершать звонок, настраивать громкость.
Intercom Profile (ICP)
Обеспечивает голосовые звонки между Bluetooth-совместимыми устройствами.
LAN Access Profile (LAP)
LAN Access profile обеспечивает возможность доступа Bluetooth-устройствам к вычислительным сетям LAN, WAN или Internet посредством другого Bluetooth-устройства, которое имеет физическое подключение к этим сетям. Bluetooth-устройство использует PPP поверх
Object Push Profile (OPP)
Базовый профиль для пересылки «объектов», таких как изображения, виртуальные визитные карточки и др. Передачу данных инициирует отправляющее устройство (клиент), а не приёмное (сервер).
Personal Area Networking Profile (PAN)
Профиль позволяет использовать протокол Bluetooth Network Encapsulation в качестве транспорта через Bluetooth-соединение.
Phone Book Access Profile (PBAP)
Профиль позволяет обмениваться записями телефонных книг между устройствами.
Serial Port Profile (SPP)
Профиль базируется на спецификации ETSI TS07.10 и использует протокол
Service Discovery Application Profile (SDAP)
Профиль используется для предоставления информации о профилях, которые использует устройство-сервер.
SIM Access Profile (SAP, SIM)
Профиль позволяет получить доступ к SIM-карте телефона, что позволяет использовать одну SIM-карту для нескольких устройств.
Synchronisation Profile (SYNCH)
Профиль позволяет синхронизировать личные данные (PIM). Профиль заимствован из спецификации инфракрасной связи и адаптирован группой Bluetooth SIG.
Video Distribution Profile (VDP)
№ От К Данные Длина (бит) Прочая информация 1 A B IN_RAND 128 plaintext 2 A B LK_RAND(A) 128 XORed with Kinit 3 B A LK_RAND(B) 128 XORed with Kinit 4 A B AU_RAND(A) 128 plaintext 5 B A SRES 32 plaintext 6 B A AU_RAND(B) 128 plaintext 7 A B SRES 32 plaintext Представим ситуацию: злоумышленнику удалось прослушать эфир и во время процедуры сопряжения, он перехватил и сохранил все сообщения. Далее найти PIN можно используя перебор.
Прежде всего необходимо составить сам алгоритм перебора. Мы располагаем перехваченными величинами IN_RAND (он нешифрованный) и BD_ADDR (напомним, что адреса устройств видны в эфире) и запускаем алгоритм E22. Ему передаем вышеперечисленные данные и наш предполагаемый PIN. В результате мы получим предполагаемое значение Kinit. Выглядит оно примерно так:
Kinit = E22[IN_RAND, BD_ADDR(B), PIN'] где PIN' — предполагаемый нами PIN-код
Далее, сообщения 2 и 3 подвергаются XOR с только что полученным Kinit. Следовательно, следующим шагом мы получим LK_RAND(A) и LK_RAND(B) в чистом виде. Теперь мы можем высчитать предполагаемое значение Kab, для чего проделываем следующую операцию:
LK_K(A) = E21[BD_ADDR(A), LK_RAND(A)] где LK_K(A|B) — это промежуточные величины
LK_K(B) = E21[BD_ADDR(B), LK_RAND(B)]
Kab = LK_K(A) XOR LK_K(B)
Проверим PIN. Возьмем полученный Kab и перехваченный AU_RAND(A) и вычислим SRES(A).
После сравниваем полученный результат с SRES(A)', хранящийся в сообщении номер 5:
SRES(A) = E1[AU_RAND(A), Kab, BD_ADDR(B)]
Если SRES(A) == SRES(A)' — PIN успешно угадан. В противном случае повторяем последовательность действий заново с новой величиной PIN'.
Первым, кто заметил эту уязвимость, был англичанин Олли Вайтхауз (Ollie Whitehouse) в апреле 2004 года. Он первым предложил перехватить сообщения во время сопряжения и попытаться вычислить PIN методом перебора, используя полученную информацию. Тем не менее, метод имеет один существенный недостаток: атаку возможно провести только в случае, если удалось подслушать все аутентификационные данные. Другими словами, если злоумышленник находился вне эфира во время начала сопряжения или же упустил какую-то величину, то он не имеет возможности продолжить атаку.
Re-pairing атака (атака на пересопряжение)
Вулу и Шакеду удалось найти решение трудностей, связанных с атакой Вайтхауза. Был разработан второй тип атаки. Если процесс сопряжения уже начат и данные упущены, мы не сможем закончить атаку. Но был найден выход. Нужно заставить устройства заново инициировать процесс сопряжения (отсюда и название). Данная атака позволяет в любой момент начать вышеописанную pairing атаку.
Рассмотрим следующую ситуацию. Допустим, что устройства уже успели связаться, сохранили ключ Kab и приступили к Mutual authentication. От нас требуется заставить устройства заново начать pairing. Всего было предложено три метода атаки на пересопряжение, причём все из них зависимы от качества реализации bluetooth-ядра конкретного устройства. Ниже приведены методы в порядке убывания эффективности:
- За pairing следует фаза аутентификации. Master-устройство отсылает AU_RAND и ждет в ответ SRES. В стандарте декларирована возможность потери ключа связи. В таком случае slave посылает «LMP_not_accepted», сообщая master об утере ключа. Поэтому основная цель злоумышленника — отследить момент отправки AU_RAND master-устройством и в ответ внедрить пакет содержащий LMP_not_accepted. Реакцией master будет реинициализация процесса pairing. Причём это приведёт к аннулированию ключа связи на обоих устройствах.
- Если успеть отправить IN_RAND slave-устройству непосредственно перед отправкой master-устройством величины AU_RAND, то slave будет уверен, что на стороне master утерян ключ связи. Это опять же приведёт к процессу реинициализации сопряжения, но уже инициатором будет slave.
- Злоумышленник ожидает отправки master-устройством AU_RAND и отправляет в ответ случайно сгенерированный SRES. Попытка аутентификации провалена. Далее следует череда повторных попыток аутентификации(количество зависит от особенностей реализации устройств). При условии, что злоумышленник продолжает вводить master-устройство в заблуждение, вскоре (по счётчику неудачных попыток) устройствами будет принято решение о реинициализации сопряжения.
(Как видно, все эти атаки требуют отправки нужных сообщений в нужный момент времени. Стандартные устройства, доступные в продаже, почти со 100 % вероятностью не подойдут для этих целей.)
Использовав любой из этих методов, злоумышленник может приступить к базовой атаке на сопряжение. Таким образом, имея в арсенале эти две атаки, злоумышленник может беспрепятственно похитить PIN-код. Далее имея PIN-код он сможет установить соединение с любым из этих устройств. И стоит учесть, что в большинстве устройств безопасность на уровне служб, доступных через bluetooth, не обеспечивается на должном уровне. Большинство разработчиков делает ставку именно на безопасность установления сопряжения. Поэтому последствия действий злоумышленника могут быть различными: от кражи записной книжки телефона до установления исходящего вызова с телефона жертвы и использования его как прослушивающего устройства.
Эти методы описывают, как принудить устройства «забыть» link key, что само по себе ведёт к повторному pairing’у, а значит, злоумышленник может подслушать весь процесс с самого начала, перехватить все важные сообщения и подобрать PIN.
Оценка времени подбора PIN-кода
В протоколе Bluetooth активно используются алгоритмы E22, E21, E1, основанные на шифре Брюс Шнайер (Bruce Schneier). Подбор PIN’a на практике прекрасно работает. Ниже приведены результаты полученные на Pentium IV HT на 3 ГГц:
Длина (знаков) Время (сек) 4 0,063 5 0,75 6 7,609 Конкретные реализации вышеописанных атак могут работать с различной скоростью. Способов оптимизации множество: особые настройки компилятора, различные реализации циклов, условий и арифметических операций. Авиша Вул (Avishai Wool) и Янив Шакед (Yaniv Shaked) совершили прорыв, найдя способ сократить время перебора PIN-кода в разы. Эта оптимизация выходит за рамки данной статьи, но, стоит отметить, что речь идёт об оптимизации базовых алгоритмов стека bluetooth. В свете современных технологий (в частности nVidia CUDA) результаты могли быть ещё лучше.
Увеличение длины PIN-кода не является панацеей и лишь незначительно увеличивает время перебора. Только сопряжение устройств в безопасном месте может частично защитить от описанных атак. Пример — bluetooth гарнитура или автомобильный handsfree. Инициализация связи (при включении) с данными устройствами может происходить многократно в течение дня, и не всегда у пользователя есть возможность находиться при этом в защищённом месте. Впрочем, атаки подобного вида не будут слишком популярны, по крайней мере, пока не будет реализовано доступных аппаратных средств и универсальных программных пакетов.
Внедрение NFC является эффективным решением против данного вида атак, но в целом, ситуация не изменится к лучшему до появления на рынке достаточного количества решений на Bluetooth 2.1 (с поддержкой NFC), а в силу их обратной совместимости с предыдущими версиями протокола, вышеизложенные атаки будут актуальны ещё достаточно продолжительное время.
Применение
Hardware
Радиус работы устройств BT2 не превышает 15 метров, для BT1 до 100 м (класс А). Эти числа декларируются стандартом для прямой видимости, в реальности не стоит ожидать работу на расстоянии более 10-20 метров. Такого дальнодействия недостаточно для эффективного применения атак на практике. Поэтому, ещё до детальной проработки алгоритмов атаки, на Defcon-2004 публике была представлена антенна-винтовка BlueSniper, разработанная Джонном Херингтоном (John Herington). Устройство подключается к портативному устройству — ноутбуку/КПК и имеет достаточную направленность и мощность (эффективная работа до 1,5 км).
Примечания
- ↑ 1 2 About the Bluetooth SIG (англ.). Bluetooth SIG. Проверено 20 марта 2008.
- ↑ Jim Kardach. How Bluetooth got its name (англ.). United Business Media (3 мая 2008). Проверено 20 марта 2008.
- ↑ Вишневский и др. Широкополосные беспроводные сети передачи данных. — М.: Техносфера, 2005. — 592 с.
См. также
- UWB
Ссылки
- Bluetooth 3.0
- Bluetooth tutorial
- Спецификации(англ.)
- Bluetooth-безопасность
- Bluetooth 2.0/EDR — хорошо доделанное старое
- Yaniv Shaked and Avishai Wool. Cracking the Bluetooth PIN
- NFC Forum
- Sony Global — FeliCa
- Mifare.net
- Bluetooth в автомобиле
Способы выхода в Интернет Проводные · DSL · Кабель · Волоконная оптика · Линия электропитания · Dial-up · · · Домовая сеть · Оптоволоконная связь Беспроводные · Bluetooth · iBurst · · WiBro/ · UMTS-TDD · HSPA · · Спутник · LTE · Wireless USB · · · WiGig
Wikimedia Foundation. 2010.