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

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

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

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


Что касается мощности сигнала, то здесь не все однозначно, всего есть три мощностных класса. Первый класс подразумевает максимальную выходную мощность в 20 dBm и позволяет работать на расстоянии до 100 метров. Мощность сигнала в устройствах второго класса достигает 4 dBm, что позволяет держать связь внутри круга с радиусом 10 метров. И, наконец, третий класс устройств может работать на расстоянии в несколько сантиметров и мощность сигнала у него — 0 dBm. Обрати внимание, что 0 dBm — это тоже мощность, и символический ноль совсем не означает отсутствие сигнала :). Некоторые устройства предоставляют возможность управлять мощностью антенны при помощи специальных LMP-команд (об этом интерфейсе я расскажу ниже).

Что касается модуляции сигнала, то здесь применена гауссовская частотная модуляция (GFSK, Gaussian Frequency Shift Keying)с параметром фильтрации BT=0.5. На самом деле, это не такая простая тема и более подробное описание уместнее бы смотрелось в каком-нибудь институтском учебнике по радиосвязи, так что если эта тема тебе и в самом деле интересна, советую почитать документацию на нашем диске :).

[baseband: bluetooth и данные]

Bluetooth поддерживает два вида соединений: point-to-point и point-to-multipoint. Два и более устройства образуют маленькую беспроводную сеть, называемую piconet. При этом одно из девайсов является главным (master) и предоставляет различные сервисы остальным. Slave-устройство может параллельно работать в нескольких piconet’ах. Эта возможность одновременно является и настоящим рулезом, и головной болью. Так, например, при передаче данных между двумя устройствами, неавторизованный сторонний девайс злоумышленника вполне может попробовать получить доступ к передаваемой информации. Это, конечно, совсем не просто, однако не исключено.

Но вернемся к нашему протоколу. Каждое bluetooth-устройство имеет уникальный 48-разрядный адрес, представляющий собой 12 шестнадцатеричных чисел, для наглядности разделенных побайтно двоеточием. Чтобы было понятнее, приведу пример адреса: 00:0A:D9:2E:3B:BF. Думаю, ты заметил большое сходство с хорошо знакомыми тебе MAC-адресами сетевых карт :). На самом деле, BT-адрес (BT_ADDR) это и есть MAC устройства: он определяется производителем девайса и уникален для каждой железяки. Как легко догадаться, по BT_ADDR несложно судить о производителе устройства, на это указывают первые три байта адреса. В моем случае символы 00:0A:D9 однозначно свидетельствуют о том, что я наткнулся на телефончик SonyEricsson (смотри таблицу с соответствием адресов и производителей).

Теперь расскажу о том, как, собственно, выглядят BT-пакеты. Каждый пакет состоит из трех частей: кода доступа (68/72 бита), заголовка (54 бита) и, собственно, самих данных (0-2745 разряда). Код доступа используется для осуществления синхронизации данных, корректного разбиения на страницы, вычисления смещений и так далее. Всего есть три типа кодов: код канала (CAC), устройства (DAC) и очереди (IAC). Заголовок пакета среди прочего позволяет контролировать ошибки при передаче данных: он несет в себе информацию с подтверждением о доставке пакета, а так же различные идентификаторы. Что касается самих данных, то они могут представлять собой как голос, так и просто что-то абстрактное. Само собой, что в спецификации bluetooth описано несколько типов пакетов, всего их 13 штук. Но более подробно об этом мы поговорим чуть ниже.

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