У попередній статті шифрування в бездротових мережах було присвячено всього кілька слів - було обіцяно висвітлити це питання в окремій статті. Сьогодні ми виконуємо свій обов'язок :)
Для початку - трохи теорії.
Шифруванню даних в бездротових мережах приділяється так багато уваги через самого характеру подібних мереж. Дані передаються бездротовим способом, використовуючи радіохвилі, причому в загальному випадку використовуються всеспрямовані антени. Таким чином, дані чують все - не тільки той, кому вони призначені, але і сусід, що живе за стінкою або «цікавиться», який зупинився з ноутбуком під вікном. Звичайно, відстані, на яких працюють бездротові мережі (без підсилювачів або спрямованих антен), невеликі - близько 100 метрів в ідеальних умовах. Стіни, дерева та інші перешкоди сильно гасять сигнал, але це все одно не вирішує проблему.
Спочатку для захисту використовувався лише SSID (ім'я мережі). Але, взагалі кажучи, саме захистом такої спосіб можна називати з великою натяжкою - SSID передається у відкритому вигляді і ніхто не заважає зловмисникові його підслухати, а потім підставити в своїх настройках потрібний. Не кажучи про те, що (це стосується точок доступу) може бути включений широкомовний режим для SSID, тобто він буде примусово розсилатися в ефір для всіх слухачів.
Тому виникла потреба саме в шифруванні даних. Першим таким стандартом став WEP - Wired Equivalent Privacy. Шифрування здійснюється за допомогою 40 або 104-бітного ключа (потокове шифрування з використанням алгоритму RC4 на статичному ключі). А сам ключ являє собою набір ASCII-символів довжиною 5 (для 40-бітного) або 13 (для 104-бітного ключа) символів. Набір цих символів перекладається в послідовність шістнадцятирічних цифр, які і є ключем. Драйвера багатьох виробників дозволяють вводити замість набору ASCII-символів безпосередньо шістнадцяткові значення (тієї ж довжини). Звертаю увагу, що алгоритми перекладу з ASCII-послідовності символів в шістнадцяткові значення ключа можуть відрізнятися у різних виробників. Тому, якщо в мережі використовується різнорідне бездротове обладнання і ніяк не вдається настройка WEP шифрування з використанням ключа-ASCII-фрази, - спробуйте ввести замість неї ключ у шістнадцятковому представленні.
А як же заяви виробників про підтримку 64 і 128-бітного шифрування, запитаєте ви? Все правильно, тут свою роль відіграє маркетинг - 64 більше 40, а 128 - 104. Реально шифрування даних відбувається з використанням ключа довжиною 40 або 104. Але крім ASCII-фрази (статичної складової ключа) є ще таке поняття, як Initialization Vector - IV - вектор ініціалізації. Він служить для рандомізації решти ключа. Вектор вибирається випадковим чином і динамічно змінюється під час роботи. В принципі, це розумне рішення, так як дозволяє ввести випадкову складову в ключ. Довжина вектора дорівнює 24 бітам, тому загальна довжина ключа в результаті виходить рівної 64 (40 + 24) або 128 (104 + 24) біт.
Все б добре, але використовуваний алгоритм шифрування (RC4) в даний час не є особливо стійким - при великому бажанні, за відносно невеликий час можна підібрати ключ перебором. Але все ж головна вразливість WEP пов'язана якраз з вектором ініціалізації. Довжина IV складає всього 24 біта. Це дає нам приблизно 16 мільйонів комбінацій - 16 мільйонів різних векторів. Хоча цифра «16 мільйонів» звучить досить переконливо, але в світі все відносно. У реальній роботі всі можливі варіанти ключів будуть використані за проміжок від десяти хвилин до декількох годин (для 40-бітного ключа). Після цього вектора почнуть повторюватися. Зловмиснику варто лише набрати достатню кількість пакетів, просто прослухавши трафік бездротової мережі, і знайти ці повтори. Після цього підбір статичної складової ключа (ASCII-фрази) не займає багато часу.
Але це ще не все. Існують так звані «летючі» вектора ініціалізації. Використання подібних векторів в ключі дає можливість зловмиснику практично відразу приступити до підбору статичної частини ключа, а не чекати кілька годин, пасивно накопичуючи трафік мережі. Багато виробників вбудовують в софт (або апаратну частину бездротових пристроїв) перевірку на подібні вектора, і, якщо подібні трапляються, вони мовчки відкидаються, тобто не беруть участі в процесі шифрування. На жаль, далеко не всі пристрої мають подібною функцією.
В даний час деякі виробники бездротового обладнання пропонують «розширені варіанти» алгоритму WEP - в них використовуються ключі довжиною понад 128 (точніше 104) біт. Але в цих алгоритмах збільшується лише статична складова ключа. Довжина ініціалізації вектора залишається тією ж самою, з усіма наслідками, що випливають звідси наслідками (іншими словами, ми лише збільшуємо час на підбір статичного ключа). Само собою зрозуміло, що алгоритми WEP із збільшеною довжиною ключа у різних виробників можуть бути не сумісні.
На жаль, при використанні протоколу 802.11b нічого крім WEP вибрати не вдасться. Точніше, деякі (меншість) виробники поставляють різні реалізації WPA шифрування (софтові методами), яке набагато стійкіше, ніж WEP. Але ці «заплатки» бувають несумісні навіть в межах обладнання одного виробника. Загалом, при використанні обладнання стандарту 802.11b, є всього три способи зашифрувати свій трафік:- 1. Використання WEP з максимальною довжиною ключа (128 біт або вище), якщо обладнання підтримує циклічну зміну ключів зі списку (в списку - до чотирьох ключів), бажано цю зміну активувати.
- 2. Використання стандарту 802.1x
- 3. Використання стороннього програмного забезпечення для організації VPN тунелів (шифрованих потоків даних) по бездротовій мережі. Для цього на одній з машин ставиться VPN сервер (зазвичай з підтримкою pptp), на інших - налаштовуються VPN клієнти. Ця тема вимагає окремого розгляду і виходить за рамки цієї статті.
- EAP (Extensible Authentication Protocol) - протокол розширеної аутентифікації користувачів або віддалених пристроїв;
- TLS (Transport Layer Security) - протокол захисту транспортного рівня, він забезпечує цілісність передачі даних між сервером і клієнтом, а так само їх взаємну аутентифікацію;
- RADIUS (Remote Authentication Dial-In User Server) - сервер аутентифікації (перевірки справжності) віддалених клієнтів. Він і забезпечує аутентифікацію користувачів.
Протокол 802.1x забезпечує аутентифікацію віддалених клієнтів і видачу їм тимчасових ключів для шифрування даних. Ключі (в зашифрованому вигляді) висилаються клієнту на незначний проміжок часу, після якого генерується і надсилається новий ключ. Алгоритм шифрування не змінився - той же RC4, але часта ротація ключів дуже сильно ускладнює ймовірність злому. Підтримка цього протоколу є тільки в операційних системах (від Microsoft) Windows XP. Його великий мінус (для кінцевого користувача) в тому, що протокол вимагає наявність RADIUS-сервера, якого в домашній мережі, швидше за все, не буде.
Пристрої, що підтримують стандарт 802.11g, підтримують покращений алгоритм шифрування WPA - Wi-Fi Protected Access. За великим рахунком це тимчасовий стандарт, покликаний заповнити нішу безпеки до приходу протоколу IEEE 802.11i (так званого WPA2). WPA включає в себе 802.1X, EAP, TKIP і MIC.
З нерозглянутих протоколів тут фігурують TKIP і MIC:- TKIP (Temporal Key Integrity Protocol) - реалізація динамічних ключів шифрування, плюс до цього, кожен пристрій в мережі так само отримує свій Master-ключ (який теж час від часу змінюється). Ключі шифрування мають довжину 128 біт і генеруються за складним алгоритмом, а загальна кількість можливих варіантів ключів досягає сотні мільярдів, а змінюються вони дуже часто. Проте, використовуваний алгоритм шифрування - по -, як і раніше RC4.
- MIC (Message Integrity Check) - протокол перевірки цілісності пакетів. Протокол дозволяє відкидати пакети, які були «вставлені» в канал третьою особою, тобто пішли НЕ
від валидного відправника.
Велике число достоїнств протоколу TKIP не покриває його основний недолік використовуваний для шифрування алгоритм RC4. Хоча на даний момент випадків злому WPA на основі TKIP зареєстровано не було, але хто знає, що піднесе нам майбутнє? Тому зараз все популярнішим стає використання стандарту AES (Advanced Encryption Standard), який приходить на заміну TKIP. До слова, в майбутньому стандарті WPA2 є обов'язкова вимога до використання AES для шифрування.
Які висновки можна зробити?
- при наявності в мережі тільки 802.11g пристроїв краще користуватися шифруванням на основі WPA;
- по можливості (за підтримки усіма пристроями) включати AES шифрування;
Переходимо до безпосередньої налаштування шифрування на пристроях. Я використовую ті ж бездротові адаптери, що і в попередній статті:
Cardbus адаптер Asus WL-100g встановлений на ноутбуці. Інтерфейс управління картою - утиліта від ASUS (ASUS WLAN Control Center).
Зовнішній адаптер з USB-інтерфейсом ASUS WL-140. Управління адаптером - через вбудований в Windows XP інтерфейс (Zero Wireless Configuration). Ця карта стандарту 802.11b, тому підтримки WPA не має.
Плата з PCI інтерфейсом Asus WL-130g. Інтерфейс управління в реалізації від Ralink (виробник чіпсета даної PCI карти).
Почнемо з налаштування шифрування в інтерфейсі управління ASUS WLAN Control Center. Всі налаштування зосереджені в розділі Encryption. Спочатку виберемо тип аутентифікації (Network Authentication), нам доступні три типи: Open System, Shared Key і WPA.
Далі вибираємо шифрування (Encryption) - WEP, розмір ключа - 128 біт (64-бітний ключ краще не використовувати зовсім). Вибираємо формат ключа, HEX (введення ключа в шістнадцятковому вигляді) або генерація ключа з ASCII послідовності (не забуваємо, що алгоритми генерації можуть відрізнятися у виробників). Так само враховуємо, що WEP-ключ (або ключі) повинні бути однакові на всіх пристроях в одній мережі. Всього можна ввести до чотирьох ключів. Останнім пунктом вибираємо, який з ключів буде використовуватися (Default Key). В даному випадку є ще один спосіб - запустити використовувати всі чотири ключа послідовно, що підвищує безпеку. (Сумісність тільки у пристроїв одного і того ж виробника).
За підтримки на всіх пристроях (зазвичай це 802.11g пристрої) настійно рекомендується використовувати цей режим, замість застарілого і вразливого WEP.
Зазвичай бездротові пристрої підтримують два режиму WPA:- Стандартний WPA. Нам він не підходить, так як вимагає наявність RADIUS сервера в мережі (до того ж працює лише в зв'язці з точкою доступу).
- WPA-PSK - WPA з підтримкою Pre Shared Keys (заздалегідь заданих ключів). А це те, що потрібно - ключ (однаковий для всіх пристроїв) вручну задається на всіх бездротових адаптерах і первинна аутентифікація станцій здійснюється через нього.
Як алгоритмів шифрування можна вибрати TKIP або AES. Останній реалізований не на всіх бездротових клієнтів, але якщо він підтримується всіма станціями, то краще зупинитися саме на ньому. Wireless Network Key - це той самий загальний Pre Shared Key. Бажано зробити його довшим і не використовувати слово в словнику, або набір слів. В ідеалі це має бути якась абракадабра.
Після натискання на кнопку Apply (або Ok), встановлені установки будуть застосовані до бездротової карті. На цьому процедуру настройки шифрування на ній можна вважати закінченою.
Інтерфейс управління в реалізації від Ralink - Asus WL-130g
Установка не дуже відрізняється від уже розглянутого інтерфейсу від ASUS WLAN CC. У вікні, що відкрилося інтерфейсу йдемо на закладку Profile. вибираємо потрібний профіль і тиснемо Edit.
Налаштування шифрування здійснюється в закладці Authentication and Security. Якщо ввімкнути функцію WEP шифрування, вибираємо Shared в Authentication type (тобто загальний ключ).
Вибираємо тип шифрування - WEP і вводимо до чотирьох ASCII або шістнадцяткових ключів. Довжину ключа в інтерфейсі задати не можна, відразу використовується 128-бітний ключ.
2. WPA шифрування.
Якщо в Authentication type вибрати WPA-None, то ми активуємо WPA-шифрування з загальним ключем. Вибираємо тип шифрування (Encryption) TKIP або AES і вводимо загальний ключ (WPA Pre-Shared Key).
На цьому і закінчується настройка шифрування в даному інтерфейсі. Для збереження налаштувань в профілі досить натиснути кнопку Ok.
Zero Wireless Configuration (вбудований в Windows інтерфейс) - ASUS WL-140
ASUS WL-140 є картою стандарту 802.11b, тому підтримує тільки WEP шифрування.
1. WEP шифрування.
В налаштуваннях бездротового адаптера переходимо на закладку Безпровідні мережі. Далі вибираємо нашу бездротову мережу і тиснемо кнопку Налаштувати.
У вікні активуємо Шифрування даних. Також активуємо Перевірку достовірності мережі. відключення цього пункту призведе до включення аутентифікації типу «Open System», тобто будь-який клієнт зможе підключитися до мережі, знаючи її SSID.
Вводимо ключ мережі (і повторно його ж в наступному полі). Перевіряємо його індекс (порядковий номер), зазвичай він дорівнює одиниці (тобто перший ключ). Номер ключа повинен бути однаковий на всіх пристроях.
Ключ (мережевий пароль), як нам підказує операційна система, повинен містити 5 або 13 символів або бути повністю введений в шістнадцятковому вигляді. Ще раз звертаю увагу, що алгоритм перекладу ключа з символьного виду в шістнадцятковій може відрізнятися у Microsoft і виробників власних інтерфейсів до управління бездротовими адаптерами, тому надійніше буде ввести ключ в шістнадцятковому вигляді (тобто цифрами від 0 до 9 і буквами від A до F).
В інтерфейсі є ще прапор, який відповідає за Автоматичне надання ключа. але я точно не знаю, де це буде працювати. У розділі допомоги сказано, що ключ може бути зашитий в бездротової адаптер виробником оного. Загалом, краще не активувати цю функцію.
На цьому настройку шифрування для 802.11b адаптера можна вважати закінченою.
До речі, про вбудованої в ОС допомоги. Більшість зі сказаного тут і навіть більш того можна знайти в Центрі довідки та підтримки. яка володіє хорошою системою допомоги, досить лише ввести ключові слова і натиснути на зелену стрілку пошуку.
2. WPA шифрування.
Розглянувши настройку шифрування на прикладі 802.11b адаптера ASUS WL-140, ми не торкнулися настройки WPA в Windows, так як карта не підтримує цей режим. Розглянемо цей аспект на прикладі іншого адаптера - ASUS WL-100g. Можливість налаштування WPA в Windows XP з'являється з установкою Service Pack версії 2 (або ж відповідними оновленнями, що лежать на сайті Microsoft).
Service Pack 2 сильно розширює функції та зручність налаштувань бездротової мережі. Хоча основні елементи меню не змінилися, але до них додалися нові.
Налаштування шифрування здійснюється стандартним чином: спочатку вибираємо значок бездротового адаптера, далі тиснемо кнопку Властивості.
Переходимо на закладку Безпровідні мережі і вибираємо, яку мережу будемо налаштовувати (зазвичай вона одна). Тиснемо Властивості.
У вікні вибираємо WPA-None, тобто WPA з наперед заданими ключами (якщо вибрати Сумісна. То ми включимо режим установки WEP шифрування, який вже був описаний вище).
Вибираємо AES або TKIP (якщо всі пристрої в мережі підтримують AES, то краще вибрати його) і вводимо два рази (другий в поле підтвердження) WPA-ключ. Бажано якийсь довгий і трудноподбіраемий.
Після натискання на Ok настройку WPA шифрування також можна вважати закінченою.