Автор работы: Пользователь скрыл имя, 28 Февраля 2012 в 21:29, реферат
Могут ли зубы быть голубыми?.. От природы вряд ли, после посещения стоматологического кабинета - возможно. А вот потемневшими зубы бывают часто. Так, датский король викингов Harald Blutend (по-английски Bluetooth, а по-русски Голубой Зуб) получил свое прозвище из-за потемневшего переднего зуба (есть, правда, и другие версии). Этот король знаменит тем, что объединил Данию и Норвегию. В его честь названа технология, задуманная первоначально как средство соединения компьютера и сотового телефона или других телекоммуникационных устройств между собой.
Содержание:
Введение
Как появилось название Bluetooth
Физическая структура
Стек протоколов;
Каналы и слоты;
Безопасность
Пикосети
Инициализация Bluetooth соединения
Принцип действия интерфейса
Версии и их характеристики
Bluetooth 1.0
Bluetooth 1.1
Bluetooth 1.2
Bluetooth 2.0 +EDR
Bluetooth 2.1
Bluetooth 2.1+EDR
Bluetooth 3.0 + HS
Bluetooth 4.0
Профили Bluetooth
Области применения
Ноутбуки;
Мышь;
Мобильные телефоны;
Приемопередатчики;
Bluetooth – гарнитура
Особый формат у пакетов FHS – они содержат информацию об адресе, классе устройства и тактовой частоте его передатчика. Узлы прибегают к помощи FHS при инициализации новой пиконет или при смене схемы частотных скачков в уже существующей сети. В эту отдельную категорию следует отнести и пакеты DM1, обеспечивающие распространение управляющей информации.
Для синхронных и асинхронных соединений определены практически не пересекающиеся наборы специальных пакетов. Например, для синхронных соединений введено несколько форматов, различающихся в основном длиной поля данных и называющихся HV1, HV2 и HV3. Тип HV (High quality Voice) предназначен для ретрансляции голосовых потоков. Поле данных первого из них имеет длину 10, второго – 20, а третьего – 30 байт. Комбинированный вариант DV – это пакет, предназначенный для передачи как голоса, так и данных, содержит 80 бит аудио и 150 бит данных. На самом деле обе его части обрабатываются полностью независимо, вплоть до того, что данные защищаются кодом CRC и посылаются повторно в случае повреждения в отличие от блока аудио.
Набор форматов для асинхронных соединений более разнообразен за счет введения высокоскоростного режима High rate. Пакеты DM1, DM2 и DM3 имеют общую структуру, различаясь, как и в случае асинхронных форматов, объемом полезной нагрузки. DH1, DH2 и DH3 могли бы стать их братьями-близнецами, если б не иной способ кодирования, а точнее, исключение стадии дополнения данных битами четности по алгоритму FEC 2/3 (5 бит контроля на 10 бит информации). Так что если DM1 занимает один временной слот и несет в себе 18 бит данных, то его скоростной аналог за то же время успевает "вытащить" 28, правда, с некоторым риском для их целостности.
Для большинства пакетов асинхронного формата действует механизм повторной передачи в случае ошибок. Исключением является AUX1, который, будучи аналогом пакета DH1, предназначен для аудиоданных и никогда не передается дважды.
Если углубиться еще дальше в структуру пакета Bluetooth, то мы обнаружим, что даже поле данных имеет свой заголовок, тело и поле контрольной суммы CRC. Заголовок несет в себе сведения о логических каналах и сегментации пакетов.
Пакеты
рассматриваются как
Чтобы как-то
упорядочить разнообразные
Перед передачей
и FEC-кодированием данные обрабатываются
с помощью специального фильтра
(whitening, выравнивание спектра), изменяющего
образуемую нулями и единицами структуру
таким образом, чтобы исключить
длинные единообразные
Вообще, вопросы синхронизации целиком на совести ведущего устройства (master) в пиконет. Подчиненные узлы ориентируются на время появления пакетов от ведущего и уже от него отсчитывают интервалы начала передачи (625 мкс). Поскольку ведущий узел никогда не корректирует свои часы, а неустойчивая синхронизация и прочие сбои являются реальным фактором, введено окно, в течение которого ожидается приход очередного пакета. Обычно его размер составляет 20 мкс (±10 мкс), однако существуют несколько особых режимов: hold, sniff и park. Первый из них означает, что узел полностью отключается от сети, в то время как в состояниях sniff и park устройство периодически "просыпается" и прослушивает эфир, сохраняя синхронизацию с пиконет. Чтобы возобновить нормальную работу, узел должен определить фреймовую структуру соединения, поэтому на момент подключения размер поискового окна увеличивается до тех пор, пока соседние окна не начнут перекрываться (вплоть до 2500 мкс или 3750 мкс). Трюк заключается в том, что как только окна превышают длину стандартного цикла приема/передачи (2 x 625 мкс = 1250 мкс), они начинают центрироваться по середине каждого второго цикла. Если и этот барьер преодолен, то к интервалу центрирования окон добавляется еще один период приема/передачи.
Помощь узлам в сохранении синхронизации оказывает канал-"маяк" (beacon channel), или, говоря иными словами, сигнальный канал мастера: через определенные промежутки времени ведущий узел генерирует широковещательные пакеты, содержащие информацию для временно неактивных узлов (например, извещение об изменении параметров самого beacon channel). Если нет необходимости отсылать данные, то используются пакеты формата NULL.
Состояния hold, sniff и park отличаются также и правилами адресации устройства. Узел в режиме hold сохраняет за собой нормальный адрес в пиконет, а в режиме park он получает два адреса: один позволяет мастеру различать узлы, находящиеся в этом состоянии, и обращаться к ним, второй же необходим, чтобы "запаркованный" узел мог самостоятельно отослать запрос мастеру. Следовательно, пакеты, отправляемые устройству в режиме park, должны быть широковещательными, так как эти узлы лишены собственного активного адреса.
Один из режимов установления или возобновления соединения называется paging state. В таком состоянии мастер буквально забрасывает эфир на всех частотах (hop frequencies) короткими ID-пакетами, содержащими только код доступа устройства (device access code). Поскольку пакеты невелики, в рамках одного временного фрейма удается передавать два пакета на двух разных частотах. Подчиненный узел в режиме paging также успевает прослушивать за один интервал 625 мкс две частоты, ожидая появления своего кода.
Установление
соединения осуществляется и с помощью
запросов. Запрашивающее устройство
не сообщает никакой информации о
себе за исключением типа устройств,
которые отвечают: все или только,
например, факсы. Соответственно узел,
желающий быть обнаруженным, должен периодически
(каждые 2,56 с) входить в состояние
прослушивания запросов (inquiry state). Чтобы
высвободить ресурсы своего передатчика,
устройство может даже перевести
в режим hold или park свои асинхронные
соединения. Синхронные коммуникации
продолжают осуществляться, и пакеты
могут прерывать процесс
После того как ведомое устройство было обнаружено опрашивающим мастером и ответило пакетом FHS, информирующим о состоянии его внутренних часов, адресе и прочих характеристиках, ведущий узел генерирует пакет POLL, чтобы удостовериться в том, что подчиненный узел правильно настроил параметры приема и в состоянии получать данные. Подключаемое устройство может ответить любым пакетом, но если ответ не пришел, мастер снова переходит в состояние paging или inquiry.
Подчиненные
узлы в пиконет работают в одном
из двух режимов: активном и "подслушивания"
(sniff). Суть первого из них очевидна,
а другой представляет собой некое
подобие состояния сна в
Режимы sniff, park и hold также необходимы для подключения узлов сразу к нескольким пиконет. Чтобы подсоединиться к другой сети, устройство может запросить для себя в текущей пиконет режим park или hold. В случае состояния sniff узел имеет несколько свободных временных слотов между прослушиваниями своей основной пиконет, чтобы участвовать в обмене данными с другими сетями.
Безопасность
Система
безопасности Bluetooth-устройств
В генерации ключей шифрования участвуют еще и так называемые ключи соединения (link key). Они распространяются среди участников пиконет после ее инициализации и бывают двух типов – постоянные (semi-permanent) и временные. Первые хранятся в энергонезависимой памяти и могут быть использованы в рамках нескольких сессий (нескольких соединениях), вторые должны обновляться при каждом подключении.
Ключи классифицируются также по своему происхождению. Самый простой вариант генерации у ключа устройства (unit key) – он создается каждым узлом. Чуть сложнее выглядит процесс создания комбинированного ключа (combination key), вычисляемого на основе информации, полученной от двух участвующих в соединении узлов. Очевидно, что для каждой пары взаимодействующих устройств требуется свой комбинационный ключ. Это более надежная, но и более ресурсоемкая схема: если объем памяти устройства ограничен или в ходе эксплуатации системы (например, сетевой принтер) предполагается подсоединение большого количества различных узлов, то оптимальным будет вариант с ключом устройства.
Еще один ключ называется инициализационным и служит временной заменой нормального ключа до тех пор, пока он не будет сгенерирован после завершения процесса установления соединения. Отдельно введено понятие мастер-ключа (master key): когда необходимо разослать информацию сразу нескольким узлам, этот ключ используется вместо текущего ключа соединения (current link key).
Чтобы пройти
аутентификацию, устройству нужно получить
от проверяющего узла случайное число,
сгенерировать на основании этого
числа, ключа и своего BD_ADDR некоторое
значение и отослать его обратно.
Проверяющий узел контролирует корректность
результата. Если общий ключ еще
не создан, генерируется инициализационный
ключ. Устройство-инициатор отсылает
узлу-напарнику случайное
Пикосети
Устройства,
образующие между собой Bluetooth-соединение,
образуют сеть, называемую пикосетью (piconet).
В ней одно устройство является главным
(master), а другое – подчиненным (slave).
К одному master-устройству может быть
подключено несколько slave-устройств. Пикосети
могут объединяться, образуя скеттерсеть
(scatternet). В этом случае соединяются
два главных устройства, одно из
которых становиться главным/
Принцип действия интерфейса Bluetooth
Интерфейс
Bluetooth состоит из трех частей: приемо-передатчик,
контроллер связи и управляющее
устройство, осуществляющее связь с
терминалом. Терминалом может быть
любой прибор, будь то мобильный
телефон, КПК или ноутбук. Приемо-передатчик
и контроллер связи, как правило,
выполнены на отдельных микросхемах,
а вот функции управляющего устройства
может выполнять и процессор
теримнала при достаточной
Инициализация bluetooth-соединения
Инициализацией, касательно bluetooth, принято называть процесс установки связи. Её можно разделить на три этапа:
Первые два пункта входят в так называемую процедуру паринга.
Паринг
(PAIRING) — или сопряжение. Процесс
связи двух (или более) устройств
с целью создания единой секретной
величины Kinit, которую они будут
в дальнейшем использовать при общении.
В некоторых переводах
Перед началом процедуры сопряжения на обеих сторонах необходимо ввести PIN-код. Обычная ситуация: два человека хотят связать свои телефоны и заранее договариваются о PIN-коде.
Для простоты будем рассматривать ситуацию с двумя устройствами. Принципиально это не повлияет на механизмы установления связи и последующие атаки. Далее соединяющиеся устройства будут обозначаться A и B, более того, одно из устройств при сопряжении становится главным (Master), а второе — ведомым (Slave). Будем считать устройство A главным, а B — ведомым. Создание ключа Kinit начинается сразу после того, как были введены PIN-коды.
Kinit формируется по алгоритму E22, который оперирует следующими величинами:
На выходе E22 алгоритма получаем 128-битное слово, именуемое Kinit. Число IN_RAND отсылается устройством A в чистом виде. В случае, если PIN неизменяем для этого устройства, то при формировании Kinit используется BD_ADDR, полученное от другого устройства. В случае если у обоих устройств изменяемые PIN-коды, будет использован BD_ADDR(B) — адрес slave-устройства. Первый шаг сопряжения пройден. За ним следует создание Kab. После его формирования Kinit исключается из использования.
Для создания ключа связи Kab устройства обмениваются 128-битными словами LK_RAND(A) и LK_RAND(B), генерируемыми случайным образом. Далее следует побитовый XOR с ключом инициализации Kinit. И снова обмен полученным значением. Затем следует вычисление ключа по алгоритму E21.
Для этого необходимы величины: