Обзор безопасности протокола передачи данных Bluetooth

Автор: Михайлов Дмитрий Михайлович, Стариковский Андрей Викторович, Смирнов Александр Сергеевич, Зуйков Александр Васильевич, Хабибуллин Тимур Рамильевич

Журнал: Спецтехника и связь @st-s

Статья в выпуске: 1, 2013 года.

Бесплатный доступ

Статья посвящена обеспечению безопасности протокола передачи данных Bluetooth – одному из наиболее популярных в настоящее время протоколов передачи данных. Авторами рассматривается процесс взаимодействия двух устройств по Bluetooth, в том числе создание ключа связи, аутентификация и шифрование.

Ключ, аутентификация, шифрование, корреляционная атака

Короткий адрес: https://sciup.org/14967137

IDR: 14967137

Текст научной статьи Обзор безопасности протокола передачи данных Bluetooth

В настоящее время все большее распространение получают технологии беспроводной связи. Они развиваются быстрыми темпами и предоставляют пользователям разнообразные возможности для связи. Наиболее распространенными на данный момент являются Bluetooth и Wi-Fi. Данные технологии предназначены для передачи информации между устройствами, а также для доступа к глобальной сети Интернет. Наиболее активно Bluetooth технологии используются в сфере мобильных устройств. Bluetooth позволяет передавать данные с телефона на телефон или на компьютер, выходить в Интернет, использовать гарнитуру и т.д.

Bluetooth – это беспроводная технология с малым радиусом действия (не более ста метров), активно использующаяся в настоящее время во всевозможных электронных устройствах [1]. Bluetooth работает в нелицензирован- ном диапазоне частот (2,4000 – 2,4835 ГГц) [2]. Начиная с версии 1.2, при передаче данных протокол использует метод расширения спектра со скачкообразной перестройкой частоты. Всего выделено 79 частот (f = 2402 + k, k = 0, … ,78 MГц), переключение между которыми происходит 1600 раз в секунду. Последовательность переключения между частотами является псевдослучайной и различна для каждого соединения. Использование данного метода позволяет улучшить помехоустойчивость, а также незначительно повышает безопасность протокола, так как последовательность «прыжков» широковещательно передается при инициации соединения.

Взаимодействие двух устройств по Bluetooth начинается с процедуры сопряжения (Pairing), при котором одно из устройств является главным (Master), а другое – ведомым (Slave). Пользова- тели, желающие осуществить передачу данных, вводят на своих устройствах PIN-код, который представляет собой любую UTF-8 строку длиной 16 байт. PIN-код вместе с адресом ведомого Bluetooth-устройства и 128-битным случайным числом (IN_RAND) используется алгоритмом E22 для создания 128-битного ключа инициализации (Kinit), который затем будет применен при создании ключа связи. [3]

Для того чтобы создать разделяемый ключ, каждое из устройств генерирует случайное 128-битное число (LK_RAND), которое затем вместе с адресом устройства шифруется алгоритмом E21 на ключе Kinit (побитовый XOR) и полученный COMB_KEY отправляется другому устройству. Так как каждому из взаимодействующих устройств известен свой COMB_KEY (ключ инициализации и адрес второго устройства), то каждое из устройств

Обмен зашифрованными случайными величинами

Вычисление секретных ключей

Создание ключа инициализации

Получение ключа связи

Устройство Bluetooth 1

Устройство Bluetooth 2

Рис. 1. Создание ключа связи

может легко получить COMB_KEY второго устройства. Ключ связи (Klink) получается конкатенацией секретных ключей K1 и K2 обоих устройств. [3] Описанная процедура представлена на рис. 1 .

После процедуры сопряжения следует процесс аутентификации. При этом одно из устройств является предъяви- телем, а второе верификатором. Предъявитель – это устройство, которое пытается подтвердить свою подлинность, верификатор – устройство, проверяющее подлинность. Возможен также сценарий взаимной проверки, при котором после прохождения аутентификации одним из устройств происходит смена ролей. Проверка подлинности базиру- ется на проверке знания секретного ключа связи (Klink) (рис. 2).

В случае успешного завершения процесса аутентификации, начинается процесс шифрования, если процесс аутентификации закончился неудачей, Bluetooth-устройство ждет некоторый промежуток времени, прежде чем повторить попытку. Этот временной

Устройство Bluetooth 1

Устройство Bluetooth 2

Рис. 2. Процесс аутентификации

интервал экспоненциально увеличивается, чтобы предотвратить попытку перебора ключа связи.

Основу процедуры шифрования Bluetooth составляет потоковый шифр E0, который для генерации гамма-последовательности использует регистры сдвига с линейной обратной связью. Выходная гамма-последовательность накладывается на открытый текст с помощью операции XOR, после чего результат отправляется принимающему устройству. Дешифрование полностью симметрично. Шифруются только содержимое Bluetooth-пакетов; заголовки не шифруются никогда.

Для создания ключа шифрования (Kc) используется алгоритм E3, входными данными которого являются ключ связи (Klink), 128-битное случайное число (EN_RAND), которое посылается от Master к Slave в открытом виде, и 96-бит COF (Ciphering Offset Number), основанный на ACO, получившимся в результате процесса аутентификации. Длина ключа шифрования варьируется от 8 до 128 бит (но всегда кратна 8 битам). Каждое устройство может работать с несколькими разными дли-

Устройство Bluetooth 1                               Устройство Bluetooth 2

Рис. 3. Процесс шифрования

нами Kc, поэтому устройства проходят фазу согласования, при которой выбирается максимальная длина ключа, поддерживаемая обоими устройствами. В качестве входных данных алгоритм E0 использует Bluetooth адрес Master-устройства, 26 бит системного времени Master-устройства и ключ шифрования Kc. В случае когда выбранная устройствами длина ключа шифрования меньше 128 бит, ключ будет уменьшен (Кc Kc`) до установленного значения. [4]

Процесс шифрования представлен в общем виде на рис. 3 .

В основе алгоритмов E1, E2, E3 лежит симметричный блочный шифр SAFER+, который имеет уязвимости к некоторым видам атак, однако на сегодняшний момент обладает высоким запасом криптостойкости. Поточный шифр E0 имеет уязвимость к корреляционным атакам, о которой было известно разработчикам алгоритма, однако из-за высокой частоты ресинхронизации угроза была признана малозначимой. Долгое время атака оставалась чисто теоретической, однако в настоящее время наиболее эффективная из предложенных корреляционных атак позволяет получить ключ шифрования за 238 операций; если же известны первые 24 бита – 224 фрей- мов. Учитывая максимальное количество фреймов – 226, можно заключить, что данная атака может быть применена на практике [5, 6].

Возможность проведения корреляционной атаки связана с наличием двух упущений в алгоритме E0. Первое из них связано с наличием смещения в конечном автомате (FSM), имеющем четыре бита состояния, один из которых комбинируется с выходами четырех регистров сдвига с линейной обратной связью (linear feedback shift register – LFSR) с помощью операции XOR, формируя выходной бит гамма-последовательности. При удачном выборе комбинирующей функции вероятность того, что данный бит равен 1 (или соответственно 0) близка к 50%. Однако в FSM существует смещение:

Pr (ct XOR ct+1 XOR ct+2 XOR ct+3 XOR ct+4 = 1) = 1/2 + 25/256, где ct – выходной бит FSM в момент времени t.

Таким образом, если ключ шифрования подобран верно, то гамма-последовательность будет иметь описанное выше смещение, в противном случае – не будет.

Второй недостаток алгоритма в том, что после загрузки входных значений (Klink, 128-битное случайное число, 48-битный адрес Master устройства, 26 бит системных часов Master устройства) в регистры LFSR, происходит генерация последовательности длиной 200 бит, последние 128 из которых перегружаются обратно в LFSR. При этом никаких преобразований не происходит за исключением изменения последовательности байт. Следовательно, легко отследить связь битов LFSR, использующихся для формирования выходного бита гамма-последовательности, с входными данными алгоритма. Помимо недостаточно высокой криптостойкости использующегося для шифрования алгоритма, существует также недостаток в процедуре сопряжения. Безопасность протокола основана на секретности PIN-кода, длина которого должна составлять 16 байт, однако на практике, как правило, его длина составляет 4 или 6 десятичных символов (зачастую цифры), что позволяет, перехватив все использующиеся в процессе сопряжения данные, подобрать PIN-код методом полного перебора за секунды. В случае если злоумышленнику удастся пройти процедуру сопряжения, он получит доступ к весьма широкому спектру API-функций, что, по сути, означает контроль над устройством жертвы ■

Список литературы Обзор безопасности протокола передачи данных Bluetooth

  • А.А. Пихтулов, Д.В. Шевченко, В.Б. Холявин. Анализ и классификация угроз для мобильных устройств, использующих уязвимости технологии Bluetooth./Безопасность информационных технологий. «Безопасность мобильной связи», 2012. -2БМС. С. 36 -43.
  • Soltanian A., Van Dyck R.E. Performance of the Bluetooth system in fading dispersive channelsand interference./IEEE Global Telecommunications Conference, 2001 (GLOBECOM '01). -С. 3499 -3503.
  • П.Е. Минин, А.С. Самойлов, А.А. Кузин. Уязвимости канала данных Bluetooth для прослушивания злоумышленниками Безопасность информационных технологий. «Безопасность мобильной связи», 2012. -2БМС. С. 50 -53.
  • Bluetooth SIG. Specification of the Bluetooth system, version 1.2.
  • Lu Y., Vaudenay S. Cryptoanalysis of Bluetooth keystream Generator two-level E0. -Asiacrypt'2004. -PP. 483 -499
  • Lu Y., Vaudenay S. Faster correlation attack on Bluetooth keystream generator E0. -Crypto'2004. -PP. 407 -425.
Статья научная