Відмінності між версіями «Вразливості і атаки Bluetooth»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
(не показано одну проміжну версію цього учасника)
Рядок 5: Рядок 5:
 
[[Файл: Данні.jpg]]
 
[[Файл: Данні.jpg]]
  
Представимо ситуацію: зловмисникові вдалося прослуховувати ефір і під час процедури сполучення, він перехопив і зберіг всі повідомлення. Далі знайти PIN можна використо-вуючи перебір.
+
Представимо ситуацію: зловмисникові вдалося прослуховувати ефір і під час процедури сполучення, він перехопив і зберіг всі повідомлення. Далі знайти PIN можна використовуючи перебір.
  
 
Перш за все необхідно скласти сам алгоритм перебору. Ми маємо в своєму розпорядженні перехоплені величини IN_RAND (він нешифрований) і BD_ADDR (нагадаємо, що адреси пристроїв видно в ефірі) і запускаємо алгоритм E22. Йому передаємо вищеперелічені дані і наш передбачуваний PIN. В результаті ми набудемо передбачуваного значення Kinit. Виглядає воно зразково так:
 
Перш за все необхідно скласти сам алгоритм перебору. Ми маємо в своєму розпорядженні перехоплені величини IN_RAND (він нешифрований) і BD_ADDR (нагадаємо, що адреси пристроїв видно в ефірі) і запускаємо алгоритм E22. Йому передаємо вищеперелічені дані і наш передбачуваний PIN. В результаті ми набудемо передбачуваного значення Kinit. Виглядає воно зразково так:
Рядок 27: Рядок 27:
 
Якщо SRES(A)== SRES(A)'  PIN успішно вгаданий. Інакше повторюємо послідовність дій спочатку з новою величиной PIN'.
 
Якщо SRES(A)== SRES(A)'  PIN успішно вгаданий. Інакше повторюємо послідовність дій спочатку з новою величиной PIN'.
  
Першим, хто відмітив цю уразливість, був англієць Оллі Вайтхауз (Ollie Whitehouse) в кві-тні 2004 року. Він першим запропонував перехопити повідомлення під час сполучення і спробувати обчислити PIN методом перебору, використовуючи отриману інформацію. Проте, метод має один істотний недолік: атаку можливо провести тільки у випадку, якщо вдалося підслуховувати всі аутентифікаційні дані. Іншими словами, якщо зловмисник знаходився поза ефіром під час початку сполучення або ж упустив якусь величину, то він не має можливості продовжити атаку.
+
Першим, хто відмітив цю уразливість, був англієць Оллі Вайтхауз (Ollie Whitehouse) в квітні 2004 року. Він першим запропонував перехопити повідомлення під час сполучення і спробувати обчислити PIN методом перебору, використовуючи отриману інформацію. Проте, метод має один істотний недолік: атаку можливо провести тільки у випадку, якщо вдалося підслуховувати всі аутентифікаційні дані. Іншими словами, якщо зловмисник знаходився поза ефіром під час початку сполучення або ж упустив якусь величину, то він не має можливості продовжити атаку.
  
 
== 5.2.2 Re-pairing атака (атака на пересполучений) ==
 
== 5.2.2 Re-pairing атака (атака на пересполучений) ==
  
Вулу і Шакеду вдалося знайти вирішення труднощів, пов'язаних з атакою Вайтхауза. Був розроблений другий тип атаки. Якщо процес сполучення вже початий і дані упущені, ми не зможемо закінчити атаку. Але був знайдений вихід. Потрібно змусити пристрої спочат-ку ініціювати процес сполучення (звідси і назва). Дана атака дозволяє у будь-який момент почати вищеописану pairing атаку.
+
Вулу і Шакеду вдалося знайти вирішення труднощів, пов'язаних з атакою Вайтхауза. Був розроблений другий тип атаки. Якщо процес сполучення вже початий і дані упущені, ми не зможемо закінчити атаку. Але був знайдений вихід. Потрібно змусити пристрої спочатку ініціювати процес сполучення (звідси і назва). Дана атака дозволяє у будь-який момент почати вищеописану pairing атаку.
  
 
Розглянемо наступну ситуацію. Допустимо, що пристрої вже встигли зв'язатися, зберегли ключ Kab і приступили до Mutual authentication. Від нас потрібно змусити пристрої наново почати pairing. Всього було запропоновано три методи атаки на переспряження, причому всі з них залежно від якості реалізації bluetooth-ядра конкретного пристрою. Нижче приведені методи в порядку убування ефективності:
 
Розглянемо наступну ситуацію. Допустимо, що пристрої вже встигли зв'язатися, зберегли ключ Kab і приступили до Mutual authentication. Від нас потрібно змусити пристрої наново почати pairing. Всього було запропоновано три методи атаки на переспряження, причому всі з них залежно від якості реалізації bluetooth-ядра конкретного пристрою. Нижче приведені методи в порядку убування ефективності:
Рядок 41: Рядок 41:
 
3) Зловмисник чекає відправки master-пристроєм AU_RAND і відправляє у відповідь випадково SRES, що згенерував. Спроба аутентифікації провалена. Далі слідує низка повторних спроб аутентифікації(кількість залежить від особливостей реалізації пристроїв). За умови, що зловмисник продовжує вводити master-пристрій в оману, незабаром (по лічильнику невдалих спроб) пристроями буде ухвалено рішення об реинициализации сполучення.
 
3) Зловмисник чекає відправки master-пристроєм AU_RAND і відправляє у відповідь випадково SRES, що згенерував. Спроба аутентифікації провалена. Далі слідує низка повторних спроб аутентифікації(кількість залежить від особливостей реалізації пристроїв). За умови, що зловмисник продовжує вводити master-пристрій в оману, незабаром (по лічильнику невдалих спроб) пристроями буде ухвалено рішення об реинициализации сполучення.
  
