Аутентифікація з загальним ключем
Аутентифікація з загальним ключем
Механізм аутентифікації із загальним ключем засновано на наявності загальною (що розділяється) секретної інформації (секретного ключа), відомої тільки точки доступу і клієнта. Передбачається, що і клієнт, і точка доступу заздалегідь отримали загальний секретний ключ. Аутентифікація з загальним ключем використовує механізм безпеки WEP. Під час аутентифікації із загальним ключем обмін повідомленнями між клієнтом і точкою доступу відбувається наступним чином:
- Клієнт посилає точки доступу запит на аутентифікацію
- Точка доступу посилає підтвердження, яке містить блок даних (відкритий текст), створений генератором псевдовипадкових чисел WEP.
- Клієнт шифрує отриманий блок за допомогою секретного ключа WEP і посилає шифротекст назад точки доступу
- Точка доступу розшифровує шифротекст і виробляє порівняння з відкритим текстом. Якщо значення збігаються, то точка доступу посилає клієнту підтвердження з'єднання, в іншому випадку - відмова.
Після проведеної аутентифікації і з'єднання клієнт і точка доступу використовують секретний ключ для шифрування потоку даних. Тут варто відзначити цікаву деталь, яка може збити з пантелику необізнаного. Справа в тому, що сама ідея аутентифікації із загальним ключем ніяк не залежить від алгоритму WEP. Ми ж маємо на увазі суто приватний випадок такої аутентифікації, яка спирається на особливості WEP -шифрування. Але тут і криється вся сіль: саме WEP має ті вадами, які дозволяють атакуючому обійти аутентифікацію. Зловмиснику досить лише зафіксувати момент аутентифікації будь-якого клієнта з точкою доступу і витягнути дані, що передаються при рукостисканні.
Додатково зазначимо, що WEP офіційно застарів. Його не можна застосовувати в якості механізму інформаційної безпеки.
Зауваження. У цьому параграфі все експерименти будемо проводити на точці доступу D-LINK DPN-R5402 (Version 1.0.21), яка підтримує режим WEP-шифрування.
Для демонстрації атаки діятимемо по кроках:
- Задаємо SSID для D-LINK DPN-R5402:
- Встановлюємо WEP-шифрування, вибираємо режим аутентифікації із загальним ключем, встановлюємо рівень шифрування в 128 біт, генеруємо і вибираємо відкритий ключ (наприклад, під номером 3):
Зверніть увагу, що ми вибрали рівень шифрування в 128 біт. Це означає, що ключова послідовність буде складатися з 26-ти шістнадцятирічних цифр. Якщо вибрати рівень шифрування в 64 біта, то ключова послідовність буде складатися з 10-ти шістнадцятирічних цифр. Також зверніть увагу, що автоматичний генератор ключів створив 4 ключа, з яких необхідно вибрати один. Саме він і буде тим самим розділяються ключем, відомим тільки точки доступу і клієнтської станції.
- Тепер клієнтської станції треба повідомити розділяється ключ. Нагадаємо, що в нашому випадку на клієнтській машині коштує сімка. Прямуємо по шляху: Win → Control Panel → Network and Sharing Center → Set up a new connection or network → Manually connect to a wireless network. Задаємо параметри, як показано на слайді:
- Треба вказати, що використовується аутентифікація на основі загального ключа (Shared), а також вказати номер ключа (Key Index):
- Тепер можна підключатися до точки доступу Wireless Lab:
Якщо з'єднання буде обмеженим (limited access), спробуйте перезавантажити точку доступу.
- Тепер займемося безпосередньо обходом аутентифікації на основі розділяється ключа. Нацькуємо сниффер airodump-ng на експериментальну точку доступу і будемо журналіровать процес сканування ефіру в файл file.log:
$ Sudo airodump-ng -c 7 --bssid 34: 08: 04: 90: 37: dc -w file.log mon0
- У процесі сканування ефіру ми можемо почекати першого з'єднати клієнта, а можемо шляхом деаутентіфікаціі ризикнути ініціювати чийсь реконнект. Так чи інакше, як тільки клієнт аутентифицирующей з точкою доступу, airodump-ng автоматично перехоплює дані рукостискання. Як тільки це відбувається, поле AUTH відзначається значенням SKA. Тобто сниффер фіксує той факт, що WEP-алгоритм використовує аутентифікацію на основі загального ключа (S hared K ey A uthentication):
$ Sudo aireplay-ng -1 0 -y file.log-01-34-08-04-90-DC.xor -e "Wireless Lab" -a 34: 08: 04: 90: 37: dc -h 00: 11: 22: 33: 44: 55 mon0
Судячи з повідомлень aireplay-ng. ми успішно обійшли аутентифікацію і з'єдналися з точкою доступу.
Використовуючи Wireshark. розберіть самостійно процес аутентифікації і з'єднання атакуючої машини з точкою доступу.
Будь-яка точка доступу має деякий максимальний ліміт підключаються клієнтів. Можна написати нескладний скрипт-обгортку над aireplay-ng. який зазначеним способом буде багаторазово з'єднувати фейковий клієнти з атакується точкою доступу, поки лічильник максимального кількість підключаються станцій не досягне своєї межі. При цьому легітимні клієнти з'єднатися з точкою доступу вже не зможуть. Це називається атакою на відмову в обслуговуванні (Denial of Service).