Практическая реализация атаки «человек посередине» на сопрягаемые Bluetooth-устройства на примере беспроводной клавиатуры
Автор: Круглик С.А., Пономарв Е.С., Вецлер Д.И.
Журнал: Труды Московского физико-технического института @trudy-mipt
Рубрика: Информатика, математика, управление
Статья в выпуске: 4 (24) т.6, 2014 года.
Бесплатный доступ
В статье представлена атака «человек посередине» на сопряжённые Bluetoothклавиатуру и компьютер. Наиболее технологически сложная часть атаки, связанная с захватом и анализом пакетов, передаваемых между компьютером и клавиатурой, впервые выполнена на экономически доступном оборудовании.
Защита информации, безопасность беспроводных сетей
Короткий адрес: https://sciup.org/142186026
IDR: 142186026
Текст научной статьи Практическая реализация атаки «человек посередине» на сопрягаемые Bluetooth-устройства на примере беспроводной клавиатуры
Технология стандарта IEEE 802.15.1 (Bluetooth) позволяет связывать между собой разнотипные устройства, находящиеся на незначительном удалении друг от друга (до 100 м). В связи с низкой стоимостью Bluetooth-модулей, сегодня данная технология практически повсеместно представлена в различных беспроводных периферийных устройствах, таких как компьютерные мышки, клавиатуры, гарнитуры и др. С каждым годом число используемых в мире Bluetooth-устройств растёт [1].
В статье рассмотрена атака на беспроводную Bluetooth-клавиатуру и способы защиты от неё. Защищенность периферийных устройств данного типа является особенно актуальной в связи с типом данных, которые могут быть доступны злоумышленнику при успешном осуществлении атаки. Этими данными могут быть как конфиденциальная служебная переписка, так и пароли от интернет-банков и социальных сетей.
2. Безопасность Bluetooth
Безопасность Bluetooth основывается на использовании многоступенчатой аутентификации и поточного шифрования (используется поточный шифр E0). Общая схема настройки защищённого канала связи имеет следующий вид (рис. 1) [2].
Рис. 1. Общая схема настройки защищённого канала связи в Bluetooth: к.а. – ключ аутентификации, к.и. – ключ инициализации
-
1. Каждое устройство на основании своего уникального BD _ADDRa (уникальный идентификационный адрес Bluetooth-устройства – аналог MAC-адреса в сетях Ethernet), случайного числа и общего PIN-кода генерирует ключ инициализации.
-
2. Оба устройства генерируют ключ аутентификации с использованием модифицированного шифра SAFER+.
-
3. Оба устройства обмениваются ключами аутентификации с использованием ключа инициализации, который после этого сбрасывается.
-
4. Устройства проходят процедуру аутентификации с использованием схемы запрос– ответ.
-
5. Устройства генерируют ключи шифрования из ключей аутентификации, BD_ADDRов устройств и 128-битных случайных чисел. Важно отметить, что подобную процедуру устройства проходят лишь при первичной установке соединения. Если же уже сопряженное устройство выключается, то при включении выполняется лишь шаг 5, т.к. все предварительные процедуры пройдены и все необходимые ключи уже есть в памяти устройств.
Также безопасность Bluetooth обеспечивается особенностями применяемых в нем методов доступа к каналу. Тут прежде всего имеется в виду скачкообразная перестройка частоты, заключающаяся в разделении всей отведённой для передачи полосы на подканалы шириной 1 МГц (используемый диапазон и несущие частоты подканалов представлены на табл. 1, а спектр – на рис. 2). Передача ведется на определенном подканале в течениe 625 мс, по прошествии которых происходит смена несущей частоты в последовательности, определяемой номером канала [3].
Таблица1
Используемый диапазон и несущие частоты подканалов Bluetooth в разных странах
Страна |
Диапазон, МГц |
Несущая частота подканалов, МГц |
Допустимые номера подканалов, k |
США и Европа (включая Россию, но кроме Испании и Франции) |
2400,8 – 2483,5 |
2402 + k |
0...79 |
Испания |
2471,8 – 2497,8 |
2473 + k |
0...23 |
Франция |
2445,8 – 2475,8 |
2449 + k |
0...22 |
Япония |
2446,5 – 2483,5 |
2454 + k |
0...22 |