Використавши будь-який з цих методів, зловмисник може приступити до базової атаки на сполучення. Таким чином, маючи в арсеналі ці дві атаки, зловмисник може безперешкод-но викрасти PIN-код. Далі маючи PIN-код він зможе встановити з'єднання з будь-яким з цих пристроїв. І варто врахувати, що в більшості пристроїв безпека на рівні служб, доступних через bluetooth, не забезпечується на належному рівні. Більшість розробників роблять ставку саме на безпеку встановлення сполучення. Тому наслідки дій зловмисника можуть бути різними: від крадіжки записника телефону до встановлення вихідного виклику з телефону жертви і використання його як прослуховуючого пристрою.
+
Використавши будь-який з цих методів, зловмисник може приступити до базової атаки на сполучення. Таким чином, маючи в арсеналі ці дві атаки, зловмисник може безперешкодно викрасти PIN-код. Далі маючи PIN-код він зможе встановити з'єднання з будь-яким з цих пристроїв. І варто врахувати, що в більшості пристроїв безпека на рівні служб, доступних через bluetooth, не забезпечується на належному рівні. Більшість розробників роблять ставку саме на безпеку встановлення сполучення. Тому наслідки дій зловмисника можуть бути різними: від крадіжки записника телефону до встановлення вихідного виклику з телефону жертви і використання його як прослуховуючого пристрою.
  
 
Ці методи описують, як примусити пристрої «забути» link key, що само по собі веде до повторного pairing, а значить, зловмисник може підслуховувати весь процес із самого початку, перехопити всі важливі повідомлення і підібрати PIN.
 
Ці методи описують, як примусити пристрої «забути» link key, що само по собі веде до повторного pairing, а значить, зловмисник може підслуховувати весь процес із самого початку, перехопити всі важливі повідомлення і підібрати PIN.
 +
 +
[[Технологія Bluetooth]]

Поточна версія на 07:35, 30 вересня 2010

5.2.1 Базова pairing атака (атака на сполучення)

Проаналізуємо дані, обмін якими йде впродовж процесу сполучення:

Данні.jpg

Представимо ситуацію: зловмисникові вдалося прослуховувати ефір і під час процедури сполучення, він перехопив і зберіг всі повідомлення. Далі знайти 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 методом перебору, використовуючи отриману інформацію. Проте, метод має один істотний недолік: атаку можливо провести тільки у випадку, якщо вдалося підслуховувати всі аутентифікаційні дані. Іншими словами, якщо зловмисник знаходився поза ефіром під час початку сполучення або ж упустив якусь величину, то він не має можливості продовжити атаку.

5.2.2 Re-pairing атака (атака на пересполучений)

Вулу і Шакеду вдалося знайти вирішення труднощів, пов'язаних з атакою Вайтхауза. Був розроблений другий тип атаки. Якщо процес сполучення вже початий і дані упущені, ми не зможемо закінчити атаку. Але був знайдений вихід. Потрібно змусити пристрої спочатку ініціювати процес сполучення (звідси і назва). Дана атака дозволяє у будь-який момент почати вищеописану pairing атаку.

Розглянемо наступну ситуацію. Допустимо, що пристрої вже встигли зв'язатися, зберегли ключ Kab і приступили до Mutual authentication. Від нас потрібно змусити пристрої наново почати pairing. Всього було запропоновано три методи атаки на переспряження, причому всі з них залежно від якості реалізації bluetooth-ядра конкретного пристрою. Нижче приведені методи в порядку убування ефективності:

1) За pairing слідує фаза аутентифікації. Master-пристрій посилає AU_RAND і чекає у відповідь SRES. У стандарті декларує можливість втрати ключа зв'язку. У такому разі slave посилає «LMP_not_accepted», повідомляючи master про втрату ключа. Тому основна мета зловмисника відстежити момент відправки AU_RAND master-пристрієм і у відповідь упровадити пакет LMP_not_accepted, що містить. Реакцією master буде реинициализация процесу pairing. Причому це приведе до анулювання ключа зв'язку на обох пристроях.

2) Якщо встигнути відправити IN_RAND slave-пристрію безпосередньо перед відправкою master-пристроєм величини AU_RAND, то slave буде упевнений, що на стороні master загублений ключ зв'язку. Це знову ж таки приведе до процесу реинициализации сполучення, але вже ініціатором буде slave.

3) Зловмисник чекає відправки master-пристроєм AU_RAND і відправляє у відповідь випадково SRES, що згенерував. Спроба аутентифікації провалена. Далі слідує низка повторних спроб аутентифікації(кількість залежить від особливостей реалізації пристроїв). За умови, що зловмисник продовжує вводити master-пристрій в оману, незабаром (по лічильнику невдалих спроб) пристроями буде ухвалено рішення об реинициализации сполучення.

Використавши будь-який з цих методів, зловмисник може приступити до базової атаки на сполучення. Таким чином, маючи в арсеналі ці дві атаки, зловмисник може безперешкодно викрасти PIN-код. Далі маючи PIN-код він зможе встановити з'єднання з будь-яким з цих пристроїв. І варто врахувати, що в більшості пристроїв безпека на рівні служб, доступних через bluetooth, не забезпечується на належному рівні. Більшість розробників роблять ставку саме на безпеку встановлення сполучення. Тому наслідки дій зловмисника можуть бути різними: від крадіжки записника телефону до встановлення вихідного виклику з телефону жертви і використання його як прослуховуючого пристрою.

Ці методи описують, як примусити пристрої «забути» link key, що само по собі веде до повторного pairing, а значить, зловмисник може підслуховувати весь процес із самого початку, перехопити всі важливі повідомлення і підібрати PIN.

Технологія Bluetooth