46557 (607859), страница 2
Текст из файла (страница 2)
Профіль є базою для A2DP і VDP.
Generic Access Profile (GAP)
Профіль є базою для решти всіх профілів.
Generic Object Exchange Profile (GOEP)
Профіль є базою для інших профілів передачі даних, базується на OBEX.
Hard Copy Cable Replacement Profile (HCRP)
Профіль надає просту альтернативу кабельного з'єднання між пристроєм і принтером. Мінус профілю в тому, що для принтера необхідні специфічні драйвера, що робить профіль не універсальним.
Hands-Free Profile (HFP)
Профіль використовується для з'єднання безпровідної гарнітури і телефону, передає монозвук в одному каналі.
Human Interface Device Profile (HID)
Забезпечує підтримку пристроїв з HID (Human Interface Device), таких як мишки, джойстики, клавіатури і інш. Використовує повільний канал, працює на зниженій потужності.
Headset Profile (HSP)
Профіль використовується для з'єднання безпровідної гарнітури і телефону. Підтримує мінімальний набір AT-команд специфікації GSM 07.07 для забезпечення можливості здійснювати дзвінки, відповідати на дзвінки, завершувати дзвінок, настроювати гучність.
Підтримка гарнітурою профілю Headset ("навушники").
Профіль - набір функцій або можливостей, доступних для певного пристрою Bluetooth. Для спільної роботи Bluetooth-устройств необхідно, щоб всі вони підтримували спільний профіль. Через профіль Headset, за наявності Bluetooth 1.2 і вище, а також при його підтримці головним пристроєм, можна виводити на гарнітуру весь звуковий супровід роботи телефону. Наприклад, прослухувати на гарнітурі всі сигнали підтвердження операцій, mp3-музыку з плеєра, мелодії дзвінка, звукова лава відеороликів. Також з підтримкою даного профілю з'являється можливість міняти гучність, здійснювати дзвінки, а також відповідати або відхилювати їх безпосередньо з гарнітури. Гарнітури, що підтримують такий профіль мають можливість передачі стереозвуку, на відміну від моделей, які підтримують тільки профіль Hands-Free.
Intercom Profile (ICP)
Забезпечує голосові дзвінки між Bluetooth-совместимыми пристроями.
LAN Access Profile (LAP)
LAN Access profile забезпечує можливість доступу Bluetooth-пристроям до обчислювальних мереж LAN, WAN або Internet за допомогою іншого Bluetooth-пристрої, який має фізичне підключення до цих мереж. Bluetooth-пристрій використовує PPP поверх RFCOMM для установки з'єднання. LAP також допускає створення ad-hoc Bluetooth-сетей.
Object Push Profile (OPP)
Базовий профіль для пересилки "об'єктів", таких як зображення, віртуальні візитні картки і ін. Передачу даних ініціює відправляючий пристрій (клієнт), а не приймальне (сервер).
Personal Area Networking Profile (PAN)
Профіль дозволяє використовувати протокол Bluetooth Network Encapsulation як транспорт через Bluetooth-з’єднання.
Phone Book Access Profile (PBAP)
Профіль дозволяє обмінюватися записами телефонних книг між пристроями.
Serial Port Profile (SPP)
Профіль базується на специфікації ETSI TS07.10 і використовує протокол RFCOMM. Профіль емулює послідовний порт, надаючи можливість заміни стандартного RS-232 безпровідним з'єднанням. Є базовим для профілів DUN, FAX, HSP і AVRCP.
Service Discovery Application Profile (SDAP)
Профіль використовується для надання інформації про профілі, які використовує пристрій-сервер.
SIM Access Profile (SAP, SIM)
Профіль дозволяє дістати доступ до SIM-карте телефону, що дозволяє використовувати одну SIM-карту для декількох пристроїв.
Synchronisation Profile (SYNCH)
Профіль дозволяє синхронізувати особисті дані (PIM). Профіль запозичений із специфікації інфрачервоного зв'язку і адаптований групою Bluetooth SIG.
Video Distribution Profile (VDP)
Профіль дозволяє передавати потокове відео. Підтримує H.263, стандарти MPEG-4 Visual Simple Profile, H.263 profiles 3, profile 8 підтримуються опционально і не містяться в специфікації.
Wireless Application Protocol Bearer (WAPB)
Протокол для організації P-TO-P (Point-to-Point) з'єднання через Bluetooth.
Безпека
У червні 2006 року Авіша Вул (Avishai Wool) і Янів Шакед (Yaniv Shaked) опублікували статтю, що містить докладний опис атаки на bluetooth-пристрою. Матеріал містив опис як активної, так і пасивної атаки, що дозволяє дістати PIN код пристрою і надалі здійснити з'єднання з даним пристроєм. Пасивна атака дозволяє відповідно екіпірованому зловмисникові "підслухати" (sniffing) процес ініціалізації з'єднання і надалі використовувати отримані в результаті прослуховування і аналізу дані для встановлення з'єднання (spoofing). Природно, для проведення даної атаки зловмисникові потрібно знаходиться в безпосередній близькості і безпосередньо у момент встановлення зв'язку. Це не завжди можливо. Тому народилася ідея активної атаки. Була виявлена можливість відправки особливого повідомлення в певний момент, що дозволяє зачати процес ініціалізації з пристроєм зловмисника. Обидві процедури злому достатньо складні і включають декілька етапів, основний з яких - збір пакетів даних і їх аналіз. Самі атаки засновані на уязвимостях в механізмі аутентифікації і створення ключа-шифру між двома пристроями. І тому перед викладом механізму атак розгледимо механізм ініціалізації bluetooth-з’єднання.
Ініціалізація bluetooth-з’єдання
Ініціалізацією, дотично bluetooth, прийнято називати процес установки зв'язку. Її можна розділити на три етапи:
Генерація ключа Kinit
Генерація ключа зв'язку (він носить назву link key і позначається, як Kab)
Аутентифікація
Перші два пункти входять в так звану процедуру паринга.
Парінг (PAIRING) - або сполучення. Процес зв'язку двох (або більш) пристроїв з метою створення єдиної секретної величини Kinit, яку вони надалі використовуватимуть при спілкуванні. У деяких переказах офіційних документів по bluetooth можна також зустріти термін "підгонка пари".
Перед початком процедури сполучення на обох сторонах необхідно ввести PIN-код. Звичайна ситуація: дві люди хочуть зв'язати свої телефони і заздалегідь домовляються про PIN-коде.
Для простоти розглядатимемо ситуацію з двома пристроями. Принципово це не вплине на механізми встановлення зв'язку і подальші атаки. Пристрої, що далі з'єднуються, позначатимуться A і B, більш того, один з пристроїв при сполученні стає головним (Master), а друге - веденим (Slave). Вважатимемо пристрій A за головний, а B - веденим. Створення ключа Kinit зачинається відразу після того, як були введені PIN-коды.
Kinit формується по алгоритму E22, який оперує наступними величинами:
BD_ADDR - унікальна адреса BT-устройства. Довжина 48 битий (аналог MAC-адреса мережевої карти РС)
PIN-код і його довжина
IN_RAND. Випадкова 128-бітова величина
На виході 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.
Для цього необхідні величини:
BD_ADDR
128-бітовий LK_RAND (кожен пристрій зберігає своє і набутого від іншого пристрою значення значення)
На даному етапі pairing закінчується і зачинається останній етап ініціалізації bluetooth - Mutual authentication або взаємна аутентифікація. Заснована вона на схемі "запит-відповідь". Один з пристроїв стає верифікатором, генерує випадкову величину AU_RAND (A) і засилає його сусідньому пристрою (у plain text), званому пред'явником (claimant - в оригінальній документації). Як тільки пред'явник отримує це "слово", зачинається обчислення величини SRES по алгоритму E1, і вона відправляється верифікатору. Сусідній пристрій проводить аналогічні обчислення і перевіряє відповідь пред'явника. Якщо SRES збіглися, то, значить, все добре, і тепер пристрої міняються ролями, таким чином процес повторюється наново.
E1-алгоритм оперує такими величинами:
·Випадково створене AU_RAND
·link key Kab
·Свій власний BD_ADDR
Уразливості і атаки
Базова pairing атака (атака на сполучення)
Проаналізуємо дані, обмін якими йде впродовж процесу сполучення:
№ОтДоДаніДовжина (битий) Інша інформація
1ABIN_RAND128plaintext
2ABLK_RAND (A) 128XORed with Kinit
3BALK_RAND (B) 128XORed with Kinit
4ABAU_RAND (A) 128plaintext
5BASRES32plaintext
6BAAU_RAND (B) 128plaintext
7ABSRES32plaintext
Представимо ситуацію: зловмисникові удалося прослухати ефір і під час процедури сполучення, він перехопив і зберіг всі повідомлення. Далі знайти PIN можна використовуючи перебір.
Перш за все необхідно скласти сам алгоритм перебору. Ми маємо в своєму розпорядженні перехоплені величини IN_RAND (він нешифрований) і BD_ADDR (нагадаємо, що адреси пристроїв видно в ефірі) і запускаємо алгоритм E22. Йому передаємо вищеперелічені дані і наш передбачуваний PIN. В результаті ми набудемо передбачуваного значення Kinit. Виглядає воно зразково так:
Kinit = E22 [IN_RAND, BD_ADDR (B), PIN'] де PIN' - передбачуваний нами PIN-код
Далі, повідомлення 2 і 3 піддаються XOR з тільки що отриманим Kinit. Отже, наступним кроком ми отримаємо LK_RAND (A) і LK_RAND (B) в чистому вигляді. Тепер ми можемо вирахувати передбачуване значення Kab, для чого проробляємо наступну операцію:
LK_K (A) = E21 [BD_ADDR (A), LK_RAND (A)] де LK_K (A|B) - це проміжні величини
LK_K (B) = E21 [BD_ADDR (B), LK_RAND (B)]
Kab = LK_K (A) XOR LK_K (B)
Перевіримо PIN. Візьмемо отриманий Kab і перехоплений AU_RAND (A) і обчислимо SRES (A).
Після порівнюємо отриманий результат з SRES (A) ', номер, що зберігається в повідомленні, 5:
SRES (A) = E1 [AU_RAND (A), Kab, BD_ADDR (B)]
Якщо SRES (A) == SRES (A) ' - PIN успішно вгаданий. Інакше повторюємо послідовність дій наново з новою величиною PIN'.
Першим, хто відмітив цю уразливість, був англієць Оллі Вайтхауз (Ollie Whitehouse) в квітні 2004 року. Він першим запропонував перехопити повідомлення під час сполучення і спробувати обчислити PIN методом перебору, використовуючи отриману інформацію. Проте, метод має один істотний недолік: атаку можливо провести тільки у випадку, якщо удалося підслухати всі аутентифікаційні дані. Іншими словами, якщо зловмисник знаходився поза ефіром під час початку сполучення або ж упустив якусь величину, то він не має можливості продовжити атаку.
Re-pairing атака (атака на пересопряження)
Вулу і Шакеду удалося знайти вирішення труднощів, пов'язаних з атакою Вайтхауза. Був розроблений другий тип атаки. Якщо процес сполучення вже початий і дані упущені, ми не зможемо закінчити атаку. Але був знайдений вихід. Потрібно змусити пристрої наново ініціювати процес сполучення (звідси і назва). Дана атака дозволяє у будь-який момент зачати вищеописану pairing атаку.
Розгледимо наступну ситуацію. Допустимо, що пристрої вже встигли зв'язатися, зберегли ключ Kab і приступили до Mutual authentication. От нас потрібно змусити пристрої наново зачати pairing. Всього було запропоновано три методи атаки на пересопряжение, причому всі з них залежно від якості реалізації bluetooth-ядра конкретного пристрою. Нижче приведені методи в порядку убування ефективності:
За pairing слідує фаза аутентифікації. Master-устройство посилає AU_RAND і чекає у відповідь SRES. У стандарті декларує можливість втрати ключа зв'язку. У такому разі slave посилає "LMP_not_accepted", повідомляючи master про втрату ключа. Тому основна мета зловмисника - відстежити момент відправки AU_RAND master-пристроєм і у відповідь упровадити пакет LMP_not_accepted, що містить. Реакцією master буде реініціалізація процесу pairing. Причому це приведе до анулювання ключа зв'язку на обох пристроях.
Якщо встигнути відправити IN_RAND slave-пристрою безпосередньо перед відправкою master-пристроєм величини AU_RAND, то slave буде упевнений, що на стороні master загублений ключ зв'язку. Це знову ж таки приведе до процесу реініціалізації сполучення, але вже ініціатором буде slave.
Зловмисник чекає відправки master-пристроємAU_RAND і відправляє у відповідь випадково SRES, що згенерував. Спроба аутентифікації провалена. Далі слідує низка повторних спроб аутентифікації (кількість залежить від особливостей реалізації пристроїв). За умови, що зловмисник продовжує вводити master-устройство в оману, незабаром (по лічильнику невдалих спроб) пристроями буде вирішено об реініціалізації сполучення.
(Як видно, всі ці атаки вимагають відправки потрібних повідомлень в потрібний момент часу. Стандартні пристрої, доступні у продажу, майже з 100% вірогідністю не підійдуть для цих цілей)
Використавши будь-який з цих методів, зловмисник може приступити до базової атаки на сполучення. Таким чином, маючи в арсеналі ці дві атаки, зловмисник може безперешкодно викрасти PIN-код. Далі маючи PIN-код він зможе встановити з'єднання з будь-яким з цих пристроїв. І варто врахувати, що в більшості пристроїв безпека на рівні служб, доступних через bluetooth, не забезпечується на належному рівні. Більшість розробників роблять ставку саме на безпеку встановлення сполучення. Тому наслідки дій зловмисника можуть бути різними: від крадіжки записника телефону до встановлення витікаючого виклику з телефону жертви і використання його як пристрою, що прослухує.
Ці методи описують, як примусити пристрої "забути" link key, що само по собі веде до повторного pairing’у, а значить, зловмисник може підслухати весь процес із самого початку, перехопити всі важливі повідомлення і підібрати PIN.
Оцінка часу підбору PIN-кода
У протоколі Bluetooth активно використовуються алгоритми E22, E21, E1, засновані на шифрі SAFER+. Те, що уразливість відноситься до критичних, підтвердив Брюс Шнайер (Bruce Schneier). Підбір PIN’a на практиці чудово працює. Нижче приведені результати отримані на Pentium IV HT на 3 Ггц:
| Довжина (знаків) | Час (сек) |
| 4 | 0,063 |
| 5 | 0,75 |
| 6 | 7,609 |
Конкретні реалізації вищеописаних атак можуть працювати з різною швидкістю. Способів оптимізації безліч: особливі налаштування компілятора, різні реалізації циклів, умов і арифметичних операцій. Авіша Вул (Avishai Wool) і Янів Шакед (Yaniv Shaked) зробили прорив, знайшовши спосіб скоротити час перебору PIN-коду в рази. Ця оптимізація виходить за рамки даної статті, але, варто відзначити, що мова йде про оптимізації базових алгоритмів стека bluetooth. В світлі сучасних технологій (зокрема nVidia CUDA) результати могли бути ще краще.
Збільшення довжини PIN-кода не є панацеєю і лише трохи збільшує час перебору. Тільки сполучення пристроїв в безпечному місці може частково захистити від описаних атак. Приклад - bluetooth гарнітура або автомобільний handsfree. Ініціалізація зв'язку (при включенні) з даними пристроями може відбуватися багато разів протягом дня, і не завжди у користувача є можливість знаходитися при цьому в захищеному місці. Втім, атаки подібного вигляду не будуть дуже популярні, принаймні, поки не буде реалізовано доступних апаратних засобів і універсальних програмних пакетів. Впровадження NFC є ефективним рішенням проти даного виду атак, але в цілому, ситуація не зміниться до кращого до появи на ринку достатньої кількості рішень на Bluetooth 2.1 (з підтримкою NFC), а через їх зворотну сумісність з попередніми версіями протоколу, вищевикладені атаки будуть актуальні ще достатньо тривалий час.
Застосування
Радіус роботи пристроїв BT2 не перевищує 15 метрів, для BT1 до 100 м (клас А). Ці числа декларуються стандартом для прямої видимості, в реальності не варто чекати роботу на відстані більше 10-20 метрів. Такого дальнодействия недостатньо для ефективного застосування атак на практиці. Тому, ще до детального опрацьовування алгоритмів атаки, на Defcon-2004 публіці була представлена антена-рушниця BlueSniper, розроблена Джонном Херінгтоном (John Herington). Пристрій підключається до портативного пристрою - ноутбуку/КПК і має достатню спрямованість і потужність (ефективна робота до 1,5 км).
Bluetooth: принципи побудови і функціонування
Bluetooth - це технологія передачі даних по радіо на коротку дистанцію, що дозволяє здійснювати зв'язок безпровідних телефонів, комп'ютерів і різної периферії за відсутності прямої видимості.
Розробку Bluetooth зачала компанія ERICSSON ще в 1994 році. Первинною метою було отримання нового радіоінтерфейсу з низьким рівнем енергоспоживання і невисокою вартістю, який дозволив би встановлювати зв'язок між стільниковими телефонами і безпровідними гарнітурами. Крім того, згідно концепції ERICSSON, новий інтерфейс призначався для передачі даних і мовних повідомлень, причому з будь-якої точки миру. Для забезпечення ширшої підтримки молодої технології в таких секторах ринку, як настільні системи, кишенькові комп'ютери і мобільні телефони, ERICSSON в лютому 1998 року організувала консорціум по розробці і просуванню нової технології під назвою Bluetooth SIG (Special Interest Group). Нині в нього входить більше 2000 різних фірм, у тому числі такі великі, як 3СOM, NOKIA, INTEL, NATIONAL SEMICONDACTOR і так далі.