Рис. 2. Спектральная картина при использовании скачкообразной перестройки частоты
Несмотря на это, за последние несколько лет были обнаружены некоторые уязвимости Bluetooth. Наиболее существенной из которых был подбор не слишком длинного (до 8 символов) PIN-кода, за относительно небольшое время на относительно малопроизводительных персональных компьютерах. Так, например, подбор 6-значного PIN-кода на процессоре Pentium IV HT с тактовой частотой 3 ГГц занял в среднем 7.609 секунд [4]. Однако проведение атаки с использованием данной уязвимости осложнено не только многоступенчатой аутентификацией (в которой PIN-код используется только для генерации ключа инициализации на первом этапе), но и необходимостью прослушивания всего процесса сопряжения с самого начала с обязательным захватом всех пакетов.
Также известно о некоторых успешно проведенных атаках «человек посередине», одним из наиболее трудоёмких звеньев которых является получение BD _ADDRов сопряжённых устройств [5, 6]. В представленных работах данная задача решается либо с помощью продуктов компании Frontline Test Equipment Inc., стоимость которых начинается от нескольких тысяч долларов США [7], либо с помощью метода грубой силы (перебор всевозможных 48-битных BD_ADDRob), который занимает около года для всего диапазона BD _ADDRов. При этом не исключается возможность случайного получения BD _ADDRа ненужного нам соседнего устройства, которое не ведёт обмен данными, а просто имеет включенный Bluetooth-модуль. В статье рассмотрена частично модифицированная реализация атаки подобного типа, в которой получение BD_ADDRа осуществляется устройством, стоимость которого составляет около 100 долларов США, что на порядок меньше.
3. Атака «человек посередине» на сопрягаемые Bluetooth-устройства 3.1. Начальные сведения об атаке «человек посередине»
Атака «человек-посередине» входит в класс активных атак, в ходе которых криптоаналитик имеет возможность подслушивать, перехватывать и преобразовывать сообщения по своему усмотрению: задерживать, искажать с помощью перестановки пакетов, устраивать обрыв связи.
Атака «человек посередине» подразумевает, что криптоаналитик разрывает канал связи и, встраиваясь между Алисой и Бобом, получает от них сообщения, а от себя отправляет новые, сфальсифицированные. В результате ни Алиса, ни Боб не замечают, что общаются с криптоаналитиком, а не друг с другом (рис. 3) [8].

Рис. 3. Общая схема атаки «человек посередине»
3.2. Алгоритм атаки
Алгоритм произведённой атаки следующий (рис. 4):
1. Криптоаналитик получает уникальные BD_ADDRbi клавиатуры (Боб) и компьютера (Алиса) жертвы и с помощью своего компьютера с ОС Linux клонирует Боба. В результате чего компьютер криптоаналитика становится абсолютно идентичным Бобу.
2. Криптоаналитик разрывает установившееся соединение между Алисой и Бобом. Хотим подчеркнуть, что тут речь идёт именно о полном разрыве соединения с необходимостью прохождения пользователем всех 5 шагов установления соединения для дальнейшего использования клавиатуры.
3. Криптоаналитик, используя дополнительный USB–Bluetooth-модуль своего компьютера, с помощью команды sudo hidd --connect создаёт незащищённое соединение с Бобом в тот момент, когда он входит в режим сопряжения. Данное соединение не требует ввода PIN-кода и никак не идентифицируется на клавиатуре (Бобе), из-за чего Алиса даже не подозревает о том, что криптоаналитик сопряжён с Бобом. В результате данных действий криптоаналитику становятся доступны все данные, которые передает Боб.
4. Криптоаналитик, используя встроенный Bluetooth-модуль своего компьютера (полностью идентичный Бобу), принимает запрос на сопряжение от Алисы и, используя по-
- лученный им от Боба PIN-код, сопрягается с ней. В результате чего он «встраивается» в канал меду Алисой и Бобом и, используя программный симулятор клавиатуры, посылающий схожий с реальной клавиатурой тип пакетов и имеющий аналогичный функционал имеет возможность читать данные, предаваемые между Алисой и Бобом, никак не выдавая себя или же видоизменять данную информацию. 3.3. Клонирование клавиатуры

Рис. 4. Схема проведенной атаки
Из схемы атаки и предшествующего обзора безопасности Bluetooth становится понятно, что наиболее трудоёмкими этапами являются клонирование клавиатуры, а также разрыв установившегося соединения.
Каждое Bluetooth-устройство характеризуется уникальным 48-битным BD _ADDRom, структура которого представлена на рис. 5, классом устройства, а также полем capability [9].
NAP |
UAP |
LAP |
16 бит |
8 бит |
24 бит |

