Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #77, МАЙ 2005 г.

Анатомия синего зуба

Eto’o (eto-o@mail.ru)

Хакер, номер #077, стр. 077-070-3


[link manager protocol]

Мы поднимаемся на уровень вверх и перед нами — Link Manager Protocol, LMP. Этот протокол являет собой интерфейс, предназначенный для организации и управления связью между устройствами. При помощи предоставляемых функций можно организовывать линки между девайсами, шифровать передаваемую информацию, управлять режимами работы устройств и т.д. Важно понимать, хотя бы на пальцах, как работает этот протокол. При вызове одной из управляющих функций LMP в эфир передается пакет определенного содержания, который соответствует вызванной процедуре. Другое устройство получает этот пакет, интерпретирует его и отвечает схожим пакетиком, который посылается так же через интерфейс LMP. Для обмена информацией протокол использует пакеты типов DM1 и DV, в зависимости от объема передаваемых данных.

[Bluetooth и безопасность]

Конечно, Bluetooth проектировался с оглядкой на современную действительность, когда информация может стоить очень дорого и ее транспортировка – тем более по воздуху – должна быть максимально безопасным мероприятием. Bluetooth использует довольно изощренное шифрование передаваемых данных и, на первый взгляд, прекрасно их защищает. Однако это только так кажется: у протокола есть свои недостатки, в которых мы сейчас попробуем разобраться. Но сперва нужно описать вообще сам процесс защиты информации.

Для обеспечения секретности передаваемых данных Bluetooth использует непростую многоуровневую схему, каждая ступенька в которой защищена предыдущей. При выполнении авторизации устройства только начальный параметр передается простым текстом, все остальные переменные защищены сложным ключом, который может меняться в зависимости от стадии аутентификации. Этот шифр носит гордое имя “link key”, что можно перевести как “ключ канала”. При передаче информации, она просто ксорится с этим ключом и таким образом защищается от посторонних глаз. Как я уже говорил, на разных стадиях обмена информацией ключи канала разные, они последовательно сменяют друг друга.

Взаимодействие устройств начинается с генерации так называемого ключа инициализации; создание этого числа, как и вся авторизация устройств, основана на простом и действенном соображении: если оба девайса хотят соединения друг с другом, то их хозяева легко договорятся между собой о некотором общем секретном пароле PIN – короткой цифре, например. И это число используется как отправная точка для генерации всех последующих кодов.

Еще одно маленькое отступление: в этой статье я буду стараться придерживаться тех же обозначений для идентификаторов и функций, что используются и в официальной спецификации. Так, например, устройство, начинающее процесс авторизации, я буду обозначать как “A”, в тоже время девайс, с которым мы желаем соединиться, будет называться не менее лаконично – “B”. Ключ инициализации в официальных доках обозначен как Kinit – я буду называть его так же, чтобы не путать тебя.

Назад на стр. 077-070-2  Содержание  Вперед на стр. 077-070-4