АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. Инициализация и присваивание структур.
  2. Инициализация массивов.
  3. Инициализация портов
  4. Инициализация указателей
  5. Объявления и инициализация переменных указателей

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

Генерация ключа Kinit

Генерация ключа связи (он носит название link key и обозначается, как Kab)

Аутентификация

Первые два пункта входят в так называемую процедуру паринга.

Паринг (pairing), или сопряжение — процесс связи двух (или более) устройств с целью создания единой секретной величины Kinit, которую они будут в дальнейшем использовать при общении. В некоторых переводах официальных документов по bluetooth можно также встретить термин «подгонка пары». Перед началом процедуры сопряжения на обеих сторонах необходимо ввести PIN-код.

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

BD_ADDR — уникальный MAC-адрес BT-устройства длиной 48 бит;

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

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

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

Для этого необходимы величины:

BD_ADDR

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

На данном этапе pairing заканчивается и начинается последний этап инициализации bluetooth — Mutual authentication, или взаимная аутентификация. Основана она на схеме «запрос-ответ». Одно из устройств становится верификатором, генерирует случайную величину AU_RAND(A) и посылает его соседнему устройству (в открытом виде), называемому предъявителем. Как только предъявитель получает это «слово», начинается вычисление величины SRES по алгоритму E1, и она отправляется верификатору. Соседнее устройство производит аналогичные вычисления и проверяет ответ предъявителя. Если SRES совпали, то устройства меняются ролями, процесс повторяется заново.

E1-алгоритм оперирует такими величинами:

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

link key Kab

Свой собственный BD_ADDR

Атака на сопряжение

Если злоумышленнику удалось прослушать эфир, и во время процедуры сопряжения он перехватил и сохранил все сообщения, то далее найти PIN можно используя перебор.

Первым, кто заметил эту уязвимость, был англичанин Олли Вайтхауз (Ollie Whitehouse) в апреле 2004 года. Он первым предложил перехватить сообщения во время сопряжения и попытаться вычислить PIN методом перебора, используя полученную информацию. Тем не менее, метод имеет один существенный недостаток: атаку возможно провести только в случае, если удалось подслушать все аутентификационные данные. Другими словами, если злоумышленник находился вне эфира во время начала сопряжения или же упустил какую-то величину, то он не имеет возможности продолжить атаку.

 

 

Атака на пересопряжение

Вулу и Шакеду удалось найти решение трудностей, связанных с атакой Вайтхауза. Был разработан второй тип атаки. Если процесс сопряжения уже начат и данные упущены, провести атаку невозможно. Но если устройства уже успели связаться, сохранили ключ Kab и приступили к взаимной аутентификации, можно заставить устройства заново инициировать процесс сопряжения чтобы провести вышеописанную атаку на сопряжение.

Данная атака требует отправки нужных сообщений в нужный момент времени. Стандартные устройства, доступные в продаже, не подойдут для этих целей.

Использовав любой из этих методов, злоумышленник может приступить к базовой атаке на сопряжение. Таким образом, имея в арсенале эти две атаки, злоумышленник может беспрепятственно похитить PIN-код. Далее имея PIN-код, он сможет установить соединение с любым из этих устройств. И стоит учесть, что в большинстве устройств безопасность на уровне служб, доступных через bluetooth, не обеспечивается на должном уровне. Большинство разработчиков делает ставку именно на безопасность установления сопряжения. Поэтому последствия действий злоумышленника могут быть различными: от кражи записной книжки телефона до установления исходящего вызова с телефона жертвы и использования его как прослушивающего устройства.

Оценка времени подбора PIN-кода

В протоколе Bluetooth активно используются алгоритмы E22, E21, E1, основанные на шифре SAFER+.Брюс Шнайер подтвердил, что уязвимость относится к критическим. Подбор PIN на практике прекрасно работает. Ниже приведены результаты, полученные на Pentium IV HT на 3 ГГц:

Конкретные реализации вышеописанных атак могут работать с различной скоростью. Способов оптимизации множество: особые настройки компилятора, различные реализации циклов, условий и арифметических операций. Авишай Вул и Янив Шакед нашли способ сократить время перебора PIN-кода в разы.

Увеличение длины PIN-кода не является панацеей. Только сопряжение устройств в безопасном месте может частично защитить от описанных атак. Пример — bluetooth-гарнитура или автомобильный handsfree. Инициализация связи (при включении) с данными устройствами может происходить многократно в течение дня, и не всегда у пользователя есть возможность находиться при этом в защищённом месте.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)