|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Инициализация bluetooth-соединения
Инициализацией 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. Инициализация связи (при включении) с данными устройствами может происходить многократно в течение дня, и не всегда у пользователя есть возможность находиться при этом в защищённом месте. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |