Prev Предыдущее сообщение   Следующее сообщение Next
Старый 20.10.2010, 15:57   #1
aka_zver
 
Аватар для aka_zver
 
Регистрация: 06.07.2010
Сообщений: 63
Репутация: 37
По умолчанию [Bluetooth] - Проведение Атак


=====
Intro
=====

Говоря о взломе беспроводных сетей, почти всегда упоминают wi-fi; да, он вытесняет технологию Bluetooth, но, как ни странно, его использование по-прежнему в моде. В этой статье будет рассмотренно кого, зачем, как и чем ломать.

=======
History
=======

Для начала вспомним историю (куда ж без этого). В 1994 году фирма Ericsson начала разработку технологии Bluetooth, позже, в ’98, к ним присоединились IBM, Nokia, Intel и Toshiba, образовав консорциум Bluetooth SIG (Special Interest Group) и докончив начатое. По стандарту IEEE за блютусом закреплён номер 802.15.1 (первые два числа указывают на то, что это беспроводная персональная сеть: WPAN - Wireless Personal Area Network). Изначально bt создавали, чтобы упразднить провода при подключении гарнитур к мобильникам, но через некоторое время его стали встраивать и в другое оборудование. Вся технология держится на трёх составляющих: встроенная поддержка передачи речи, низкое энергопотребление и высокий уровень безопасности... Но вот если с первыми двумя спорить не придётся, то насчёт третьего стоит глубоко задуматься. Bluetooth оказался, откровенно говоря, бажным, это и привлекло хакеров; первопроходцами в этой области являлись группы @stack и shmoo. В то же время через блютус получили возможность распространения различные вирусы (как то: ComWarrior, Cabir, CardTrap, Drever и прочие подобные зверьки, не буду углубляться).

Версия 1.0.
1998

- Ужасная совместимость между продуктами от разных производителей
- Невозможна реализация анонимности соединения из-за обязательной передачи адреса устройства (BD_ADDR) при установлении связи

Версия 1.1.
+ Исправление кучи ошибок.
+ Поддержка нешифрованных каналов
+ Индикация уровня мощности сигнала (RSSI)

Версия 1.2.
+ Утверждён стандартом 802.15.1-2005
+ Увеличение скорости передачи до 721 Кбит/с
+ Адаптивная перестройка рабочей частоты (AFH) - улучшение стойкости к помехам
+ Добавление 3-хпроводного интерфейса UART в Host Controller Interface (HCI)
+ Для L2CAP введены режимы управления потоками данных (Flow Control) и повторной передачи (Retransmission Mode)
+ Добавлена технология Расширенных Синхронных Подключений (eSCO), улучшающая качество передачи голоса путём повторной передачи повреждённых пакетов

Версия 2.0+EDR.
10.11.2004

+ Поддержка EDR (Enhanced Data Rate) для увеличения скорости передачи до 3 Мбит/с (в реале 2,1 Мбит/с)
+ Дополнительная полоса пропускания
+ Уменьшение энергопотребления

Версия 2.1.
2007

+ Технология расширенного запроса характеристик устройства
+ Энергосберегающая технология Sniff Subrating
+ Упрощение и ускорение установления связи между устройствами
+ Соединение более защищено из-за использования технологии NFC (Near Field Communication)

Версия 2.1+EDR.
2008

+ В 5 раз снижено энергопотребление
+ Повышен уровень защиты данных
+ Облегчено распознование и соединение устройств (из-за уменьшения количества шагов)

Версия 3.0+HS.
21.04.2009

+ Теоретическая скорость передачи до 24 Мбит/с
+ Добавление AMP (Асимметричная Мультипроцессорная Обработка) - высокоскоростное сообщение
+ Модули с 3 версией работают в 2-х режимах: как 2.0 и как 3.0; в случае передачи небольшого файла используется первое, если файл большой - второе.
- Не совместим с Wi-Fi'скими 802.11b/g и 802.11n


Версия 4.0.
2009

- Более предназначен для миниатюрных электронных датчиков
- Нет передачи голоса
+ Низкое энергопотребление из-за специального алгоритма работы
+ Скорость передачи данных - 1 Мбит/с при размере пакета 8-27 байт
+ Установка соединения меньше чем за 5 мс
+ Поддержка соединения на расстоянии до 200 м
+ Усовершенствованная коррекция ошибок
+ Вместо Scatternet используется технология Star-bus
+ 128-битное AES-шифрование

Спецификации для всех версий ТУТ

======================
Features & Information
======================

BT поддерживает два типа соединений: "point to point" и "point to multipoint". Основу Bluetooth составляет пикосеть (piconet), состоящая из одного главного и до семи подчиненных узлов, расположенных в радиусе 10-100 м. Самый простор пример пикосети - 2 устройства, одно из которых выступает в роли ведущего, предоставляющего различные сервисы остальным (master), а другое в роли ведомого (slave). Связь возможна только между главным и подчиненным узлом; между подчиненными узлами прямой связи нет. Пикосети могут разрастаться (если ведомые устройства взаимодействуют сразу с несколькими ведущими из разных сетей) и объединяться в распределённые сети (scatternet).


Bt работает в частотном диапазоне ISM (Industry, Science, Medicine, т.е. применяемом в промышленности, науке и медицине) от 2,4 до 2.4835 ГГц, передавая данные с 10 вариантами смены каналов (5 с циклом в 79 и 5 с циклом в 23) с шагом в 1 МГц, применяя алгоритм скачкообразного изменения частоты в 1600 Гц. Ведущее и ведомое устройства в каждый момент времени работают на одном канале, если в него вклиниваются другие, происходит интерференция сигнала (т.к. в этом диапазоне также работают пульты от телевизоров, автомобильных сигнализаций, wi-fi оборудование и микроволновки) и канал "шумит", то пара использует другой канал, выбираемый случайно (т.е. говоря более научно, применяется метод расширения спектра при скачкообразном изменении
частоты: FHSS - Frequency Hop Spread Spectrum) Время работы на определенной частоте называется time-slot и составляет 625 мкс.

О протоколах:
Цитата:
1\ базовые протоколы (core protocols): Baseband, LMP, L2CAP, SDP
2\ замена кабеля: RFCOMM
3\ управление телефонией: TSC binary, AT-команды
4\ воспринятые протоколы (adopted protocol) - PPP, UDP/TCP/IP, OBEX, WAP, BNEP, vCARD, vCAL, IrMC, WAE
Приведу некоторые важные профили Bluetooth:

1\ Generic Access Profile (GAP)
Базовый для всех остальных профилей

