Главное


Инициализация соединения Bluetooth

Инициализацией, касательно Bluetooth, принято называть процесс установки связи. Её можно разделить на три этапа:

- генерация ключа Kinit;

- генерация ключа связи (он носит название linkkey и обозначается, как Kab);

- аутентификация.

Первые два пункта входят в так называемую процедуру паринга. Паринг (PAIRING) - или сопряжение -процесс связи двух (или более) устройств с целью создания единой секретной величины Kinit, которую они будут в дальнейшем использовать при общении. В некоторых переводах официальных документов по Bluetooth можно также встретить термин «подгонка пары». Перед началом процедуры сопряжения на обеих сторонах необходимо ввести PIN-код. Обычная ситуация: два человека хотят связать свои телефоны и заранее договариваются о PIN-коде. Далее соединяющиеся устройства будут обозначаться A и B, более того, одно из устройств при сопряжении становится главным (Master), а второе - ведомым (Slave). Будем считать устройство A главным, а B - ведомым. Создание ключа Kinit начинается сразу после того, как были введены PIN-коды[8].

Kinit формируется по алгоритму E22, который оперирует следующими величинами[8]:

- BD_ADDR - уникальный адрес BT-устройства. Длина 48 бит (аналог MAC-адреса сетевой карты PC);

- PIN-код и его длина;

- IN_RAND. Случайная 128-битная величина.

На выходе E22 алгоритма получаем 128-битное слово, именуемое Kinit. Число IN_RAND отсылается устройством A в чистом виде. В случае если PIN неизменяем для этого устройства, то при формировании Kinit используется BD_ADDR, полученное от другого устройства. В случае если у обоих устройств изменяемые PIN-коды, будет использован BD_ADDR(B) - адрес slave-устройства. Первый шаг сопряжения пройден. За ним следует создание Kab. После его формирования Kinit исключается из использования[8].

Для создания ключа связи Kab устройства обмениваются 128-битными словами LK_RAND(A) и LK_RAND(B), генерируемыми случайным образом. Далее следует побитовый XOR с ключом инициализации Kinit. И снова обмен полученным значением. Затем следует вычисление ключа по алгоритму E21.Для этого необходимы величины:

- BD_ADDR;

- 128-битный LK_RAND (каждое устройство хранит своё и полученное от другого устройства значение). Алгоритм Е21 представлен на рис. 3.1.

На данном этапе pairing заканчивается и начинается последний этап инициализации Вluetooth - Mutual authentication или взаимная аутентификация. Основана она на схеме «запрос-ответ». Одно из устройств становится верификатором, генерирует случайную величину AU_RAND(A) и засылает его соседнему устройству (в plaintext), называемому предъявителем (claimant в оригинальной документации)[8].

Рисунок 3.1 - Вычисление ключа по алгоритму Е21

Как только предъявитель получает это «слово», начинается вычисление величины SRES по алгоритму E1, и она отправляется верификатору. Соседнее устройство производит аналогичные вычисления и проверяет ответ предъявителя. Если SRES совпали, то, значит, всё хорошо, и теперь устройства меняются ролями, таким образом, процесс повторяется заново.E1-алгоритм представлен на рис. 3.2 и оперирует такими величинами[8]:

- случайно созданное AU_RAND;

- linkkey Kab;

- свой собственный BD_ADDR.

Другие статьи по теме

Медианная фильтрация
медианный фильтрация цифровой сигнал Цифровая обработка сигналов нашла широкое применение в различных сферах деятельности: телевидении, радиолокации, связи, метеорологии, сейсмологии, ме ...

Анализ видов измерителей электроэнергии
На сегодняшний день на предприятиях производственной сферы используются промышленные электросчетчики, в том числе электронные, многотарифные и многофункциональные. Данные счетчики облада ...

Малошумящий усилитель с устройством защиты входа от просачивающейся высокой мощности СВЧ
При интенсивной эксплуатации радиолокационных станций (РЛС) рано или поздно встает вопрос об их ремонте, техническом обслуживании и замене выработавших ресурс комплектующих, включая мал ...

www.domen.ru © 2018