Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #56, ИЮЛЬ 2005 г.

Охота на голубой зуб

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #056, стр. 056-068-3


Авторизация и аутентификация

Голубой зуб поддерживает несколько режимов секретности: Security Mode 1 (nonsecure - открытый), Security Mode 2 (Service-level enforced security - секретность уровня сервиса) и Security Mode 3 (Link-level enforced security - секретность уровня канала).

В mode 1 все системы защиты выключены. Не используется ни аутентификация, ни шифрование, а само BlueTooth-устройство работает в широковещательном режиме (он же "неразборчивый" - promiscuous), что делает возможным построение сниферов из доступных компонентов.

В mode 2 сразу же после установки соединения начинается процесс аутентификации, осуществляемый по L2CAP-протоколу (Logical Link Control and Adaptation Protocol - протокол управления логическим каналом и адаптации) и выполняемый Менеджером безопасности (Security Manager), находящимся на канальном уровне и взаимодействующим с протоколами верхних уровней. Это позволяет выборочно ограничивать доступ к устройству, например, все могут просматривать данные, но не все - изменять их.

В mode 3 аутентификация происходит перед установкой соединения на канальном уровне, за счет чего все "левые" устройства будут отшиты еще на этапе подключения. Поддерживается "прозрачное" шифрование трафика, выполняемое без участия протоколов верхнего уровня, что обеспечивает максимальный уровень безопасности и комфорта, однако даже в этом случае степень защиты относительно невелика и устройство может быть легко взломано.

Фундаментом безопасности является схема генерации ключей. Ключи генерируются на основе PIN-кодов. PIN-код представляет собой персональный идентификационный номер, длиной от 1 до 16-ти байт, назначаемый владельцем устройства и хранимый в энергонезависимой памяти. Большинство мобильных устройств используют 4-значный (32-битный) PIN-код, по умолчанию выставленный в ноль. Некоторые устройства отказываются работать с нулевым PIN'ом, вынуждая пользователей изменять его на "1234" или что-то в этом роде. Но ломать такие PIN'ы неинтересно. Это все равно, что расстреливать кабана, привязанного к дереву.

На основе PIN-кода генерируется 128-битный Link Key, вычисляемый по алгоритму E2. В свою очередь, на основе Link Key'я генерируется 128-битный Encryption Key, вычисляемый по алгоритму E3. Link Key используется для аутентификации, а Encryption Key – для шифрования трафика.

Аутентификация осуществляется по классической схеме запрос-отклик, такой же древней, как сам компьютерный мир (регистрация пользователя в UNIX и Windows NT построена по тем же принципам).

Первый шаг: Инициатор соединения (claimant) посылает заинтересованному устройству (verifier) свой уникальный 48-битный аппаратный адрес (BD_ADDR), в каком-то смысле похожий на обычный MAC-адрес, зашитый в каждой сетевой карте.

Второй шаг: Verifier передает claimant'у 128-битную привязку (challenge), генерируемую случайным образом и обозначаемую как AU_RAND.

Третий шаг: На основе BD_ADDR, Link Key и challenge Verifier генерирует секретную шифропоследовательность (SRES), то же самое делает transmitter.

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