теория и практика (часть первая)
Тема безопасности беспроводных сетей по-прежнему остается актуальной, хотя уже достаточно давно существуют надежные (на сегодняшний момент, конечно же) методы защиты этих сетей. Разумеется, речь идет о технологии WPA (Wi-Fi Protected Access).
Большинство существующего на данный момент Wi-Fi оборудования имеет поддержку данной технологии, но, к сожалению, до сих пор в нашей лаборатории попадаются экземпляры, не знающие о WPA. Это более чем странно — заканчивается 2005 год, а некоторые производители до сих пор считают, что технология WEP спасет пользователей беспроводной сети от утечки информации. WEP уже давно устарела. На смену этой технологии пришел WPA, а также на горизонте виднеется новый стандарт 802.11i (некоторые производители преподносят его, как WPA2).
Технология WPA, призванная временно (в ожидании перехода к 802.11i) закрыть бреши WEP, состоит из нескольких компонентов:
- протокол 802.1x — универсальный протокол для аутентификации, авторизации и учета (AAA)
- протокол EAP — расширяемый протокол аутентификации (Extensible Authentication Protocol)
- протокол TKIP — протокол временнОй целостности ключей, другой вариант перевода — протокол целостности ключей во времени (Temporal Key Integrity Protocol)
- MIC — криптографическая проверка целостности пакетов (Message Integrity Code)
- протокол RADIUS
За шифрование данных в 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, который сам по себе является лишь каркасом для методов аутентификации. Вся прелесть протокола в том, что его очень просто реализовать на аутентификаторе (точке доступа), так как ей не требуется знать никаких специфичных особенностей различных методов аутентификации. Аутентификатор служит лишь передаточным звеном между клиентом и сервером аутентификации. Методов же аутентификации, которых существует довольно много:
- EAP-SIM, EAP-AKA — используются в сетях GSM мобильной связи
- LEAP — пропреоретарный метод от Cisco systems
- EAP-MD5 — простейший метод, аналогичный CHAP (не стойкий)
- EAP-MSCHAP V2 — метод аутентификации на основе логина/пароля пользователя в MS-сетях
- EAP-TLS — аутентификация на основе цифровых сертификатов
- EAP-SecureID — метод на основе однократных паролей
рис.1, структура EAP-кадра
Кроме вышеперечисленных, следует отметить следующие два метода, 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) пакеты, которые и используются для обмена информацией между клиентом и аутентификатором (точкой доступа).
рис.2, 802.1x в действии
Схема аутентификации состоит из трех компонентов:
- Supplicant — софт, запущенный на клиентской машине, пытающейся подключиться к сети
- Authenticator — узел доступа, аутентификатор (беспроводная точка доступа или проводной коммутатор с поддержкой протокола 802.1x)
- Authentication Server — сервер аутентификации (обычно это RADIUS-сервер)
Теперь рассмотрим сам процесс аутентификации. Он состоит из следующих стадий:
- Клиент может послать запрос на аутентификацию (EAP-start message) в сторону точки доступа
- Точка доступа (Аутентификатор) в ответ посылает клиенту запрос на идентификацию клиента (EAP-request/identity message). Аутентификатор может послать EAP-request самостоятельно, если увидит, что какой-либо из его портов перешел в активное состояние.
- Клиент в ответ высылает EAP-response packet с нужными данными, который точка доступа (аутентификатор) перенаправляет в сторону Radius-сервера (сервера аутентификации).
- Сервер аутентификации посылает аутентификатору (точке доступа) challenge-пакет (запрос информации о подлинности клиента). Аутентификатор пересылает его клиенту.
- Далее происходит процесс взаимной идентификации сервера и клиента. Количество стадий пересылки пакетов туда-сюда варьируется в зависимости от метода EAP, но для беспроводных сетей приемлема лишь «strong» аутентификация с взаимной аутентификацией клиента и сервера (EAP-TLS, EAP-TTLS, EAP-PEAP) и предварительным шифрованием канала связи.
- На следующий стадии, сервер аутентификации, получив от клиента необходимую информацию, разрешает (accept) или запрещает (reject) тому доступ, с пересылкой данного сообщения аутентификатору. Аутентификатор (точка доступа) открывает порт для Supplicant-а, если со стороны RADIUS-сервера пришел положительный ответ (Accept).
- Порт открывается, аутентификатор пересылает клиенту сообщение об успешном завершении процесса, и клиент получает доступ в сеть.
- После отключения клиента, порт на точке доступа опять переходит в состояние «закрыт».
Описанный процесс проиллюстрирован на рис.3 (там показан один из простейших методов EAP):
рис.3, процесс аутентификации
Как видно из рисунка, для коммуникации между клиентом (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.
рис.4
В закладке аутентификация доступны методы
- MD5-Challenge — самый примитивный и слабый, рассматривать не будем;
- PEAP (Protected EAP) позволяет производить аутентификацию на основе сертификатов или логина/пароля. Он нам интересен в первую очередь возможностью аутентификации пользователя, используя логин/пароль. При этом нам не требуется настраивать инфраструктуру открытых ключей (PKI). Достаточно подключить RADIUS-сервер к какой-либо базе (обычный файл, mysql, ldap) с хранящимися пользователями и производить аутентификацию пользователей по ней.
- Smart Card or Other Certificate — обычный EAP-TLS. Требует настроенной PKI, использует сертификаты для аутентификации клиентов. Более гибок (разумеется, после настройки PKI), чем аутентификация по логину/паролю. А также является единственным способом получить работающую связку беспроводных пользователей, работающих в Windows-домене.
Во второй части статьи будет рассмотрена настройка Windows-клиентов (Windows XP SP2), RADIUS-сервера (FreeRadius), и PKI на основе OpenSSL. Последние два компонента работают в операционной системе Gentoo Linux.
Навигация
WPA2 — это… Что такое WPA2?
TKIP отвечает за увеличение размера ключа с 40 до 128 бит, а также за замену одного статического ключа WEP ключами, которые автоматически генерируются и рассылаются сервером аутентификации. Кроме того, в TKIP используется специальная иерархия ключей и методология управления ключами, которая убирает излишнюю предсказуемость, которая использовалась для несанкционированного снятия защиты WEP ключей.
Сервер аутентификации, после получения сертификата от пользователя, использует 802.1X для генерации уникального базового ключа для сеанса связи. TKIP осуществляет передачу сгенерированного ключа пользователю и точке доступа, после чего выстраивает иерархию ключей плюс систему управления. Для этого используется двусторонний ключ для динамической генерации ключей шифрования данных, которые в свою очередь используются для шифрования каждого пакета данных. Подобная иерархия ключей TKIP заменяет один ключ WEP (статический) на 500 миллиардов возможных ключей, которые будут использованы для шифрования данного пакета данных.
Другим важным механизмом является проверка целостности сообщений (Message Integrity Check, MIC). Ее используют для предотвращения перехвата пакетов данных, содержание которых может быть изменено, а модифицированный пакет вновь передан по сети. MIC построена на основе мощной математической функции, которая применяется на стороне отправителя и получателя, после чего сравнивается результат. Если проверка показывает на несовпадение результатов вычислений, данные считаются ложными и пакет отбрасывается.
При этом механизмы шифрования, которые используются для WPA и WPA-PSK, являются идентичными. Единственное отличие WPA-PSK состоит в том, что аутентификация производится с использованием пароля, а не по сертификату пользователя.
WPA2
WPA2 определяется стандартом IEEE 802.11i, принятым в июне 2004, и призван заменить WPA. В нём реализовано CCMP и шифрование Wi-Fi устройств.[1]
Уязвимость
6 ноября 2008 года на конференции PacSec был представлен способ, позволяющий взломать ключ [2]. Этот метод позволяет прочитать данные, передаваемые от точки доступа клиентской машине, а также передавать поддельную информацию на клиентскую машину. Данные, передаваемые от клиента к маршрутизатору пока прочитать не удалось. Также сказано, что WPA2 не подвержен этой атаке.
Ссылки
WPA — Википедия. Что такое WPA
WPA и WPA2 (Wi-Fi Protected Access) — представляет собой обновлённую программу сертификации устройств беспроводной связи. Технология WPA пришла на замену технологии защиты беспроводной Wi-Fi сети WEP. Плюсами WPA являются усиленная безопасность данных и ужесточённый контроль доступа к беспроводным сетям. Немаловажной характеристикой является совместимость между множеством беспроводных устройств как на аппаратном, так и на программном уровнях. На данный момент WPA и WPA2 разрабатываются и продвигаются организацией Wi-Fi Alliance.
Основные понятия
В WPA обеспечена поддержка стандартов 802.1X, а также протокола EAP (Extensible Authentication Protocol, расширяемый протокол аутентификации). Стоит заметить, что в WPA2 поддерживается шифрование в соответствии со стандартом AES (Advanced Encryption Standard, усовершенствованный стандарт шифрования), который имеет ряд преимуществ над используемым в WEP RC4, например гораздо более стойкий криптографический алгоритм.
Большим плюсом при внедрении WPA является возможность работы технологии на существующем аппаратном обеспечении Wi-Fi.
Некоторые отличительные особенности WPA:
- усовершенствованная схема шифрования RC4
- обязательная аутентификация с использованием EAP.
- система централизованного управления безопасностью, возможность использования в действующих корпоративных политиках безопасности.
Аутентификация пользователей
Wi-Fi Alliance даёт следующую формулу для определения сути WPA:
WPA = 802.1X + EAP + TKIP + MIC
Видно, что WPA, по сути, является суммой нескольких технологий.
Как упомянуто выше, в стандарте WPA используется Расширяемый протокол аутентификации (EAP) как основа для механизма аутентификации пользователей. Непременным условием аутентификации является предъявление пользователем свидетельства (иначе называют мандатом), подтверждающего его право на доступ в сеть. Для этого права пользователь проходит проверку по специальной базе зарегистрированных пользователей. Без аутентификации работа в сети для пользователя будет запрещена. База зарегистрированных пользователей и система проверки в больших сетях, как правило, расположены на специальном сервере (чаще всего RADIUS).
Следует отметить, что WPA имеет упрощённый режим. Он получил название Pre-Shared Key (WPA-PSK). При применении режима PSK необходимо ввести один пароль для каждого отдельного узла беспроводной сети (беспроводные маршрутизаторы, точки доступа, мосты, клиентские адаптеры). Если пароли совпадают с записями в базе, пользователь получит разрешение на доступ в сеть.
Шифрование
Даже не принимая во внимание тот факт что WEP, предшественник WPA, не обладает какими-либо механизмами аутентификации пользователей как таковыми, его ненадёжность состоит, прежде всего, в криптографической слабости алгоритма шифрования. Ключевая проблема WEP заключается в использовании слишком похожих ключей для различных пакетов данных.
TKIP, MIC и 802.1X (части уравнения WPA) усилили шифрование передаваемых данных в сетях, использующих WPA.
TKIP отвечает за увеличение размера ключа с 40 до 128 бит, а также за замену одного статического ключа WEP ключами, которые автоматически генерируются и рассылаются сервером аутентификации. Кроме того, в TKIP используется специальная иерархия ключей и методология управления ключами, которая убирает излишнюю предсказуемость, которая использовалась для несанкционированного снятия защиты WEP ключей.
Сервер аутентификации, после получения сертификата от пользователя, использует 802.1X для генерации уникального базового ключа для сеанса связи. TKIP осуществляет передачу сгенерированного ключа пользователю и точке доступа, после чего выстраивает иерархию ключей плюс систему управления. Для этого используется двусторонний ключ для динамической генерации ключей шифрования данных, которые в свою очередь используются для шифрования каждого пакета данных. Подобная иерархия ключей TKIP заменяет один ключ WEP (статический) на 500 миллиардов возможных ключей, которые будут использованы для шифрования данного пакета данных.
Другим важным механизмом является проверка целостности сообщений (Message Integrity Check, MIC). Её используют для предотвращения перехвата пакетов данных, содержание которых может быть изменено, а модифицированный пакет вновь передан по сети. MIC построена на основе мощной математической функции, которая применяется на стороне отправителя и получателя, после чего сравнивается результат. Если проверка показывает на несовпадение результатов вычислений, данные считаются ложными и пакет отбрасывается.
При этом механизмы шифрования, которые используются для WPA и WPA-PSK, являются идентичными. Единственное отличие WPA-PSK состоит в том, что аутентификация производится с использованием пароля, а не по сертификату пользователя.
WPA2
WPA2 определяется стандартом IEEE 802.11i, принятым в июне 2004 года, и призван заменить WPA. В нём реализовано CCMP и шифрование AES, за счёт чего WPA2 стал более защищённым, чем свой предшественник. С 13 марта 2006 года поддержка WPA2 является обязательным условием для всех сертифицированных Wi-Fi устройств[1].
WPA3
В начале 2018 года международный альянс Wi-Fi Alliance анонсировал новейший протокол беспроводной безопасности — WPA3[2]. Основными дополнениями, реализованными в этом протоколе, станут: встроенная защита от брутфорс-атак; индивидуальное шифрование данных для усиления конфиденциальности пользователей в открытых Wi-Fi сетях; упрощенная настройка IoT-устройств; усовершенствованный криптографический стандарт для сетей Wi-Fi — «192-разрядный пакет безопасности». [3][4]
Уязвимости
6 ноября 2008 года на конференции PacSec был представлен способ, позволяющий взломать ключ TKIP, используемый в WPA, за 12—15 минут[5]. Этот метод позволяет прочитать данные, передаваемые от точки доступа клиентской машине, а также передавать поддельную информацию на клиентскую машину. Данные, передаваемые от клиента к маршрутизатору, пока прочитать не удалось. Ещё одним условием успешной атаки было включение QoS на маршрутизаторе.
В 2009 году сотрудниками университета Хиросимы и университета Кобе, Тосихиру Оигаси и Масакату Мории был разработан и успешно реализован на практике новый метод атаки, который позволяет взломать любое WPA соединение без ограничений, причём, в лучшем случае, время взлома составляет 1 минуту[6].
Соединения WPA, использующие более защищённый стандарт шифрования ключа AES, а также WPA2-соединения, не подвержены этим атакам.
23 июля 2010 года была опубликована информация об уязвимости Hole196 в протоколе WPA2. Используя эту уязвимость, авторизовавшийся в сети пользователь может расшифровывать данные других пользователей, используя свой закрытый ключ. Никакого взлома ключей или брут-форса не требуется[7].
Тем не менее, до 2017 года основными методами взлома WPA2 PSK являлись атака по словарю и брутфорс. Для этого в режиме мониторинга беспроводной карты сканируется эфир и записываются необходимые пакеты. Далее проводится деавторизация клиента для захвата начального обмена пакетами — «рукопожатие[en]» (англ. handshake), либо нужно ждать пока клиент совершит подключение. После этого уже нет необходимости находиться недалеко от атакуемой точки доступа. Атака проводится офлайн с помощью специальной программы и файла с хэндшейком.
В октябре 2017 году была опубликована атака переустановки ключа на WPA2, названная KRACK, которая позволяет сбросить nonce, при использовании AES-CCMP воспроизводить ранее отправленные пакеты и расшифровывать их, при использовании режимов WPA TKIP и GCMP — расшифровывать и внедрять пакеты в соединение [8][9].
См. также
Примечания
Ссылки
WPA — это… Что такое WPA?
WPA и WPA2 (Wi-Fi Protected Access) — представляет собой обновлённую программу сертификации устройств беспроводной связи. Технология WPA пришла на замену технологии защиты беспроводных сетей WEP. Плюсами WPA являются усиленная безопасность данных и ужесточённый контроль доступа к беспроводным сетям. Немаловажной характеристикой является совместимость между множеством беспроводных устройств как на аппаратном уровне, так и на программном. На данный момент WPA и WPA2 разрабатываются и продвигаются организацией Wi-Fi Alliance.
Основные понятия
В WPA обеспечена поддержка стандартов 802.1X, а также протокола EAP (Extensible Authentication Protocol, расширяемый протокол аутентификации). Стоит заметить, что в WPA2 поддерживается шифрование в соответствии со стандартом AES (Advanced Encryption Standard, усовершенствованный стандарт шифрования), который имеет ряд преимуществ над используемым в WEP RC4, например гораздо более стойкий криптоалгоритм.
Большим плюсом при внедрении EWPA является возможность работы технологии на существующем аппаратном обеспечении Wi-Fi.
Некоторые отличительные особенности WPA:
- усовершенствованная схема шифрования RC4
- обязательная аутентификация с использованием EAP.
- система централизованного управления безопасностью, возможность использования в действующих корпоративных политиках безопасности.
Аутентификация пользователей
Wi-Fi Alliance даёт следующую формулу для определения сути WPA:
WPA = 802.1X + EAP + TKIP + MIC
Видно, что WPA, по сути, является суммой нескольких технологий.
Как упомянуто выше, в стандарте WPA используется Расширяемый протокол аутентификации (EAP) как основа для механизма аутентификации пользователей. Непременным условием аутентификации является предъявление пользователем свидетельства (иначе называют мандатом), подтверждающего его право на доступ в сеть. Для этого права пользователь проходит проверку по специальной базе зарегистрированных пользователей. Без аутентификации работа в сети для пользователя будет запрещена. База зарегистрированных пользователей и система проверки в больших сетях как правило расположены на специальном сервере (чаще всего RADIUS).
Cледует отметить, что WPA имеет упрощённый режим. Он получил название Pre-Shared Key (WPA-PSK). При применении режима PSK необходимо ввести один пароль для каждого отдельного узла беспроводной сети (беспроводные маршрутизаторы, точки доступа, мосты, клиентские адаптеры). Если пароли совпадают с записями в базе, пользователь получит разрешение на доступ в сеть.
Шифрование
Даже не принимая во внимания тот факт что WEP, предшественник WPA, не обладает какими-либо механизмами аутентификации пользователей как таковой, его ненадёжность состоит, прежде всего, в криптографической слабости алгоритма шифрования. Ключевая проблема WEP заключается в использовании слишком похожих ключей для различных пакетов данных.
TKIP, MIC и 802.1X (части уравнения WPA) внесли свою лепту в усиление шифрования данных сетей, использующих WPA.
TKIP отвечает за увеличение размера ключа с 40 до 128 бит, а также за замену одного статического ключа WEP ключами, которые автоматически генерируются и рассылаются сервером аутентификации. Кроме того, в TKIP используется специальная иерархия ключей и методология управления ключами, которая убирает излишнюю предсказуемость, которая использовалась для несанкционированного снятия защиты WEP ключей.
Сервер аутентификации, после получения сертификата от пользователя, использует 802.1X для генерации уникального базового ключа для сеанса связи. TKIP осуществляет передачу сгенерированного ключа пользователю и точке доступа, после чего выстраивает иерархию ключей плюс систему управления. Для этого используется двусторонний ключ для динамической генерации ключей шифрования данных, которые в свою очередь используются для шифрования каждого пакета данных. Подобная иерархия ключей TKIP заменяет один ключ WEP (статический) на 500 миллиардов возможных ключей, которые будут использованы для шифрования данного пакета данных.
Другим важным механизмом является проверка целостности сообщений (Message Integrity Check, MIC). Её используют для предотвращения перехвата пакетов данных, содержание которых может быть изменено, а модифицированный пакет вновь передан по сети. MIC построена на основе мощной математической функции, которая применяется на стороне отправителя и получателя, после чего сравнивается результат. Если проверка показывает на несовпадение результатов вычислений, данные считаются ложными и пакет отбрасывается.
При этом механизмы шифрования, которые используются для WPA и WPA-PSK, являются идентичными. Единственное отличие WPA-PSK состоит в том, что аутентификация производится с использованием пароля, а не по сертификату пользователя.
WPA2
WPA2 определяется стандартом IEEE 802.11i, принятым в июне 2004 года, и призван заменить WPA. В нём реализовано CCMP и шифрование AES, за счет чего WPA2 стал более защищённым, чем свой предшественник. С 13 марта 2006 года поддержка WPA2 является обязательным условием для всех сертифицированных Wi-Fi устройств.[1]
Уязвимость
6 ноября 2008 года на конференции PacSec был представлен способ, позволяющий взломать ключ TKIP, используемый в WPA, за 12-15 минут[2]. Этот метод позволяет прочитать данные, передаваемые от точки доступа клиентской машине, а также передавать поддельную информацию на клиентскую машину. Данные, передаваемые от клиента к маршрутизатору, пока прочитать не удалось. Ещё одним условием успешной атаки было включение QoS на маршрутизаторе.
В 2009 году сотрудниками университета Хиросимы и университета Кобе, Тосихиру Оигаси и Масакату Мории был разработан и успешно реализован на практике новый метод атаки, который позволяет взломать любое WPA соединение без ограничений, причём, в лучшем случае, время взлома составляет 1 минуту[3].
Необходимо заметить, что соединения WPA, использующие более защищённый стандарт шифрования ключа AES, а также WPA2-соединения, не подвержены этим атакам.
23 июля 2010 года была опубликована информация об уязвимости Hole196 в протоколе WPA2. Используя эту уязвимость, авторизовавшийся в сети злонамеренный пользователь может расшифровывать данные других пользователей, используя свой закрытый ключ. Никакого взлома ключей или брут-форса не требуется.[4]
Тем не менее, на данный момент основными методами взлома WPA2 PSK являются атака по словарю и брут-форс. Для этого в режиме мониторинга беспроводной карты сканируется эфир и записываются необходимые пакеты. Далее проводится деавторизация клиента для захвата начального обмена пакетами (handshake), либо нужно ждать пока клиент совершит подключение. После этого уже нет необходимости находиться недалеко от атакуемой точки доступа. Атака проводится оффлайн с помощью специальной программы и файла с хэндшейком.
См. также
Примечания
Ссылки
- Раздел сайта Wi-Fi Alliance, посвященный WPA2
- Wi-Fi Alliance’s Interoperability Certificate
- Типы EAP, поддерживаемые в WPA
- Wi-Fi Protected Access: Strong, standards-based, interoperable security for today’s Wi-Fi networks.
- Пресс-релиз о новых типах EAP, поддерживаемых в WPA
- стандарт IEEE 802.11i-2004
- Переводы страниц руководства man из пакета wpasupplicant: wpa_background(8), wpa_supplicant(8), wpa_supplicant.conf(5), wpa_cli(8), wpa_action(8), wpa_passphrase(8)
всё, что вам нужно знать про WPA3 / Habr
WPA3, улучшенное открытие [Enhanced Open], простое соединение [Easy Connect]: три новых протокола от Wi-Fi Alliance
Недавно Wi-Fi Alliance обнародовал крупнейшее обновление безопасности Wi-Fi за последние 14 лет. Протокол безопасности Wi-Fi Protected Access 3 (WPA3) вводит очень нужные обновления в протокол WPA2, представленный в 2004 году. Вместо того, чтобы полностью переработать безопасность Wi-Fi, WPA3 концентрируется на новых технологиях, которые должны закрыть щели, начавшие появляться в WPA2.
Wi-Fi Alliance также объявил о двух дополнительных, отдельных протоколах сертификации, вводящихся в строй параллельно WPA3. Протоколы Enhanced Open и Easy Connect не зависят от WPA3, но улучшают безопасность для определённых типов сетей и ситуаций.
Все протоколы доступны для внедрения производителями в их устройства. Если WPA2 можно считать показателем, то эти протоколы в конечном итоге будут приняты повсеместно, но Wi-Fi Alliance не даёт никакого графика, по которому это должно будет происходить. Скорее всего, с внедрением новых устройств на рынок мы в итоге достигнем этапа, после которого WPA3, Enhanced Open и Easy Connect станут новыми опорами безопасности.
Что же делают все эти новые протоколы? Деталей много, и поскольку большинство из них связано с беспроводным шифрованием, встречается и сложная математика – но вот примерное описание четырёх основных изменений, которые они принесут с собой в дело беспроводной безопасности.
Одновременная аутентификация равных [Simultaneous Authentication of Equals, SAE]
Самое крупное изменение, которое принесёт WPA3. Самый главный момент в защите сети наступает, когда новое устройство пытается установить соединение. Враг должен оставаться за воротами, поэтому WPA2 и WPA3 уделяют много внимания аутентификации новых соединений и гарантии того, что они не будут являться попытками хакера получить доступ.
SAE – новый метод аутентификации устройства, пытающегося подключиться к сети. SAE – это вариант т.н. dragonfly handshake [установления связи по методу стрекозы], использующего криптографию для предотвращения угадывания пароля злоумышленником. Он говорит о том, как именно новое устройство, или пользователь, должен «приветствовать» сетевой маршрутизатор при обмене криптографическими ключами.
SAE идёт на замену методу Pre-Shared Key (PSK) [предварительно розданного ключа], используемого с момента презентации WPA2 в 2004-м. PSK также известен, как четырёхэтапное установление связи, поскольку столько именно сообщений, или двусторонних «рукопожатий», необходимо передать между маршрутизатором и подсоединяющимся устройством, чтобы подтвердить, что они договорились по поводу пароля, при том, что ни одна из сторон не сообщает его другой. До 2016 года PSK казался безопасным, а потом была открыта атака с переустановкой ключа (Key Reinstallation Attacks, KRACK).
KRACK прерывает серию рукопожатий, притворяясь, что соединение с маршрутизатором временно прервалось. На самом деле он использует повторяющиеся возможности соединения для анализа рукопожатий, пока не сможет догадаться о том, какой был пароль. SAE блокирует возможность такой атаки, а также наиболее распространённые офлайновые атаки по словарю, когда компьютер перебирает миллионы паролей, чтобы определить, какой из них подходит к информации, полученной во время PSK-соединений.
Как следует из названия, SAE работает на основании предположения о равноправности устройств, вместо того, чтобы считать одно устройство отправляющим запросы, а второе – устанавливающим право на подключение (традиционно это были устройство, пытающееся соединиться, и маршрутизатор, соответственно). Любая из сторон может отправить запрос на соединение, и потом они начинают независимо отправлять удостоверяющую их информацию, вместо того, чтобы обмениваться сообщениями по очереди, туда-сюда. А без такого обмена у атаки KRACK не будет возможности «вставить ногу между дверью и косяком», и атаки по словарю станут бесполезными.
SAE предлагает дополнительное усиление безопасности, которого не было в PSK: прямую секретность [forward secrecy]. Допустим, атакующий получает доступ к зашифрованным данным, которые маршрутизатор отправляет и получает из интернета. Раньше атакующий мог сохранить эти данные, а потом, в случае успешного подбора пароля, расшифровать их. С использованием SAE при каждом новом соединении устанавливается новый шифрующий пароль, поэтому даже если атакующий в какой-то момент и проникнет в сеть, он сможет украсть только пароль от данных, переданных после этого момента.
SAE описан в стандарте IEEE 802.11-2016, занимающем более 3500 страниц.
192-битные протоколы безопасности
WPA3-Enterprise, версия WPA3, предназначенная для работы в правительственных и финансовых учреждениях, а также в корпоративной среде, обладает шифрованием в 192 бита. Такой уровень шифрования для домашнего маршрутизатора будет избыточным, но его имеет смысл использовать в сетях, работающих с особо чувствительной информацией.
Сейчас Wi-Fi работает с безопасностью в 128 бит. Безопасность в 192 бита не будет обязательной к использованию – это будет вариант настроек для тех организаций, сетям которых она будет нужна. Wi-Fi Alliance также подчёркивает, что в промышленных сетях необходимо усиливать безопасность по всем фронтам: стойкость системы определяется стойкостью самого слабого звена.
Чтобы гарантировать подобающий уровень безопасности всей сети, от начала до конца, WPA3-Enterprise будет использовать 256-битный протокол Galois/Counter Mode для шифрования, 384-битный Hashed Message Authentication Mode режим для создания и подтверждения ключей, и алгоритмы Elliptic Curve Diffie-Hellman exchange, Elliptic Curve Digital Signature Algorithm для аутентификации ключей. В них много сложной математики, но плюс в том, что на каждом шагу будет поддерживаться шифрование в 192 бита.
Easy Connect
Easy Connect – это признание наличия в мире огромного количества устройств, присоединённых к сети. И хотя, возможно, не все люди захотят обзавестись умными домами, у среднего человека к домашнему маршрутизатору сегодня, скорее всего, подключено больше устройств, чем в 2004 году. Easy Connect – попытка Wi-Fi альянса сделать подсоединение всех этих устройств более интуитивным.
Вместо того, чтобы каждый раз при добавлении устройства вводить пароль, у устройств будут уникальные QR-коды – и каждый код устройства будет работать как публичный ключ. Для добавления устройства можно будет просканировать код при помощи смартфона, уже соединённого с сетью.
После сканирования устройство обменяется с сетью ключами аутентификации для установления последующей связи. Протокол Easy Connect не связан с WPA3 – устройства, сертифицированные для него, должны иметь сертификат для WPA2, но не обязательно сертификат для WPA3.
Enhanced Open
Enhanced Open – ещё один отдельный протокол, разработанный для защиты пользователя в открытой сети. Открытые сети – такие, которыми вы пользуетесь в кафе или аэропорту – несут в себе целый комплекс проблем, которые обычно не касаются вас, когда вы устанавливаете соединение дома или на работе.
Многие атаки, происходящие в открытой сети, относятся к пассивным. Когда к сети подключается куча людей, атакующий может собрать очень много данных, просто фильтруя проходящую мимо информацию.
Enhanced Open использует оппортунистическое беспроводное шифрование (Opportunistic Wireless Encryption, OWE), определённое в стандарте Internet Engineering Task Force RFC 8110, чтобы защищаться от пассивного подслушивания. Для OWE не требуется дополнительная защита с аутентификацией – оно концентрируется на улучшении шифрования данных, передаваемых по публичным сетям, с целью предотвратить их кражу. Оно также предотвращает т.н. простую инъекцию пакетов [unsophisticated packet injection], в которой атакующий пытается нарушить работу сети, создавая и передавая особые пакеты данных, выглядящие, как часть нормальной работы сети.
Enhanced Open не даёт защиты с аутентификацией из-за особенностей организации открытых сетей – они по определению предназначены для всеобщего использования. Enhanced Open был разработан для улучшения защиты открытых сетей против пассивных атак, так, чтобы не требовать от пользователей ввода дополнительных паролей или прохождения дополнительных шагов.
Пройдёт, по меньшей мере, несколько лет, до того, как WPA3, Easy Connect и Enhanced Open станут нормой. Широкое распространение WPA3 произойдёт только после замены или обновления маршрутизаторов. Однако если вас беспокоит безопасность вашей личной сети, вы сможете заменить свой текущий маршрутизатор на другой, поддерживающий WPA3, как только производители начнут продавать их, что может произойти уже через несколько месяцев.
Что такое WPA3, и когда я получу его на своем Wi-Fi?
Альянс Wi-Fi анонсировал WPA3, стандарт безопасности Wi-Fi, который заменит WPA2. Это было одно из самых интересных вещей, которые были объявлены на выставке CES 2018.
«WPA» означает Wi-Fi Protected Access. Если у Вас есть пароль на домашнем Wi-Fi, он, вероятно, защитит Вашу сеть, используя WPA2 — это вторая версия стандарта Wi-Fi Protected Access. Существуют более старые стандарты, такие как WPA (также известный как WPA1) и WEP, но они больше не защищены.
WPA2 — это стандарт безопасности, который определяет, что происходит при подключении к закрытой сети Wi-Fi с использованием пароля. WPA2 определяет протокол, который использует маршрутизатор и клиентские устройства Wi-Fi для выполнения «рукопожатия», которое позволяет им безопасно подключаться обмениваться данными. В отличие от первоначального стандарта WPA, WPA2 требует внедрения сильного шифрования AES, которое гораздо труднее взломать. Это шифрование гарантирует, что точка доступа Wi-Fi (например, маршрутизатор) и клиент Wi-Fi (например, ноутбук или телефон) могут осуществлять беспроводную связь без отслеживания их трафика.
Технически WPA2 и WPA3 являются сертификатами оборудования, на которые должны претендовать производители устройств. Производитель устройства должен полностью реализовать необходимые функции безопасности, прежде чем сможет продать свое устройство как «Wi-Fi CERTIFIED ™ WPA2 ™» или «Wi-Fi CERTIFIED ™ WPA3 ™».
Стандарт WPA2 служил нам хорошо. Он дебютировал в 2004 году, четырнадцать лет назад. WPA3 улучшит протокол WPA2 с большим количеством функций безопасности.
В чем отличие WPA3 от WPA2?
Стандарт WPA3 добавляет четыре функции, которых нет в WPA2. Производители должны полностью реализовать эти четыре функции для продвижения своих устройств как «Wi-Fi CERTIFIED ™ WPA3 ™». В широком смысле понятны назначения этих функций, хотя Wi-Fi Alliance — отраслевая группа, которая определяет эти стандарты — еще не объяснила их в технических деталях.
Конфиденциальность публичных сетей Wi-Fi
В настоящее время открытые сети Wi-Fi — вид сетей, который Вы найдете в аэропортах, гостиницах, кафе и других общественных местах — это беспорядок безопасности. Поскольку они открыты и позволяют любому подключиться, трафик, отправленный по ним, не зашифрован вообще. Неважно, нужно ли Вам войти на веб-страницу после присоединения к сети — все, отправленное по соединению, отправляется простым текстом, который люди могут перехватить. Рост зашифрованных HTTPS-соединений в Интернете улучшил ситуацию, но люди все еще могут видеть, на каких сайтах Вы подключались и просматривали содержимое HTTP-страниц.
WPA3 исправляет все, используя «индивидуальное шифрование данных». Когда Вы подключаетесь к открытой сети Wi-Fi, трафик между Вашим устройством и точкой доступа Wi-Fi будет зашифрован, даже если Вы не вводили пароль во время соединения. Это сделает публичные открытые сети Wi-Fi намного более частными. Людей невозможно будет отследить, не нарушив шифрование. Эта проблема с общедоступными точками доступа Wi-Fi должна была быть решена давным-давно, но по крайней мере сейчас она исправлена.
Защита от грубой атаки (Brute-Force)
Когда устройство подключается к точке доступа Wi-Fi, устройства выполняют «рукопожатие», которое гарантирует, что Вы использовали правильную кодовую фразу для подключения и согласования шифрования, которое будет использоваться для защиты соединения. Это рукопожатие оказалось уязвимым для атаки KRACK в 2017 году, хотя существующие устройства WPA2 могли быть исправлены с помощью обновлений программного обеспечения.
WPA3 определяет новое рукопожатие, которое «обеспечит надежную защиту даже тогда, когда пользователи выбирают пароли, не соответствующие типичным рекомендациям сложности». Другими словами, даже если Вы используете слабый пароль, стандарт WPA3 будет защищать от грубых атак, когда клиент пытается угадывать пароли снова и снова, пока не найдет правильный. Mathy Vanhoef, исследователь безопасности, который обнаружил KRACK, с большим энтузиазмом относится к улучшениям безопасности в WPA3.
Более простой процесс подключения для устройств без дисплеев
В течение четырнадцати лет мир сильно изменился. Сегодня принято рассматривать устройства с поддержкой Wi-Fi без дисплеев. Все, начиная от Amazon Echo и Google Home до смарт-розетки и лампочек, можно подключиться к сети Wi-Fi. Но часто бывает неприятно подключать эти устройства к сети Wi-Fi, поскольку у них нет экранов или клавиатур, которые Вы можете использовать для ввода паролей. Подключение этих устройств часто связано с использованием приложения для смартфонов, чтобы ввести кодовую фразу Wi-Fi (или временно подключиться ко второй сети), и все сложнее, чем должно быть.
WPA3 включает функцию, которая обещает «упростить процесс настройки безопасности для устройств с ограниченным интерфейсом или без интерфейса». Непонятно, как это будет работать, но функция может быть очень похожа на сегодняшнюю функцию Wi-Fi Protected Setup, которая включает в себя нажатие кнопки на маршрутизаторе для подключения устройства. Wi-Fi Protected Setup имеет некоторые проблемы безопасности и не упрощает подключение устройств без дисплеев, поэтому будет интересно узнать, как работает эта функция и насколько она безопасна.
Более высокая безопасность для правительства, обороны и промышленных применений
Последней особенностью не является то, что беспокоит домашних пользователей, но Wi-Fi Alliance также объявил, что WPA3 будет включать в себя «192-разрядный пакет безопасности, соответствующий стандарту Коммерческому национальному алгоритму безопасности (CNSA) от Комитета по национальной безопасности системы». Он предназначен для государственных, оборонных и промышленных применений.
Комитет по системам национальной безопасности (CNSS) является частью Агентства национальной безопасности США, поэтому это изменение добавляет функцию, запрошенную правительством США, чтобы обеспечить более надежное шифрование в критических сетях Wi-Fi.
Когда я получу его?
Согласно Wi-Fi Alliance, устройства, поддерживающие WPA3, будут выпущены позднее в 2018 году. Устройства должны быть сертифицированы для WPA3 для развертывания этих функций, другими словами, они должны подать заявку на получение и получить отметку «Wi-Fi CERTIFIED ™ WPA3 ™, поэтому Вы, вероятно, начнете видеть этот логотип на новых маршрутизаторах и других беспроводных устройствах, начиная с конца 2018 года.
Wi-Fi Alliance пока ничего не сообщил о существующих устройствах, получающих поддержку WPA3, но мы не ожидаем, что многие устройства получат обновления программного обеспечения или прошивки для поддержки WPA3. Производители устройств теоретически могут создавать обновления программного обеспечения, которые добавляют эти функции к существующим маршрутизаторам и другим устройствам Wi-Fi, но им пришлось бы решить проблему подачи заявки и получения сертификации WPA3 для их существующего оборудования до развертывания обновления. Большинство производителей, скорее всего, потратят свои ресурсы на разработку новых аппаратных устройств.
Даже когда Вы получите маршрутизатор с поддержкой WPA3, Вам понадобятся совместимые с WPA3 клиентские устройства — Ваш ноутбук, телефон и все, что подключается к Wi-Fi, чтобы полностью использовать эти новые функции. Хорошей новостью является то, что один и тот же маршрутизатор может одновременно принимать соединения WPA2 и WPA3. Даже когда WPA3 будет широко распространен, ожидается длительный переходный период, когда некоторые устройства подключаются к маршрутизатору с WPA2, а другие подключаются с WPA3.
После того как все Ваши устройства будут поддерживать WPA3, Вы можете отключить подключение WPA2 на своем маршрутизаторе для повышения безопасности, так же, как Вы можете отключить WPA и WEP-соединение и разрешить только соединения WPA2 на Вашем маршрутизаторе.
Несмотря на то, что переход на WPA3 займёт некоторое время, важно то, что переходный процесс начнется в 2018 году. В будущем это означает более безопасные сети Wi-Fi.
Атака на WPA: подробности / Habr
По мотивам топика о взломанном WPA.Попытаемся все же разобраться, что случилось и чем это может нам грозить. Поскольку криптографические атаки — вещь, требующая для понимания весьма много специфических знаний, статью можно считать в некотором роде ознакомительной с безопасностью в Wi-Fi сетях.
Ну что же, для начала придется немного пройтись по теории протоколов шифрования Wi-Fi. Хотя нетерпеливым и тем, кого не интересует вся это наукообразная казуистика, не возбраняется сразу проследовать к заключению.
WEP
Протокол WEP в данный момент считается устаревшим, не рекомендуемым к использованию вовсе в пользу WPA и WPA2. Еще бы! Уязвимости его настолько серьезны, что позволяют взломать ключ и подключиться к защищенной сети за считанные минуты. Сколько этих самых минут понадобится, зависит от интенсивности трафика в сети; среднестатистическая нагруженная сеть ломается за одну-две минуты (интересующихся этим вопросом отсылаю к статье и на домашнюю страничку главной хакерской тулзы для wi-fi aircrack-ng). Сами WPA/WPA2 являются в некоторой степени надстройками над WEP, в том смысле, что основной формат пакета и алгоритм шифрования (для WPA) не поменялись, т.о. не было необходимости в смене оборудования, в большинстве случае достаточно было обновить прошивку (правильнее говорить не о WPA/WPA2, а о стандарте IEEE 802.11i; WPA — это его часть, включающая протокол управления ключами и шифрованием TKIP, WPA2 же полностью реализует стандарт, в том числе протокол CCMP с AES-шифрованием).
Поскольку форматы пакетов для всех протоколов имеют много общего, начнем с WEP пакета как самого простого:
Нас в этом пакете в наибольшей степени интересуют передаваемые данные (Network Data)
Здесь IV — это Initialization Vector, соль, необходимая для создания per-packet key. Data — это собственно передаваемые данные, формируемые вышележащими протоколами в стеке OSI (например, данные могут быть IP пакетом). IC (далее будем называть это поле ICV — Integrity Check Value) — это CRC32 чек-сумма от Data, служащая для проверки целостности данных. Data + ICV шифруются алгоритмом RC4 с ключом IV + WEP_key, т.е. полученным простой конкатенацией IV и пароля WEP. Размер IV — 24 бита, RC4 шифр использует ключи длины 64 или 128 бит. Отсюда понятно, почему пароли WEP бывают длины 5 или 13 символов (т.е. 40 или 104 бит).
RC4 — это потоковый шифр. Инициализируется ключом, после чего выдает последовательность псевдослучайных битов с равномерным распределением, называемую keystream. Эта последовательность может быть использована для шифрования данных (традиционно называемых plaintext) путем операции XOR, получающаяся последовательность обычно называется ciphertext.
Основные уязвимости WEP связаны с малой длиной IV, примитивном алгоритме получения per-packet key, уязвимостями самого RC4 алгоритма и его потоковой природой.
WPA
Итак, на этой картинке то, что я раньше называл Network Data, идет после MAC Header (чек-сумма FCS здесь не показана, как на рисунке для WEP; она нас не интересует, т.к. ее обработка ведется на нижележащем уровне модели OSI). IV — это тот же 24-битовый WEP Initialization Vector, только смысл его несколько иной, структура данных же пакета значительно усложнилась. Чтобы понять, что означают представленные поля, рассмотрим вкратце (а полностью рассматривать сил и времени нет, да и боюсь наскучить :-)) протокол TKIP, о котором я уже упоминал:
TKIP (Temporal Key Integrity Protocol) реализует три подхода к улучшению безопасности радио-протоколов семейства IEEE 802.11. Во-первых, это функция смешения ключей, которая комбинирует секретный основной ключ PTK (см. ниже) с вектором инициализации перед тем, как передать его в качестве ключа алгоритму RC4. Во-вторых, это последовательный счетчик (TSC — TKIP Sequence Counter) 48-битной длины, значение которого растет с каждым переданным пакетом. Пакеты, полученные в неверном порядке, будут отвергнуты (а именно, будут отвергнуты пакеты с более ранним TSC), что позволяет защищаться от так называемых replay-атак. Наконец, это 64-битный код защиты сообщения MIC (Message Integrity Code).
TKIP реализует также механизм rekeying’а — смены сессионных ключей и гарантирует, что каждый пакет будет передан с уникальным RC4 ключом.
Основной сессионный ключ PTK (Pairwise Transient Key) — это набор из 4-х 128-битных ключей, используемый для TKIP для шифрования отдельных пакетов в периоды между сменами ключей. Заметим, что PTK — это не пароль WEP и ни он, ни механизм его генерации частью TKIP не являются.
В PTK входят 4 ключа: один для шифрования данных в TKIP (назовем его TK), один для вычисления MIC (а его MTK) и еще два так называемых EAPOL ключа, которых я касаться не буду. Ключи генерируются с использованием пароля WPA (наконец-то, появился пароль!), известного обеим сторонам, в процессе четырехэтапного «рукопожатия» (картинка, там же довольно подробная статья на английском про WPA).
Возвращаясь к предыдущему рисунку со структурой пакета WPA, видим, что все, что между MAC Header и Data по сути — счетчик TSC плюс некоторые служебные поля, служащие для защиты от слабых ключей и говорящие, о том, что используется Extended IV. TSC устанавливается в нуль при начале сессии и монотонно увеличивается с каждым переданным данным устройством пакетом, емкости в 48 бит хватит на ~250 триллионов пакетов, что можно считать достаточным с учетом периодической реинициализации сессионных ключей (в отличии от 24-битного IV в WEP). Уникальный ключ для шифрования пакета вычисляется из TK, TA (Transmittor Address — MAC адрес передатчика) и TSC путем определенного двухфазного механизма хеширования, который дает на выходе 104-битовую строку, к которой добавляется WEP IV (да-да, тот самый 24-битовый IV) для получения 128-битового ключа (на самом деле рисунок про формирование ключа наглядный, но неточный, дотошные могут взглянуть на этот).
Уфф… Что там у нас осталось? Ах да, MIC.
Он создан в основном для борьбы с поддлекой (forgery) пакетов. Код вычисляется от данных всего сообщения (плюс адреса передатчика и приемника) еще до фрагментации и возможной смены порядка пакетов с помощью алгоритма под названием MICHAEL, генерирующего подпись длины 64 бит. Алгоритм, кроме данных, использует ключ, а именно, вышеупомянутый MTK. Что немаловажно, алгоритм в некотором смысле обратим, т.е. зная данные и MIC подпись, можно вычислить ключ MTK.
Борьба с подделкой со стороны Access Point происходит, собственно, так: если пришел пакет с неверным MIC (при этом он валиден по остальным признакам, т.е. имеет допустимое значение TSC и ICV сумма прошла проверку), то отправителю посылается уведомление и, если есть возможность, данное событие фиксируется в журнале как попытка взлома. Если в течение 60 секунд приходит еще один пакет с неверным MIC, точка доступа инициализирует rekeying с данным отправителем. Т.о. поддельные пакеты безнаказанно (относительно) можно слать не чаще, чем раз в минуту.
Chop-Chop атака
Из внушительного списка атак, к которым уязвим WEP, рассмотрим так называемую Chop-Chop атаку (от англ. chop, вольный перевод — «отрезать ломтик»). Эта атака позволяет узнать plaintext сообщения (т.е. данные сообщения до шифрования), а значит и RC4 keystream пакета (plaintext + keystream = ciphertext => keystream = ciphertext + plaintext). Атака использует тот факт, что CRC32 чек-сумма отнюдь не проходит по требованиям в криптографическую хеш-функцию.
Напомню, что идеологически CRC есть остаток от деления исходной строки S, представленной в виде многочлена (от X) с коэффициентами, равными соответствующим разрядам в ее двоичной записи, на предопределенный многочлен PCRC(X), причем арифметические операции выполняются в поле GF(2) (подробнee, например, в википедии). Однако, в такой форме CRC нечувствителен к нулям в начале и в конце исходной строки, поэтому на практике в начало и конец дописываются специальные строки (длины, равной количеству разрядов CRC), которые обозначим как Li (начало) и Lf (конец). Обычно обе они состоят из 32-х двоичных единиц. Таким образом, для CRC32:
CRC = (X32 * S + Li * Xn+32 + Lf) mod PCRC (1)
где n — длина S в битах.
Примечательно, что если к исходной строке S приписать справа ее CRC, то CRC от полученной строки будет постоянна и равна CRC пустой строки, которую обозначим за Pzero (доказывается очень просто, достаточно помнить, что в GF(2) сложение и вычитание суть одна и та же операция — XOR), или в виде формулы
(X32 * (X32 * S + CRC) + Li * Xn+64 + Lf) mod PCRC = Pzero (2)
В WEP-пакете последние байты данных (Network Data) — это зашифрованный ICV, т.е. CRC от сообщения. Забудем на время о шифровании и рассмотрим, что будет, если убрать последний байт, который обозначим как R, из пакета. Пусть Q — пакет без последнего байта, тогда Q уже навряд ли будет иметь нужный остаток (т.е. CRC). Но оказывается, что к Q можно прибавить некий многочлен M так, чтобы исправить CRC. Подставив сначала SO = Q * X8 + R, а затем S1 = Q + M в (2), легко найти, что
M = (X32)-1 * (1 + (X8)-1) * (Pzero + Lf) + (X8)-1 * R
Возвести многочлен P в -1ю степень означает найти такой многочлен P’, что P * P’ = 1 mod PCRC, что всегда возможно, т.к. PCRC неприводим и многочлены с операциями по модулю PCRC образуют поле. Кстати, степень М не превышает 32, т.к. M достаточно взять по модулю PCRC.
Если перебирать все байты R от 0 до 255 и отправлять их в сеть точке доступа, мы, в конце концов, наткнемся на правильный. Понять, что мы попали в байт в реальности также несложно: пакеты с неверным ICV тихо дропаются как переданные с ошибкой; если же CRC верна, мы вправе ожидать ответный пакет, например, в случае WPA, это обычно будет пакет, информирующий о неверном MIC. Но об этом чуть позже.
А как же шифрование? Оказывается, тот факт, что пакет шифрован, значения не имеет, т.к. шифрование RC4 алгоритмом сводится к XOR-иванию данных с keystream’ом, но прибавление M суть тот же XOR, а так как операция XOR коммутативна и ассоциативна, то и неважно, прибавлять M к исходным данным, а потом шифровать, или к уже зашифрованным.
Описанный процесс можно повторять дальше, «откусывая» по байту от сообщения, и теоретически можно расшифровать WEP пакет произвольной длины.
Атака на WPA
Перейдем, наконец, собственно, к теме статьи.
Итак, что будет, если попытаться применить Chop-Chop атаку к сети с WPA защитой?
TKIP имеет, в основном, 2 средства для защиты от подобных атак:
- Пакеты с неверной ICV, как я уже упоминал, отбрасываются. Если ICV угадана, но неверен MIC код, атакующий должен выдержать минуту, чтобы не спровоцировать смену ключей
- Если пакет принят, TSC счетчик для этого канала (TSC счетчики существуют отдельно для каждого канала, в которые данное устройство может слать пакеты; о каналах — чуть позже) увеличивается на 1. Пакеты с меньшим, либо равным TSC с этого момента отбрасываются (снова не совсем точно: на самом деле существует небольшое окно значений TSC, внутри которого пакеты принимаются, но не суть)
Первый пункт частично на руку атакующему, т.к. позволяет понять, когда он угадал очередной байт. Со вторым сложнее: действительно, пусть мы поймали ARP пакет, посланный одним из устройств в сети, его же поймала и Access Point, пересылать этот пакет ей еще раз бессмысленно, ведь TSC уже инкрементирован, плюс то первое устройство, возможно, наслало еще пакетов, увеличив счетчик еще больше. Авторы рассматриваемой атаки нашли выход в спецификации IEEE 802.11e, определяющей улучшения в QoS для сетей Wi-Fi. Сухой остаток здесь таков: устройства Wi-Fi поддерживают несколько очередей пакетов (именно их я выше назвал каналами; какое точно отношение они имеют к реальным радио каналам, я утверждать не берусь), по словам одного из авторов, Эрика Тьюза, предполагалось использовать 4 канала, в стандарте их 8, в реальности авторы обнаруживали до 16. Каналы обыкновенно не используются одновременно, экономя пропускную способность для важных пакетов. В ненагруженной сети часто весь трафик идет в один канал, т.о. пакет мы скорее всего поймаем на канале с высоким значением счетчика TSC, перепосылать же его можно, переключившись на менее нагруженный канал. Важно, что, опять же ссылаясь на авторов, при отсылке сообщения о неправильном MIC счетчик канала не увеличивается, т.о. дальше каналы можно не переключать.
Если в сети не поддерживаются QoS расширения, атака, в принципе, также осуществима, если удастся предотвратить попадание выбранного для дешифровки пакета на AP и отключить пославшее его устройство от сети.
Понятно, что пытаться расшифровать сколько-нибудь длинные пакеты по байту в минуту, дело довольно-таки безнадежное — стандартный Wi-Fi пакет имеет размер ~2300 байт, т.е. на него уйдет порядка полутора суток, а за это время или TSC счетчик увеличится, или ключи сменятся, или точка доступа сребутится, или Вас «запалят». Причем, имея одно устройство, ломать можно только один пакет.
Ну что ж, сниффер сделать не выйдет, посмотрим, что нам может дать расшифровка коротких пакетов, например, ARP, которые легко идентифицировать по их длине (14 байт). Собственно, атакующий знает большую часть содержимого APR пакета, а именно, заголовки и MAC адреса. Если можно также сделать и некоторые предположения об IP структуре взламываемой сети (в сети созданной из под Windows, например, можно ожидать, что IP адреса будут иметь вид 192.168.0.x), то угадать останется совсем ничего. Т.е., угадав 12 байт ICV + MIC, остальное можно просто подобрать, используя ICV сумму. Отсюда упомянутая в прессе цифра в 12 минут на взлом.
Что же дальше? Расшифровав один пакет, атакующий узнает RC4-keystream пакета (использовать его, правда, можно только, пока TSC не изменился) и, что более важно, сессионный MTK — я упоминал, что MIC обратим, и по данным и подписи можно установить ключ. Последнее означает, что до следующей смены ключей, нет необходимости больше угадывать MIC, и, например, чтобы взломать следующий ARP пакет (с теми же предположениями о структуре сети), уйдет 4-5 минут. Использовать дешифрованные данные для посылки forged пакетов можно, в зависимости от количества QoS каналов, от 7 до 15 раз (меньше, если трафик идет по более, чем одному каналу), дальше придется «чоп-чопить» другой пакет.
Заключение: степень угрозы и меры защиты
Если вспомнить сообщения в прессе до доклада Тьюза, например:
Erik Tews will show how he was able to crack WPA encryption… in a relatively short amount of time: 12 to 15 minutes… in order to read data being sent from a router to a laptop computer.
To pull off their trick, the researchers first discovered a way to trick a WPA router into sending them large amounts of data. This makes cracking the key easier, but this technique is also combined with a «mathematical breakthrough», that lets them crack WPA much more quickly than any previous attempt, Ruiu said.
www.pcworld.com
то очевидно, что краски «чуть-чуть» сгущены — читать трафик от AP к клиенту в реальности нельзя, да и как-то непонятно, что за «mathematical breakthrough» такой совершили авторы, ибо chop-chop атака известна аж с 2004 года…
Несмотря на то, что звучали заявления о взломе шифрования, сами WPA пароли и даже временные сессионные ключи (не считая MIC ключа) в полной безопасности. Атака позволяет расшифровать отдельные короткие пакеты, с которыми ведется работа, затрачивая в самом лучшем случае по 4-5 минут на пакет, и, используя результаты дешифровки, инжектировать очень ограниченное число столь же коротких пакетов обратно в сеть. Да, это, по всей видимости, первая серьезная атака, продемонстрировавшая уязвимость протокола TKIP, но абсолютному большинству волноваться по этому поводу причин не видно. По словам Тьюза: «если Вы использовали шифрование лишь для того, чтобы оградить свой интернет канал от использования случайными людьми, Вы в полной безопасности». Атака не может быть использована ни для подключения к домашней или корпоративной сети, ни для того, чтобы отслеживать в них трафик.
Тем не менее, мелкие пакости теоретически сделать можно, как то: «отравить» ARP (может быть, и DNS) кеш, прочитать некоторый объем приватного трафика, Тьюз также указывает на возможность обмануть некоторые фаерволы.
Какими методами можно бороться с такого вида атаками?
Ну, во-первых, конечно же, можно просто перейти на WPA2 с AES шифрованием. Также авторы советуют уменьшить время регенерации ключей точкой доступа (вплоть до 2-3 минут, что сделает в принципе невозможными описанные выше процедуры) и отключить автоматическую отсылку сообщений о неверном MIC в принятом пакете. К сожалению, неясно, предоставляют ли современные точки доступа такие тонкие параметры настройки (лично я вот понятия не имею, если кто-то встречал, было бы интересно узнать).
Что ж, вряд ли можно сказать, что WPA взломан. Более того, я думаю, что пока волноваться особенно не о чем. Однако, цитируя один из источников, «теперь, когда эти двое (Бек и Хьюз) открыли дверь, WPA наверняка привлечет пристальное внимание тысяч исследователей: белых, серых и черных».
Материалы и ссылки
Battered, but not broken (популярная и доступная статья об атаке)
Статья Бека и Тьюза
Статья о WPA
Презенташка (в статье использовал пару картинок)
aircrack-ng
Неплохая статья о CRC и теории ее взлома
Статья о способах быстрого взлома WEP и FMS атака в викиредии
Disclaimer
Прошу не судить строго, не являюсь специалистом по информационной безопасности и беспроводным протоколам, ни даже любителем, скорее из интересующихся 🙂 И заранее прошу прощения, если перегрузил статью теорией и подробностями.