ID компании
Рис. 5. Структуре BD _ ADDR
Первым этапом клонирования клавиатуры является захват BD _ADDRob сопрягаемых Bluetooth-устройств. В связи с применением скачкообразной перестройки частоты, использование стандартного встроенного в компьютер Bluetooth-модуля для захвата пакетов и получения из их заголовков BD_ADDRob по аналогии с сетями стандарта IEEE 802.11 (Wi-Fi) невозможно. Для решения данной задачи нами был взят за основу open-source проект Ubertooth Zero [10]. Для возможности самостоятельной сборки данного устройства, а также уменьшения конечной стоимости нами была переработана разводка платы и изменена схема питания. В результате было собрано устройство, представленное на рис. 6.
Данное устройство с высокой скоростью сканирует весь используемый Bluetooth-диапазон (именно поэтому в его основе лежит Bluetooth-трансивер Texas Instrunents CC 2400), находит подканал, на котором в данный момент ведется передача, и демодулирует пакет, модулированный при помощи двоичной чаcтотной манипуляции с фильтром Гаусса. В результате чего в нашем распоряжении оказывается LAP-часть BD _ADDR, входящая в заголовок каждого пакета (рис. 7) [3].
Для нахождения UAP-части BD _ADDR в данном устройстве применяется обратный алгоритм формирования поля контроля ошибок (HEC) заголовка полученного пакета. Данное поле формируется исходя из UAP и остальных элементов заголовка. При этом заголовок пакета разбавляется псеводслучайной последовательностью, определяемой таймером главного устройства пикосети (CLK-1) [11].

Рис. 6. Собранное устройство
3 бита |
4 бита |
1 бита |
1 бита |
1 бита |
8 бита |
AM_ADDR |
TYPE |
FLOW |
ARON |
SEQN |
НЕС |
Рис. 7. Структура заголовка Bluetooth-пакета
Для определения таймера главного устройства пикосети мы отслеживаем временные промежутки между соседними пакетами, т.к. они определяются именно таймером главного устройства. Это возможно, т.к. используемый в устройстве трансивер Texas Instruments CC 2400 обладает всем требованиям спецификации Bluetooth, из-за чего различия по частоте между главным устройством отслеживаемой пикосети и нашим незначительны, но все же могут повлиять на результаты определения CLK-1. По этой причине в некоторых случаях мы получали неверное значение UAP.
Для нахождения NAP-части BD_ADDR мы использовали то, что она входит в часть BD_ADDRа, определяемую производителем, и то, что мы знаем UAP, также принадлежащую ей. В результате поиска по открытой базе производителей Bluetooth-устройств [12] (большую часть Bluetooth-устройств делают всего несколько производителей), мы получаем всего несколько вариантов возможных значений NAP при данном UAP и производителе. Окончательно NAP определяется перебором этих вариантов.
В результате данных действий из-за структуры заголовка Bluetooth-пакета мы можем получить только BD_ADDR устройства, которому адресуются пакеты. Но структура трафика между Bluetooth-клавиатурой и компьютером такова, что пакеты посылаются только от клавиатуры к компьютеру, из-за чего применение данной техники для определения BD_ADDRа клавиатуры не представляется возможным. Поэтому нам необходимо вынудить компьютер отправить хотя бы один пакет клавиатуре. Это можно сделать, заставив пользователя перезапустить клавиатуру, т.е. выполнить пункт 5 установки защищённого канала связи Bluetooth. В результате чего в общей структуре трафика появляется несколько пакетов, адресованных клавиатуре, из которых мы сможем узнать LAP-часть ее BD_ADDRа (рис. 8).
$ystl*e=1417024039 Ch«74 LAP=00acbe егг=Ө СІк1ӨӨп$=2759623311 СІк1=44154Ө $=42 П«-1ӨӨ $ПГ=58 $y$ti*e=1417024039 сһ=74 LAP=00acbe егг=Ө сІк1ӨӨп$=2759823461 clkl=441572 $=-42 n=-99 $пг=57 $y$ti*e=1417024039 Сһ=74 ІАР=ӨОасЬе егг=О сШӨОп$=2759923512 сШ=441588 $=-42 П=-99 $пг=57 $y$tlae=1417024039 Сһ=59 LAP=R569a егг=Ө СІк1ӨӨп$=2760505994 clkl=441681 $=-48 П=-99 $ПГ=51 systiee»1417024039 сһ=12 LAP=lc569a егг«Ө сІк1ӨӨп$=276Ө9Ө7194 clkl«441745 $«-47 п=-98 snr«51 $y$ti*e=1417024039 сһ=7б LAP=lc569a err=0 сlkl80ns=2761605610 clkl=441857 s=-48 n=-10O snr=52 systiee=1417024039 ch=14 LAP=0Oacbe err=0 cIkl0Ons=2762808825 clkl=442049 $=-47 n=-95 snr=48 $y$t1*6=1417024046 Ch=50 LAP=00dCbe err=l СІк1ӨӨп$=283Ө6Ө5Ө2Ө Clkl=452897 $=-86 П=-1ӨӨ 5ПГ=14 $у$ІІ*6»1417024046 Ch= 3 LAP=0Oacbe err=0 Clkl0On$=2831098397 clkl«452976 $»-43 П»-1ӨӨ $ПГ=57 systi*e=1417024046 ch- 3 LAP=00acbe err=0 clkl0Ons=2831106376 clkl=452977 $=-38 n«-99 snr=61 $y$ti*e=1417024047 ch=15 LAP=00acbe err=o clkl0Ons=28431O0629 clkl=454896 $=-42 n=-99 $nr=57 $y$ti*e=1417024048 Ch=36 LAP=00acbe err=8 Clkl80n$=2848357345 Clkl=455737 S=-65 n=-91 $nr=26 $y$tiee=1417024050 ch=45 LAP=00acbe err-1 clkl0On$=2872850839 Clkl=459656 $=-5Ө П=-1ӨӨ $nr=50
Рис. 8. Структура Bluetooth-трафика при перезапуске клавиатуры
Для вынуждения пользователя осуществить перезапуск клавиатуры нами была осуществлена dDos-атака путём отправки множества L2Cap-пакетов с нескольких устройств на BD_ADDR компьютера. Также для этих целей может использоваться стандартная процедура отправки ping-запросов (l2ping в ОС Linux) на BD_ADDR компьютера. В результате данных действий у пользователя возникают неполадки в соединении с клавиатурой, и он вынужден перезапустить клавиатуру (рис. 9).