2.1\ Serial Port Profile (SPP)
Базируется на спецификации ETSI TS07.10, использует протокол RFCOMM; эмулируя последовательный
порт, предоставляет возможность замены стандартного RS-232 беспроводным соединением (базовый для профилей DUN, HSP и др).
2.2\ Dial-up Networking Profile (DUN)
Протокол для доступа к интернету или другому телефонному сервису через bt. Базируется на SPP, включает в себя PPP и AT команды из спецификации ETSI 07.07.
2.3\ Headset Profile (HSP)
Профиль для соединения беспроводной гарнитуры и телефона. Поддерживает минимальный набор AT команд (для обеспечения возможности совершать\завершать и отвечать на звонки, настраивать громкость.

3.1\ OBEX (OBject EXchange)
Протокол обмена объектами, позволяющий передавать и принимать текстовую информацию, различные двоичные файлы.
3.2\ Generic Object Exchange Profile (GOEP)
Является базой для других профилей передачи данных, базируется на OBEX.
3.3\ File Transfer Profile (FTP_profile)
Обеспечивает доступ к файловой системе девайса. Включает стандартный набор команд FTP, позволяющий получать список директорий, изменения директорий, получать\передавать\удалят ь файлы. В качестве транспорта используется OBEX, базируется на GOEP.

4\ Advanced Audio Distribution Profile (A2DP)
Используется для передачи двухканального стерео аудиопотока.

5\ Object Push Profile (OPP)
Базовый профиль для пересылки объектов, таких как изображения, виртуальные визитные карточки и др. Передачу данных инициирует отправляющее устройство (клиент), а не приёмное (сервер).

6\ Phone Book Access Profile (PBAP)
Профиль для обмена записями телефонных книг между устройствами.

7\ Service Discovery Application Profile (SDAP)
Используется для предоставления информации о профилях, которые использует устройство-сервер.

8\ SIM Access Profile (SAP, SIM)
Даёт возможность получить доступ к SIM-карте телефона, что позволяет использовать одну SIM для нескольких устройств.

9\ Wireless Application Protocol Bearer (WAPB)
Протокол для организации P2P соединения через bt.

Bluetooth может работать в одном из 3-х режимов:
Цитата:
1\ discoverable - устройство всегда отвечает на получаемые запросы
2\ limited discoverable - отвечает только в определённое время или при соблюдении установленных хозяином условий
3\ non-discoverable - не отвечает на запросы
Также имеются 2 типа соединений:

Цитата:
ACL - asynchronous connectionless — асинхронный без установления соединений, используется для передачи данных. У подчиненного узла может быть только одно ACL-соединение с главным узлом.
SCO - synchronous connection oriented — синхронный с установлением связи, используется для передачи данных в реальном режиме времени, например при передаче речи. Подчиненное устройство может иметь до трех SCO-соединений с главным, с пропускной способностью 64 КБ.
Согласно спецификации, существует 3 мощностных класса устройств:

Цитата:
1 Класс - 100 мВт – 100 м - 20 дБм
2 Класс - 2,5 мВт – 10 м - 4 дБм
3 Класс - 1 мВт – 10 м - 0 дБм

Можно считать, что, прочитав вышесказанное, вы уже познакомились с одним из уровней BT - Bluetooth Radio.

Переходим к следующему: Baseband - базовая полоса.
Здесь поговорим о том, что представляет из себя bluetooth-пакет. Каждый из них состоит из 3-х частей:

Цитата:
1\ код доступа (68-72 бита)
2\ заголовок (54 бита)
3\ сами данные (0-2745 бит)
Код доступа нужен для синхронизации данных, корректного разбиения на страницы, вычисления смещений и т.д.
Всего существует 3 типа кодов:

Цитата:
1\ код канала (CAC)
2\ код устройства (DAC)
3\ код очереди (IAC)
Заголовок нужен для контроля ошибок, переноса информации-подтверждения о доставке пакета и всякие идентификаторы. Данные же могут представлять собой всё, что угодно, будь то видео, картинка или голос.

Далее на очереди LMP - Link Manager Protocol.
Он представляет собой интерфейс, нужный для организации и управления связью между девайсами. При помощи его функций создаются линки между устройствами, шифруется информация, управляются режимы работы и многое другое. При вызове управляющей функции LMP в эфир посылается определённый пакет, соответствующий вызываемой процедуре. Устройство, получившее пакет, интерпретирует его и посылает в ответ через этот же интерфейс схожий пакет.

Bluetooth Audio (Voice) - использует синхронное соединение, максимальная точность потока для BT v1.0 - 16 бит с частотой 48 кГц

L2CAP (Logical Link Control and Adaptation Protocol) - является связующим звеном между протоколами
верхнего уровня и базовой полосой, работает только с асинхронными соединениями, для многих протоколов и служб является транспортным протоколом. L2CAP обеспечивает разбивку большого пакета данных (> 64 кб) на несколько мелких и последующую его сборку.

SDP (Service Discovery Protocol) - протокол обнаружения услуг, позволяет запрашивать информацию об устройстве, его услугах и их характеристиках, также о девайсах в пикосети, их службах.

RFCOMM - эмулирует соединение point-to-point по COM-порту, используя как транспорт L2CAP, имеет широкие возможности (от эмуляции Direct Cable Connection до входа в локальную сеть).

TCS (Telephony Control protocol Specification) - используется для переадресации звонков на телефонных станциях (причём сам используется только для установки соединения, далее управление передаётся Bluetooth Voice).

Ну и последнее об уровнях BT - общеизвестные сетевые протоколы (PPP, TCP\UDP\IP\OBEX).
В среде bluetooth PPP работает поверх RFCOMM и позволяет перемещать IP-пакеты с уровня PPP на уровень локальных сетей. Встраивание TCP\IP протокола в блютус позволило связываться с любым другим девайсом, подключенным к сети.
OBEX (IrOBEX, Infrared Object Exchange Protocol) - сеансовый протокол, разработанный ассоциацией IrDA для поэтапного, простого обмена данными, обеспечивает функциональность, как у HTTP, использует клиент-серверную модель, поддерживает в качестве транспортного протокола не только RFCOMM, но и TCP\IP.

Коснёмся также инициализации соединения, шифрования и режимов защищённости.
Спецификация bluetooth основывается на модели безопасности, включающей 3 механизма:

Цитата:
1\ аутентификация (опознование)
2\ авторизация (разрешение доступа)
3\ шифрование (кодирование)
Выделяют 3 режима защищённости:

Цитата:
1\ No security (т.е незащищённый) – в этом режиме нет шифрования и аутентификации, последствия, я думаю, понятны.
2\ Service Level Enforced Security (защищенный на уровне приложения/службы) – после соединения, обязательна аутентификация, что в принципе должно ограничивать доступ к устройству
3\ Link Level Enforced (защищенный на уровне канала связи; link-layer PIN authentification/ MAC address
encryption) - аутентификация проходит до соединения, используя прозрачное шифрование.
Процесс авторизации представляет собой установление полномочий для подключаемого устройства, выбирая один из трёх возможных уровней доступа:

Цитата:
1\ trusted - неограниченный доступ к ресурсам
2\ non-trusted - без доступа к ресурсам, но с возможностью открытия
3\ unknown - неизвестное устройство, доступ запрещается в любом случае
Инициализация осуществляется в три этапа:

Цитата:
1\ Генерация ключа инициализации (Kinit)
2\ Генерация ключа связи (он же link key или Kab)
3\ Собственно аутентификация
Вообще BT использует довольно мощное шифрование потока алгоритмом SAFER+, но и здесь присутствуют недостатки. Защита данных имеет ступенчатый вид, каждая последующая ступень защищена предыдущей; при авторизации сначала всё передаётся простым текстом, остальное же защищается сложными ключями, зависящими от того, на какой стадии находится аутентификация и последовательно сменяющими друг друга. Эти ключи соединяется с особым Link Key'ем.


Паринг (pairing, сопряжение, подгонка пары) - процесс связи нескольких устройств, создающих единую секретную величину Kinit. Далее всё будет рассмотрено на примере двух устройств: А (master) и Б (slave). После введения pin-кодов начинается создание Kinit, формирующемуся по алгоритму E22, содержащему следующее:

Цитата:
+ BD_ADDR
+ PIN-код и его длина
+ IN_RAND - случайная 128-битная величина
Bluetooth Device Adress (BDA, BD_ADDR) - уникальная 48-разрядная последовательность, состоящая из 12 шестнадцатиричных чисел; присваивается производителем каждому устройству и, по сути, является MAC адресом девайса; первые 3 байта указывают на производителя, а последние 3 определяются выпускающей фирмой. BD_ADDR передаётся в открытом виде, что даёт взломщику с антеннкой видеть bt-пользователей, опознавать их по этому идентификатору. На выходе алгоритма E22 имеем 128-битное слово - Kinit. IN_RAND пересылается в чистом виде. Следующий шаг - создпние ключа связи. Для создания Kab происходит обмен случайно генерируемыми 128-битными LK_RAND(А) и LK_RAND(Б). Далее всё это дело побитово ксорится с Кинитом и девайсы обмениваются значениями. Далее происодит вычисление ключа алгоритмом E21, использующим:

Цитата:
+ BD_ADDR
+ LK_RAND (свой и полученный)
Итак, паринг закончен, следующий шаг - аутентификация (mutual authentification). Одно из устройств - верификатор, генирирующий и посылающий другому девайсу (в plain-text) случайный AU_RAND(А). После получения этого слова начинается вычисление и сравнивание величины SRES (алгоритм E1) на обоих устройствах. При совпадение значений SRES девайсы меняются ролями, повторяя процедуру. Алгоритм E1 использует:

Цитата:
+ AU_RAND
+ Kab
+ BD_ADDR
На этом инициализация закончена.
aka_zver вне форума   Ответить с цитированием
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot