Eap шифрование. Протокол EAP

Eap шифрование. Протокол EAP

Authentication Protocol version 2 – Протокол аутентификации с предварительным согласованием вызова версии 2 компании Microsoft).
  • MS- CHAP (Microsoft Challenge Handshake Authentication Protocol ).
  • CHAP (Challenge Handshake Authentication Protocol ).
  • SPAP (Shiva Password Authentication Protocol – Протокол аутентификации пароля для клиентов Shiva).
  • PAP (Password Authentication Protocol ).
  • Неаутентифицированный доступ.
  • Эти методы аутентификации, показанные на рисунке 4.9 , можно найти в консоли управления RRAS, выбрав соответствующий сервер в правой панели и выбрав пункт Properties (Свойства). Затем во вкладке Security (Безопасность) щелкните на кнопке Authentication Methods (Методы аутентификации). Чтобы использовать нужные методы аутентификации, установите флажки рядом с названиями соответствующих методов.


    Рис. 4.9.

    EAP

    Протокол EAP – это расширение PPP, которое позволяет согласовывать произвольный метод аутентификации между удаленным клиентом и сервером. После создания соответствующего канала клиент и сервер согласовывают, какой тип механизма аутентификации EAP будет использоваться. К вариантам выбора относятся EAP -MD5, CHAP , EAP -TLS, смарт-карты и т.д. После принятия решения клиент использует выбранный механизм аутентификации для получения доступа к серверу RRAS и к сети.

    Как следует из названия EAP (Расширяемый протокол аутентификации), любое количество типов (методов) EAP может быть добавлено в любой момент. Чтобы увидеть, какие методы EAP вы используете на данный момент, выполните следующие шаги.

    1. Откройте консоль управления RRAS, выбрав Start/Programs/Administrative Tools (Пуск/Программы/Администрирование).
    2. В правой консоли щелкните на нужном сервере RRAS и выберите пункт Properties.
    3. Во вкладке Security щелкните на кнопке Authentication Methods , после чего появится окно Authentication Methods .
    4. Щелкните на кнопке EAP Methods (Методы EAP ), после чего вы увидите методы EAP , установленные на данный момент (см. рис. 4.10).

    Методы EAP . Система Windows Server 2003 может поддерживать любые типы методов EAP (например, смарт-карты) в виде встраиваемых модулей (plug-ins), но она автоматически предоставляет следующие два метода EAP .

    • EAP -MD5 CHAP . EAP - Message Digest 5 CHAP – это обязательный метод EAP , который поддерживает много одинаковых атрибутов с методом CHAP , но, кроме того, поддерживает отправку вызовов и ответов в виде сообщений EAP .
    • EAP -TLS ( EAP -Transport Level Security). Этот метод безопасности транспортного уровня осуществляет аутентификацию с помощью сертификатов. Данный метод является обязательным, если вы используете смарт-карты. EAP -TLS является в настоящее время наиболее сильным типом аутентификации, и для него требуется, чтобы сервер RRAS был членом домена. Он обеспечивает взаимную аутентификацию (аутентифицируются как клиент, так и сервер), шифрование, а также обмен секретными личными ключами .


    Рис. 4.10.
    CHAP

    CHAP , видимо, является наиболее употребительным протоколом аутентификации в настоящее время. RRAS Windows Server 2003 поддерживает три версии CHAP .

    • CHAP . Как отраслевой стандарт CHAP является протоколом аутентификации в форме "вызов-ответ", который поддерживает одностороннее шифрование ответов на вызовы. Для выполнения процесса аутентификации используются три шага. Сначала сервер направляет клиенту вызов, чтобы тот доказал свою идентичность. Затем клиент отправляет шифрованное сообщение CHAP в ответ на этот вызов. После этого сервер проверяет ответ, и если все правильно, то клиенту предоставляется доступ.
    • MS- CHAP . MS- CHAP – это модифицированная собственная версия CHAP от компании Microsoft. Главным отличием между MS- CHAP и CHAP в Windows Server 2003 является то, что пароль пользователя используется в обратной шифрованной форме.
    • MS-CHAPv2. Версия 2 MS- CHAP – это более сильный и более защищенный метод аутентификации, чем предыдущие реализации. К наиболее заметным отличиям относится то, что он больше не поддерживает NTLM (его можно использовать только с Windows Server 2003), он обеспечивает взаимную аутентификацию, а для отправки и приема данных используются отдельные криптографические ключи.
    SPAP

    Протокол аутентификации пароля для клиентов Shiva – это более старый, и, тем не менее, широко распространенный метод для дистанционного доступа. Клиенты, использующие программное обеспечение Shiva, должны аутентифицироваться с помощью SPAP. SPAP – это относительно простой метод аутентификации, с помощью которого происходит шифрование паролей, передаваемых через канал связи. Этот вариант аутентификации поддерживается системой Windows Server 2003 только для клиентов Shiva, которых вам, может быть, приходится обслуживать.

    PAP

    PAP (Протокол аутентификации пароля) не соответствует своему названию, поскольку это наименее защищенный из доступных в настоящее время методов аутентификации. Имя пользователя и пароль передаются через канал связи в виде нешифрованного текста. Любой злоумышленник, перехвативший данное соединение, может извлечь и использовать эту информацию для получения доступа к вашей сети. Поэтому использование PAP для аутентификации не рекомендуется.

    Неаутентифицированный доступ

    Этот вариант совершенно очевиден, и поэтому он не требует обсуждения. Ясно, что вам никогда не следует использовать этот вариант, если вы заинтересованы в защите вашей сети. Фактически этот вариант предоставляет открытый доступ любому, кто хочет подсоединиться дистанционным образом.

    Ответный вызов (Callback)

    Смысл этого термина следует из его названия. Удаленный клиент набирает номер сервера RRAS, после чего происходит проверка опознавательных данных этого клиента (пользовательское имя и пароль). После проверки опознавательных данных соединение прерывается, что позволяет серверу RRAS сделать ответный вызов удаленного клиента. Номер, по которому делает ответный вызов сервер RRAS, может быть указан во время начального вызова, или может потребоваться, чтобы сервер RRAS выполнил вызов по определенному номеру. Второй вариант является наиболее защищенным способом, поскольку он позволяет ограничить возможные источники удаленных соединений . Еще одним преимуществом обратного вызова является то, что он позволяет экономить затраты на соединение клиента.

    Идентификация вызова (Caller ID)

    Многие люди знакомы с идентификацией вызова, когда на дисплее телефона представлен номер телефона, с которого вам звонят. Ту же функцию можно применять к дистанционному доступу для повышения уровня безопасности.

    Идентификацию вызова можно использовать для проверки того, что удаленный клиент, набравший номер сервера RRAS, звонит с определенного заданного номера. Если клиент звонит не с этого номера, то соединение запрещается и происходит разъединение. Иногда оказывается, что телефонная компания не может снабдить вас номером вызывающей стороны, так как в некоторых местах POTS (обычная телефонная сеть) не может получать номер вызывающей стороны или вызывающая сторона блокировала свой номер, чтобы он не выводился на дисплее телефона. Если номер не может быть выведен на дисплее по какой-либо причине, то соединение отклоняется.

    Основы виртуальных частных сетей (VPN)

    О сетях VPN говорят очень много, но, что удивительно, они труднее всего для понимания среди понятий, касающихся Интернет и дистанционного доступа. Сети VPN известны уже много лет, но они не привлекали особого внимания до недавнего времени. Они стали поддерживаться Microsoft, начиная с реализации RRAS в Windows NT 4, и продолжают поддерживаться в RRAS Windows Server 2003.

    Путаница возникает в особенности из-за смысла слова "частные". Например, компании давно используют для своих отделений (филиалов) соединения через выделенные арендуемые линии. Это фактически частная сеть , которая расширена для связи с удаленными частями. Их также называют VPN через выделенную линию связи. ISP (поставщики услуг интернет ) или телефонные компании создают виртуальные каналы между различными местами. В этом случае имеется два типа виртуальных каналов: постоянные виртуальные каналы ( PVC ) и коммутируемые виртуальные каналы ( SVC ), которые обеспечивают частные соединения. Наиболее распространены PVC -каналы.

    Далее мы не будем рассматривать VPN через выделенные линии связи. RRAS поддерживает VPN через интернет . VPN через интернет – это средство, посредством которого два компьютера или две сети могут взаимодействовать частным (защищенным) образом через общую или открытую сеть , такую как интернет . Это также расширение вашей частной сети, но для него не требуется ISP или телефонная компания, чтобы получить для соединений отдельный дополнительный канал, и это потенциально экономит вам много денег. Сети VPN не ограничиваются соединениями между сайтами. Они также позволяют удаленным клиентам, находящимся в разъездах или работающим на дому, подсоединяться защищенным образом к сети компании. Например, удаленный клиент набирает номер для соединения со своим локальным ISP (экономя на телефонных расходах) и затем создает через интернет VPN -соединение с сетью своей компании.

    VPN придают безопасность и надежность соединению, которое иначе было бы незащищенным соединением через открытую сеть . VPN формируется на основе трех технологий, которые при совместном использовании образуют защищенное соединение. Это аутентификация, туннелирование и шифрование .

    Аутентификация

    Основной причиной аутентификации для VPN является необходимость метода, позволяющего гарантировать до начала сеанса VPN, что клиент и сервер соответствуют данным, с помощью которых они себя идентифицируют. Это не обязательно предусматривает обязательность взаимной аутентификации. Успешная аутентификация должна быть проведена до того, как будет создаваться туннель и передаваться данные, но используемый тип аутентификации зависит от типов клиентов в вашем окружении и выбранных вами методов аутентификации.

    Можно использовать любой из методов аутентификации, описанных выше в разделе "Защита соединений RRAS". Единственным недостатком является то, что если удаленные клиенты являются клиентами более ранних версий Windows, то они, возможно, не поддерживают протокол EAP . И действительно, клиенты Windows NT и Windows 9x не поддерживают этот протокол. Принимая решение, какой протокол использовать, помните, что важно обеспечить максимально возможный уровень аутентификации. Это означает, что нужно использовать такие протоколы аутентификации, как EAP , MS- CHAP или MS-CHAPv2.

    Туннелирование

    Туннелирование используется для инкапсуляции сетевых протоколов (TCP/IP, AppleTalk и NetBEUI ) в пакете IP, который может перемещаться через интернет. TCP/IP может перемещаться через интернет и сам по себе, но тогда он не будет частью туннеля или VPN. Туннель можно представить себе как путь, который прокладывает в земле крот для перемещения из одного места в другое.

    Прежде чем создать туннель, нужно убедиться, что две конечные точки соответствуют данным, с помощью которых они себя идентифицируют. После их аутентификации создается туннель и происходит пересылка информации между этими конечными точками, см. рис. 4.11 . Создание туннелей VPN в Windows Server 2003 происходит с помощью двух протоколов – PPTP и L2TP , которые описаны выше. L2TP является расширением относительно протокола туннелирования PPTP , и он использует аутентификацию и протокол шифрования IPSec.

    L2TP имеется только в версии RRAS для Windows 2000 и Windows Server 2003, и его могут использовать только клиенты Windows, начиная с Windows 2000. В таблице 4.4 описывается, какие клиенты поддерживают различные протоколы туннелирования. Вы можете добавить поддержку L2TP /IPSec к Windows 98, Windows Me и Windows NT 4, загрузив и установив L2TP /IPSec VPN Client с веб-сайта Microsoft.

    Шифрование

    Третьим основным компонентом VPN является шифрование. Шифрование это дополнительное превентивное средство, которое защищает данные, отправляемые через туннель. Данные шифруются перед инкапсуляцией, чтобы снизить риск их подделки в случае перехвата туннеля.


    Рис. 4.11.

    Windows Server 2003 поддерживает две технологии шифрования, Microsoft Point-to-Point Encryption ( MPPE ) и IPSec. В обеих моделях используется ключ шифрования для шифрования и дешифрования информации в точках отправки и получения. Вы можете потребовать, чтобы удаленные клиенты или сайты использовали любой из этих методов. Если они не используют указанный вами метод шифрования, то вы можете сконфигурировать RRAS, чтобы запретить данное соединение.

    Таблица 4.4. Клиенты и протоколы туннелирования, которые они поддерживают
    Клиент VPN Поддерживаемые протоколы туннелирования
    Windows Server 2003 PPTP , L2TP
    Windows XP PPTP ,

    Вопросы реализации VPN

    То, что сети VPN представляют наиболее передовые технологии для дистанционного доступа, не обязательно означает, что VPN являются подходящим решением для вашей ситуации. Прежде чем реализовать такое решение в вашем сетевом окружении Windows Server 2003, вы должны учесть следующие факторы.

    • Безопасность . Вопросы безопасности должны быть одним из наиболее важных факторов, влияющих на ваше решение использовать VPN. Вы должны задаться двумя вопросами. Во-первых, не будет ли VPN "излишеством" для типа информации, которую вы передаете? Например, вы можете просто отправлять неконфиденциальную электронную почту. Во-вторых, будет ли VPN удовлетворять вашим требованиям безопасности. В качестве примера обычно приводят государственные учреждения. Например, военные даже не будут рассматривать возможность использования VPN через открытую сеть, несмотря на уровень безопасности, который предполагает эта технология.
    • Финансовые вопросы . Начальные и текущие расходы на реализацию VPN в сетевом окружении Windows Server 2003 ничтожны по сравнению с арендуемыми линиями. VPN, несомненно, дает вам экономию средств, поскольку в настоящее время сайты и удаленные клиенты могут подсоединяться к сети компании защищенным образом без дополнительных расходов на оплату телефона и т.п. Ясно, что удаленные пользователи могли бы использовать номер 800 (код бесплатных звонков), но это не решает проблему в целом и все же требует существенных затрат.
    • Пропускная способность , Поскольку для сетей VPN требуется аутентификация и шифрование, скорость передачи данных (по определению) будет ниже, чем без них. При использовании VPN можно наблюдать снижение производительности от 30 до 50 процентов. Вам потребуется сравнить это снижение производительности с получаемым уровнем безопасности.

    Имеется довольно много факторов, которые требуется продумать, прежде чем реализовать VPN. Но если вы рассмотрели эти три вопроса, то будете более уверены в своем решении включать (или не включать) возможности VPN в свою сеть Windows Server 2003.

    Выбор варианта реализации VPN

    Имеются два основных типа реализации VPN: коммутируемое VPN-соединение (dial-up VPN) и соединение между сайтами (site to site). Сочетание этих двух типов можно определить как третий тип.

    • Коммутируемое VPN-соединение . Обычно удаленные клиенты набирают номер телефона своего локального провайдера услуг Интернет (ISP) и затем "звонят" на сервер VPN Windows Server 2003, чтобы установить VPN-соединение между этим сервером VPN и удаленным клиентом. Это дает экономию расходов на междугородние телефонные соединения для удаленного клиента, а также дает экономию в том месте, где находится сервер VPN, так как во многих случаях это позволяет избежать установки большого числа модемов и других устройств дистанционного доступа, используемых для соединений.
    • Соединение между сайтами . Этот вариант является наиболее распространенным вариантом реализации VPN. При этом сценарии вы используете два или более серверов VPN Windows Server 2003 для создания VPN между ними. Между этими двумя сайтами определяется защищенный обмен информацией. Пользователи любой из этих сетей могут взаимодействовать с другим удаленным сайтом.
    • Сочетание этих типов . В окружениях Windows Server 2003, где имеются как удаленные клиенты, так и сайты, можно создавать реализации VPN, которые могут обслуживать оба типа соединений.

    методы аутентификации:

    Message Digest 5 (MD5) -- процедура односторонней аутентификации саппликанта сервером аутентификации, основанная на применении хэш-суммы MD5 имени пользователя и пароля как подтверждение для сервера RADIUS. Данный метод не поддерживает ни управления ключами, ни создания динамических ключей. Тем самым исключается его применение в стандарте 802.11i и WPA.

    Transport Layer Security (TLS) -- процедура аутентификации, которая предполагает использование цифровых сертификатов Х.509 в рамках инфраструктуры открытых ключей (Public Key Infrastructure -- PKI). EAP-TLS поддерживает динамическое создание ключей и взаимную аутентификацию между саппликантом и сервером аутентификации. Недостатком данного метода является необходимость поддержки инфраструктуры открытых ключей.

    Tunneled TLS (TTLS) -- EAP расширяющий возможности EAP-TLS. EAP-TTLS использует безопасное соединение, установленное в результате TLS-квитирования для обмена дополнительной информацией между саппликантом и сервером аутентификации.

    Так же существуют и другие методы:

    EAP-SIM, EAP-AKA - используются в сетях GSM мобильной связи

    LEAP - пропреоретарный метод от Cisco systems

    EAP-MD5 - простейший метод, аналогичный CHAP (не стойкий)

    EAP-MSCHAP V2 - метод аутентификации на основе логина/пароля пользователя в MS-сетях

    EAP-TLS - аутентификация на основе цифровых сертификатов

    EAP-SecureID - метод на основе однократных паролей

    Кроме вышеперечисленных, следует отметить следующие два метода, 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» или атаки по словарю.

    Протокол PPP засветился там потому, что изначально EAP планировался к использованию поверх PPP туннелей. Но так как использование этого протокола только для аутентификации по локальной сети - излишняя избыточность, EAP-сообщения упаковываются в «EAP over LAN» (EAPOL) пакеты, которые и используются для обмена информацией между клиентом и аутентификатором (точкой доступа).

    Схема аутентификации

    Она состоит из трех компонентов:

    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).

    Порт открывается, аутентификатор пересылает клиенту сообщение об успешном завершении процесса, и клиент получает доступ в сеть.

    После отключения клиента, порт на точке доступа опять переходит в состояние «закрыт».

    Для коммуникации между клиентом (supplicant) и точкой доступа (authenticator) используются пакеты EAPOL. Протокол RADIUS используется для обмена информацией между аутентификатором (точкой доступа) и RADIUS-сервером (сервером аутентификации). При транзитной пересылке информации между клиентом и сервером аутентификации пакеты EAP переупаковываются из одного формата в другой на аутентификаторе.

    При развёртывании беспроводных сетей в домашних условиях или небольших офисах обычно используется вариант протокола безопасности WPA на основе общих ключей - WPA-PSK (Pre Shared Key), который также называют режимом WPA-Personal. Он использует статический ключ аналогично WEP. При использовании WPA-PSK в настройках точки доступа и профилях беспроводного соединения клиентов указывается пароль длиной от 8 до 63 печатных символов ASCII. При подключении пользователь должен будет ввести этот пароль и, если пароли совпадают с записями в базе, он получит разрешение на доступ в сеть.

    В режиме WPA-EAP (Extensible Authentication Protocol), который также называется режимом WPA-предприятие (WPA-Enterprise), запросы проверки подлинности пересылаются на внутренний сервер с протоколом RADIUS. Служба Сервер сетевой политики (Network Policy Server, NPS) обеспечивает проверку подлинности RADUIS на серверах. NPS-сервер может передавать запросы проверки подлинности на контроллер домена, позволяя защищенным беспроводным сетям WPA-EAP выполнять проверку подлинности контроллеров домена без ввода ключа пользователями.

    Режим WPA-EAP обеспечивает очень гибкую проверку подлинности. Например, можно настроить, чтобы пользователь подключался к защищенной производственной сети WPA-Enterprise с помощью смарт-карты. Поскольку WPA-EAP не использует статический ключ, этим режимом безопасности легче управлять, потому что не требуется изменять ключ в случае его определения хакером. Для поверки подлинности множество точек беспроводного доступа могут использовать один центральный сервер. Кроме того, этот режим безопасности взломать намного сложнее, чем WEP или WPA-PSK. беспроводный сеть шифрование криптографический

    Механизмы шифрования, которые используются для WPA-EAP и WPA-PSK, являются идентичными. Единственное отличие WPA-PSK состоит в том, что аутентификация производится с использованием пароля, а не по сертификату пользователя.

    Достоинства и недостатки

    Достоинствами WPA, по сравнению с WEP, являются:

    • 1. усовершенствованная схема шифрования данных RC4 на основе TKIP (Temporal Key Integrity Protocol - протокол краткосрочной целостности ключей).
    • 2. улучшенные механизмы контроля доступа - обязательная аутентификация 802.1x посредством протокола EAP.
    • 3. модель централизованного управления безопасностью и возможность интеграции с действующими схемами корпоративной аутентификации.
    • 4. возможность облегчения установки для домашних пользователей, которые могут применить специальный режим, автоматизирующий функции настройки безопасности WPA.

    Из недостатков можно выделить:

    • 1. защищенность WPA меньше, чем у WPA2.
    • 2. существования уязвимостей (описаны ниже),
    • 3. сюда можно отнести и то, что для работы с протоколом безопасности WPA необходимо, чтобы все устройства, подключенные к сети, располагали его поддержкой.

    Недостатки WPA-PSK - статический ключ можно взломать с помощью технологий полного перебора значений. Кроме того, статическими ключами очень сложно управлять в производственной среде. В случае взлома отдельного компьютера, отконфигурированного с таким ключом, потребуется изменить ключ на каждой точке беспроводного доступа.

    Источник: Башмаков А.В., Конспект лекция "Безопасность беспроводных сетей"

    Известные уязвимости

    Метод Бека-Тевса

    6 ноября 2008 года на конференции PacSec двумя немецкими студентами, Мартином Беком из Дрездена и Эриком Тевсом из Дармштадта, был представлен способ, позволяющий взломать ключ TKIP, используемый в WPA, за 12-15 минут.

    У TKIP было несколько особенностей, делавших его на тот момент самой надежной защитой. В частности, был предусмотрен контроль последовательности, в рамках которого точка доступа отвергала все пакеты, поступавшие вне очереди. Это защищало от так называемой "replay attack", при которой передача одних и тех же данных повторяется со злым умыслом и совсем не полезным "вложением". Также TKIP отличался 64-битным контролем целостности пакетов MIC, имевшим кодовое название MICHAEL. TKIP, помимо всего прочего, подразумевал передачу каждого пакета с уникальным ключом шифрования.

    Поскольку TKIP создавался с учетом возможности программного апгрейда оборудования, ранее поддерживавшего только WEP, то шифр RC4 использовался и в нем, как и 4 байта для контроля целостности (ICV). Предложенный Беком и Тевсом в докладе метод атаки действует с учетом некоторых предположений, приводимых авторами: атакуемая сеть использует TKIP для шифрования трафика между точкой доступа и клиентами; в сети для адресации используется IPv4 c заранее известным диапазоном адресов вроде 192.168.0.X; длинным интервалом между сменами ключа (3600 секунд в примере авторов метода); QoS (Quality of Service, качество обслуживания) активирован.

    Злоумышленник "прослушивает" трафик до тех пор, пока не найдет в нем ARP-запрос или ответ (ARP-протокол используется для сопоставления IP- и MAC-адресов в сети), такие пакеты легко вычисляются по характерной длине. Большая часть содержимого такого пакета хакеру известна, кроме последнего байта адреса, 8 байт MICHAEL и 4 байт контрольной суммы ICV. MICHAEL и ICV вместе образуют последние 12 байт. После этого хакер использует методы (chopchop), чтобы расшифровать оставшиеся байты. В TKIP есть два способа борьбы с такими атаками:

    • 1. Если клиент получает пакет с битым ICV, это считается ошибкой передачи данных, и пакет тихо "отменяется". Если ICV в порядке, но не проходит верификация по MIC, то точка доступа получает соответствующее уведомление, так называемый MIC failure report frame. Если таких уведомлений приходит более двух в течение минуты, связь прерывается, а все ключи обновляются после 60-секундного перерыва.
    • 2. Если пакет получен верно, то на канале, по которому он был получен, обновляется счетчик. Если входящий пакет получен с неверным порядковым номером, то есть вне очередности, такой пакет просто не принимается.

    Тем не менее, обходной путь был найден: хакеру просто нужно запустить атаку по другому каналу QoS, отличному от того, по которому прошел пакет. Если последний байт адреса в ходе атаки был угадан неверно, пакет просто "сбросится", если же он был угадан верно, клиент пошлет уведомление MIC failure, но счетчик при этом не сработает. Хакеру нужно выжидать по крайней мере 60 секунд между отсылкой пакетов, чтобы не спровоцировать 1-й вариант защиты. 12 с небольшим минут - и в распоряжении атакующего значения MIC и ICV. Осталось угадать только IP-адреса точки и клиента.

    Далее открывается широкое поле для экспериментов. Можно перенаправлять трафик, используя поддельные ARP-ответы. Если файрволл клиента не контролирует исходящий трафик, можно попытаться установить двустороннее соединение с клиентом, получая "ответы" не напрямую, а перенаправляя их через Интернет.

    В качестве мер противодействия Бек и Тевс предлагали три варианта:

    • 1. Установить интервал смены ключей 120 секунд и менее. За этот промежуток хакер успеет расшифровать лишь часть ICV;
    • 2. Отключить отсылку уведомления MIC failure;
    • 3. Отбросить TKIP и перейти на AES-CCMP.

    Метод Охигаси-Мории

    Метод, разработанный сотрудником университета Хиросимы Тосихиро Охигаси (Toshihiro Ohigashi) и профессором университета Кобе Масакату Мории (Masakatu Morii), создан на базе технологии Бека-Тевса (Beck-Tews). Данная технология предусматривает незначительную модификацию пакетов, зашифрованных по временному протоколу целостности ключа (Temporal Key Integrity Protocol, TKIP) в рамках механизма безопасности WPA, и отправку измененных пакетов обратно на точку доступа. Недостаток метода Бека-Тьюза заключается в том, что на его выполнение требуется от 10 до 15 минут.

    Метод, предложенный Охигаси и Мории, как и технология Бека-Тьюза, использует принцип атаки "человек посередине" (man-in-the-middle), который предусматривает вмешательство в коммуникацию между пользователями. Риск обнаружения атаки при таком подходе весьма высок, поэтому возможность сократить продолжительность атаки до 60 секунд является огромным преимуществом - по крайней мере, для хакеров.

    Необходимо заметить, что соединения WPA, использующие более защищённый стандарт шифрования ключа AES, а также WPA2-соединения, не подвержены этим атакам.

    Немного о WPA 2

    23 июля 2010 года была опубликована информация об уязвимости Hole196 в протоколе WPA2. Используя эту уязвимость, авторизовавшийся в сети злонамеренный пользователь может расшифровывать данные других пользователей, используя свой закрытый ключ. Никакого взлома ключей или брут-форса (полный перебор) не требуется.

    Более правильно было бы сказать, что протокол защиты WPA2 взломан, настолько обширную уязвимость нашли специалисты по сетевой безопасности из компании AirTight Networks. Они доказали, что протокол защиты данных WPA2, наиболее распространенный сейчас в сетях WiFi, можно взломать с целью получения любой информации из такой сети. Кроме того, специалисты утверждают, что уязвимость может помогать хакерам атаковать различные ресурсы, используя возможности взломанной сети.

    Обнаруженная уязвимость оказалась применимой ко всем беспроводным сетям, которые совместимы со стандартом IEEE802.11 Standard (Revision, 2007). Уязвимость получила и собственное название - Hole 196.

    Уязвимость была найдена при использовании атаки типа Man-in-the-middle. Человек, авторизовавшийся в такой сети, и воспользовавшийся эксплоитом, сможет перехватывать и расшифровывать данные, передаваемые внутри сети. Кроме того, при использовании этой "дыры" становится возможным подмена MAC-адресов. Таким образом, информацию можно передавать поддельным клиентским системам, и это же позволяет использовать ресурсы взломанной сети для атак на различные веб-ресурсы, без особого опасения быть обнаруженным.

    Способы взлома беспроводных сетей, защищенных WPA

    WPA-TKIP

    Уязвимость в протоколе WPA-TKIP, обнаруженной исследователями и членами команды aircrack-ng Мартином Бэком и Эриком Тюзом.

    В результате эксплуатации уязвимости основной ключ невозможно восстановить, можно лишь узнать ключ, используемый для проверки целостности и ключевой поток. На основании этого, не зная основного ключа, появляется возможность передавать пакеты в сеть. Получаются обратно пакеты по схеме, подобной easside-ng.

    Эту уязвимость можно проверить, используя тестовую программу tkiptun-ng добавленную в aircrack-ng. Известно, что для проведения атаки необходимо сменить MAC своего адаптера на MAC клиента, который атакуется. Также атакуемая точка доступа должна поддерживать QoS или WMM, использовать WPA + TKIP (не AES), и время смены временного ключа должно быть больше 3600 секунд. Если все это присутствует, то можно запускать: #tkiptun-ng -h -a -m 80 -n 100 <интерфейс>.

    После успешного исполнения можно получить поток ключа, с помощью которого можно создавать пакеты и запускать их в сеть.

    Протокол WPA2 не подвержен этой уязвимости.

    Классический взлом WPA. Перехват handshake.

    Суть атаки - в переборе всех возможных комбинаций ключа до его определения. Метод гарантирует успех, но если ключ достаточно длинный и не находиться в словарях, то можно считать себя защищенным от этой атаки. Таким образом, взламываются как WPA так и WPA2 сети, но лишь в PSK режиме.

    Шифрования WPA/WPA2 PSK уязвимы к атакам по словарю. Для осуществления этой атаки, необходимо получить 4-way WPA handshake между wifi-клиентом и точкой доступа (АР), а также словарь содержащий парольную фразу.

    WPA/WPA2 PSK работает следующим образом: он вытекает из ключа предварительной сессии, которая называется Pairwise Transient Key (PTK). PTK, в свою очередь использует Pre-Shared Key и пять других параметров - SSID, Authenticator Nounce (ANounce), Supplicant Nounce (SNounce), Authenticator MAC-address (MAC-адрес точки доступа) и Suppliant MAC-address (МАС-адрес wifi-клиента). Этот ключ в дальнейшем использует шифрование между точкой доступа (АР) и wifi-клиентом. Злоумышленник, который в этот момент времени прослушивает эфир, может перехватить все пять параметров. Единственной вещью, которой не владеет злодей это - Pre-Shared key. Pre-Shared key получается (создается) благодаря использованию парольной фразы WPA-PSK, которую отправляет пользователь, вместе с SSID. Комбинация этих двух параметров пересылается через Password Based Key Derivation Function (PBKDF2), которая выводит 256-bit"овый общий ключ.

    В обычной/типичной WPA/WPA2 PSK атаке по словарю, злоумышленник будет использовать словарь с программой (инструментом). Программа будет выводить 256-bit"овый Pre-Shared Key для каждой парольной фразы и будет использовать ее с другими параметрами, которые были описаны в создании PTK. PTK будет использоваться для проверки Message Integrity Check (MIC) в одном из пакетов handshake. Если они совпадут, то парольная фраза в словаре будет верной, в противном случае наоборот (неверной).

    Эта атака встроена в пакет aircrack-ng. Сначала нужно словить аутентификацию клиента, чтобы на основании ее уже восстанавливать основной ключ. Это проще всего сделать, запустив #airodump-n g и дождавшись аутентификации, либо запустив атаку деаутентификации #aireplay-ng -0 <количество деаутентификаций> . Через некоторое время, airodump-ng покажет, что аутентификация уловлена и записана в файл. После этого, нужно лишь запустить aircrack-ng <файл аутентификации> и ждать.

    Ускорить процесс можно используя большой словарь с часто используемыми словами. Еще поможет использование специализированных микроконтроллеров или видеокарт. Без этого перебор всех возможных ключей займет слишком много времени.

    Для противостояния такой атаке можно использовать достаточно длинные и необычные ключи.

    Wi-Fi Protected Setup

    Wi-Fi Protected Setup (WPS) - стандарт, предназначенный для полуавтоматического создания беспроводной домашней сети, созданный Wi-Fi Alliance. Официально запущен 8 января 2007 года.

    Большинство современных роутеров поддерживают механизм WPS. Целью протокола WPS является упрощение процесса настройки беспроводной сети, поэтому изначально он назывался Wi-Fi Simple Config. Протокол призван оказать помощь пользователям, которые не обладают широкими знаниями о безопасности в беспроводных сетях, и как следствие, имеют сложности при осуществлении настроек. WPS автоматически обозначает имя сети и задает шифрование, для защиты от несанкционированного доступа в сеть, при этом нет необходимости вручную задавать все параметры.

    Существует три варианта использования WPS:

    • 1. Push-Button-Connect (PBC). Пользователь нажимает специальную кнопку на роутере и на компьютере (программная), тем самым активируя процесс настройки.
    • 2. Ввод PIN-кода в веб-интерфейсе. Пользователь заходит через браузер в административный интерфейс роутера и вводит там PIN-код из восьми цифр, написанный на корпусе устройства, после чего происходит процесс настройки.
    • 3. При соединении с роутером можно открыть специальную сессию WPS, в рамках которой настроить роутер или получить уже имеющиеся настройки, если правильно ввести PIN-код. Для открытия подобной сессии не нужна никакая аутентификация. Получается, что PIN-код уже потенциально подвержен атаке типа bruteforce.

    Здесь PIN-код состоит из восьми цифр - следовательно, существует 10^8 (100 000 000) вариантов для подбора. Но дело в том, что последняя цифра PIN-кода представляет собой контрольную сумму, которая высчитывается на основании семи первых цифр. В итоге получаем уже 10^7 (10 000 000) вариантов. К тому же, проверка PIN-кода осуществляется в два этапа - каждая часть проверяется отдельно. Получаем 10^4 (10 000) вариантов для первой половины и 10^3 (1 000) для второй. Итого, всего лишь 11 000 вариантов для полного перебора. Но здесь стоит отметить один важный момент - возможная скорость перебора. Она ограничена скоростью обработки роутером WPS-запросов: одни точки доступа будут выдавать результат каждую секунду, другие - каждые десять секунд.

    Реализацию брутфорса можно выполнить с помощью утилиты wpscrack , а так же с помощью утилиты Reaver . Reaver будет предпочтительней в виду своей большей функциональности и поддержкой намного большего количества беспроводных адаптеров.

    Как и для любой другой атаки на беспроводную сеть, понадобится Linux. Для использования Reaver необходимо проделать следующие вещи:

    • § узнать имя беспроводного интерфейса - $ iwconfig ;
    • § перевести беспроводной адаптер в режим мониторинга - $ airmon-ng start *** (обычно это wlan0);
    • § узнать MAC-адрес точки доступа (BSSID) с шифрованием WPA/WPA2 и аутентификацией по ключу PSK - $ airodump-ng *** (обычно mon0);
    • § убедиться, что на точке активирован WPS - $ ./wash -i mon0 .

    После можно приступать непосредственно к перебору PIN"а. Необходимо указать имя интерфейса (переведенного ранее в режим мониторинга) и BSSID точки доступа:

    $ reaver -i mon0 -b 00:21:29:74:67:50 -vv

    Ключ "-vv" включает расширенный вывод программы, чтобы можно было убедиться, что все работает как надо. Если программа последовательно отправляет PIN"ы точке доступа, значит, все работает хорошо, и остается только ждать. Процесс может затянуться - примерно время может варьироваться от четырех до десяти часов. Как только он будет подобран, программа об этом сообщит и выдаст. Найденный ключ WPA-PSK, можно сразу же использовать для подключения.

    Также стоит отметить то, что существует более быстрый вариант. Дело в том, что у некоторых одинаковых моделей роутеров обычно оказывается одинаковый PIN. И, если, PIN модели выбранного роутера уже известен, то время взлома составляет буквально несколько секунд.

    Защититься от атаки можно пока одним способом - отключить WPS в настройках роутера. Правда, сделать это возможно далеко не всегда. Или, чтобы максимально противодействовать брутфорсу, можно блокировать WPS на неопределенное время после нескольких неудачных попыток ввода PIN-кода. То перебор может затянуться на очень и очень долгое время, в зависимости от выставленного значения периода блокировки.

    Немного о WPA/WPA2-Enterprise. Взлом MS-CHAPv2.

    В Enterprise, MS-CHAPv2 является только одним из возможных методов EAP. Популярность MS-CHAPv2 вызвана тем, что это наиболее простой метод для интеграции с продуктами Microsoft (IAS, AD, и т.д.).

    Утверждается, что MS-CHAPv2 взламывается с результативностью 100%. Для этого нужно перехватить обмен по протоколу MS-CHAPv2, после чего, используя уязвимости в шифровании можно вычислить реквизиты пользователя. Утверждается, что MS-CHAPv2 используется в системах VPN и WPA2-Enterprise. При этом и VPN и WPA2 упоминаются в контексте AAA-серверов (Authentication, Authorization, Accounting), что весьма логично, так как именно там и ловится нешифрованный MS-CHAP. Т.е., если перехватить MS-CHAPv2 обмен между клиентом и AAA-сервером - можно вычислить реквизиты пользователя.

    Но так как при наличии туннеля перехват сессии MS-CHAPv2 уже невозможен (вначале надо взломать шифрование туннеля), такой способ взлома действителен только, если сымитировать точку доступа. Тогда можно спокойно заполучить и клиента, и его MS-CHAPv2 сессию, при условии, что отсутствуют сертификаты на точке доступа и выключена проверка сертификатов на клиентах.

    Таким образом, для грамотно построенной беспроводной сети с WPA2-Enterprise на основе PEAP/MS-CHAPv2 такая атака не страшна. Разве что, вклиниться в канал между аутентификатором (точкой доступа, контроллером) и AAA-сервером, но это уже не относится к WPA.

    АНДРЕЙ ПЛАТОНОВ

    Строим защищённую беспроводную сеть: WPA-Enterprise, 802.1x EAP-TLS

    Существует добрая сотня статей о небезопасности беспроводных сетей. Причём многие совершенно идентичны и бесполезны: в них говорится о том, что WEP-это плохо, что MAC-адреса подменяются легко, и в заключение пишется: «Есть единственный выход и спасение. Нужно использовать WPA.» И точка. Данный материал содержит именно то, что вы хотели услышать после «точки» – практическое руководство по организации хорошо защищённой беспроводной сети.

    Безопасный небезопасный Wi-Fi

    На сегодняшний день становится очевидным, что, несмотря на все проблемы, связанные c безопасностью, надёжностью и сложностью эксплуатации, беспроводные решения семейства 802.11a/b/g всё же стали неотъемлемой частью инфраструктуры многих корпоративных, домашних и даже операторских сетей. Отчасти это произошло, потому что большинство этих проблем на современном этапе развития Wi-Fi ушли в прошлое. Беспроводные сети во всех отношениях стали намного умнее и быстрее: появился QoS, интеллектуальные антенны (технология MIMO), реальные скорости достигли 40 Мбит/c (например, технологии SuperG, SuperAG от Atheros). Кроме этого, большие изменения произошли и в наборе технологий, обеспечивающих безопасность беспроводных сетей. Об этом поговорим более подробно.

    Во времена, когда Wi-Fi был только для избранных, для защиты беспроводных сетей использовалось WEP-шифрование и MAC-фильтры. Всего этого быстро стало не хватать, WEP признали небезопасным из-за статичности ключей шифрования и отсутствия механизмов аутентификации, MAC-фильтры особой безопасности тоже не придавали. Началась разработка нового стандарта IEEE 802.11i, который был призван решить все назревшие проблемы безопасности. На полпути к 802.11i появился набор технологий под общим названием WPA (Wi-Fi Protected Access) – часть ещё не готового стандарта 802.11i. WPA включает в себя средства для аутентификации пользователей, шифрование при помощи динамических WEP-ключей (TKIP/MIC). Затем 802.11i наконец-то закончили, и на свет появился WPA2. Ко всему вышеперечисленному добавилась поддержка более стойкого шифрования AES (Advanced Encryption Standard), которое работает совместно с протоколом безопасности CCMP (Counter with Cipher Block Chaining Message Authentication Code Protocol – это более совершенный аналог TKIP в WPA). WPA2 постепенно стал появляться в новых моделях точек доступа (например, D-Link DWL-3200AP), но пока это скорее экзотика. Все продукты, поддерживающие WPA2, обратно совместимы с оборудованием, поддерживающим WPA.

    И WPA, и WPA2 включают в себя развитые средства контроля доступа к беспроводной сети на основе стандарта IEEE 802.1x. В архитектуре 802.1x используется несколько обязательных логических элементов:

    • Клиент. В роли клиента выступает Supplicant– программа на клиентском компьютере управляющая процессом аутентификации.
    • Аутентификатор. Это точка доступа, которая выполняет функции посредника между клиентом и сервером аутентификации. Аутентификатором в том числе может быть и проводной коммутатор, т.к. 802.1x используется в различных сетях.
    • Сервер аутентификации – RADIUS-сервер.

    В IEEE 802.1x допускается использование различных методов и алгоритмов аутентификации. Это возможно благодаря протоколу EAP (Extensible Authentication Protocol), в который «вкладываются» атрибуты, соответствующие тому или иному методу аутентификации. Поэтому существует много разновидностей 802.1x EAP: EAP-MD5, EAP-PEAP, EAP-LEAP, EAP-SIM и т. д. В данной статье будет описана реализация аутентификации в беспроводной сети на основе цифровых сертификатов – 802.1x EAP-TLS. Этот метод наиболее часто используется в корпоративных беспроводных сетях и отличается достаточно высокой степенью защищённости. Кроме того, EAP-TLS иногда является одним из основных методов защиты в сетях беспроводных провайдеров.

    Аутентификация 802.1x EAP-TLS

    В основе EAP-TLS лежит протокол SSL v3.0, однако в отличие от традиционной аутентификации по протоколу SSL (например, при организации защищенного http-соединения – HTTPS) в EAP-TLS происходит взаимная аутентификация клиента и сервера. Клиент (супликант) и сервер RADIUS должны поддерживать метод аутентификации EAP-TLS; точка доступа должна поддерживать аутентификацию 802.1x/EAP и не обязательно должна знать, какой метод аутентификации используется в конкретном случае. На рисунке ниже изображён процесс аутентификации в беспроводной сети с использованием EAP-TLS.

    Здесь уместно закончить небольшое лирически-теоретическое отступление, которое необходимо, для того чтобы получить примерное представление о том, что кроется в недрах безопасной беспроводной сети. Далее будет предложена практическая реализация описанных выше концепций. В качестве сервера RADIUS будет использоваться компьютер под управлением FreeBSD 5.3 c пакетом FreeRADIUS. Для организации инфраструктуры PKI (Public Key Infrastructure) будет применен пакет OpenSSL. Вся беспроводная сеть будет строиться на базе недорогого и надёжного беспроводного оборудования D-Link. Предполагается, что на клиентских машинах установлена Windows XP SP2, т.к. в этой операционной системе есть встроенный супликант, а недавно выпущенный корпорацией Microsoft update добавляет и поддержку WPA2.

    Устанавливаем и настраиваем OpenSSL и FreeRADIUS

    Предполагается, что в системе FreeBSD 5.3 установлена одна сетевая карта, обновлена коллекция портов, присутствует Midnight Commander, а сам компьютер подключён к Интернету. В дальнейшем будем предполагать, что беспроводная сеть развёртывается в корпоративной сети c маской 192.168.0.0/24.

    Для начала несколько слов о настройке беспроводной сети, а затем приведем пример конфигурирования D-Link DWL-2100AP для обеспечения взаимодействия с сервером RADIUS.

    Внутриофисная беспроводная сеть обычно состоит из нескольких точек доступа (всё покрытие разбивается на небольшие ячейки), которые подключены к проводному коммутатору. Часто для построения WLAN используются коммутаторы со встроенной поддержкой Power over Ethernet (802.3af) на портах (например, D-Link DES-1316K). При их помощи удобно подавать питание на точки доступа, разбросанные по офису. Находящиеся рядом точки настраиваются на непересекающиеся каналы диапазона, для того чтобы они не создавали друг для друга помех. В диапазоне 2.4 ГГц, в котором работает оборудование 802.11b/g, доступно 3 непересекающихся канала для оборудования, в котором 11 каналов, и 4 непересекающихся канала для оборудования, в котором можно выбрать 13 каналов (широкополосный сигнал точки доступа занимает 3 канала диапазона). Точки доступа D-Link DWL-2100AP и DWL-2700AP можно настроить на любой из 13 каналов, кроме того, можно включить функцию автоматической настройки на свободный канал. Так мы и сделаем.

    Если в сети есть мобильные абоненты, которые перемещаются по всей зоне покрытия, можно задать всем точкам одинаковое имя беспроводной сети – SSID, тогда абонент будет автоматически подключаться к новой точке, при потере соединения с предыдущей. При этом он будет проходить повторную аутентификацию, которая в зависимости от супликанта будет занимать от нескольких секунд и более. Так реализуется самый простой неинтеллектуальный роуминг внутри сети. Ещё один вариант: если у каждой точки свой SSID, то можно настроить несколько профилей беспроводной сети в свойствах беспроводного подключения и там же отметить опцию «подключаться к любой доступной сети». Таким образом при потере соединения, клиент будет подключаться к новой точке.

    Настраиваем DWL-2100AP на взаимодействие с RADIUS.

    • Заходим на веб-интерфейс точки доступа (как это сделать, написано в инструкции к точке), сразу меняем пароль по умолчанию на вкладке TOOLS/ADMIN/.
    • На вкладке HOME/LAN назначаем точке доступа IP-адрес, который задали в clients.conf: 192.168.0.220.

    • На вкладке HOME/WIRELESS делаем всё, как показано на рис. 3; в поле «Radius Secret» указываем пароль, который соответствует данной точке в clients.conf (мы указали «12345»).

    Остальные точки доступа настраиваются аналогичным образом, только у них будут другие IP-адреса, каналы (если они задаются вручную), а также значение поля «Radius Secret».

    Создаём сертификаты

    Для начала несколько общих слов о том, что такое PKI. Это некая инфраструктура, каждый субъект которой обладает уникальным цифровым сертификатом, удостоверяющим его личность; помимо прочего, цифровой сертификат содержит секретный ключ. Закодированные с его помощью сообщения можно расшифровать, зная соответствующий открытый ключ. И наоборот – сообщения, зашифрованные открытым ключом, можно расшифровать только при помощи секретного ключа. Каждый субъект PKI обладает открытым и секретным ключом.

    Субъектом PKI может быть как пользовательский компьютер или КПК, так и любой другой элемент сетевой инфраструктуры – маршрутизатор, веб-сервер и даже сервер RADIUS, что и имеет место в нашем случае. Во главе всей этой системы стоит главный орган CA (Certificate Autority), предполагается, что ему все доверяют и его все знают – он занимается подписью сертификатов (удостоверяет, что предъявитель сертификата действительно тот, за кого себя выдаёт). Ему помогают специальные службы по приёму запросов на сертификаты и их выдаче; номера всех выданных и отозванных сертификатов хранятся в специальном реестре. В реальности всё это вроде бы большое хозяйство умещается на одном компьютере, и с ним легко управляется один человек.

    Для создания сертификатов мы будем использовать скрипты, которые идут в комплекте с FreeRADIUS.

    • Для начала создадим свой CA – для этого надо будет сгенерировать цифровую подпись, которой будут подписываться все выданные им сертификаты, а также открытый ключ.
    • Затем создадим серверный сертификат, установим его на RADIUS.
    • И в заключение сгенерируем сертификаты для установки на клиентские компьютеры.

    Создаём директорию /usr/local/etc/raddb/CA, копируем туда из папки /usr/ports/net/freeradius/work/freeradius-1.0.2/scripts/ файл CA.all и файл xpextensions. CA.all – интерактивный скрипт, создающий CA, клиентский и серверный сертификаты. Xpextensions – файл, содержащий специальные ключи Microsoft «Extended Key Usage», – они необходимы для того, чтобы EAP-TLS работал с Windows-системами.

    Открываем файл CA.all:

    • в строке 1 исправим путь – она должна выглядеть так:

    SSL=/usr/local/openssl

    • в строке 32 исправим путь – она должна выглядеть вот так:

    echo “newreq.pem” | /usr/local/openssl/ssl/misc/CA.pl -newca

    Копируем CA.all в файл СA_users.all. Затем открываем последний и оставляем текст с 48 строки по 64-ю, остальные строки удаляем – оставшееся – это секция CA.all, в которой генерируются клиентские сертификаты. Она будет многократно использоваться, поэтому её удобно выделить в отдельный скрипт. Открываем CA.all , удаляем из него строки с 48 по 64-ю – всё то, что выделили в отдельный скрипт и сохраняем его.

    Примечание: файлы CA.all и CA_users.all – содержат секретную фразу-пароль «whatever», которая используется как дополнительное средство обеспечения безопасности, при эмиссии сертификатов и их отзыве. Человек, не знающий эту фразу не сможет ни подписать, ни отозвать сертификат. В принципе, кроме оператора CA, она больше никому не понадобится. Для повышения безопасности нужно заменить все встречающиеся в скрипте CA.all и CA_users.all слова «whatever» на придуманный вами пароль. Его также нужно будет вписать в eap.conf в строку «private_key_password = whatever». Далее я предполагаю, что мы оставили везде пароль «whatever» без изменений. Его и будем вводить, создавая клиентские, серверные сертификаты, а также отзывая их.

    Создаём CA и серверный сертификат

    Запускаем CA.all. Первое, что он генерирует в интерактивном режиме – корневой сертификат CA (cacert.pem), пару открытый закрытый ключ (cakey.pem), открытый ключ корневого сертификата в формате PKCS#12 (root.der), затем серверный сертификат (cert_srv.pem), который мы установим на RADIUS. Все перечисленные файлы (и даже некоторые не перечисленные) появятся в папке CA.

    Создаём CA (он будет называться «Administrator»):

    Organizational Unit Name (eg, section) :megacompany.central.office

    Common Name (eg, YOUR name) :Administrator

    Создаём сертификат для RADIUS:

    Organization Name (eg, company) :MegaCompany Co. Ltd.

    Organizational Unit Name (eg, section) :RADIUS

    Common Name (eg, YOUR name) :RADIUS

    Email Address :admin@megacompany.ru

    Копируем файлы /raddb/CA/cert_srv.pem и /raddb/CA/demoCA/cacert.pem в папку /raddb/certs – установили сертификаты на сервер RADIUS.

    Создаём клиентские сертификаты

    Для генерации клиентских сертификатов используем наш сценарий CA_users.all. Для примера создадим сертификат для пользователя user1:

    • Открываем CA_users.all , заменяем в нём все слова cert-clt.* на user1.* (это нужно для того чтобы по имени файла различать какой сертификат для какого пользователя предназначен, в противном случае будет создаваться сертификат с одним и тем же именем файла (cert-clt.*). Мы же создадим сразу несколько сертификатов для user1, user2,3,4,5). Как вариант можно использовать говорящие названия файлов содержащих сертификат, например, SergeyPetrov, IvanIvanov и т. д.
    • Пароль – «whatever» в строках 3, 4 заменяем на реальный, как это показано в листинге:

    Файл CA_users.all

    1| openssl req -new -keyout newreq.pem -out newreq.pem -days 730 -passin pass:whatever -passout pass:whatever

    2| openssl ca -policy policy_anything -out newcert.pem -passin pass:whatever -key whatever -extensions xpclient_ext \

    Extfile xpextensions -infiles newreq.pem

    3| openssl pkcs12 -export -in newcert.pem -inkey newreq.pem -out user1.p12 -clcerts -passin pass:whatever -passout pass:user1_password

    4| openssl pkcs12 -in user1.p12 -out user1.pem -passin pass:user1_password -passout pass:user1_password

    5| openssl x509 -inform PEM -outform DER -in user1.pem -out user1.der

    Для примера вводим «user1_password» – этот пароль будет спрашиваться при установке сертификата на поль-зовательский компьютер, его необходимо запомнить. Это, как я уже сказал, дополнительное средство аутентификации при действиях, связанных с эмиссией сертификата.

    • Сохраняем и запускаем скрипт, получаем три файла user1.der, user1.pem, user1.p12 – последний есть сертификат в формате PKСS#12 для установки на Windows клиента.

    Запускаем изменённый CA_users.all. Создаём сертификат для user1:

    Country Name (2 letter code) :RU

    State or Province Name (full name) :Moskow

    Locality Name (eg, city) :Moskow

    Organization Name (eg, company) :MegaCompany Co. Ltd.

    Common Name (eg, YOUR name) :Andrey Ivanov

    Email Address :andrey@megacompany.ru

    Please enter the following "extra" attributes

    to be sent with your certificate request

    A challenge password :whatever

    An optional company name : (press enter)

    Теперь генерируем пароль для пользователя user2:

    • Открываем CA_users.all, заменяем в нём user1.* на user2.*
    • Заменяем пароль «user1_password» на «user2_password» (не забываем его запомнить, чтобы потом установить сертификат).
    • Сохраняем и запускаем скрипт – получаем файл user2.p12.

    Создаём сертификат для user2:

    Country Name (2 letter code) :RU

    State or Province Name (full name) :Moscow

    Locality Name (eg, city) :Moscow

    Organization Name (eg, company) :MegaCompany Co. Ltd.

    Organizational Unit Name (eg, section) :IT Department

    Common Name (eg, YOUR name) :Mikhail Ivanov

    Email Address :mikhail@megacompany.ru

    Please enter the following "extra" attributes

    to be sent with your certificate request

    A challenge password :whatever

    An optional company name :

    Каждый сертификат сохраняем на отдельную дискету, пишем на ней пароль для установки («userX_password»), на ту же дискету пишем открытый ключ root.der (он у всех одинаковый) и выдаём пользователю. Пользователь устанавливает сертификат на свой компьютер (об этом будет рассказано чуть позже) и кладёт дискету в сейф.

    Устанавливаем сертификаты на клиентский компьютер

    Итак, пользователь (предположим тот, которого мы назвали user1) получил дискетку, содержимым которой являются два файла root.der и user1.p12. Также на дискете написан пароль «user1_password».

    Начнём с установки root.der

    • два раза щелкнем мышью по файлу root.der;
    • нажимаем «Установить сертификат»;
    • жмём «Далее»;
    • выбираем опцию «Поместить все сертификаты в следующее хранилище», жмём «Обзор» (рис. 4);

    • выбираем «Доверенные корневые центры сертификации», жмём «ОК» (рис. 5);

    • жмём «Далее», затем «Готово»;
    • выдаётся предупреждение системы безопасности: «Невозможно проверить, что сертификат принадлежит «Administrator …. Установить данный сертификат?» жмём «Да»;
    • выдаётся сообщение «Импорт успешно выполнен.», жмём «ОК» два раза.

    Устанавливаем пользовательский сертификат user1.p12.

    • Два раза щелкаем мышью по файлу user1.p12, жмём «Далее» два раза.

    • Здесь надо ввести пароль, который мы установили для сертификата user1. В нашем примере это «user1_pass-word» (ну или то, что вы придумали), он условно написан на дискетке с сертификатом. Вводим его и нажимаем «Далее».
    • Жмём «Далее», затем «Готово» – выдаётся сообщение «Импорт успешно выполнен», жмём «ОК».

    Примечание: все сертификаты, которые мы установили, можно просмотреть через MMC при помощи оснастки «Certificates -> Current User (Personal -> Certificates)».

    Настраиваем беспроводные адаптеры D-Link DWL-G650 (DWL-G520/DWL-G120) и супликант

    D-Link DWL-G650 – это CardBus-адаптер, DWL-G520 – это PCI-адаптер, a DWL-G120 – это USB-адаптер. Настраиваются они совершенно идентично. Рассмотрим процедуру на примере DWL-G650.

    • Достаём адаптер из коробки, откладываем его в сторону; ставим драйверы с диска, который идёт в комплекте. После установки драйвера убираем родную утилиту для настройки адаптера из автозагрузки, потому что мы будем использовать для этих целей службу настройки беспроводного оборудования, встроенную в Windows XP. Вставляем адаптер в компьютер.
    • Щелкаем один раз левой кнопкой мыши по перечёркнутому значку беспроводного подключения (в системном лотке), далее выбираем пункт «Изменить дополнительные параметры» (рис. 7).

    • Выбираем вкладку «Беспроводные сети», выделяем там нашу беспроводную сеть (megacompany_DWL-2100AP), заходим в «Свойства» (рис. 8).

    • На вкладке «Связи» в выпадающем меню «Шифрование данных» выбираем протокол TKIP. Перемещаемся на вкладку «Проверка подлинности» (рис. 9).

    • Здесь всё оставляем без изменений, заходим в «Свойства» EAP (рис. 10).

    • Ставим переключатели, как показано на рис. 11, в окне «Доверенные корневые центры сертификации», выбираем наш CA – он будет называться Administrator (если всё сделано точно так, как описывается в разделе «Создание сертификатов»).

    • На всякий случай нажимаем «Просмотр сертификата», и изучаем, кто поставщик сертификата. Удостоверяемся, что это наш корпоративный CA «Administrator», который мы создали (рис. 12).

    • Нажимаем «OK», на этом настройка сетевой карты и супликанта завершена.

    Проверяем работу WPA-Enterprise в нашей сети

    Теперь пришло долгожданное время проверить все настройки в работе. Запускаем FreeRADIUS в отладочном режиме командой «radiusd -X» и видим на экране:

    radius# radiusd –X

    Starting - reading configuration files ...

    reread_config: reading radiusd.conf

    В конце значатся строки:

    Listening on authentication 192.168.0.222:1812

    Listening on authentication 192.168.0.222:1813

    Listening on authentication 192.168.0.222:1814

    Ready to process requests.

    Ну или в худшем случае написано, почему FreeRADIUS не запустился, – не стоит отчаиваться, если это произойдёт. Нужно внимательно изучить сообщение об ошибке и проверить все настройки.

    Щелкаем по значку беспроводного сетевого подключения, затем по беспроводной сети с именем «mega-company_DWL-2100AP». Затем переводим свой взор на монитор, на котором запущен radiusd и отображается процесс успешной аутентификации (весь серверный вывод показывать не будем, потому что он довольно большой, приведём лишь начальные и завершающие строки).

    Начало вывода:

    rad_recv: Access-Request packet from host 192.168.0.220:1044, id=0, length=224

    Message-Authenticator = 0x

    Service-Type = Framed-User

    User-Name = "Andrey Ivanov"

    Framed-MTU = 1488

    Called-Station-Id = "00-11-95-8E-BD-30:megacompany_DWL-2100AP"

    Calling-Station-Id = "00-0D-88-88-D5-46"

    NAS-Identifier = "D-Link Access Point"

    Окончание вывода:

    User-Name = "Andrey Ivanov"

    Finished request 4

    Going to the next request

    Waking up in 6 seconds...

    Walking the entire request list ---

    Cleaning up request 0 ID 0 with timestamp 4294d303

    Cleaning up request 1 ID 1 with timestamp 4294d303

    Cleaning up request 2 ID 2 with timestamp 4294d303

    Cleaning up request 3 ID 3 with timestamp 4294d303

    Cleaning up request 4 ID 4 with timestamp 4294d303

    Nothing to do. Sleeping until we see a request.

    Аутентификация прошла успешно, компьютер получает IP-адрес от DHCP-сервера и теперь может работать в беспроводной сети. К слову сказать, если на компьютере установлено несколько клиентских сертификатов (такое тоже бывает), то супликант предложит выбрать, какой из них использовать для конкретной аутентификации.

    Отзыв сертификатов

    Казалось бы, уже всё ясно – защищённая беспроводная сеть уже построена, но на самом деле остался ещё один важный аспект, который мы сейчас рассмотрим. Предположим, что надо запретить доступ в беспроводную сеть одному из компьютеров (например, личному ноутбуку одного из сотрудников), на который ранее мы установили сертификат. Причины могут быть самыми банальными – увольнение сотрудника, сокращение и т. д. Для решения этой задачи необходимо пометить в реестре (/usr/local/etc/raddb/CA/demoCA/index.txt), в котором хранится список всех подписанных сертификатов, сертификат пользователя, которому мы хотим запретить доступ в сеть, как отозванный. После этого необходимо создать (или обновить, если он уже есть) список отзыва сертификатов (CRL – Certificate Revocation List). А затем настроить RADIUS таким образом, чтобы при аутентификации пользователей он обращался к этому списку и проверял, не состоит ли в нём предъявляемый клиентский сертификат.

    В ходе наших предыдущих экспериментов мы создали два сертификата для user1 (Andrey Ivanov) и user2 (Mikhail Ivanov). Для примера запретим доступ в беспроводную сеть последнему. Проделаем следующие три шага.

    Шаг 1

    Помечаем в реестре сертификат user2 как отозванный: находясь в /usr/local/etc/raddb/CA даём команду:

    radius# openssl ca -revoke user2.pem

    943:error:0E06D06C:configuration file routines:NCONF_get_string:no value:

    Revoking Certificate D734AD0E8047BD8F.

    OpenSSL ругается, но делает то, что нам нужно. В ходе выполнения команды необходимо ввести секретную фразу-пароль («whatever»). При этом в /raddb/CA/demoCA/index.txt сертификат будет помечен как отозванный, в чём мы можем убедиться, просмотрев данный файл. Напротив записи, соответствующей отозванному сертификату, стоит буква «R».

    Шаг 2

    Создаём список отзыва (CRL). Если он уже есть, то он обновится. Находясь в /usr/local/etc/raddb/CA, даём команду:

    radius# openssl ca -gencrl -out ca.crl

    Using configuration from /etc/ssl/openssl.cnf

    963:error:0E06D06C:configuration file routines:NCONF_get_string:no value:

    /usr/src/secure/lib/libcrypto/../../../crypto/openssl/crypto/conf/conf_lib.c:

    329:group=CA_default name=unique_subject

    Enter pass phrase for ./demoCA/private/cakey.pem:

    DEBUG: unique_subject = "yes"

    Снова по ходу выполнения команды требуется ввести секретный пароль «whatever». В результате в директории /raddb/CA/ появляется файл ca.crl – это и есть список отзыва. Внутри он похож на шифровку, просмотреть его можно так:

    radius# openssl crl -in ca.crl -text –noout

    Certificate Revocation List (CRL):

    Version 1 (0x0)

    Issuer: /C=RU/ST=Moskow/L=Moskow/O=MegaCompany Co. Ltd./OU=megacompany.central.office/CN=Administrator/emailAddress=admin@megacompany.ru

    Last Update: May 27 23:33:19 2005 GMT

    Next Update: Jun 26 23:33:19 2005 GMT

    Revoked Certificates:

    Serial Number: D734AD0E8047BD8D

    Revocation Date: May 27 23:13:16 2005 GMT

    Signature Algorithm: md5WithRSAEncryption

    D4:22:d6:a3:b7:70:0e:77:cd:d0:e3:73:c6:56:a7:9d:b2:d5:

    0a:e1:23:ac:29:5f:52:b0:69:c8:88:2f:98:1c:d6:be:23:b1:

    B9:ea:5a:a7:9b:fe:d3:f7:2e:a9:a8:bc:32:d5:e9:64:06:c4:

    91:53:37:97:fa:32:3e:df:1a:5b:e9:fd:95:e0:0d:35:a7:ac:

    11:c2:fe:32:4e:1b:29:c2:1b:21:f8:99:cd:4b:9f:f5:8a:71:

    B8:c9:02:df:50:e6:c1:ef:6b:e4:dc:f7:68:da:ce:8e:1d:60:

    69:48:ad:

    Видим в нём один отозванный сертификат с серийным номером D734AD0E8047BD8D (он же user2, он же Mikhail Ivanov).

    Обратите внимание, важным свойством CRL является срок его действия. Он должен быть обновлён не позднее его истечения (Update: Jun 26 23:33:19 2005 GMT). Срок действия CRL можно задать в файле openssl.cnf (у нас был default_crl_days = 30).

    Шаг 3

    Подключаем список отзыва к FreeRADIUS:

    • копируем файл /raddb/CA/ca.crl в /raddb/certs/ (поверх старого ca.crl, если он там есть);
    • заходим в /raddb/certs/ и приклеиваем ca.crl к файлу cacert.pem:

    cat cacert.pem ca.crl > ca.pem

    • вносим небольшие изменения в секцию TLS-файла /raddb/eap.conf

    # здесь мы изменили cacert.pem на ca.pem

    CA_file = ${raddbdir}/certs/ca.pem

    CA_path = ${raddbdir}/certs # добавляем эту строку

    check_crl = yes # и эту строку

    Попробуем аутентифицировать в сети компьютер с сертификатом user2. Аутентификация не проходит, а user1 – беспрепятственно входит в беспроводную сеть, что и требовалось доказать.

    Вот теперь защищённую беспроводную сеть можно считать построенной.

    Тема безопасности беспроводных сетей по-прежнему остается актуальной, хотя уже достаточно давно существуют надежные (на сегодняшний момент, конечно же) методы защиты этих сетей. Разумеется, речь идет о технологии 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-сервер)

    Теперь рассмотрим сам процесс аутентификации. Он состоит из следующих стадий:

    1. Клиент может послать запрос на аутентификацию (EAP-start message) в сторону точки доступа
    2. Точка доступа (Аутентификатор) в ответ посылает клиенту запрос на идентификацию клиента (EAP-request/identity message). Аутентификатор может послать EAP-request самостоятельно, если увидит, что какой-либо из его портов перешел в активное состояние.
    3. Клиент в ответ высылает EAP-response packet с нужными данными, который точка доступа (аутентификатор) перенаправляет в сторону Radius-сервера (сервера аутентификации).
    4. Сервер аутентификации посылает аутентификатору (точке доступа) challenge-пакет (запрос информации о подлинности клиента). Аутентификатор пересылает его клиенту.
    5. Далее происходит процесс взаимной идентификации сервера и клиента. Количество стадий пересылки пакетов туда-сюда варьируется в зависимости от метода EAP, но для беспроводных сетей приемлема лишь «strong» аутентификация с взаимной аутентификацией клиента и сервера (EAP-TLS, EAP-TTLS, EAP-PEAP) и предварительным шифрованием канала связи.
    6. На следующий стадии, сервер аутентификации, получив от клиента необходимую информацию, разрешает (accept) или запрещает (reject) тому доступ, с пересылкой данного сообщения аутентификатору. Аутентификатор (точка доступа) открывает порт для Supplicant-а, если со стороны RADIUS-сервера пришел положительный ответ (Accept).
    7. Порт открывается, аутентификатор пересылает клиенту сообщение об успешном завершении процесса, и клиент получает доступ в сеть.
    8. После отключения клиента, порт на точке доступа опять переходит в состояние «закрыт».

    Описанный процесс проиллюстрирован на рис.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.

    Навигация

    • Часть первая - теоретически аспекты протокола WPA
    просмотров