psk или eap что лучше
Защита беспроводных сетей, WPA: теория и практика (часть первая)
Тема безопасности беспроводных сетей по-прежнему остается актуальной, хотя уже достаточно давно существуют надежные (на сегодняшний момент, конечно же) методы защиты этих сетей. Разумеется, речь идет о технологии WPA (Wi-Fi Protected Access).
Большинство существующего на данный момент Wi-Fi оборудования имеет поддержку данной технологии, но, к сожалению, до сих пор в нашей лаборатории попадаются экземпляры, не знающие о WPA. Это более чем странно — заканчивается 2005 год, а некоторые производители до сих пор считают, что технология WEP спасет пользователей беспроводной сети от утечки информации. WEP уже давно устарела. На смену этой технологии пришел WPA, а также на горизонте виднеется новый стандарт 802.11i (некоторые производители преподносят его, как WPA2).
За шифрование данных в WPA отвечает протокол TKIP, который, хотя и использует тот же алгоритм шифрования — RC4 — что и в WEP, но в отличие от последнего, использует динамические ключи (то есть ключи часто меняются). Он применяет более длинный вектор инициализации и использует криптографическую контрольную сумму (MIC) для подтверждения целостности пакетов (последняя является функцией от адреса источника и назначения, а также поля данных).
RADIUS-протокол предназначен для работы в связке с сервером аутентификации, в качестве которого обычно выступает RADIUS-сервер. В этом случае беспроводные точки доступа работают в enterprise-режиме.
Если в сети отсутствует RADIUS-сервер, то роль сервера аутентификации выполняет сама точка доступа — так называемый режим WPA-PSK (pre-shared key, общий ключ). В этом режиме в настройках всех точек доступа заранее прописывается общий ключ. Он же прописывается и на клиентских беспроводных устройствах. Такой метод защиты тоже довольно секьюрен (относительно WEP), очень не удобен с точки зрения управления. PSK-ключ требуется прописывать на всех беспроводных устройствах, пользователи беспроводных устройств его могут видеть. Если потребуется заблокировать доступ какому-то клиенту в сеть, придется заново прописывать новый PSK на всех устройствах сети и так далее. Другими словами, режим WPA-PSK подходит для домашней сети и, возможно, небольшого офиса, но не более того.
В этой серии статей будет рассмотрена работа WPA совместно с внешним RADIUS-сервером. Но прежде чем перейти к ней, немного подробнее остановимся на механизмах работы WPA. А перед этим рассмотрим технологию WPA2.
Технология WPA являлась временной мерой до ввода в эксплуатацию стандарта 802.11i. Часть производителей до официального принятия этого стандарта ввели в обращение технологию WPA2, в которой в той или иной степени используются технологии из 802.11i. Такие как использование протокола CCMP (Counter Mode with Cipher Block Chaining Message Authentication Code Protocol), взамен TKIP, в качестве алгоритма шифрования там применяется усовершенствованный стандарт шифрования AES (Advanced Encryption Standard). А для управления и распределения ключей по-прежнему применяется протокол 802.1x.
Как уже было сказано выше, протокол 802.1x может выполнять несколько функций. В данном случае нас интересуют функции аутентификации пользователя и распределение ключей шифрования. Необходимо отметить, что аутентификация происходит «на уровне порта» — то есть пока пользователь не будет аутентифицирован, ему разрешено посылать/принимать пакеты, касающиеся только процесса его аутентификации (учетных данных) и не более того. И только после успешной аутентификации порт устройства (будь то точка доступа или умный коммутатор) будет открыт и пользователь получит доступ к ресурсам сети.
Кроме вышеперечисленных, следует отметить следующие два метода, EAP-TTLS и EAP-PEAP. В отличие от предыдущих, эти два метода перед непосредственной аутентификацией пользователя сначала образуют TLS-туннель между клиентом и сервером аутентификации. А уже внутри этого туннеля осуществляется сама аутентификация, с использованием как стандартного EAP (MD5, TLS), или старых не-EAP методов (PAP, CHAP, MS-CHAP, MS-CHAP v2), последние работают только с EAP-TTLS (PEAP используется только совместно с EAP методами). Предварительное туннелирование повышает безопасность аутентификации, защищая от атак типа «man-in-middle», «session hihacking» или атаки по словарю.
На рис.1 показана структура EAP кадра. Протокол PPP засветился там потому, что изначально EAP планировался к использованию поверх PPP туннелей. Но так как использование этого протокола только для аутентификации по локальной сети — излишняя избыточность, EAP-сообщения упаковываются в «EAP over LAN» (EAPOL) пакеты, которые и используются для обмена информацией между клиентом и аутентификатором (точкой доступа).
Описанный процесс проиллюстрирован на рис.3 (там показан один из простейших методов EAP):
Как видно из рисунка, для коммуникации между клиентом (supplicant) и точкой доступа (authenticator) используются пакеты EAPOL. Протокол RADIUS используется для обмена информацией между аутентификатором (точкой доступа) и RADIUS-сервером (сервером аутентификации). При транзитной пересылке информации между клиентом и сервером аутентификации пакеты EAP переупаковываются из одного формата в другой на аутентификаторе.
Детальное рассмотрение алгоритмов шифрования, а также методы генерации сессионных ключей шифрования, пожалуй, выходят за рамки данного материала, поэтому рассмотрю их лишь вкратце.
Первоначальная аутентификация производится на основе общих данных, о которых знают и клиент, и сервер аутентификации (как то логин/пароль, сертификат и т.д.) — на этом этапе генерируется Master Key. Используя Master Key, сервер аутентификации и клиент генерируют Pairwise Master Key (парный мастер ключ), который передается аутентификатору со стороны сервера аутентификации. А уже на основе Pairwise Master Key и генерируются все остальные динамические ключи, которым и закрывается передаваемый трафик. Необходимо отметить, что сам Pairwise Master Key тоже подлежит динамической смене.
Теперь перейдем от сухой теории к реальности, а именно реализации WPA в Windows XP. Нормальная поддержка WPA (с поддержкой AES) появилась, только начиная с windows service pack 2.
Во второй части статьи будет рассмотрена настройка Windows-клиентов (Windows XP SP2), RADIUS-сервера (FreeRadius), и PKI на основе OpenSSL. Последние два компонента работают в операционной системе Gentoo Linux.
Рассмотрим несколько методов аутентификации беспроводной сети WLAN, а именно: открытую аутентификацию, PSK и EAP.
Открытая аутентификация
По умолчанию аутентификация беспроводных устройств не требуется. Всем устройствам разрешено устанавливать соединения независимо от их типа и принадлежности. Это называется открытой аутентификацией. Открытая аутентификация должна использоваться только в общедоступных беспроводных сетях, например, в школах и интернет-кафе (ресторанах). Она может использоваться в сетях, где аутентификация будет выполняться другими средствами после подключения к сети.
Предварительно согласованный ключ (PSK)
При использовании режима PSK точка доступа и клиент должны использовать общий ключ или кодовое слово. Точка доступа отправляет клиенту случайную строку байтов. Клиент принимает эту строку, шифрует ее (или скремблирует), используя ключ, и отправляет ее обратно в точку доступа. Точка доступа получает зашифрованную строку и для ее расшифровки использует свой ключ. Если расшифрованная строка, принятая от клиента, совпадает с исходной строкой, отправленной клиенту, то клиенту дается разрешение установить соединение.
В этом случае выполняется односторонняя аутентификация, т.е. точка доступа проверяет реквизиты подключаемого узла. PSK не подразумевает проверки узлом подлинности точки доступа, а также не проверяет подлинности пользователя, подключающегося к узлу.
Расширяемый протокол аутентификации (EAP)
EAP обеспечивает взаимную или двухстороннюю аутентификацию, а также аутентификацию пользователя. Если на стороне клиента установлено программное обеспечение EAP, клиент взаимодействует с внутренним сервером аутентификации, таким как служба удаленной аутентификации пользователей с коммутируемым доступом ( RADIUS ). Этот внутренний сервер работает независимо от точки доступа и ведет базу данных пользователей, имеющих разрешение на доступ в сеть. При применении EAP пользователь, а не только узел, должен предъявить имя и пароль, которые затем проверяются по базе данных сервера RADIUS. Если предъявленные учетные данные являются допустимыми, пользователь рассматривается как прошедший аутентификацию.
WPA2-Enterprise, или правильный подход к безопасности Wi-Fi сети
В последнее время появилось много «разоблачающих» публикаций о взломе какого-либо очередного протокола или технологии, компрометирующего безопасность беспроводных сетей. Так ли это на самом деле, чего стоит бояться, и как сделать, чтобы доступ в вашу сеть был максимально защищен? Слова WEP, WPA, 802.1x, EAP, PKI для вас мало что значат? Этот небольшой обзор поможет свести воедино все применяющиеся технологии шифрования и авторизации радио-доступа. Я попробую показать, что правильно настроенная беспроводная сеть представляет собой непреодолимый барьер для злоумышленника (до известного предела, конечно).
Основы
Любое взаимодействие точки доступа (сети), и беспроводного клиента, построено на:
Параметры беспроводной сети, в первую очередь ее имя (SSID), регулярно анонсируются точкой доступа в широковещательных beacon пакетах. Помимо ожидаемых настроек безопасности, передаются пожелания по QoS, по параметрам 802.11n, поддерживаемых скорости, сведения о других соседях и прочее. Аутентификация определяет, как клиент представляется точке. Возможные варианты:
Комбинация Open Authentication, No Encryption широко используется в системах гостевого доступа вроде предоставления Интернета в кафе или гостинице. Для подключения нужно знать только имя беспроводной сети. Зачастую такое подключение комбинируется с дополнительной проверкой на Captive Portal путем редиректа пользовательского HTTP-запроса на дополнительную страницу, на которой можно запросить подтверждение (логин-пароль, согласие с правилами и т.п).
Шифрование WEP скомпрометировано, и использовать его нельзя (даже в случае динамических ключей).
Широко встречающиеся термины WPA и WPA2 определяют, фактически, алгоритм шифрования (TKIP либо AES). В силу того, что уже довольно давно клиентские адаптеры поддерживают WPA2 (AES), применять шифрование по алгоритму TKIP нет смысла.
Разница между WPA2 Personal и WPA2 Enterprise состоит в том, откуда берутся ключи шифрования, используемые в механике алгоритма AES. Для частных (домашних, мелких) применений используется статический ключ (пароль, кодовое слово, PSK (Pre-Shared Key)) минимальной длиной 8 символов, которое задается в настройках точки доступа, и у всех клиентов данной беспроводной сети одинаковым. Компрометация такого ключа (проболтались соседу, уволен сотрудник, украден ноутбук) требует немедленной смены пароля у всех оставшихся пользователей, что реалистично только в случае небольшого их числа. Для корпоративных применений, как следует из названия, используется динамический ключ, индивидуальный для каждого работающего клиента в данный момент. Этот ключ может периодический обновляться по ходу работы без разрыва соединения, и за его генерацию отвечает дополнительный компонент — сервер авторизации, и почти всегда это RADIUS-сервер.
Все возможные параметры безопасности сведены в этой табличке:
Свойство | Статический WEP | Динамический WEP | WPA | WPA 2 (Enterprise) |
Идентификация | Пользователь, компьютер, карта WLAN | Пользователь, компьютер | Пользователь, компьютер | Пользователь, компьютер |
Авторизация | Общий ключ | EAP | EAP или общий ключ | EAP или общий ключ |
Целостность | 32-bit Integrity Check Value (ICV) | 32-bit ICV | 64-bit Message Integrity Code (MIC) | CRT/CBC-MAC (Counter mode Cipher Block Chaining Auth Code — CCM) Part of AES |
Шифрование | Статический ключ | Сессионный ключ | Попакетный ключ через TKIP | CCMP (AES) |
РАспределение ключей | Однократное, вручную | Сегмент Pair-wise Master Key (PMK) | Производное от PMK | Производное от PMK |
Вектор инициализации | Текст, 24 бита | Текст, 24 бита | Расширенный вектор, 65 бит | 48-бит номер пакета (PN) |
Алгоритм | RC4 | RC4 | RC4 | AES |
Длина ключа, бит | 64/128 | 64/128 | 128 | до 256 |
Требуемая инфраструктура | Нет | RADIUS | RADIUS | RADIUS |
Если с WPA2 Personal (WPA2 PSK) всё ясно, корпоративное решение требует дополнительного рассмотрения.
WPA2 Enterprise
Здесь мы имеем дело с дополнительным набором различных протоколов. На стороне клиента специальный компонент программного обеспечения, supplicant (обычно часть ОС) взаимодействует с авторизующей частью, AAA сервером. В данном примере отображена работа унифицированной радиосети, построенной на легковесных точках доступа и контроллере. В случае использования точек доступа «с мозгами» всю роль посредника между клиентов и сервером может на себя взять сама точка. При этом данные клиентского суппликанта по радио передаются сформированными в протокол 802.1x (EAPOL), а на стороне контроллера они оборачиваются в RADIUS-пакеты.
Применение механизма авторизации EAP в вашей сети приводит к тому, что после успешной (почти наверняка открытой) аутентификации клиента точкой доступа (совместно с контроллером, если он есть) последняя просит клиента авторизоваться (подтвердить свои полномочия) у инфраструктурного RADIUS-сервера:
При этом контроллер внимательно наблюдает за происходящим обменом информацией, и дожидается успешной авторизации, либо отказа в ней. При успехе RADIUS-сервер способен передать точке доступа дополнительные параметры (например, в какой VLAN поместить абонента, какой ему присвоить IP-адрес, QoS профиль и т.п.). В завершении обмена RADIUS-сервер дает возможность клиенту и точке доступа сгенерировать и обменяться ключами шифрования (индивидуальными, валидными только для данной сеcсии):
Все эти методы (кроме EAP-FAST) требуют наличия сертификата сервера (на RADIUS-сервере), выписанного удостоверяющим центром (CA). При этом сам сертификат CA должен присутствовать на устройстве клиента в группе доверенных (что нетрудно реализовать средствами групповой политики в Windows). Дополнительно, EAP-TLS требует индивидуального клиентского сертификата. Проверка подлинности клиента осуществляется как по цифровой подписи, так (опционально) по сравнению предоставленного клиентом RADIUS-серверу сертификата с тем, что сервер извлек из PKI-инфраструктуры (Active Directory).
Поддержка любого из EAP методов должна обеспечиваться суппликантом на стороне клиента. Стандартный, встроенный в Windows XP/Vista/7, iOS, Android обеспечивает как минимум EAP-TLS, и EAP-MSCHAPv2, что обуславливает популярность этих методов. С клиентскими адаптерами Intel под Windows поставляется утилита ProSet, расширяющая доступный список. Это же делает Cisco AnyConnect Client.
Насколько это надежно
В конце концов, что нужно злоумышленнику, чтобы взломать вашу сеть?
Для Open Authentication, No Encryption — ничего. Подключился к сети, и всё. Поскольку радиосреда открыта, сигнал распространяется в разные стороны, заблокировать его непросто. При наличии соответствующих клиентских адаптеров, позволяющих прослушивать эфир, сетевой трафик виден так же, будто атакующий подключился в провод, в хаб, в SPAN-порт коммутатора.
Для шифрования, основанного на WEP, требуется только время на перебор IV, и одна из многих свободно доступных утилит сканирования.
Для шифрования, основанного на TKIP либо AES прямое дешифрование возможно в теории, но на практике случаи взлома не встречались.
Конечно, можно попробовать подобрать ключ PSK, либо пароль к одному из EAP-методов. Распространенные атаки на данные методы не известны. Можно пробовать применить методы социальной инженерии, либо терморектальный криптоанализ.
Получить доступ к сети, защищенной EAP-FAST, EAP-TTLS, PEAP-MSCHAPv2 можно, только зная логин-пароль пользователя (взлом как таковой невозможен). Атаки типа перебора пароля, или направленные на уязвимости в MSCHAP также не возможны либо затруднены из-за того, что EAP-канал «клиент-сервер» защищен шифрованным туннелем.
Доступ к сети, закрытой PEAP-GTC возможен либо при взломе сервера токенов, либо при краже токена вместе с его паролем.
Доступ к сети, закрытой EAP-TLS возможен при краже пользовательского сертификата (вместе с его приватным ключом, конечно), либо при выписывании валидного, но подставного сертификата. Такое возможно только при компрометации удостоверяющего центра, который в нормальных компаниях берегут как самый ценный IT-ресурс.
Поскольку все вышеозначенные методы (кроме PEAP-GTC) допускают сохранение (кэширование) паролей/сертификатов, то при краже мобильного устройства атакующий получает полный доступ без лишних вопросов со стороны сети. В качестве меры предотвращения может служить полное шифрование жесткого диска с запросом пароля при включении устройства.
Запомните: при грамотном проектировании беспроводную сеть можно очень хорошо защитить; средств взлома такой сети не существует (до известного предела)
Wi-Fi сети: проникновение и защита. 1) Матчасть
Синоптики предсказывают, что к 2016 году наступит второй ледниковый период трафик в беспроводных сетях на 10% превзойдёт трафик в проводном Ethernet. При этом от года в год частных точек доступа становится примерно на 20% больше.
При таком тренде не может не радовать то, что 80% владельцев сетей не меняют пароли доступа по умолчанию. В их число входят и сети компаний.
Этим циклом статей я хочу собрать воедино описания существующих технологии защит, их проблемы и способы обхода, таким образом, что в конце читатель сам сможет сказать, как сделать свою сеть непробиваемой, и даже наглядно продемонстрировать проблемы на примере незадачливого соседа (do not try this at home, kids). Практическая сторона взлома будет освещена с помощью Kali Linux (бывший Backtrack 5) в следующих частях.
Статья по мере написания выросла с 5 страниц до 40, поэтому я решил разбить её на части. Этот цикл — не просто инструкция, как нужно и не нужно делать, а подробное объяснение причин для этого. Ну, а кто хочет инструкций — они такие:
Используйте WPA2-PSK-CCMP с паролем от 12 символов a-z (2000+ лет перебора на ATI-кластере). Измените имя сети по умолчанию на нечто уникальное (защита от rainbow-таблиц). Отключите WPS (достаточно перебрать 10000 комбинаций PIN). Не полагайтесь на MAC-фильтрацию и скрытие SSID.
Передайте мне сахар
Представьте, что вы — устройство, которое принимает инструкции. К вам может подключиться каждый желающий и отдать любую команду. Всё хорошо, но на каком-то этапе потребовалось фильтровать личностей, которые могут вами управлять. Вот здесь и начинается самое интересное.
Как понять, кто может отдать команду, а кто нет? Первое, что приходит в голову — по паролю. Пусть каждый клиент перед тем, как передать новую команду, передаст некий пароль. Таким образом, вы будете выполнять только команды, которые сопровождались корректным паролем. Остальные — фтопку.
Именно так работает базовая авторизация HTTP (Auth Basic):
После успешной авторизации браузер просто-напросто будет передавать определённый заголовок при каждом запросе в закрытую зону:
У данного подхода есть один большой недостаток — так как пароль (или логин-пароль, что по сути просто две части того же пароля) передаётся по каналу «как есть» — кто угодно может встрять между вами и клиентом и получить ваш пароль на блюдечке. А затем использовать его и распоряжаться вами, как угодно!
Для предотвращения подобного безобразия можно прибегнуть к хитрости: использовать какой-либо двухсторонний алгоритм шифрования, где закрытым ключом будет как раз наш пароль, и явно его никогда не передавать. Однако проблемы это не решит — достаточно один раз узнать пароль и можно будет расшифровать любые данные, переданные в прошлом и будущем, плюс шифровать собственные и успешно маскироваться под клиента. А учитывая то, что пароль предназначен для человека, а люди склонны использовать далеко не весь набор из 256 байт в каждом символе, да и символов этих обычно около 6-8… в общем, комсомол не одобрит.
Что делать? А поступим так, как поступают настоящие конспираторы: при первом контакте придумаем длинную случайную строку (достаточно длинную, чтобы её нельзя было подобрать, пока светит это солнце), запомним её и все дальнейшие передаваемые данные будем шифровать с использованием этого «псевдонима» для настоящего пароля. А ещё периодически менять эту строку — тогда джедаи вообще не пройдут.
Первые две передачи (зелёные иконки на рисунке выше) — это фаза с «пожатием рук» (handshake), когда сначала мы говорим серверу о нашей легитимности, показывая правильный пароль, на что сервер нам отвечает случайной строкой, которую мы затем используем для шифрования и передачи любых данных.
Итак, для подбора ключа хакеру нужно будет либо найти уязвимость в алгоритме его генерации (как в случае с Dual_EC_DRBG), либо арендовать сотню-другую параллельных вселенных и несколько тысяч ATI-ферм для решения этой задачи при своей жизни. Всё это благодаря тому, что случайный ключ может быть любой длины и содержать любые коды из доступных 256, потому что пользователю-человеку никогда не придётся с ним работать.
Именно такая схема с временным ключом (сеансовый ключ, session key или ticket) в разных вариациях и используется сегодня во многих системах — в том числе SSL/TLS и стандартах защиты беспроводных сетей, о которых будет идти речь.
План атаки
Внимательные читатели, конечно, заметили, что как бы мы не хитрили — от передачи пароля и временного ключа в открытой или хэшированной форме нам никуда не деться. Как результат — достаточно хакеру перехватить передачу на этой фазе, и он сможет читать все последующие данные, а также участвовать в процессе, вставляя свои пять копеек. И отличить его невозможно, так как вся информация, которой бы мог руководствоваться сервер для выдачи временного ключа или проверки доступа базируется именно на том, что было в начале передачи — handshake. Поэтому хакер знает всё то же, что и сервер, и клиент, и может водить обоих за нос, пока не истечёт срок действия временного ключа.
Наша задача при взломе любой передачи так или иначе сводится к перехвату рукопожатия, из которого можно будет либо вытащить временный ключ, либо исходный пароль, либо и то, и другое. В целом, это довольно долгое занятие и требует определённой удачи.
Но это в идеальном мире…
Механизмы защиты Wi-Fi
Технологии создаются людьми и почти во всех из них есть ошибки, иногда достаточно критические, чтобы обойти любую самую хорошую в теории защиту. Ниже мы пробежимся по списку существующих механизмов защиты передачи данных по радиоканалу (то есть не затрагивая SSL, VPN и другие более высокоуровневые способы).
OPEN — это отсутствие всякой защиты. Точка доступа и клиент никак не маскируют передачу данных. Почти любой беспроводной адаптер в любом ноутбуке с Linux может быть установлен в режим прослушки, когда вместо отбрасывания пакетов, предназначенных не ему, он будет их фиксировать и передавать в ОС, где их можно спокойно просматривать. Кто у нас там полез в Твиттер?
Именно по такому принципу работают проводные сети — в них нет встроенной защиты и «врезавшись» в неё или просто подключившись к хабу/свичу сетевой адаптер будет получать пакеты всех находящихся в этом сегменте сети устройств в открытом виде. Однако с беспроводной сетью «врезаться» можно из любого места — 10-20-50 метров и больше, причём расстояние зависит не только от мощности вашего передатчика, но и от длины антенны хакера. Поэтому открытая передача данных по беспроводной сети гораздо более опасна.
WEP — первый стандарт защиты Wi-Fi. Расшифровывается как Wired Equivalent Privacy («эквивалент защиты проводных сетей»), но на деле он даёт намного меньше защиты, чем эти самые проводные сети, так как имеет множество огрехов и взламывается множеством разных способов, что из-за расстояния, покрываемого передатчиком, делает данные более уязвимыми. Его нужно избегать почти так же, как и открытых сетей — безопасность он обеспечивает только на короткое время, спустя которое любую передачу можно полностью раскрыть вне зависимости от сложности пароля. Ситуация усугубляется тем, что пароли в WEP — это либо 40, либо 104 бита, что есть крайне короткая комбинация и подобрать её можно за секунды (это без учёта ошибок в самом шифровании).
WEP был придуман в конце 90-х, что его оправдывает, а вот тех, кто им до сих пор пользуется — нет. Я до сих пор на 10-20 WPA-сетей стабильно нахожу хотя бы одну WEP-сеть.
На практике существовало несколько алгоритмов шифровки передаваемых данных — Neesus, MD5, Apple — но все они так или иначе небезопасны. Особенно примечателен первый, эффективная длина которого — 21 бит (
Основная проблема WEP — в фундаментальной ошибке проектирования. Как было проиллюстрировано в начале — шифрование потока делается с помощью временного ключа. WEP фактически передаёт несколько байт этого самого ключа вместе с каждым пакетом данных. Таким образом, вне зависимости от сложности ключа раскрыть любую передачу можно просто имея достаточное число перехваченных пакетов (несколько десятков тысяч, что довольно мало для активно использующейся сети).
К слову, в 2004 IEEE объявили WEP устаревшим из-за того, что стандарт «не выполнил поставленные перед собой цели [обеспечения безопасности беспроводных сетей]».
Про атаки на WEP будет сказано в третьей части. Скорее всего в этом цикле про WEP не будет, так как статьи и так получились очень большие, а распространённость WEP стабильно снижается. Кому надо — легко может найти руководства на других ресурсах.
WPA и WPA2
WPA — второе поколение, пришедшее на смену WEP. Расшифровывается как Wi-Fi Protected Access. Качественно иной уровень защиты благодаря принятию во внимание ошибок WEP. Длина пароля — произвольная, от 8 до 63 байт, что сильно затрудняет его подбор (сравните с 3, 6 и 15 байтами в WEP).
Стандарт поддерживает различные алгоритмы шифрования передаваемых данных после рукопожатия: TKIP и CCMP. Первый — нечто вроде мостика между WEP и WPA, который был придуман на то время, пока IEEE были заняты созданием полноценного алгоритма CCMP. TKIP так же, как и WEP, страдает от некоторых типов атак, и в целом не безопасен. Сейчас используется редко (хотя почему вообще ещё применяется — мне не понятно) и в целом использование WPA с TKIP почти то же, что и использование простого WEP.
Одна из занятных особенностей TKIP — в возможности так называемой Michael-атаки. Для быстрого залатывания некоторых особо критичных дыр в WEP в TKIP было введено правило, что точка доступа обязана блокировать все коммуникации через себя (то есть «засыпать») на 60 секунд, если обнаруживается атака на подбор ключа (описана во второй части). Michael-атака — простая передача «испорченных» пакетов для полного отключения всей сети. Причём в отличии от обычного DDoS тут достаточно всего двух (двух) пакетов для гарантированного выведения сети из строя на одну минуту.
WPA отличается от WEP и тем, что шифрует данные каждого клиента по отдельности. После рукопожатия генерируется временный ключ — PTK — который используется для кодирования передачи этого клиента, но никакого другого. Поэтому даже если вы проникли в сеть, то прочитать пакеты других клиентов вы сможете только, когда перехватите их рукопожатия — каждого по отдельности. Демонстрация этого с помощью Wireshark будет в третьей части.
Кроме разных алгоритмов шифрования, WPA(2) поддерживают два разных режима начальной аутентификации (проверки пароля для доступа клиента к сети) — PSK и Enterprise. PSK (иногда его называют WPA Personal) — вход по единому паролю, который вводит клиент при подключении. Это просто и удобно, но в случае больших компаний может быть проблемой — допустим, у вас ушёл сотрудник и чтобы он не мог больше получить доступ к сети приходится применять способ из «Людей в чёрном» менять пароль для всей сети и уведомлять об этом других сотрудников. Enterprise снимает эту проблему благодаря наличию множества ключей, хранящихся на отдельном сервере — RADIUS. Кроме того, Enterprise стандартизирует сам процесс аутентификации в протоколе EAP (Extensible Authentication Protocol), что позволяет написать собственный велосипед алгоритм. Короче, одни плюшки для больших дядей.
В этом цикле будет подробно разобрана атака на WPA(2)-PSK, так как Enterprise — это совсем другая история, так как используется только в больших компаниях.
WPS/QSS
WPS, он же Qikk aSS QSS — интересная технология, которая позволяет нам вообще не думать о пароле, а просто добавить воды нажать на кнопку и тут же подключиться к сети. По сути это «легальный» метод обхода защиты по паролю вообще, но удивительно то, что он получил широкое распространение при очень серьёзном просчёте в самой системе допуска — это спустя годы после печального опыта с WEP.
WPS позволяет клиенту подключиться к точке доступа по 8-символьному коду, состоящему из цифр (PIN). Однако из-за ошибки в стандарте нужно угадать лишь 4 из них. Таким образом, достаточно всего-навсего 10000 попыток подбора и вне зависимости от сложности пароля для доступа к беспроводной сети вы автоматически получаете этот доступ, а с ним в придачу — и этот самый пароль как он есть.
Учитывая, что это взаимодействие происходит до любых проверок безопасности, в секунду можно отправлять по 10-50 запросов на вход через WPS, и через 3-15 часов (иногда больше, иногда меньше) вы получите ключи от рая.
Когда данная уязвимость была раскрыта производители стали внедрять ограничение на число попыток входа (rate limit), после превышения которого точка доступа автоматически на какое-то время отключает WPS — однако до сих пор таких устройств не больше половины от уже выпущенных без этой защиты. Даже больше — временное отключение кардинально ничего не меняет, так как при одной попытке входа в минуту нам понадобится всего 10000/60/24 = 6,94 дней. А PIN обычно отыскивается раньше, чем проходится весь цикл.
Хочу ещё раз обратить ваше внимание, что при включенном WPS ваш пароль будет неминуемо раскрыт вне зависимости от своей сложности. Поэтому если вам вообще нужен WPS — включайте его только когда производится подключение к сети, а в остальное время держите этот бекдор выключенным.
Атака на WPS будет рассмотрена во второй части.