Выавыпвплыыпырпороыпрочр ииииоиоиоиоиориолриорлиол иолно лиолролролролролрррррррррррррр рррррррррррррррррррррррррррррр рррррррррррррррррррррррррррррр рррррррррррррррррррррррррррррр рррррррррррррсвлфсгангангапнгэл тгнпптттгптгпгпгпгпгпгпптттпт rTrrrrrrfrrrrrrrrrrrrrrrrrrrrrrrrrnrrrrrr
ГГГНГЧМЛГНПГПГЫЛГ ПГПГПГПГП
Приложение Общий доступ к Bluetooth остановлено
Да пппплпппппплпппплплппппппппплп пплплплплплппплплплплплплппплп ППЛПЛПЛПЛПЛПППЛООООООООООООООО оооооооооооооооооооооооооооооо оооооооооооооооооооооооооооооо ООО
Ррлоролролролрорлрлор олролролрлопппрппппп nnnnnnnj
Рис. 9. Сбой соединения с клавиатурой
Так как мы имеем малое число пакетов между пользователем и клавиатурой, то использовать описанную выше технику определения UAP-части BD_ADDRа не представляется возможным (для этого в среднем необходимо более 40 пакетов). Тут нам помогает тот факт, что большинство беспроводных Bluetoot-клавиатур производит лишь несколько производителей, и мы можем осуществить перебор всевозможных значений UAP и NAP за относительно небольшое время.
В результате данных действий мы имеем в своём распоряжении BD_ADDR клавиатуры и компьютера, но для клонирования клавиатуры этого недостаточно – нам также необходимо изменить еще один параметр – класс, которым также характеризуется каждое Bluetooth-устройство. Значение данного параметра для клавиатуры известно, и мы можем переходить к её клонированию путём изменения BD_ADDRa и поля class встроенного в компьютер Bluetooth-модуля.
Теперь встроенный Bluetooth-модуль криптоаналитика полностью отображается как Боб (клавиатура жертвы), но при этом из-за того, что поле capability жестко связано с Bluetooth-модулем и отвечает за тип сообщения авторизации (т.н. «окошко ввода PIN-кода» (рис. 10)), успешное проведение атаки на данном этапе невозможно.

Bluetooth
Pairing request for
Mi2(AC:F7:F3:00:AC:BE)
Confirm value for authentication: 48602
Confirm Deny Default Action
Рис. 10. Окошко ввода PIN-кода при установке соединения с компьютером криптоаналитика с изменённым классом и BD ADDR om
Возможность обхода данного ограничения имеется в старых версиях стека протоколов Bluetooth Bluez для ОС Linux (версии 3.33, 3.34, 3.35), в которых можно искусственно привязать тип сообщения авторизации к классу устройства, который уже соответствует беспроводной клавиатуре. К сожалению, данные версии Bluez крайне нестабильны в новых версиях ОС Linux, из-за чего нам пришлось использовать ОС Ubintu 8.04 2008 г. выпуска с предустановленным стеком протоколов Bluetooth Bluez 3.34.
В результате описанных выше действий нам удалось полностью клонировать Боба, что даёт возможность успешно осуществить атаку.
3.4. Разрыв установившегося соединения
Из-за особенностей Bluetooth проведением dDos-атаки можно добиться лишь кратковременного затруднения в функционировании установленного канала связи, что, скорее всего, вынудит пользователя лишь перезапустить клавиатуру, но не переустановить соединение, как это необходимо нам для «вхождения в канал» между Алисой и Бобом.
Для наших целей мы отправляем Алисе запрос на сопряжение от имени Боба при помощи команды sudo bluez-simple-agent hci0, но т.к. Алиса уже сопряжена с Бобом, то она сбрасывает установившееся соединение. В результате связь между Алисой и Бобом полностью теряется и не восстанавливается при перезапуске клавиатуры. Пользователь вынужден заново инициализировать процедуру сопряжения Алисы и Боба, что нам и необходимо.
4. Заключение
В работе показана уязвимость сопрягаемых Bluetooth-устройств в общем и беспроводных Bluetooth-клавиатур в частности. Возможность проведения атаки с помощью устройства стоимостью около 100 долларов США открывает широкие перспективы для использования данной технологии злоумышленниками. В связи с этим пользователям необходимо воздерживаться от инициализации процедуры пересопряжения при наличии кратковременных затруднений в работе Bluetooth в предыдущие моменты времени, а производителям задуматься либо о полном запрете установления незащищённых соединений, либо о какой-то их идентификации.
Список литературы Практическая реализация атаки «человек посередине» на сопрягаемые Bluetooth-устройства на примере беспроводной клавиатуры
- Haataja K. Security threats and countermeasures in bluetooth-enabled systems//PhD Thesis University of Kupio. -2009
- Брэгг Р., Родс-Оусли М., Страссберг К. Безопасность сетей. Полное руководство. -М.: Издательство «ЭКОМ», 2006
- Шахнович И. Современные технологии беспроводной связи. -М.: Техносфера, 2006
- Shaked Y., Wool A. Cracking the Bluetooth PIN//3rd International Conference on Mobile Systems, Application and Services. -2005. -P. 39-55
- Ma W., Mbugua A., Poon D. Keystoke Logging of a Wireless Keyboard. URL: http://courses.ece.ubc.ca/eece412/term_project/reports/2007/keylogging_of_bluetoooth_keyboard.pdf/(дата обращения: 17.01.2015)
- Cuthbert T., Gontarek A., Jensen E., Robbins P. A Bluetooth Keyboard Attack. URL: https://www.researchgate.net/publication/228460028_A_Bluetooth_Keyboard_Attack/(дата обращения: 17.01.2015)
- BCD Microelectronics official website. Prices for Frontline Test Equipment Bluetooth analyzers. URL: http://www.bcdmicro.co.uk/shop.html#!/Bluetooth-Analyzers/c/9963649/offset=0&sort=normal (дата обращения: 17.01.2015)
- Габидулин Э.М., Кшевецкий А.С., Колыбельников А.И. Защита информации: учеб. пособие. -М.: МФТИ, 2011
- IEEE standard association. IEEE 802.15 Standard for Information Technology. URL: http://standards.ieee.org/about/get/802/802.15.html (дата обращения: 17.01.2015)
- Offical website of Ubertooth project. Ubertooth zero project information. URL: http://ubertooth.sourceforge.net/hardware/zero/(дата обращения: 17.01.2015)
- Осман М. Обнаружение Bluetooth UAP. URL: http://www.securitylab.ru/analytics/454733.php (дате обращения: 17.01.2015)
- Bluetooth devices database. URL: http://hwaddress.com/company.html (дата обращения: 17.01.2015)