Вы находитесь на странице: 1из 462

Wi-фу:

«боевые» приемы
взлома и защиты
беспроводных сетей

Андрей А. Владимиров
Константин В. Гавриленхо^
Андрей А. Михайловский

Серия
«Защита и администрирование»

NT Press
Москва, 2005
УДК 004.056
ББК 32.973.202
В57
Подписано в печать 14.02.2005. Формат 70x100 a /i6. Гарнитура «Оффицина сериф». Печать
офсетная. Усл. печ. п. 37,7. Тираж 3000 экз. Зак. № 5202

В л а д и м и р о в , А.А.
В57 Wi-фу: «боевые» приемы взлома и защиты беспроводных сетей / Андрей А. Влади-
миров, Константин В. Гавриленко, Андрей А. Михайловский; пер. с англ. АА. Слинкина. —
М.: НТ Пресс, 2005. — 463, [1] с: ил. — (Защита и адмг1нисгрирование).

ISBN 5-477-00067-8

Книга посвящена методам проведения атак на беспроводные сети Wi-Fi и защите от таких атак. Ав-
торы - широко известные в мире аудиторы безопасности беспроводных сетей, владеющие обширным
практическим опытом в рассматриваемых вопросах.
Обсуждается подбор аппаратных и программных средств для атаки и защиты. Приводится пошаго-
вое описание атак. Исследуются потенциальные слабости применяемых в настоящее время и разраба-
тываемых протоколов безопасности, включая 802.Hi PPTP и IPSec. Описываются системы обнаруже-
ния вторжений. Имеется обширный материал по прикладной криптографии, в том числе по основным
алгоритмам шифрования, написанный языком, понятным практикующему программисту, не имеюще-
му солидной математической подготовки.
Рассмотрение проводится преимущественно на примерах программных средств с открытыми исход-
ными текстами, хотя уделяется внимание и коммерческим продуктам.
Книга представляет несомненный интерес для системных и сетевых администраторов, желающих
защитить свою беспроводную сеть от непрошеных гостей. Много полезного найдет в ней и хакер, ищу-
щий способ проникнуть в чужую сеть, а также любитель, интересующийся новыми технологиями.

УДК 004.056
ББК 32.973.202

Authorized translation from the English language edition, entitled WI-F00: THE SECRETS OF WIRELESS HACKING,
1st Edition, ISBN 0321202171, by VLADIMIROV, ANDREW A.; GAVRILENKO, KONSTANTIN V.; and MIKHAILOVSKY, ANDREW A.,
published by Pearson Education, Inc, publishing as PRENTICE HALL, Copyright © 2004.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or
mechanical including photocopying, recording or by any information storage retrieval system, without permission from Pearson
Education, Inc. RUSSIAN language edition published by NT PUBLISHING HOUSE, Copyright © 2005.

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни был J форме и
какими бы то ни было средствами без письменного разрешения владельца авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок
все равно остается, издательство не может гарантировать абсолютную точность и правильность привод! мых сведе-
ний. В связи с этим издательство не несет ответственности за возможный ущерб любого вида, связанный с приме-
нением содержащихся здесь сведений.
Все торговые знаки, упомянутые в настоящем издании, зарегистрированы. Случайное неправильное использо-
вание или пропуск торгового знака или названия его законного владельца не должно рассматриваться как наруше-
ние прав собственности.

ISBN 0-321-20217-1 (англ.) Copyright © Pearson Education, 2004


ISBN 5-447-00067-8 (рус.) © Издание на русском языке, перевод
на русский язык, оформление
НТ Пресс, 2005
Введение 14

Глава 1. Безопасность беспроводных сетей в реальном мире 20


Почему нас интересует главным образом безопасность в сетях 802.1 1 20
Изобилие открытых сетей 802.1 1 вокруг нас 23
Так ли безоблачно будущее безопасности стандарта 802.1 1, как кажется 25
Резюме 26

Глава 2. В осаде 27
Почему «они» развернули охоту на беспроводные сети 27
Взломщики беспроводных сетей - кто они 30
Корпорации, небольшие компании и домашние пользователи: выбор цели 31
Станьте мишенью: тестирование возможности проникновения
как первая линия обороны 34
Резюме 35

Глава 3. Подготовка оборудования 36


КПК или ноутбук 36
Карты PCMCIA и CF для беспроводной связи 38
Выбор набора микросхем для клиентской карты 38
Антенны 47
Усилители высокой частоты 50
Высокочастотные кабели и разъемы 50
Резюме 51
Глава 4. Заводим двигатель: драйверы и утилиты 52
Операционная система, открытые и закрытые исходные тексты 52
Двигатель: наборы микросхем, драйверы и команды 53
Как заставить свою карту работать под Linux и BSD 54
Знакомство с конфигурированием интерфейса беспроводных карт 61
Комплект программ Linux Wireless Extensions 61
6 Wl-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Утилиты linux-wlan-ng 68
Конфигурирование карты Cisco Aironet 71
Конфигурирование беспроводных клиентских карт в системах BSD 74
Резюме 75

Глава 5. Выходим на улицу:


картографирование сети и осмотр места развертывания 76
Обнаружение беспроводной сети методом активного сканирования 77
Инструменты для обнаружения сети в режиме мониторинга
и анализа трафика 80
Программа Kismet 80
Интеграция Kismet с GpsDrive 86
Программа Wellenreiter 89
Программа Airtraf 90
Программа Gtkskan 92
Программа Airfart 92
Программа Mognet 93
Программа WifiScanner 94
Прочие сценарии и утилиты , 96
Инструменты для обнаружения сети в режиме мониторинга
и анализа трафика в системе BSD 101
Инструменты, использующие команду iwlist scan 104
Инструменты для мониторинга уровня сигнала 106
Резюме 108

Глава 6. Подбираем арсенал: орудия ремесла 109


Средства вскрытия шифров 110
Средства взлома протокола WEР 1 1 1
Средства для извлечения ключей WEP, хранящихся на клиентских хостах 1 16
Средства для внедрения трафика с целью ускорения взлома WEP 1 17
Средства для атаки на системы аутентификации,определенные в стандарте 802.1 х 1 1 8
Инструменты для генерирования фреймов беспроводных протоколов 120
Комплект программ Airjack 1 21
Программа File2air 1 23
Библиотека libwlan 1 24
Программа FakeAP 1 26
Программа void 1 1 1 27
Комплект Wnet 129
Инструменты для внедрения беспроводного зашифрованного трафика:
Wepwedgie 130
Утилиты для управления точкой доступа 1 34
Резюме 136
СОДЕРЖАНИЕ

Глава 7. Планирование атаки 137


Оснащение 137
Присматриваемся к сети 1 39
Планирование осмотра места развертывания 140
Выбор времени для атаки и экономия заряда аккумуляторов 142
Скрытность при тестировании возможности проникновения 144
Последовательность проведения атаки 144
Резюме 145

Глава 8. Прорываем оборону 146


Простейший способ войти, куда не звали 146
Перелезаем через низкий забор: преодоление закрытых ESSID,
фильтрации МАС-адресов и протоколов 148
Справляемся с простым замком: различные способы взлома
протокола WEP 151
Взлом WEP методом полного перебора 151
Атака FMS 152
Улучшенная атака FMS 154
Справляемся с простым замком более сложным способом:
внедрение трафика для ускоренного взлома WEP 157
Взлом WEP - практические наблюдения 157
Взлом протокола TKIP: новая угроза 158
Атаки «человек посередине» и размещение фальшивых точек доступа 160
Изготавливаем фальшивые точки доступа и беспроводные мосты
для тестирования возможности проникновения 161
Атаки «человек посередине» на физический уровень 165
Комбинированные атаки «человек посередине» 166
Взламываем безопасный сейф 167
Атаки на системы аутентификации 168
Атаки против VPN 172
Последнее средство: DoS-атаки на беспроводные сети 178
1. Атаки на физический уровень, или глушение 178
2. Затопление фальшивыми фреймами с запросами на прекращение
сеанса и отсоединение 179
3. Атака с помощью поддельных неправильно сформированных фреймов
аутентификации 179
4. Заполнение буферов точки доступа, предназначенных для обработки
запросов на присоединение и аутентификацию 1 80
5. Атака путем удаления фреймов 1 81
6. DoS-атаки, основанные на особенностях настройки беспроводной сети 1 81
7. Атаки против реализаций стандарта 802.1 1 i 1 82
Резюме 1 82
8 WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Глава 9. Налет и разграбление: враг в городе 183


Шаг 1. Анализ сетевого трафика 183
Фреймы 802.1 1 1 84
Передача данных в открытом виде и протоколы аутентификации 1 84
Сетевые протоколы с известными уязвимостями 1 86
DHCP, протоколы маршрутизации и обеспечения живучести шлюзов 1 86
Трафик syslog и NTP 1 88
Протоколы, которых быть не должно 188
Шаг 2. Соединение с беспроводной сетью и выявление прослушивания 1 88
Шаг 3. Идентификация хостов и выполнение пассивного снятия
цифрового отпечатка с операционной системы 191
Шаг 4. Поиск и эксплуатация уязвимых хостов в беспроводной сети 193
Шаг 5. Атака на проводную часть сети 195
Шаг 6. Проверка правил фильтрации на шлюзе из беспроводной сети
в проводную 199
Резюме 201

Глава 10. Строим крепость:


введение в методы защиты беспроводных сетей 202
Политика обеспечения безопасности беспроводной сети: основы 202
1. Приемлемость, регистрация, обновление и мониторинг устройств 202
2. Обучение пользователей и воспитание ответственности 203
3. Физическая безопасность 203
4. Безопасность физического уровня 204
5. Развертывание сети на местности 204
6. Защитные контрмеры 204
7. Мониторинг сети и реакция на происшествия 205
8. Аудит безопасности и устойчивости сети 205
Основы безопасности уровня 1 в беспроводной сети 205
Полезность WEP, закрытых ESSID, фильтрации МАС-адресов
и перенаправления портов по протоколу SSH 208
Безопасное размещение беспроводной сети
и виртуальные локальные сети 21 0
Использование коммутаторов Cisco Catalyst и точек доступа Aironet
для оптимизации проекта безопасной беспроводной сети 21 1
Развертывание специального особо защищенного шлюза
в беспроводную сеть на платформе Linux 214
Патентованные усовершенствования WEP 219
Стандарт безопасности беспроводных сетей 802.1 1 i и WPA: новые надежды 221
Ставим стража: протокол 802.1х 222
Латаем самую большую «дыру»: протоколы TKIP и ССМР 225
Резюме 227
СОДЕРЖАНИЕ х 9

Глава 1 1. Введение в прикладную криптографию:


симметричные шифры 228
Введение в прикладную криптографию и стеганографию 228
Структура и режимы работы современных шифров 233
Классический пример: алгоритм DES 234
Правило Керчкоффа и секретность шифра 237
Введение в стандарт 802.1 1 i: один шифр в помощь другому 237
Шифр - это еще не все: что такое режимы работы шифра 240
Потоковые шифры и безопасность в беспроводных сетях 243
Запрос на разработку стандарта AES 245
AES (Rijndael) 247
Шифр MARS 250
Шифр RC6 251
Шифр Twofish 253
Шифр Serpent 255
Между DES и AES: шифры, распространенные в переходный период 257
Шифр 3DES 258
Шифр Blowfish 258
Шифр IDEA 260
Выбор симметричного шифра для использования в своей сети или программе .... 263
Резюме 266
Глава 12. Криптографическая защита данных 267
Криптографические функции хэширования 268
Пример стандартной односторонней функции хэширования 269
Функции хэширования, их производительность и коды НМАС 271
MIC: слабее, но быстрее 272
Асимметричная криптография: что-то новенькое 275
Примеры асимметричных шифров: Эль Гамаля, RSA и эллиптические кривые 276
Практическое применение асимметричной криптографии:
распределение ключей, аутентификация и цифровые подписи 278
Резюме 281
Глава 13. Ворота крепости: аутентификация пользователей 282
RADIUS 282
Модель ААА 282
Обзор протокола RADIUS 283
Особенности протокола RADIUS 283
Форматы пакетов 284
Типы пакетов 285
Инсталляция FreeRADIUS 286
Конфигурирование 287
10 л WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Учет работы пользователей 291


Уязвимости RADIUS 292
Атака на аутентификатор ответа 292
Атака на разделяемый секрет на основе атрибута Password 292
Атака на пароль пользователя 293
Атаки на аутентификатор запроса 293
Повтор ответов сервера 293
Проблемы, связанные с разделяемым секретом 293
Инструменты, относящиеся к RADIUS 293
802.1 х: на страже беспроводной крепости 294
Основы EAP-TLS 295
Формат пакета 296
Создание сертификатов 296
Интеграция с FreeRADIUS 297
Претенденты 299
Пример конфигурирования точки доступа Orinoco AP-2000 304
Служба каталогов LDAP 306
Обзор 306
Установка OpenLDAP 308
Конфигурирование OpenLDAP 309
Тестирование LDAP 31 3
Заполнение базы данных LDAP 314
Централизованная аутентификация с помощью LDAP 316
LDAP и мобильные пользователи 322
Инструменты, относящиеся к LDAP 322
NoCat: альтернативный метод аутентификации беспроводных пользователей 325
1. Перенаправление 326
2. Обратное соединение 326
3. Пропуск 326
Установка и конфигурирование шлюза NoCat 327
Установка и конфигурирование сервера аутентификации 327
Резюме 330

Глава 14. Защищаем эфир: развертывание беспроводных VPN


на верхних уровнях стека протоколов 331
Зачем вам может понадобиться VPN 333
Обзор топологий VPN с точки зрения беспроводной связи 333
Топология сеть-сеть 333
Топология хост-сеть 334
Топология хост-хост 335
СОДЕРЖАНИЕ 11

Топология типа звезда 336


Топология типа сетка 337
Распространенные туннельные протоколы и VPN 338
Протокол IPSec 338
Протокол РРТР 338
Протокол GRE 339
Протокол L2TP 339
Альтернативные реализации VPN 339
Протокол cIPe 339
Пакет OpenVPN 340
Пакет VTun 340
Обзор протокола IPSec 340
Параметры безопасности 341
Протокол АН 342
Протокол ESP 343
Сжатие IP 344
Протокол обмена и управления ключами в IPSec 344
Протокол IKE 344
Идеальная секретность перенаправления 346
Обнаружение неработающего хоста 346
IPSec и перемещающиеся клиенты 346
Оппортунистическое шифрование 347
Развертывание недорогой VPN с помощью пакета FreeS/WAN 347
Сборка FreeS/WAN 347
Конфигурирование FreeS/WAN 351
Настройка топологии VPN сеть-сеть 356
Настройка топологии VPN хост-сеть 357
Настройка клиента в ОС Windows 2000 358
Конфигурирование IPSec-клиента в ОС Windows 2000 363
Резюме 371

Глава 15. Контрразведка: системы обнаружения вторжения


в беспроводные сети 372
Классификация подозрительных событий в беспроводной сети 373
1. События на физическом уровне 373
2. События, связанные с административными или управляющими фреймами 374
3. События, связанные с фреймами протоколов 8О2.1х/ЕАР 374
4. События, связанные с протоколом WEP 375
5. События, связанные с общими проблемами связи 375
6. Прочие события 375
Примеры и анализ типичных сигнатур атак на беспроводные сети 376
12 л Wl-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Включить радары! Развертывание системы IDS в вашей беспроводной сети ... 381
Коммерческие системы IDS для беспроводных сетей 381
Настройка и конфигурирование IDS для беспроводных сетей
с открытыми исходными текстами 382
Несколько рекомендаций по конструированию самодельного сенсора
для беспроводной IDS 385
Резюме 389

Приложение А
Таблица преобразования ватт в децибелы 390
Приложение В
Беспроводное оборудование стандарта 802.1 1 393
Приложение С
Диаграммы направленности антенн 398
Приложение D
Страницы руководства для некоторых утилит 403
Приложение Е
Ослабление сигнала, вызванное различными препятствиями 424
Приложение F
Пометки на стенах 425
Приложение G
Ф о р м а отчета о результатах тестирования возможности
проникновения в беспроводную сеть 427
Приложение Н
Установленные по умолчанию SSID для некоторых продуктов 802.1 1 ....438
Глоссарий 441
Предметный указатель 452
Благодарности
Авторы выражают признательность:
о всем пакетам данных, которые циркулируют в эфире;
о своим семьям, друзьям и друг другу;
о сообществу разработчиков открытых программных средств, организации GNU, а так-
же всем взломщикам беспроводных сетей за предоставленные информацию и инст-
рументальные программы;
о всем, кто принимал участие в этом проекте и тем самым способствовал его реализации.

Об авторах
Авторы на протяжении многих лет активно работают в области информационных техно-
логий и занимаются тестированием безопасности в интересах ведущих производителей
беспроводного оборудования.
Андрей Владимиров возглавляет отдел беспроводных технологий в компании Arhont
Ltd. - одной из ведущих консалтинговых фирм по информационной безопасности в Вели-
кобритании. Он одним из первых получил престижный сертификат CWNA (сертифициро-
ванный администратор беспроводных сетей).
Константин Гйвриленко является одним из учредителей компании Arhont Ltd. Он зани-
мается информационными технологиями более 12 лет и имеет опыт в области безопасно-
сти беспроводных сетей, организации межсетевых экранов, криптографии, построения
виртуальных частных сетей (VPN) и систем обнаружения вторжений (IDS).
Андрей Михайловский более десяти лет занимается сетями и безопасностью и активно
участвовал в исследованиях, выполняемых компанией Arhont Ltd.

Соглашения, принятые в книге


В книге используются следующие соглашения.
Полужирным шрифтом выделены названия элементов интерфейса.
Курсивом обозначаются новые термины.
Последовательность действий обозначена стрелочкой. Например, запись Пуск => Прог-
раммы => Стандартные означает: «откройте главное меню, выберите пункт Программы,
затем пункт Стандартные».

Таким образом в тексте помечены советы.

Этот значок обращает внимание читателя на дополнительную информацию.


Что такое Wi-Foo
и для кого написана эта книга
Существует множество официальных документов и книг, посвященных безопасности бес-
проводных сетей (хотя всего года два назад вам вряд ли удалось бы что-нибудь найти на
эту тему). Многие из них - и эта книга не исключение - так или иначе освещают стандар-
ты семейства 802.11. В большинстве изданий рассматриваются средства безопасности,
встроенные в протоколы, описываемые этими стандартами, объясняется, в каком направ-
лении предполагается развивать стандарты, перечисляются (а иногда и детально описыва-
ются) известные уязвимости сетей на базе стандартов 802.11 и предлагаются меры, кото-
рые системный или сетевой администратор может предпринять для снижения возможного
ущерба в случае, если кто-то ими воспользуется. Однако ни в одной книге (кроме этой) не
говорится о том, как хакер мог бы осуществить успешную атаку на беспроводную сеть и
как администратор может обнаружить такую атаку и противостоять ей.
Нам кажется, что, помимо всего прочего, рынку необходим источник информации по
вопросам обнаружения несанкционированных проникновений в беспроводные сети. Он
должен основываться на опыте реального взлома и тестирования сетей, которым обладают
многие хакеры и лишь немногие специалисты по информационной безопасности. В компа-
нии Arhont мы почти ежедневно занимаемся проверкой устойчивости беспроводных сетей
к взлому и надеемся, что наш опыт поможет вам оценить, насколько безопасна ваша сеть,
и понять, как можно повысить ее защищенность.
Если вы любопытны от природы и располагаете лишь картой PCMCIA и программой
Netstumbler, то смеем надеяться, что из этой книги вы узнаете почти все о реальной безо-
пасности беспроводных сетей и поймете, выражаясь словами одного из главных героев
фильма «Матрица», «насколько глубока кроличья нора». Вы получите представление о том,
что можно сделать с беспроводной сетью с точки зрения безопасности, а чего нельзя; что
считается законным, а что - противоправным. Во второй части, касающейся защиты, вы
увидите, что, несмотря на все слабости системы безопасности беспроводных сетей, взлом-
щика можно проследить и схватить за руку. В то же время мы хотели бы продемонстриро-
вать, что защита беспроводной сети может быть столь же увлекательным занятием, как и
атака на нее, поэтому не исключено, что вы станете экспертом по безопасности таких се-
тей и даже займетесь этим профессионально. Если вы уже принимаете участие в каком-то
ВВЕДЕНИЕ 15

проекте, связанном с беспроводными сетями, то сможете привлечь внимание коллег к воп-


росам безопасности, просветить их на этот счет и убедить в том, что «открытый и бесплат-
ный» вовсе не означает «изученный и взломанный». Если вы организовали собственную
домашнюю локальную сеть, то будьте уверены, что, прочитав эту книгу, вы сможете серь-
езно затруднить несанкционированный доступ в нее.
Если вы работаете сетевым или системным администратором, то правильно проведен-
ное тестирование защищенности беспроводной сети - это не только единственный способ
узнать, насколько она уязвима для проникновения снаружи или изнутри, но и возможность
убедить руководство в необходимости вложить деньги в приобретение дополнительных
охранных средств, в обучение и оплату услуг консультантов. Не уделять внимания безо-
пасности сети - значит, напрашиваться на неприятности. Если же с самого начала проек-
тировать сеть с учетом безопасности, то можно сэкономить время, силы и гарантировать
себя от увольнения. Если руководство компании не осознает всю серьезность угроз, то вы
не сможете ни самостоятельно реализовать защиту беспроводной сети, как хотели бы, ни
воспользоваться опытом сторонних аудиторов и консультантов, которых приглашают для
тестирования, отладки и повышения безопасности сети. Если вы захотите (или вас заста-
вят) положиться в решении проблем безопасности на собственные силы, надеемся, что
раздел этой книги, посвященный защите, поможет в этом. Если вы владеете сетью или ком-
панией, то даже сможете сэкономить кучу денег (не забывайте о программах с открытым
исходным текстом).
Если вы работаете консультантом в области безопасности беспроводных сетей, но весь
ваш предыдущий опыт относится к проводным сетям, то, возможно, информация, имеющая-
ся в Internet, покажется вам не слишком структурированной, а практические рекоменда-
ции, приводимые в доступной литературе, - недостаточно детальными (не описан порядок
вызова различных программ и конфигурационные файлы). Эта книга заполнит такого рода
пробелы.
В настоящее время самым престижным и обязательным в области безопасности беспро-
водных сетей является сертификат Certified Wireless Security Professional (CWSP - сертифи-
цированный специалист по безопасности беспроводных сетей - см. раздел Certifications
на сайте http://www.cwne.com). Можно быть уверенным, что обладатель этого сертифика-
та понимает суть проблем, возникающих при обеспечении безопасности беспроводных се-
тей, и имеет практические навыки в защите реальных сетей. Поскольку сертификация CWSP
не зависит от конкретного производителя, то ясно, что руководство не может включать
глубокое изучение процедур установки, конфигурирования, отладки и эксплуатации кон-
кретных программных продуктов. Поэтому настоящая книга может оказаться весьма по-
лезной при подготовке к экзамену на получение сертификата CWSP и помочь читателю осво-
ить изучаемые вопросы на уровне «как сделать». На самом деле структура данной книги
(задуманной за полгода до выхода официального руководства по подготовке к экзамену
CWSP) аналогична структуре этого руководства: за описанием методов атаки следуют гла-
вы, посвященные противодействию взлому. Но на этом сходство и заканчивается.
Наконец, если вы взломщик и мечтаете проникать в чужие сети, чтобы продемонстри-
ровать свою «крутизну», то мы полагаем, что изложенный в этой книге материал поможет
вам отточить свое хакерское мастерство - примерно так же, как этому способствуют сайты
Securityfocus или Packetstorm. Впрочем, ни эти сайты, ни книга не предназначены для за-
щиты от ваших близких (тех трех категорий людей, которые мы перечислили в разделе
«Благодарности»). Мы верим в свободный обмен информацией (например, в формулировке
16 А WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

печально известного документа RFPolicy, см. http://www.wiretrip.net/rfp/policy.html).


Как вы собираетесь использовать эту информацию - дело ваше, и возможные столкно-
вения с законом - это ваши, а не наши проблемы. Распространять литературу по бое-
вым искусствам не запрещают на том основании, что уличный хулиган может приме-
нить их против своей жертвы, и тот же принцип применим и к информационным
«боевым искусствам» (это одна из причин для выбора названия данной книги). Поду-
майте сами, часто ли на вас нападает обладатель (честно заработанного) черного по-
яса на улице или в баре, если вы не давали никакого повода. Настоящие мастера бое-
вых искусств не начинают драку первыми, а настоящие эксперты по информационной
безопасности не взламывают сайты и не пытаются получить бесплатный «толстый ка-
нал», чтобы скачать побольше пиратских файлов. Если вы действительно заинтересуе-
тесь обеспечением безопасности беспроводных сетей, то в конце концов начнете
разрабатывать программы в этой области, станете системным администратором или кон-
сультантом. И, хотя этот пример далек от беспроводного мира, поинтересуйтесь судь-
бой Кевина Митника (Kevin Mitnick) или прочитайте его недавно вышедшую книгу
«The Art of Deception» (Искусство обмана). Если вы и дальше будете считать, что все
сети - ваша собственность, то закончите жизнь без доступа к Internet за решеткой
тюремной камеры, не имея под рукой ни руководств, ни книг, ни инструментов. Мы
считаем, что у человека, который ставит получение прав суперпользователя любой
ценой ради того, чтобы похвастаться перед друзьями и потешить свое «я», выше зна-
ний, - извращенное мировосприятие.

Почему мы выбрали
такое странное название
Всем описанным в этой книге мы занимались прежде всего ради удовольствия, а уже потом
ради денег. Искусство ведения информационной войны в микроволновой среде доставля-
ет огромное удовольствие как атакующей, так и защищающейся стороне. В настоящее вре-
мя атакующая сторона более упорна, а потому и более эффективна; новые инструменты и
методы проведения атак появляются каждый месяц, если не каждую неделю. В то же время
большинство обследованных нами беспроводных сетей были абсолютно беззащитны.
В английском языке есть замечательный и очень полезный жаргонный термин для опи-
сания такого состояния: foo bar'ed. Красочные описания его смысла и лингвистическое
исследование слов foo и bar можно найти в Internet. He забудьте в поисках знаний заг-
лянуть на страницу http://www.ietf.org/rfc/rfc3092.txt.
Выражением foo bar можно описать состояние дел как в безопасности реальных беспро-
водных сетей (вы даже не представляете, сколько существует в мире сетей, в которых не
включены даже минимальные средства защиты), так и во многих других областях. Много
проблем связано с неправильной конфигурацией радиочастот: точки доступа используют
для передачи одни и те же или перекрывающиеся каналы, антенны размещаются не в тех
местах, неверно выбирается мощность передатчика и т.д. Понятно, что с технической точ-
ки зрения книге больше подошло бы название «802.11-Foo» (не каждое устройство, согла-
сующееся со стандартом 802.11, сертифицировано для беспроводного доступа), но надо
признать, что Wi-Foo более благозвучно.
ВВЕДЕНИЕ 17

Что касается слова hacking в английском названии книги, то на западе есть две различ-
ные трактовки этого термина. В средствах массовой информации и в общественном мне-
нии он ассоциируется со взломом систем и сетей ради забавы, получения знаний или в про-
тивозаконных целях. Но программисты с богатым опытом и системные администраторы
склонны считать, что hacking - это копание в аппаратном и программном обеспечении
ради получения максимально полной информации, которую можно применить для реше-
ния разного рода технических задач. Хорошей иллюстрацией второй трактовки может
служить статья Ричарда Столлмена «On Hacking» (0 хакерстве), доступная по адресу
http://www.stallman.org/articles/on-hacking.html. В нашем случае речь идет о комбина-
ции первой и второй трактовок, но без гнусных целей и с добавлением описания мето-
дов защиты. Нет двух одинаковых сетей, и такая трактовка в гораздо большей степени
применима к беспроводным, нежели к проводным сетям. Встречали вы когда-нибудь про-
водную сеть, на работу которой оказывал бы влияние ливень, цветение деревьев или рас-
положение сетевых хостов в пространстве? Может ли безопасность сегмента в локальной
Ethernet-сети зависеть от набора микросхем на карте, установленной в клиентском компь-
ютере? Хотя в этой книге мы старались уделять максимальное внимание практическим
вопросам, но никакое из представленных решений или методик нельзя считать универсаль-
ным, так что с каждой конкретной сетью вам придется возиться (читай: hacking) отдельно
(это относится и к атаке, и к защите). Удачи, и да сопутствуют вам пакеты.

Как организована эта книга


Практически каждая книга по проводным или беспроводным сетям начинается с описания
семи уровней модели взаимосвязанных систем (Open Systems Interconnection - OSI). Да-
лее обычно объясняется, что такое триада CISSP (конфиденциальность, целостность, дос-
тупность), формулируются основные принципы обеспечения безопасности, после чего
следует введение в описываемую технологию. Присутствует также вводная глава по крип-
тографии, населенная персонажами по имени Боб, Алиса, Мелани и, конечно же, Ева, кото-
рая занимается исключительно кражей закрытых ключей.
Но в этой книге все по-другому. Мы предполагаем, что читатель знаком с уровнями стека
протоколов OSI и TCP/IP и понимает различие между инфраструктурными, управляемыми и
независимыми беспроводными сетями, а также ориентируется в различных стандартах се-
мейства IEEE 802. Для описания основных принципов построения сетей и деталей функцио-
нирования беспроводных сетей понадобилось бы написать две отдельные книги. И такие
книги есть (для знакомства со стандартом 802.11 мы рекомендуем «Official CWNA Study
Guide» и «802.11 Wireless Networks: The Definitive Guide», вышедшую в издательстве O'Reilly).
Однако в тех местах, где это оправдано, вы найдете обширный материал по сетевым
стандартам семейства 802.11 и функционированию сетей, часто представленный в виде
врезок «Основы».
Имеются также главы, посвященные криптографии. Хотя напрямую эта тема не связана с
беспроводными технологиями, но знакомство с ней абсолютно необходимо для правильного
развертывания виртуальных частных сетей (VPN), аутентификации пользователей беспро-
водной сети и понимания других вопросов, описываемых в последующих главах. Мы про-
смотрели много изданий по криптографии, но не нашли ничего, написанного специально для
сетевых и системных администраторов, где рассматривались бы условия, характерные для
18 А WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

реальных сетей, с учетом физической среды доступа, располагаемой полосы пропускания,


архитектуры процессоров на сетевых хостах и т.п. Этот материал изложен в главах 11 и
12, и мы надеемся, что он окажется полезным, даже если вы никогда не сталкивались с
практической криптографией и не являетесь опытным криптографом, криптаналитиком
или криптологом.
Мы разбили книгу на две большие части: повествующие соответственно об атаке и за-
щите. Части, посвященной атаке, достаточно, если ваша единственная цель - аудит безо-
пасности беспроводной сети. Однако для понимания материала, касающегося защиты, нуж-
но четко представлять себе, кто атакует, зачем ему понадобилось вламываться в вашу сеть
и, самое главное, как это можно сделать. Поэтому мы все же рекомендуем сначала прочи-
тать часть об атаке, если только вы не собираетесь использовать эту книгу как справоч-
ник.
Эта часть начинается с довольно неформального обсуждения ситуации с безопасностью
беспроводных сетей в реальном мире, описания типов атакующих и их мотивов, намере-
ний и предпочтений в выборе целей. Далее следуют структурированные рекомендации по
выбору и конфигурированию аппаратуры и программного обеспечения, необходимых для
проведения эффективного тестирования безопасности сети. Мы старались сохранять объек-
тивность, не отдавая предпочтение конкретной группе поставщиков оборудования, и вклю-
чили много советов, как извлечь максимум из того оборудования и программ, которые у
вас уже, возможно, имеются. В конце концов, не каждый читатель может выделить ресурсы
для создания совершенного комплекта для взлома беспроводных сетей, а у любой аппара-
туры есть свои сильные и слабые стороны. В тех случаях, когда мы рекомендуем конкрет-
ный вид оборудования, у нас имеются веские причины: набор микросхем, характеристики
радиочастотного трансивера, свойства антенны, доступность исходного кода драйвера и
т.д. Обсуждение стандартных утилит для конфигурирования беспроводной сети, например
Linux Wireless Tools, построено так, чтобы уделить максимальное внимание вопросам безо-
пасности, и плавно перетекает в описание программ, предназначенных для обнаружения
несанкционированного проникновения в сеть. Как и часть, посвященная оборудованию,
этот раздел тоже структурирован, то есть все доступные инструменты сгруппированы по
функциям, а не перечислены в алфавитном или случайном порядке. Выделены следующие
группы: инструменты для обнаружения беспроводной сети, анализаторы протоколов, прог-
раммы для взлома шифров, средства для создания специальных фреймов протоколов 802.11
и различные утилиты для управления точками доступа, полезные для тестирования их
безопасности.
Во многих книгах по «тестированию безопасности сети» лишь рассказывается, какие
существуют уязвимости и какие инструменты позволяют ими воспользоваться. Мы же идем
дальше и предлагаем стратегию осмысленного планирования аудита (или атаки). Шаг за
шагом мы проводим читателя по различным сценариям атаки в зависимости от уровня за-
щищенности сети-жертвы. Мы рассматриваем варианты нетривиальных атак, в которых
используются возможные уязвимости в еще неопубликованном стандарте 802.Hi, ускорен-
ный взлом протокола WEP (Wired Equivalent Privacy), проведение атак «человек посереди-
не» (man-in-the-middle attack) на втором уровне и «отказ в обслуживании» (DoS-атак). Мы
даже делаем попытку атаковать различные протоколы верхних уровней, в том числе РРТР,
SSL и IPSec. Наконец, анализируется наихудший сценарий, когда противник может делать
со взломанной сетью все, что пожелает; мы показываем, как можно проникнуть на отдель-
ные хосты в беспроводной сети, как атаковать проводную часть сети, как перехватывать
ВВЕДЕНИЕ А 19

соединения, перенаправлять трафик и обходить экран, стоящий между проводной и бес-


проводной частями сети. В главах, посвященных атаке, демонстрируется реальная угроза,
возникающая в результате взлома беспроводной сети, и подчеркивается мысль, красной
нитью проходящая через всю книгу: аудит безопасности беспроводной сети отнюдь не
ограничивается обнаружением сети и взломом протокола WEP.
Точно так же повышение защищенности сети - это нечто большее, чем установка про-
токола WEP, фильтрация МАС-адресов и даже реализация текущего стандарта 802.Hi.
Последнее утверждение многие могут воспринять как богохульство, но мы придержива-
емся именно такого мнения. В части, посвященной атаке, показано, что стандарт 802.Hi
не лишен недостатков и в некоторых случаях не может быть реализован в полном объе-
ме по разным административным и финансовым причинам. Кроме того, мы полагаем, что
любая деятельность по обеспечению безопасности сети - это многоэтапный процесс,
который не может основываться только на каком-то одном механизме, сколь бы надеж-
ным он ни был. Поэтому главная задача части о защите - ознакомить читателя с имею-
щимися альтернативами. Разумеется, мы высоко ценим ту огромную работу, которую
проделала группа разработчиков стандарта i, стремясь устранить угрозы, которым под-
вержены все беспроводные сети, построенные на основе предыдущих версий стандарта
802.11. И все же мы потратим время на описание защиты беспроводных сетей на более
высоких уровнях стека протоколов. К числу такого рода методик относится применение
реализаций протокола IPSec с взаимной аутентификацией, применение способов аутен-
тификации, отличных от описываемых в стандартах 802.1х, правильное проектирование
сети, использование протоколов SSL/TLS и переадресация портов в протоколе ssh. Зак-
лючительная глава этой книги посвящена последней (но, пожалуй, важнейшей) линии
обороны беспроводных сетей, а именно специально разработанным для них средствам
обнаружения вторжений. Здесь показано, что атаку на беспроводные сети не так уж
трудно обнаружить, как думают взломщики. Тут же даются советы по самостоятельной
разработке и развертыванию систем IDS (Intrusion Detection System - система распозна-
вания вторжений) и сенсоров для них. Приводится также перечень хорошо известных
коммерческих систем IDS для беспроводных сетей.
Вся эта книга - лишь поверхностный обзор проблем безопасности беспроводных се-
тей, но мы надеемся, что она будет полезна как руководство и справочник по атаке и
защите. Мы надеемся, что она будет способствовать уменьшению числа небезопасных
беспроводных сетей, о которых сообщает наша копия Kismet (программа, реализующая
обнаружение беспроводной сети, анализ протоколов и систему IDS), а также появлению
новых интересных инструментов и методик, способствующих устареванию изложенного
в книге материала.
БЕЗОПАСНОСТЬ
БЕСПРОВОДНЫХ СЕТЕЙ
В РЕАЛЬНОМ МИРЕ

Для решения любого вопроса необходимо ап-


риорное знание.
Ду My (Du Mu)

Если вы можете определить реальные условия,


то знаете, кто одержит победу.
Мей Яочжень (Мег Yaochen)

В этой вводной главе речь пойдет не об основах общей теории защиты информации и не о
беспроводных сетях вообще, а о том, на что «кабинетные эксперты» обычно не обращают
внимания: о состоянии безопасности беспроводных сетей в реальном мире. Но сначала
надо сказать о том, почему нас интересуют главным образом сети, построенные на базе
стандартов семейства 802.11, а не другие системы радиосвязи с коммутацией пакетов. На
рис. 1.1 показано, как выглядят беспроводные сети в современном мире, причем сети на
базе стандартов 802.11 находятся посередине.
Как видите, мы предпочитаем термин «беспроводная сеть 802.11», а не «локальная сеть
802.11». Эта технология размывает границу между локальной и глобальной связностью:
двухточечные каналы стандарта 802.11b могут простираться на 80 км и по сути дела пре-
вращают сеть в глобальную, если применяются в качестве «последней мили» Internet сер-
вис-провайдерами (IS?) или используются для организации каналов связи между удален-
ными офисами. Поэтому мы считаем, что говорить о технологии 802.11 более правильно,
ведь подходы к построению и обеспечению безопасности локальных и глобальных сетей
всегда были и будут различными.

Почему нас интересует главным образом


безопасность в сетях 802.11
Большая зона покрытия сетей на базе стандартов 802.11 - это одна из основных причин воз-
никновения проблем с обеспечением безопасности, поскольку атакующий может находиться
ПОЧЕМУ НАС ИНТЕРЕСУЕТ ГЛАВНЫМ ОБРАЗОМ БЕЗОПАСНОСТЬ В СЕТЯХ 802.11 21

Рис. I. I. Современные беспроводные сети

там, где его никто не ждет, на значительном удалении от места физического развертывания
сети. Другая причина - широкое распространение таких сетей: к 2006 году число аппаратных
устройств с поддержкой стандарта 802.11 по оценкам превысит 40 млн (рис. 1.2), а цены
на них продолжают падать. После выхода на рынок стандарта 802.Ид цена на многие пла-
ты с поддержкой 802.11b, предназначенные для клиентских компьютеров, упала до уровня
карт 100BaseT Ethernet. Разумеется, быстродействие существенно различается (5-7 Мбит/с
(Mbps - megabits per second) для 802.11b против 100 Мбит/с для быстрого Ethernet), но не
для каждой сети необходимо очень высокое быстродействие, а во многих случаях развер-
тывание беспроводной сети оказывается более предпочтительным. В частности, так обсто-
ит дело со старинными зданиями в Европе, которые защищены законом об историческом
наследии. В таких домах запрещено пробивать стены для прокладки кабелей. Другой при-
мер - офисы, расположенные по обе стороны оживленной улицы, шоссе или в разных кон-
цах комплекса офисных зданий. Наконец, организация «последней мили» на базе беспро-
водной сети может служить заменой кабельному или xDSL-каналу, и в таких случаях низкая
пропускная способность вряд ли окажется узким местом, если принять во внимание харак-
теристики альтернативных технологий.
Сети 802.11 есть везде, их легко обнаружить и, как станет видно из дальнейшего, к ним
нетрудно подключиться. Даже если сеть защищена протоколом WEP (который по сию пору
остается наиболее распространенным средством обеспечения безопасности в таких сетях),
его уязвимости опубликованы и известны практически всем, кто проявляет минимальный
интерес к беспроводным сетям. Напротив, другие беспроводные сети с коммутацией паке-
тов распространены далеко не так широко, их слабые места не так хорошо известны и
22 БЕЗОПАСНОСТЬ БЕСПРОВОДНЫХ СЕТЕЙ В РЕАЛЬНОМ МИРЕ

2001 2002 2003 2004 2005 2006


Источник: In-Stat/MDR
Рис. 1.2. Рост рынка беспроводных устройств на базе стандартов 802.11
«разрекламированы», а для их выявления зачастую необходимо сложное и дорогое обору-
дование, отсутствующее в продаже. Что же касается взломщиков сетей 802.11, то они обыч-
но создают собственные беспроводные локальные сети и используют имеющееся оборудо-
вание как для эксплуатации своей сети, так и для взлома чужих.
Атаки на мобильные телефоны с поддержкой GSM и GPRS обычно сводятся к «клониро-
ванию» устройства, а это выходит за рамки темы взлома сетей, которой посвящена насто-
ящая книга. Ситуация, с взломом персональной сети (PAN), с точки зрения консультанта по
сетевой безопасности, значительно интереснее.
Для атаки на персональную сеть с инфракрасными портами необходимо, чтобы взлом-
щик оказался в нужном месте в нужное время, он должен находиться недалеко от атаку-
емого устройства в 30-градусном секторе с вершиной в инфракрасном порту. Поскольку
мощность инфракрасного излучения не превышает 2 мВт, то сигнал распространяется
всего на 2 м. Обойти ограничение 30°/2 мВт можно, если инфракрасная точка доступа
(например, Compex iRE201) размещена в офисе или в конференц-зале. В таком случае
взломщику для того, чтобы перехватить трафик и присоединиться к инфракрасной пер-
сональной сети, достаточно находиться в одном помещении с точкой доступа. В персо-
нальной сети на базе технологии IrDA (Infrared Data Association) не предусмотрена безо-
пасность на уровне 2, и при отсутствии шифрования и аутентификации на более высоких
уровнях стека протоколов такая сеть открыта для любого желающего. Клиенты Windows
2000 и Windows XP автоматически ассоциируются с другими IrDA-хостами, а в предлага-
емом для Linux проекте стека протоколов для IrDa (http://irda.sourceforge.net/) имеется
средство для обнаружения удаленного IrDA-хоста (irattach -s), а также утилита irdadump,
аналогичная tcpdump. Программа irdaping могла вызвать зависание машин под управле-
нием ОС Windows 2000 до выхода пакета обновлений Service Pack 3 (см. статью в Bugtraq
по адресу http://www.securityfocus.eom/archive/l/209385/2003-03-ll/2003-03-17/2).
Если вы хотите получить дамп фреймов протокола уровня 2 стека IrDA в системе Windows
2000, то к вашим услугам отладчик rC0MM2k (версия для стека IrDA в Linux находится по
адресу http://www.stud.uni-hannover.de/~kiszka/IrC0MM2k/English). Но, какими бы уяз-
вимыми ни были инфракрасные сети, их ограниченное применение и небольшая протя-
женность делают извлечение данных из светового луча гораздо менее привлекательным,
чем из радиоволн.
ИЗОБИЛИЕ ОТКРЫТЫХ СЕТЕЙ 802.11 ВОКРУГ НАС А 23

Поэтому обнаружение сетей, построенных по технологии Bluetooth, станет гораздо бо-


лее популярным, нежели поиск инфракрасных соединений. Уже сейчас можно скачать и
пользоваться программой обнаружения сетей Bluetooth Redfang от компании @Stake и
графическим интерфейсом к ней (Bluesniff, Shmoo Group). Нет сомнений, что скоро появят-
ся и другие инструменты.
Рост числа попыток взлома сетей Bluetooth ограничивают три фактора. Первый - недо-
статочная распространенность самой технологии, но эта ситуация в ближайшие несколько
лет изменится. Второй - ограниченность (по сравнению с локальными сетями 802.11) зоны
покрытия. Но устройства с поддержкой стандарта Class I Bluetooth (мощность на выходе
передатчика до 100 мВт), например ноутбуки и точки доступа, могут покрывать зону радиу-
сом 100 м или даже больше при наличии антенны с большим коэффициентом усиления. Де-
факто мы имеем в этом случае беспроводную локальную сеть, которая может стать мишенью
для удаленного взлома. Третий фактор - это механизмы защиты персональных сетей Bluetooth
от подслушивания и неавторизованного подключения. До сих пор неизвестно об успешных
атаках на потоковый шифр Е0, защищающий данные в таких сетях. Но лишь время покажет,
подтвердит ли этот неразглашаемый алгоритм шифрования предположение Керчкофа и не
повторится ли знаменитая история с раскрытием структуры алгоритма RC4 в списке рассылки
Cypherpunks (если этот пример вам непонятен, обратитесь к главе 11).
Уже имеются теоретические замечания о возможных слабых местах в механизме защи-
ты Bluetooth (см. http://www.tcs.hut.fi/~helger/crypto/link/practice/bluetooth.html). Кро-
ме того, даже самый лучший механизм защиты бесполезен, если остается нереализован-
ным, а в Bluetooth-устройствах обычно выставляется первый (низший) из трех возможных
уровней безопасности, и PIN-код защиты сохраняет принимаемое по умолчанию значение
0 0 0 0 . Нередко в качестве PIN-кода используют год рождения или другое осмысленное (а
потому легко угадываемое) четырехзначное число. Это удобно, но одновременно сильно
облегчает задачу взломщика. По нашим наблюдениям, примерно в половине всех Bluetooth-
устройств выставленный по умолчанию PIN-код не был изменен вовсе. Есть также устрой-
ства, в которых прошитый на заводе PIN-код вообще нельзя изменить, тогда взломщику
нужно лишь найти опубликованный список таких PIN-кодов. Хотя это и открывает перед
взломщиком заманчивые возможности, но надо еще поискать человека, который отправля-
ет с Bluetooth-устройства на улице что-нибудь, кроме шаловливых сообщений. В то же
время вторжения в сети 802.11 происходят ежедневно, если не ежечасно, что возвращает
нас к главной теме: почему и - главное - как это происходит.

Изобилие открытых сетей 802.11 вокруг нас


Выше уже отмечалось, что в большинстве случаев взломщику не нужно ничего делать,
чтобы получить желаемое. Сейф, полный ценностей, распахнут. На соревнованиях, орга-
низованных в рамках конференции Defcon 2002, выяснилось, что из 580 точек доступа,
обнаруженных участниками, лишь в 29,8% был включен протокол WEP. В 19,3% случаев
значения ESSID остались умалчиваемыми, а в 18,6% - ни WEP не был включен, ни ESSID не
был изменен. Если вы полагаете, что с тех пор что-то изменились, то ошибаетесь. Можно
говорить лишь об изменениях к худшему, поскольку аналогичное соревнование на Defcon
2003 показало, что лишь 27% сетей в Лас-Вегасе защищены протоколом WEP. Поскольку
одна из команд отправилась на разведку в Лос-Анджелес, то приведенное число в какой-то
мере отражает и статистику для этого города.
24 А БЕЗОПАСНОСТЬ БЕСПРОВОДНЫХ СЕТЕЙ В РЕАЛЬНОМ МИРЕ

Результаты, полученные на Defcon, были подтверждены одним из авторов, отправив-


шимся на прогулку по Лас-Вегасу по собственной инициативе.
Может быть, по другую сторону Атлантики дело обстоит лучше? Отнюдь. По нашим
оценкам, лишь около 30% точек доступа в Великобритании должны были работать с вклю-
ченным протоколом WEP. Чтобы проверить это предположение, один из авторов отправил-
ся на экскурсию по Лондону в знаменитом двухэтажном автобусе с открытым верхом, во-
оружившись ноутбуком с установленной ОС Debian Linux, программой Kismet, картой Cisco
Aironet LMC350 и всенаправленной антенной мощностью 12 dBm. Во время двухчасовой
поездки (как раз на столько хватало батарей) было обнаружено 364 беспроводных сети, из
них в 118 был включен протокол WEP, в 76 значение ESSID было оставлено без изменения
или совпадали с названием либо адресом компании. И, что еще хуже, в некоторых сетях
были видимые открытые IP-адреса беспроводных хостов, которые можно было пропинго-
вать из Internet. Если вы работаете администратором сети в центре Лондона и сейчас чи-
таете данную книгу, примите это к сведению. Разумеется, в процессе сбора информации
трафик не протоколировался, чтобы избежать осложнений с законом. Это был чистый эк-
сперимент по обнаружению сетей в поездке. Неудивительно, что прогулка пешком по цен-
тру Лондона с карманным компьютером Sharp Zaurus SL-5500, картой D-Link DCF-650W CF с
поддержкой протокола 802.11b (на удивление большая антенна, пусть даже она закрывала
доступ к гнезду для стилоса) и программой Kismet продемонстрировала ту же самую ста-
тистику. Аналогичный уровень незащищенности был обнаружен в Бристоле, Бирмингеме,
Плимуте, Кентербери, Суонси и Кардиффе.
Если пересечь Ла-Манш, картина не изменится. Один из авторов проехал из Варшавы в
Лондон с таким же КПК Zaurus/D-Link CF/Kismet и выявил такое же соотношение сетей 802.11
с включенным и выключенным протоколом WEP. Нашлись даже очень мощные незашифро-
ванные двухточечные каналы, пересекающие трассы национального значения посреди пус-
тынной местности. Другой автор исследовал безопасность беспроводных сетей 802.11 в Риге.
Как ни странно, их число оказалось столь велико, что было невозможно использовать сред-
нюю полосу ISM (The Industrial Scientific and Medical - для промышленных, научных и меди-
цинских целей; 2,4-2,45 ГГц), так что многие сети сместились в полосу UNII (Unlicensed
National Information Infrastructure - нелицензируемый диапазон для национальной инфор-
мационной инфраструктуры; 5,15-5,35 и 5,725-5,825 ГГц) и даже заняли полосы в диапазоне
примерно 24 ГГц. Обнаружилось много устаревших сетей Breeznet и 802.11 FHSS. Такой бум
беспроводной связи в Риге можно объяснить тем, что по старым зашумленным телефонным
линиям, оставшимся в наследство от Советского Союза, было невозможно передавать xDSL-
трафик без заметной потери данных и многочисленных повторных передач. И все же, не-
смотря на популярность сетей 802.11, почти во всех протокол WEP был выключен.
Если вы думаете, что по большей части эти незащищенные беспроводные сети были
домашними точками доступа, сетями, принадлежащими сообществу энтузиастов, или пуб-
личными хот-спотами, то вы ошибаетесь. Многие из обнаруженных нами открытых сетей
принадлежали правительственным организациям (в том числе иностранным) и крупным
корпорациям (в том числе транснациональным). Более того, некоторые из этих корпора-
ций были крупными компаниями в области информационных технологий или занимались
консалтингом в той же сфере. Просто стыд и позор!
Мы даже не задаемся вопросом о том, в скольких из этих сетей были реализованы ка-
кие-либо меры безопасности сверх протокола WEP (легко взламываемого) и фильтрации
МАС-адресов. Скорее всего, их доля не превышает и 10%. Если учесть, что и протокол WEP,
ТАК ЛИ БЕЗОБЛАЧНО БУДУЩЕЕ БЕЗОПАСНОСТИ СТАНДАРТА 802.11, КАК КАЖЕТСЯ 25

и фильтрацию МАС-адресов нетрудно обойти, имея чуточку терпения, то неудивительно,


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

Так ли безоблачно будущее безопасности


стандарта 8 0 2 . 1 1 , как кажется
Помогут ли новые стандарты в семействе 802.11 исправить ситуацию? Время покажет. Пока
мы писали эту книгу, многие компании стали выпускать устройства на базе стандарта
802.llg, хотя он еще не был официально утвержден (на рис. 1.3 представлен график рабо-
ты над этим стандартом). Многие из этих устройств рекламировались как «супербезопас-
ные благодаря новому стандарту». На самом деле стандарт 802.llg не имеет ничего обще-
го с безопасностью. Вообще говоря, он описывает реализацию упомянутого в стандарте
802.11а метода модуляции OFDM (ортогональное мультиплексирование с разделением по
частоте) на физическом уровне для средней полосы ISM, обеспечивающую специфициро-
ванную в 802.11а скорость передачи (54 Мб/с - максимум, определенный в стандарте). Тем
самым достигается высокая скорость соединения и одновременно удовлетворяются требо-
вания стандарта 802.11b или даже совместимость с описанным в исходном стандарте
802.11 методом DSSS (direct sequence spread spectrum). Поэтому маркетинговые попытки
связать стандарт 802.llg с безопасностью - откровенный вымысел.
С другой стороны, стандарт 802.Hi (над которым на момент написания книги еще ве-
лась работа) определяет новый механизм обеспечения безопасности, призванный заме-
нить протокол WEP и, по уверениям разработчиков, заметно повышающий защищен-
ность беспроводных сетей. Предполагалось, что стандарты 802.llg и 802.Hi выйдут в
26 А БЕЗОПАСНОСТЬ БЕСПРОВОДНЫХ СЕТЕЙ В РЕАЛЬНОМ МИРЕ

свет одновременно, но мы живем не в идеальном мире. В версии 1 сертификата организа-


ции Wireless Protected Access (WPA) WiFi Alliance предусмотрены многие из планируемых в
стандарте 802.Hi возможностей, но не все имеющиеся в продаже устройства с поддерж-
кой 802.Ид прошли сертификацию WPA. В настоящее время развернуто много сетей, соот-
ветствующих стандарту 802.Ид, в которых по-прежнему работают устаревшие небезопас-
ные версии WEP. Нам приходилось встречать локальные сети 802.Ид, в которых беззаботные
администраторы не включали никаких средств шифрования данных. Детальное описание
стандарта 802.Hi выходит за рамки вводной главы, а особо нетерпеливых читателей мы
отсылаем к главе 10.
Здесь заслуживает упоминания тот факт, что неизбежны трудности, связанные с заме-
ной беспроводного оборудования, обратной совместимостью, обучением персонала и сни-
жением цен на устаревшее оборудование (сопровождаемое повышением цен на новые
продукты с поддержкой стандартов 802.Ид и 802.Hi). Все это означает, что старый уязви-
мый протокол WEP еще некоторое время никуда не денется. Так будет, даже если стандарт
802.Hi прорвется на рынок и окажется невзламываемым (хотя таких механизмов суще-
ствует очень мало, если они вообще есть). Как и в случае с обеспечением безопасности
Bluetooth, всегда найдутся пользователи и даже системные администраторы, которые за-
будут включить средства защиты, предусмотренные в 802.Hi, либо зададут принимаемый
по умолчанию или очевидный ключ. Кроме того, как мы еще увидим, беспроводные локаль-
ные сети по-прежнему останутся уязвимы для DoS-атак на первый или второй уровень.
Решительный взломщик может обратить это себе на пользу, «повалив» сеть, в которой
включены механизмы защиты, в стремлении вынудить администратора отключить эти ме-
ханизмы. (Ну а как быть, если при включенной аутентификации или шифровании сеть
вообще не работает!) Таким образом, у взломщика всегда останется возможность проник-
нуть в чужую сеть, и с этим необходимо считаться.

Резюме
Несмотря на заявления маркетинговых отделов компаний, производящих беспроводное
оборудование, и утверждения некоторых «экспертов по безопасности», о том, что «все
вокруг используют протокол WEP, который пока еще предоставляет разумный уровень за-
щиты», реальная ситуация с безопасностью в стандарте 802.11 близка к катастрофической.
Тому есть много причин - как технических, так и административных. По нашему мнению,
основным источником отсутствия безопасности в беспроводных сетях, является человечес-
кий фактор и, прежде всего, недостаточный уровень образования пользователей и даже
системных администраторов. И этот источник не исчезнет сам собой даже тогда, когда
будут повсеместно приняты новые, более безопасные стандарты. Поэтому многие пробле-
мы, с которыми сталкивается индустрия беспроводных сетей, будут существовать еще дол-
гие годы.
В ОСАДЕ

Оцени собственные силы и возможности сво-


их противников.
Хо Янси (Но Yanxi)

Почему «они» развернули охоту


на беспроводные сети
В старые добрые времена доступ к Internet был привилегией немногих избранных, зато
остальные пытались получить такой доступ всеми возможными способами. Обычным ме-
тодом получения неавторизованного доступа было случайное прозванивание (wardialing),
то есть последовательный набор телефонных номеров из длинного списка с помощью та-
ких программ, как Tonelock для MS DOS или BreakMachine/Sordial для UNIX. Услышав ответ-
ный сигнал модема, программа пыталась угадать имя пользователя и пароль и войти в си-
стему. Термин wardriving (поездка на машине с целью обнаружения беспроводных сетей)
берет начало именно из тех далеких времен BBS-систем. Сейчас случайное прозванивание
уже не так эффективно, хотя не исключено, что и вам доводилось заводить легко угадывае-
мую комбинацию имени и пароля на случай, если придется удаленно администрировать
маршрутизатор через AUX-порт при отказе широкополосного канала.
В наше время, когда дешевые широкополосные соединения есть повсюду, стоит ли тра-
тить бензин и платить за парковку для того, чтобы получить доступ к сети? По-прежнему
речь идет только о доступе к Internet или же есть другие причины, заставляющие людей
покупать беспроводное оборудование, конфигурировать необходимые инструменты и вы-
бираться из дому, чтобы ходить или ездить в поисках витающих в эфире пакетов? По край-
ней мере, для случайного прозванивания нет нужды выходить из комнаты и приобретать
ноутбук или карманный компьютер, а к нему карту для беспроводной связи или даже
(в некоторых случаях) точку доступа.
28 А В ОСАДЕ

Мы можем назвать по меньшей мере шесть причин такого «иррационального» и «необъяс-


нимого» поведения потенциальных взломщиков беспроводных сетей:
1. Это интересно. Многие считают, что хакерство, связанное с копанием в програм-
мах (анализаторах протоколов и инструментах для проникновения в чужие сети)
и аппаратуре (карты PCMCIA, USB-адаптеры, разъемы, антенны, усилители), - бо-
лее интересное времяпрепровождение, чем традиционный взлом по проводным
каналам. Те же мотивы объясняют стремление заниматься хакерством вне дома:
во время поездки или попивая пиво в баре, который оказался в зоне покрытия
какой-нибудь сети.
2. При этом доступ оказывается (почти) анонимным и взломщика трудно проследить.
Если атакующий заходит со своей учетной записью, полученной от сервис-провай-
дера, то его можно засечь, выполнив команду who is и выяснив, с какого телефона
он звонил. Традиционный способ избежать поимки - пройти по цепочке «проха-
ченных» хостов, а затем выполнить команду rm -r f ed (или, если взломщик более
квалифицирован, команды s h r e d , d e f i l e , d e c i m a t e или bcwipe), когда серь-
езная атака завершена и нужно замести следы. Но у такого метода есть несколько
серьезных недостатков (с точки зрения взломщика). Ему необходима учетная за-
пись у сервис-провайдера, для доступа к которой придется ввести имя и пароль.
Нужно также иметь под рукой достаточное число хостов, для которых уже есть
«root-овый» доступ, чтобы можно было образовать цепочку; в идеале эти хосты
должны находиться в разных сетях и в разных странах. Если какой-либо из целе-
вых хостов хранит протоколы на нестираемом носителе (например, записывает на
CD-R или выводит на принтер), то взломщику грозят неприятности. Та же пробле-
ма возникает, если реализовано безопасное централизованное хранилище прото-
колов, а у взломщика нет доступа к серверу протоколов. Если на атакуемом хосте
установлена система LIDS, то возникают дополнительные сложности - внезапно
получив woot, уже никуда не прорвешься. Наконец, один из задействованных хо-
стов может оказаться ловушкой. Благодаря усилиям Лэнса Спитцнера (Lance
Spritzner) организация хостов и даже сетей-приманок стала очень распространен-
ной мерой защиты. Общий вывод таков: заметание следов - это сложный процесс,
состоящий из многих шагов, на каждом из которых может подстерегать опасность.
При взломе же беспроводной сети все обстоит по-другому. Здесь сервис-провай-
дер не участвует (если не считать жертвы), а след ведет к атакованной и скомпро-
метированной беспроводной сети, после чего буквально растворяется в воздухе.
Даже если вблизи этой сети и «застукан» человек с ноутбуком или машина с ан-
тенной, властям будет нелегко доказать вину взломщика. Если до или после атаки
взломщик изменил МАС-адрес на своей плате для беспроводного доступа и стер со
своего компьютера все программы и данные, связанные с атакой, то доказать его
вину практически невозможно. Даже если охранник подойдет к взомщику прямо в
момент проведения атаки, но тот находится вне территории компании, он может
просто отказаться разговаривать и уйти. И что тогда делать? Силой отнимать ноут-
бук у прохожего?
3. Кто-то может рассматривать нелегальный доступ к беспроводной сети как средство
защиты собственной частной жизни. Недавно принятый в Великобритании закон о
полномочиях следствия (Regulation of Investigatory Powers Bill - RIP) практически
ставит крест на тайне частной жизни в онлайновой среде, поскольку он обязывает
ПОЧЕМУ «ОНИ» РАЗВЕРНУЛИ ОХОТУ НА БЕСПРОВОДНЫЕ СЕТИ ^ 29

сервис-провайдера хранить протоколы в течение семи лет. Этот закон стал ответом
на события 11 сентября и принятый в США Патриотический акт (Patriot Act), при-
меру которого последовали и многие другие страны, введя аналогичные меры.
Хотя и не намеренно, но это подтолкнуло пользователей, помешанных на приват-
ности, рассматривать доступ в Internet через чужую беспроводную сеть как непло-
хой способ сохранить анонимность. Разумеется, при этом они нарушают приват-
ность владельцев такой сети, но людям свойственен эгоизм. Ну и потом, ведь они
же не торгуют пиратскими программами или порнографией, не рассылают спам,
не взламывают локальные или удаленные хосты, так что, на их взгляд, в таких дей-
ствиях нет ничего противозаконного. Вроде как позаимствовать чужой канал в
целях самозащиты.
4. Имеются также чисто технические причины (помимо неопределенного периметра
сети), по которым беспроводные сети очень привлекательны для взломщиков. Точка
доступа - это не коммутатор, а мультиплексор (hub) с радиотрансивером. Когда вы в
последний раз видели разделяемую проводную сеть Ethernet? Казалось бы, времена,
когда сетевой интерфейс переводили в прозрачный режим и извлекали из трафика в
локальной сети все пароли Tel.net/POP3/SMTP и свертки NTLM, канули в прошлое. Ан
нет, широкое распространение сетей 802.11 снова сделало это возможным. К тому
же взломщик, присоединившийся к плохо спроектированной сети, часто оказывает-
ся прямо в проводной сети за корпоративным межсетевым экраном и видит перед
собой в качестве возможных целей множество небезопасных и «незалатанных» сер-
висов. Беспечный администратор может вообще не позаботиться о безопасности
внутренней сети, считая что безопасность целиком и полностью определяется на-
стройками межсетевого экрана, защищающего периметр. Это типичная ошибка и
потому, обойдя экран, вы можете еще найти старые машины под управлением
Winsock Windows, необновленных демонов wu-ftpd 2.6.0, незащищенные паролями
разделяемые папки, гуляющие по проводам свертки LM и еще множество брешей в
системе безопасности. И еще одно техническое замечание - в силу высокой аноним-
ности беспроводного доступа взломщик может позволить себе неаккуратность, что-
бы быстрее добиться желаемого. Мы имеем в виду мощные, но очень «шумные»
инструменты обнаружения уязвимостей, предназначенные изначально для аудита
сетей самими системными администраторами, которым нет нужды прятаться. К чис-
лу таких программ относятся, в частности, Nessus, Satan/Saint/Sara, ISS и RETINA.
5. Взломщик может установить карту PCMCIA/PCI в комбинации с USB-адаптером и не-
легальной точкой доступа в качестве внеполосного черного хода в сеть. Тогда все
многочисленные сложные правила фильтрации, заданные на корпоративном межсе-
тевом экране, становятся бесполезными, и секретная информация начинает незамет-
но утекать. С другой стороны, непослушный пользователь может установить беспро-
водное устройство, начиная с карты PCMCIA в независимом (ad hoc) режиме и кончая
точкой доступа, так, что администратор даже и знать об этом не будет. А когда най-
дет его, будет слишком поздно. Это эволюция старой печально известной ситуации,
когда пользователь подключает модем и тем самым открывает брешь в безопасной
сети путем создания небезопасной точки для входа извне. Если прямая атака на кор-
поративный шлюз не удается, отчаявшийся хакер может попытаться найти на тер-
ритории компании небезопасные точки беспроводного доступа или непредусмот-
ренные сети и преуспеть.
30 А В ОСАДЕ

6. Всегда остается возможность случайного взлома. Если у вас есть шанс заглянуть в
электронную почту соседа и узнать, на какие сайты он ходит, вы сможете удержать-
ся от искушения? Если у соседа небезопасная беспроводная сеть, то атака с такой
целью может получиться. А если эта сеть принадлежит крупной компании и откры-
вает вход в большую проводную сеть, где могут храниться секретные данные и
иметься высокоскоростной доступ в Internet? Такой «взлом по случаю» - кошмар для
жертвы. Атакующему не надо никуда ходить, он не лимитирован зарядом батарей,
для проведения атаки в его распоряжении мощная настольная машина и, скорее все-
го, у него есть доступ к Internet, где можно найти необходимые для вторжения инст-
рументы и руководства. Кроме того, стационарный взломщик может продавать неза-
конно добытый канал друзьям и соседям, став этаким крохотным беспроводным
сервис-провайдером за счет ничего не подозревающей компании.
Мы абсолютно уверены, что для взлома беспроводных сетей имеются и другие причи-
ны. Но и перечисленных выше достаточно, чтобы заставить задуматься всякого, кто пла-
нирует организовать беспроводную сеть или обезопасить уже существующую.

Взломщики беспроводных сетей - кто они


Иметь представление о людях, которые способны атаковать вашу сеть, не менее важно, чем
знать, чем они руководствуются. Исходя из вышеописанных мотивов, можно разделить
взломщиков на три категории:
1. Любопытствующие. Они занимаются этим ради забавы и самоутверждения. Такие
взломщики обычно не представляют серьезной угрозы вашей беспроводной локаль-
ной сети и могут даже оказать услугу обществу, публично известив об обнаружен-
ных небезопасных сетях, что заставит заинтересованных лиц обратить внимание на
имеющиеся проблемы. Многие люди из этой категории могут4даже стать (или уже
стали) профессионалами в области беспроводных сетей и разработчиками открытых
инструментов. Если вы из их числа, осознайте свою ответственность и окажите ад-
министрации обнаруженных небезопасных сетей помощь в устранении недостатков.
Если вы еще только начинающий, совершенствуйте свои навыки, узнавайте о новых,
более развитых методах и инструментах обеспечения безопасности (эта книга вам
поможет). Если вы разрабатываете открытые программы, то мы ценим вашу работу
и желаем всяческих успехов. Наконец, если вы, работая администратором небезо-
пасной беспроводной сети, встретите людей, указывающих на недостатки в ее защи-
те, не бегите сразу в полицию. Настоящий взломщик никогда не стал бы говорить
вам о ваших недоработках. Вместо этого он проник бы в вашу сеть, провел из нее
атаку и замел за собой следы. Все кому не лень готовы ругать «пацанов, пишущих
мерзкие скрипты», но администратор, не понимающий основ сетевой безопасности,
представляет собой не меньшую, если не большую, угрозу и должен отвечать за втор-
жение в сеть наравне со взломщиком. Так что, если хакер-рыцарь или консультант
по безопасности указывает на уязвимость вашей сети, выслушайте его, намотайте
на ус и научитесь пользоваться теми инструментами, с помощью которых он обнару-
жил потенциальные слабые места. Можете вместо этого заказать аудит безопаснос-
ти вашей сети в местной консалтинговой фирме, она поможет устранить выявленные
КОРПОРАЦИИ, НЕБОЛЬШИЕ КОМПАНИИ И ДОМАШНИЕ ПОЛЬЗОВАТЕЛИ: ВЫБОР ЦЕЛИ ^ 31

проблемы. Разумеется, нет нужды ждать, пока кто-то другой найдет у вас бреши.
Наверное, исходя из этого вы и купили данную книгу.
2. «Охотники за каналом». Это скриптописатели беспроводного мира. К данной катего-
рии относятся спамеры, торговцы пиратскими программами и порнографией, а также
некоторые людишки, которым «нравится сеть соседа» и которые готовы воспользо-
ваться предоставленной возможностью. Обычно они ищут легких путей и их атаки
легко отразить (даже протокола WEP и фильтрации МАС-адресов может хватить, но
лучше перестраховаться). В главе 15 вы увидите, что таких взломщиков довольно лег-
ко обнаружить и выследить. Пользование чужими сетевыми ресурсами считается не-
законным во всем мире, так что прежде чем отважиться на это, взломщик должен ре-
шить, стоит ли ради бесплатного сыра идти на риск оказаться на скамье подсудимых.
Даже если похититель полосы пропускания сумеет избежать строгого наказания из-за
несовершенства законов против киберпреступлений во многих странах, он, вероятно,
потеряет оборудование и испортит свою репутацию и социальный статус.
3. Настоящие преступники, которых привлекли беспроводные технологии. Эти настрое-
ны серьезно, знают, чего хотят и чем все это может кончиться. Анонимность, фланговые
атаки на защищенные сети и доступ через внеполосный черный вход - вот чем беспро-
водные сети привлекают профессиональных взломщиков. Они хорошо знают, как втор-
гаться в чужие сети и компьютеры, знакомы с теоретической и практической радиофи-
зикой, вследствие чего их трудно поймать (представьте себе хорошо спланированную
атаку с применением остронаправленной антенны и мощного передатчика против про-
тяженной двухточечной беспроводной сети). Стандартные меры безопасности способ-
ны задержать такого противника всего на пару часов. Если безопасности сети 802.11 не
уделить должного внимания, то атака неизбежно окажется успешной. В этой книге мы
хотим снабдить системного администратора достаточной информацией для защиты сво-
ей сети от взломщиков такого типа, но творческий и планомерный подход к делу все
равно необходим. Если вам покажется, что даже после прочтения этой книги у вас недо-
статочно времени или знаний для противостояния опытному взломщику, пригласите
специалистов по безопасности беспроводных сетей, чтобы они устранили угрозы. К со-
жалению, поскольку безопасность сетей 802.11 - такая горячая тема, развелось множе-
ство «консультантов»-самоучек, вооруженных ноутбуками с Windows XP Home Edition и
программой Netstumbler (в лучшем случае дополненной каким-нибудь одним коммер-
ческим анализатором беспроводных протоколов). Их деятельность может даже нанести
вред безопасности сети, поскольку они вселяют ложное чувство уверенности, из-за чего
вы становитесь беспечны и, стало быть, более уязвимы. Мы надеемся, что материал, пред-
ставленный в этой книге, поможет системным и сетевым администратором сделать пра-
вильный выбор внешних специалистов.

Корпорации, небольшие компании


и домашние пользователи: выбор цели
Широко распространено ложное представление о том, что риску взлома (в том числе
беспроводных сетей) подвержены только крупные фирмы. Да, именно в больших кор-
порациях имеет смысл искать деньги и ценные данные. Но каждый опытный взломщик
32 А В ОСАДЕ

прежде всего заботится о том, чтобы не предстать перед законом, поэтому для начала ищет
более легкую цель для анонимного доступа. А неквалифицированный хакер ищет хоть что-
нибудь взламываемое, не заботясь о конкретной цели и не обращая внимания на то, кому
сеть принадлежит.
В крупных корпорациях обычно имеется обученный персонал и детально прописанная
стратегия обеспечения безопасности, которой неукоснительно следуют. Нет недостатка и в
специальном оборудовании. Обычно это увеличивает шансы на выяснение личности взлом-
щика. В мелких компаниях и в домашних сетях многие атаки остаются незамеченными. Под-
держивая веру в миф, СМИ обращают внимание только на вторжения в сети крупных компа-
ний, создавая впечатление, будто все остальные для преступного мира неинтересны.
У крупных корпораций могут быть обширные беспроводные сети с высокой выходной
мощностью, необходимой для охвата нескольких зданий и организации двухточечных кана-
лов между различными офисами компании в одном городе. Такие каналы можно легко обна-
ружить и подключиться к ним на большом удалении от трансивера. Корпоративные сети типа
точка-многоточка тоже могут иметь внушительную зону покрытия, в которой находится
множество мобильных компьютеров. Поэтому не так-то легко обнаружить незаконно под-
ключившийся хост в «сумятице толпы». Даже лишнюю точку доступа сразу не заметишь.
Кроме того, в большой компании выше риск, что какой-нибудь сотрудник воспользуется не-
разрешенным оборудованием (802.11 или 802.15). Да и для атак с применением методов
социальной инженерии они более уязвимы. Эти факторы уравновешивают тот объем ресур-
сов, который крупная компании может вложить в обеспечение безопасности.
В ходе аудита безопасности беспроводных сетей мы обнаружили, что в них нередко
применяются устаревшие протоколы, не принадлежащие стеку IP. Хотя корпоративные
сети обычно идут в ногу со временем, во многих других организациях (включая и пра-
вительственные) обновления производят не часто. Там до сих пор работают протоколы
DECnet и Banyan Vines (не говоря уже об IPX и AppleTalk) по каналам 802.11. Эти протоко-
лы появились, когда сети были менее разветвленны, более «дружелюбны» и в меньшей
степени открыты для широкой публики. В то же время вопросы безопасности не стояли у
разработчиков протоколов и приложений на первом месте, а взламывали сети нечасто. По
мере все более широкого распространения стека TCP/IP, обусловленного экспансией Internet,
были разработаны и протоколы безопасности, работающие поверх IP (IPSec, Secure Sockets
Layer (SSL) и др.). Этого требовала специфика большой сети общего доступа и возрастаю-
щая роль электронной коммерции. В то же время вопросам безопасности протоколов, не
входящих в стек TCP/IP, уделялось куда меньше внимания, так что для DECNet, Banyan Vines,
AppleTalk и IPX нет ничего похожего на IPSec (по крайней мере, нам об этом неизвестно).
Хотя анализатор, которым располагает взломщик, может и не суметь правильно декодиро-
вать эти протоколы (впрочем, tcpdump и Ethereal прекрасно понимают и DECNet, и Banyan
Vines), но информацию, переданную в незашифрованном виде, может прочитать любой.
Таким образом, при работе устаревших протоколов в сетях 802.11 главной (и, возможно,
единственной) линией обороны является механизм обеспечения безопасности, определен-
ный в самом этом стандарте (на втором уровне). До тех пор пока стандарт 802.Hi не будет
окончательно принят и реализован, такие сети не могут считаться безопасными. Конечно
же, существуют патентованные решения, устраняющие бреши в протоколе WEP, а также
WPA ТК1Р/802.1х (см. главу 10). Но проблемы совместимости и совместной работы могут
стать серьезным препятствием для применения подобных решений в крупных беспровод-
ных сетях, где используются старые протоколы (а заодно и устаревшее оборудование).
КОРПОРАЦИИ, НЕБОЛЬШИЕ КОМПАНИИ И ДОМАШНИЕ ПОЛЬЗОВАТЕЛИ: ВЫБОР ЦЕЛИ ^ 33

Более вероятно, что сети, в которых работает протокол DECNet или Banyan Vines, ограни-
чатся статическими 128 или 64-битовыми ключами для WEP (альтернатива - выбросить
этот VAX и начать новую жизнь). Надо отметить еще, что эти протоколы весьма избыточны
и постоянно генерируют трафик в беспроводной сети, даже тогда, когда пользователи ни-
чего не делают. А в главе 8 будет показано, что такие «болтливые» протоколы (к их числу
относятся также IPX и AppleTalk) - лучшие друзья взломщика.
Вернемся вновь к небольшим компаниям и домашним сетям. Типичное заблуждение
считать, что взломщики их не трогают, поскольку они «неинтересны» и не содержат ниче-
го ценного. На многих встречах с представителями бизнеса нам говорили: «Ваши услуги
нашей маленькой компании не нужны, поскольку мы не обрабатываем секретные данные
и не выполняем финансовых транзакций в онлайновом режиме». Позже те же люди инте-
ресовались, не могли бы мы оказать услуги по устранению последствий взлома. Причины,
по которым взломщики атакуют мелкие фирмы и домашние сети, уже указывались выше и
совершенно ясны всякому, кто работает в области информационной безопасности: аноним-
ный доступ, низкая вероятность быть пойманным, бесплатный канал и легкость проникно-
вения. Вот перечень конкретных проблем, относящихся к безопасности беспроводных се-
тей в локальной сети 802.11 малого предприятия:
о имеется единственный перегруженный работой администратор, незнакомый с бес-
проводными сетями, а зачастую вообще нет квалифицированного системного адми-
нистратора;
о используется дешевое беспроводное оборудование, не обеспечивающее в полной
мере безопасности (если речь идет не о программах с открытым исходным текстом,
то вы получаете то, за что заплатили);
о нет централизованного сервера аутентификации;
о нет системы обнаружения вторжения и централизованной системы протоколирова-
ния;
о отсутствует четко прописанная стратегия обеспечения безопасности;
о не хватает средств для того, чтобы нанять квалифицированного аудитора или кон-
сультанта по безопасности.
Многие не ожидают широкого распространения беспроводных сетей в малом бизнесе,
но это предположение неверно. Зачастую развертывание беспроводной сети позволяет
существенно сэкономить средства. Хотя клиентские платы для беспроводной связи и точ-
ки доступа пока еще стоят дороже сетевых карт Ethernet и коммутаторов, но стоимость про-
кладки кабелей, обычно слишком высока для небольшой компании. Если здание, занимае-
мое крупной фирмой, как правило, уже спроектировано и построено с проложенными кабелями
Cat 5 или даже волоконно-оптическими, то мелкие компании чаще расположены в старых
зданиях, мало приспособленных для кабельных работ. Мы выяснили, что в центре Лондона
многие мелкие и средние компании просто вынуждены строить сети 802.11, поскольку их
офисы находятся в намеренно законсервированных зданиях. Таким образом, потребность
в беспроводных сетях в сочетании с нехваткой ресурсов для их надлежащей защиты со-
здает взломщику идеальные условия для атаки на сети малых предприятий.
Стоит отметить, что в домашних сетях меры защиты, например тот же WEP, используют-
ся чаще, чем в малых и даже крупных компаниях. Объясняется это, вероятно, тем, что до-
машние пользователи проявляют большую заботу о своих собственных сетях и данных по
сравнению с безразличием и беззаботностью, свойственными многим корпоративным
34 А В ОСАДЕ

пользователям и, к несчастью, некоторым администраторам. С другой стороны, большая


часть сетей, в которых оставлен принятый по умолчанию ESSID и не включен WEP, тоже
относится в числу домашних.

Станьте мишенью:
тестирование возможности проникновения
как первая линия обороны
Трудно переоценить значимость тестирования системы на возможность проникновения в
общей структуре информационной безопасности. Очень важно взглянуть на свою сеть гла-
зами взломщика, прежде чем приступать к мероприятиям по повышению защищенности.
Отметим ряд вопросов, имеющих отношение к такому тестированию.
Прежде всего, проверяющий должен быть хорошо знаком с теоретической радиофизи-
кой и с конкретными проблемами безопасности, возникающими в этой связи (утечка и
возможность обнаружения сигнала, законы, регулирующие выходную мощность передат-
чика, и характеристики применяемого радиооборудования). Не пропускайте врезки «Ос-
новы радиофизики» в этой книге, в них есть много полезного. Безопасность на уровне 1
редко становится проблемой в проводных сетях, но в беспроводных на нее всегда следует
обращать внимание. Первым этапом процедуры тестирования системы на возможность
вторжения и аудита безопасности должен стать осмотр места развертывания беспровод-
ной сети: выявление мест, в которых может быть получен сигнал, оценка четкости сигнала
(отношение сигнал/шум) и измерение быстродействия канала в разных точках зоны по-
крытия. Необходимо также найти соседние беспроводные сети и другие возможные источ-
ники помех.
Перед процедурой осмотра места развертывания ставится четыре задачи:
1. Найти точки, в которые может физически внедриться взломщик.
2. Выявить нелегальные точки доступа и соседние сети (создающие возможности для
атаки по случаю или непреднамеренной атаки).
3. Измерить базовую интенсивность источников помех с тем, чтобы можно было впос-
ледствии обнаружить аномальный уровень, например помеху, созданную «глушил-
кой».
4. Оценить проект сети и ее конфигурацию с точки зрения безопасности.
Последний пункт особенно важен, поскольку воздух - не такая надежная среда для про-
хождения сигнала, как медь или оптическое волокно, и серьезно относящийся к безопаснос-
ти администратор легко может спутать неправильную конфигурацию сети с нарушением за-
щиты и, в частности, с DoS-атакой. Например, один хост в беспроводной сети может не суметь
обнаружить другой хост, который попал в «слепое пятно» и продолжает посылать SYN-паке-
ты. Система IDS в таком случае срабатывает и выдает предупреждение о чрезмерно интен-
сивном потоке таких пакетов! В то же время пропавший хост перестает посылать протокол
syslog-серверу. Системный администратор не на шутку взволнован, но через пять минут вос-
станавливается нормальная ситуация (мобильный пользователь вышел из слепого пятна).
Другой пример - аномальное число фрагментированных пакетов, приходящих из беспровод-
ной локальной сети. Не исключено, что это признак сканирования программой nmap или
РЕЗЮМЕ 35

hping2, которую запустил взломщик или чрезмерно любопытный пользователь. Но чаще дан-
ная проблема вызвана тем, что максимальный размер передаваемого блока (MTU) в сети
802.11 (2312 бит) заметно больше, чем в сети 802.3/Ethemet (приблизительно 1500 бит с
учетом 802.1q/ISL). Для специалиста по беспроводным сетями все это очевидно, а для адми-
нистратора, не знакомого с работой сетей 802.11, может стать источником головной боли.
Следующим после процедуры осмотра места развертывания этапом является анализ тра-
фика и присоединение к проверяемой сети. Однако успешное присоединение к беспровод-
ной сети - это вовсе не конец тестирования на возможность проникновения, как ошибоч-
но полагают многие консультанты. Наоборот, это только начало. Раз уж вы хотите
взглянуть на сеть глазами взломщика, идите до конца! Взломщик-то не останавливается,
присоединившись к сети, он собирает и пытается взломать пароли, старается получить
привилегии суперпользователя или администратора на всех уязвимых хостах, найти шлюз
в Internet и подключиться к внешним хостам. И наконец, он стремится замести свои следы.
Если в ходе тестирования не продемонстрировано, в какой мере все вышеперечисленное
возможно, то цель не достигнута. Последующие главы посвящены именно этому вопросу -
детальному описанию методов проникновения в сети 802.11 и обучению работе с инстру-
ментами, размещенными на сайте этой книги (http://www.wi-foo.com). Разумеется, все
время выходят обновленные версии этих инструментов и создаются новые утилиты. В то
же время от момента подачи заявки на написание книги до появления ее на прилавках
проходит очень много времени. Тем не менее мы хотим рассказать о последних версиях
всех программ, необходимых для аудита безопасности в сетях 802.11. По крайней мере, то,
что описано в этой книге, должно показать вам, где искать новые версии и инструменты и
для чего они предназначены. Кроме того, наш сайт будет постоянно сопровождаться, и мы
собираемся выкладывать информацию обо всех новейших разработках в области безопас-
ности беспроводных сетей, равно как и новые версии программ. Заходите почаще, и вы не
будете разочарованы!

Резюме
Есть много причин для атаки на беспроводные сети, из-за которых именно ваша сеть мо-
жет оказаться следующей в списке взломщика. Понимание мотивов противника очень важ-
но для оценки опасности, создаваемой им вашей сети, да и для восстановления ее после
нанесенного ущерба. Но каким бы ни был мотив, тестирование возможности проникнове-
ния - это единственный способ узнать, насколько уязвима сеть к различным атакам. Эту
процедуру нужно разбить на этапы, хорошо спланировать и попытаться сымитировать дей-
ствия высококвалифицированного взломщика, твердо вознамерившегося проникнуть в
вашу сеть и воспользоваться ею для своих целей.
ПОДГОТОВКА
ОБОРУДОВАНИЯ

Невооруженная армия не сможет одержать победу.


Мей Яочженъ

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


беспроводную сеть, да и просто блуждания в поисках таких сетей, предлагаемый ассорти-
мент оборудования весьма ограничен и вызывает улыбку. Создается впечатление, что для
этой цели годится только ноутбук конкретной марки с картой PCMCIA от конкретного про-
изводителя. Конечно, от аппаратуры зависит многое, но для ее выбора существуют точные
технические обоснования, о которых в этих книгах даже не упоминается. К их числу отно-
сятся чувствительность клиентской платы в децибелах, набор микросхем на этой плате, ее
эмиссия и уровень энергопотребления, время работы аккумулятора, питающего КПК или
ноутбук, совместимость с UNIX-подобными системами и многое другое. Все это надо учи-
тывать, но вообще-то для взлома беспроводной сети годится практически любая клиентс-
кая плата для беспроводной связи. Можно использовать любой переносной компьютер с
разъемом для карт PCMCIA/CF/SD. Правда, не исключено, что придется с ним немного по-
возиться, да и эффективность может быть различной. Вот именно об этом мы и хотим по-
говорить в настоящей главе.

КПК или ноутбук


Первый вопрос, который задают начинающие, задумываясь о том, какое оборудование
приобретать, - это что лучше для тестирования возможности проникновения: карман-
ный компьютер (КПК) или ноутбук. Пользуйтесь и тем, и другим, если можете себе это
позволить. Основное преимущество КПК (помимо размеров) - пониженное энергопот-
ребление, это важно при необходимости обойти большую территорию. Основной недо-
статок - ограниченность ресурсов и, прежде всего, энергонезависимой памяти. Мощность
процессора не так важна, мы же не собираемся вскрывать шифр AES. Есть и другие недостат-
ки: малое число инструментальных программ, работающих на этой платформе, отсутствие
карт Compact Flash (CF) 802.11 со стандартным разъемом для внешней антенны (нам таких
КПК ИЛИ НОУТБУК А 37

встречать не доводилось). Однако карты памяти стандартов Secure Digital (SD) и CF ста-
новится более емкими и дешевыми, разъемы можно к ним припаять, а на большинство
моделей КПК легко устанавливаются как Linux, так и BSD. Кроме того, существуют пере-
ходники CF-PCMCIA, а с помощью PCMCIA-подставки вы сможете использовать свою люби-
мую карту PCMCIA с разъемом ММСХ. Такие подставки для КПК iPAQ с местом для двух
клиентских карт и вспомогательным аккумулятором, компенсирующим повышенное
энергопотребление, просто великолепны.
Говоря об использовании КПК для тестирования возможности проникновения в беспро-
водную сеть, мы имеем в виду главным образом Compaq iPAQ и Sharp Zaurus. Существуют
анализаторы беспроводных протоколов и для других КПК. Например, Airscanner Mobile
Sniffer (платформа Windows СЕ, для личного пользования можно бесплатно скачать с сайта
http://airscanner.com/downloads/sniffer/amsniffer.exe) и PocketWarrior (Windows СЕ, лицен-
зия GPL, домашняя страница http://pocketwarrior.sourceforge.net/).
Но если вам нужно нечто большее, чем простое обнаружение сети и перехват пакетов,
то понадобится КПК, работающий под управлением UNIX, с набором специальных инстру-
ментальных программ, которые мы опишем в следующих двух главах. Sharp Zaurus постав-
ляется с предустановленной ОС Embeddix Linux, но есть и вариант OpenZaurus, который
позволяет поставить то, что вам нужно из дистрибутива Debian Linux. iPAQ по умолчанию
поставляется с ОС Windows СЕ, но любой желающий поэкспериментировать с инструмента-
рием безопасности на платформе StrongARM может установить на него такие дистрибути-
вы Linux, как Intimate, Familiar и OpenZaurus. Можно даже купить iPAQ с предустановлен-
ной ОС Familiar Linux на сайте http://www.xtops.de. В качестве графического интерфейса
для этих дистрибутивов обычно предлагается разработанная компанией Xtops система
Open Palmtop Integrated Environment (OPIE), похожая на систему Qtopia фирмы Trolltech,
которая входит в дистрибутив Embeddix для Zaurus. Еще одна графическая система для КПК
с Linux - это GPE Palmtop Environment на базе библиотеки GTK+, она работает поверх
Х-сервера. К сожалению, описание особенностей установки Linux на iPAQ выходит за
рамки книги, посвященной взлому беспроводных сетей, хотя не исключено, что в последую-
щие издания мы включим этот материал. Лучший источник информации по этому вопросу -
сайт http://www.handhelds.org/. Стоит отметить, что компания IBM выпустила эксперименталь-
ное программное обеспечение для тестирования безопасности беспроводных сетей для iPAQ с
Linux. Подробнее о нем можно прочитать по адресу http://www.research.ibm.com/gsal/wsa/.
Имеется также возможность работать под управлением ОС NetBSD, в которой есть заме-
чательный комплект инструментов BSD-airtools и программа Wnet (если она была перене-
сена с платформы OpenBSD 3.2). Правда, для ее установки нужно приложить больше сил и
умения, чем для Intimate или Familiar, но разве погоня за знаниями - не основная цель
хакера? Больше узнать об установке BSD на ваш любимый КПК можно в списке рассылки,
посвященном NetBSD, на странице http:// handhelds.org/hypermail/netbsd/. Если вы реши-
те остаться на платформе WinCE, то лучше всего приобрести программу AirMagnet, Sniffer
Wireless (версия для КПК) или PDAlert. Они недешевы, но чего еще можно ожидать от ком-
мерческих программ?
Хотя КПК под управлением Linux или BSD можно превратить в весьма мощный инстру-
мент для аудита безопасности беспроводных сетей, но неудобство пользования маленькой
клавиатурой, стоимость приобретения полного комплекта аппаратуры (дополнительная
энергонезависимая память, подставка для PCMCIA, карта CF 802.11, GPS-устройство для КПК)
и утомительная процедура установки Linux/BSD (в тех случаях, когда система не установлена
38 А ПОДГОТОВКА ОБОРУДОВАНИЯ

заранее) - все это означает, что всем, кроме самых решительных хакеров, имеет смысл
воздержаться от такого решения. Дополнительная сложность связана с поиском карт 802.11а
и 802.llg для КПК, которые почти никто не выпускает. Впрочем, компания Berkeley Varitronics
Systems (http://www.bvsystems.com/) продает комплекты YellowJacket и YellowJacket Plus
для iPAQ, спроектированные специально для исследования беспроводных сетей 802.11а.
Вообще, данная компания выпускает множество разнообразных инструментов для этой
цели, но цена кусается.
Мы выработали для себя такое компромиссное решения вопроса «КПК или ноутбук?»:
пользуйтесь КПК с программой типа Kismet или Wellenreiter и каким-либо инструментом
для мониторинга уровня сигнала (например, wavemon или Wireless Monitor) для осмотра
места развертывания и поиска нелегальных точек доступа, а для полномасштабного тести-
рования применяйте ноутбук со всеми необходимыми программами.
Что касается выбора ноутбука, то важно, чтобы он мог работать под управлением Linux
или BSD, имел два PCMCIA-разъема и аккумуляторы с максимально большим сроком рабо-
ты. Почему нужно именно два, а не один PCMCIA-разъем, мы объясним в главе 8, когда бу-
дем рассматривать некоторые виды атак «человек посередине».

Карты PCMCIA и CF для беспроводной связи


Вероятно, именно в этом вопросе правильный выбор особенно важен, и обусловлено это
существенными различиями между имеющимися на рынке клиентскими картами для бес-
проводной связи по следующим пунктам:
о набор микросхем;
о выходная мощность и возможность изменять ее уровень;
о чувствительность приема;
о наличие и число разъемов для внешних антенн;
о поддержка стандарта 802.Hi и улучшенных версий протокола WEP.

Выбор набора микросхем для клиентской карты


К числу наиболее распространенных наборов микросхем для стандарта 802.11 относятся
Prism, Cisco Aironet, Hermes/Orinoco. Symbol, Atheros AR5xl0 и в последнее время ADM80211
от компании ADMtek и Atheros AR5xll. Рассмотрим каждый из них более подробно.

Набор микросхем Prism


Набор микросхем Prism, первоначально выпускавшийся компанией Intersil, Inc., - это один
из самых первых наборов трансивера с поддержкой стандарта 802.11. В своей эволюции
он прошел путь от Prism I (оригинальный стандарт 802.11) через Prism II (802.11b), Prism
III (802.11b), Prism Indigo (802.11a), Prism GT (802.11b/g), Prism Duette (802.Ha/b), Prism
Nitro (улучшенный 802.llg) и Prism WorldRadio (802.11a, b, d, g, h, i и j). Хакерам он нра-
вится больше других из-за того, что компания Intersil не скрывает детали спецификаций,
работы и структуры набора. Все документы правления Prism Evaluation Board, справочные
материалы, замечания по применению, технические заметки и многочисленные технические
статьи общего характера можно бесплатно скачать с сайта компании. Разработчикам программ
КАРТЫ PCMCIA И CF ДЛЯ БЕСПРОВОДНОЙ СВЯЗИ А 39

для обеспечения безопасности беспроводных сетей будет весьма интересно изучить кон-
троллер Prism MAC, который напрямую взаимодействует с драйверами. Программно-аппа-
ратное обеспечение, прошитое в контроллере, выполняет большую часть обработки про-
токолов 802.11 и тем самым определяет возможность применения карты для анализа
протоколов, вставки фреймов или в качестве аппаратуры точки доступа. На рис. 3.1 при-
ведена принципиальная схема популярного устройства Prism 2.5, позаимствованная с сай-
та компании Intersil.
На ней видна внутренняя структура карты или точки доступа, в том числе усилитель и
детектор, преобразователь RF/IF (радиочастота/промежуточная частота) и синтезатор,
модулятор/демодулятор IQ и наконец интерфейс с хост-машиной, состоящий из процессо-
ра полосы частот и МАС-контроллера. Важно отметить, что в МАС-контроллер встроено
специальное ядро WEP для аппаратного шифрования, разгружающее центральный процес-
сор при включенном протоколе WEP. Важность этого факта станет очевидной, когда дой-
дем до обсуждения стандарта 802.Hi в главах 10 и 11.
В силу открытости спецификаций появилось множество инструментов с открытым ис-
ходным текстом для работы с картами, построенными на базе набора микросхем Prism. Не-
которые из них важны для аудита безопасности беспроводных сетей. В системе Linux на-
писано больше драйверов для таких карт, чем для любых других имеющихся на рынке карт
с поддержкой стандарта 802.11. Помимо включенного во все дистрибутивы набора моду-
лей и утилит Linux-wlan-ng, можно упомянуть:
о драйверы HostAP для развертывания точек доступа на базе Linux, написанные Йоу-
ни Малиненом (Jouni Malinen) - они важны для проверки возможности атаки «чело-
век посередине» на уровень 1 и DoS-атаки, а также для установки беспроводной
приманки;
о драйвер AirJack, написанный Абаддоном (Abaddon), полезен для проведения атак
«человек посередине» на второй уровень, а также для определения идентификато-
ров сеансов (SSID) в близлежащих сетях, для проведения некоторых DoS-атак на вто-
рой уровень и манипулирования фреймами протоколов 802.11;
о драйверы Prism54 для новых наборов микросхем Prism GT, Duette и Indigo, которые
поддерживают режим мониторинга, применяемый в анализаторах протоколов, и мо-
гут быть сконфигурированы для работы в качестве программной точки доступа ана-
логично HostAP.
Карты Prism уже очень давно поддерживаются в ОС FreeBSD (устаревшее устройство awi).
Это были первые клиентские карты 802.11, изначально и без патчей поддерживающие ре-
жим RFMON и разнесенные антенны (см. замечания о драйверах wlan-ng ниже в этой главе).
Комплект инструментов BSD-Airtools нуждался в карте с набором микросхем Prism для ана-
лиза и дампа RFMON-фреймов (утилиты prism2dump и dwepdump), а также для взлома прото-
кола WEP (утилита dwepcrack). Для превращения компьютера под управлением BSD в точку
доступа 802.11b также была необходима PCMCIA- или PCI-карта с этим набором микросхем.
Итак, если вы серьезно относитесь к тестированию на возможность проникновения в
сеть, то возьмите приличную карту с набором микросхем Prism. Если вы собираетесь ис-
пользовать для данной цели машину с ОС BSD, то, скорее всего, это единственный вариант.
Карты PCMCIA и CF с набором микросхем Prism производят компании Addtron, Asante, Asus,
Belkin, Buffalo (только CF-карты), Compaq, Demark, D-Link, Linksys, Netgate, Netgear, Proxim,
Senao, SMC, Teletronics, US Robotics, Zcomax и ZoomAir.
КАРТЫ PCMCIA И CF ДЛЯ БЕСПРОВОДНОЙ СВЯЗИ А 41

Набор микросхем Cisco Aironet


Набор микросхем Aironet который запатентован и производится компанией Cisco, Inc.,
разработан на базе Intersil Prism. Принято считать, что это не что иное как усовершенство-
ванный набор Prism П. Cisco включила в свои Aironet-карты некоторые полезные возмож-
ности, в том числе регулирование выходной мощности и возможность перебирать (hop)
все каналы в полосе частот ISM, не запуская специальную программу. Карты Cisco Aironet
идеально подходят для обнаружения беспроводных сетей благодаря высокой чувствитель-
ности приема и возможности вести мониторинг трафика от нескольких точек доступа, ра-
ботающих на различных каналах. С другой стороны, эту карту невозможно зафиксировать
на одном канале или группе каналов в режиме мониторинга, поскольку в этом режиме она
будет продолжать «прочесывать» полосу на аппаратном уровне.
Среди прочих полезных возможностей карт Cisco Aironet стоит упомянуть желтый све-
товой индикатор обнаружения трафика и хорошую поддержку разнесенных антенн (при
условии, что вы пользуетесь картой серии Air-LMC350 с двумя разъемами для внешних ан-
тенн). Для этих карт имеется развитая поддержка на всех стандартных платформах, в том
числе в Microsoft Windows и практически любой версии UNIX. Утилита конфигурирования
ACU, которую Cisco поставляет как для Windows, так и для Linux, имеет очень удобный ин-
терфейс и может даже выступать в роли весьма достойного инструмента для осмотра места
развертывания беспроводной сети.
К сожалению, спецификации на набор микросхем Cisco Aironet закрыты и отличаются
от спецификаций на оригинальный набор Intersil Prism, поэтому драйверы HostAP с ними
не работают, равно как и AirJack. Правда, поговаривают, что имеется нераспространяемая
версия драйвера AirJack для Cisco Aironet. Это снижает полезность карт на базе набора
Cisco Aironet для тестирования устойчивости сети к атакам «человек посередине» и DoS-
атакам. Но мы рекомендуем их для осмотра места развертывания, обнаружения нелегаль-
ных точек доступа и анализа многоканального трафика.

Набор микросхем Hermes


Третий, тоже весьма популярный, набор микросхем для клиентских карт 802.11 - это Hermes
от компании Lucent. Такие карты присутствуют на рынке уже много лет и хорошо зареко-
мендовали себя благодаря высокой чувствительности и удобству для пользователя. Хотя
они и не поддерживают аппаратного перебора всех каналов полосы ISM, как Cisco
Aironet, но способны выявить передающую точку доступа и автоматически сделать разум-
ное предположение об ESSID и частоте сразу, как только поднимается беспроводной ин-
терфейс. В большинстве карт на базе Hermes есть разъем для внешней антенны, но обычно
только один. Сами разъемы лучше, чем в картах на базе Prism и Aironet: туже и прочнее.
Хотя спецификации на набор Hermes закрыты, компания Lucent опубликовала фрагмент
исходного кода для управления основными функциями своих карт WaveLAN/ORiNOCO. Это
урезанная версия библиотеки HCF, которая используется в драйвере для Windows и драй-
вере для Linux (последний поставляется только в двоичном виде). Этот код нелегко читать,
и он плохо интегрируется с ядром Linux, но все же он оказался полезным при написании
старого драйвера wvlan_cs. Современный драйвер orinoco_cs более совершенен, чем
wvlan_cs, но по-прежнему пользуется высокоуровневыми функциями последнего. Что ка-
сается функций низкого уровня, то они частично заимствованы из драйвера wi, который в
ОС BSD обслуживает карты на базе наборов Prism и Hermes. Патч, написанный Shmoo Group
42 А ПОДГОТОВКА ОБОРУДОВАНИЯ

(http://airsnort.shmoo.com/orinocoinfo.html), позволяет переводить карты на базе Hermes


в режим мониторинга, что необходимо для анализа фреймов протокола второго уровня.
Хотя драйверы HostAP не работают с картами на базе Hermes, но существует проект HermesAP,
который пока находится на ранней стадии разработки, но выглядит очень многообещаю-
ще. Подробнее о нем можно прочитать на странице http://www.hunz.org/hermesap.html.
Подводя итог, можно сказать, что после небольшого «латания» драйверов карты на базе
набора микросхем Hermes вполне пригодны для тестирования на возможность проникно-
вения в сеть 802.11, а с точки зрения удобства конфигурирования и использования даже
превосходят конкурентов (за исключением Cisco Aironet). К числу карт PCMCIA и CF на базе
этого набора относятся Buffalo PCMCIA, Dell Truemobile, IBM High Rate Wireless LAN, Intel
AnyPoint 802.11b, Lucent/Orinoco Silver и Gold, Lucent WaveACCESS и Sony PCWA-C100.

Набор микросхем Symbol


Набор микросхем Symbol Spectrum24t применяется в картах Nortel Emobility 4121, 3Com
AirConnect Intel PRO/Wireless и Symbol Wireless Networker. Карты Ericsson WLAN также постро-
ены на базе набора Symbol но их обслуживает специальный драйвер для Linux (eriwlan). Кар-
ты на базе набора Symbol - это, по сути дела, такие же карты, как с набором Prism II, но имеют
собственный МАС-контроллер. Как ни странно, в ОС Linux они поддерживаются драйвером
Orinoco (исходный текст находится в файле Orinoco.с) и с точки зрения конфигурации и при-
годности для тестирования возможности вторжения аналогичны картам на базе набора
Hermes. Для CF-карт с набором микросхем Symbol имеется драйвер, основанный на Orinoco и
spectrum24t, но несколько отличающийся от них из-за того, что на таких картах нет встро-
енного программно-аппаратного обеспечения. На странице http://www.red-bean.com/~proski/
symbol/readme можно найти дополнительную информацию о картах Symbol без программно-
аппаратного обеспечения и загрузить драйвер под Linux для Spectrum24. Если нужен анализ
трафика уровня 2 в режиме мониторинга, то придется поставить на драйвер патч morinoco
(http://www.cs.umd.edu/~moustafa/morinoco/morinoco.html). Джезус Молина (Jesus Molina)
подготовил пакет, содержащий уже пропатченный драйвер для СА-карты Spectrum24 и не-
сколько версий для старых ядер (ради обратной совместимости). В качестве примера довольно
широко распространенной карты на базе набора микросхем Symbol можно упомянуть мало-
потребляющую CF-карту Socket от компании Socketcom. Она экономит емкость аккумулятора,
но зато диапазон приема и передачи у нее заметно меньше, чем у карт, потребляющих больше
энергии. Что ж, за все приходится чем-то платить. Уже откомпилированные пакеты с драйве-
рами Spectrum24 под Linux для этой карты (для ядра 2.4.18) с патчем, позволяющим перехва-
тывать фреймы в режиме мониторинга, и с полезными замечаниями о конфигурировании кар-
ты можно найти на странице http://handhelds.org/~nils/socket-cf-wlan.html.

Набор микросхем Atheros


Набор микросхем Atheros AR5000 чаще всего встречается в картах с поддержкой стан-
дарта 802.11а. В этом наборе первая в мире микросхема «радио-на-чипе» (RoC - radio-
on-chip) частотой 5 ГГц с интерфейсом к хост-машине (процессор полосы частот + МАС-
контроллер). Она поддерживает турбо-режим (Turbo Mode) - теоретическая скорость
72 Мб/с - и аппаратно реализованное шифрование по протоколу WEP с ключом длиной
152 бит или меньше. Поскольку используется стандартная технология КМОП (CMOS), то
энергопотребление и стоимость невелики и карта достаточно надежна в эксплуатации.
КАРТЫ PCMCIA И CF ДЛЯ БЕСПРОВОДНОЙ СВЯЗИ х 43

Развитием набора AR5000 является AR5001X, который применяется в современных кар-


тах, поддерживающих комбинацию стандартов 802.Ha/b/g.
Из поддающихся переделке драйверов для карт 802.11а, которые дали бы возможность
вести мониторинг трафика на втором уровне и вставлять фреймы, наибольший интерес
представляет драйвер Vantronix vt_ar5k для Linux (http://team.vantronix.net/ar5k/) и драй-
веры из проекта Madwifi на сайте SourceForge. Драйвер vt_ar5k поддерживает, в частности,
карты Actiontec 802CA, Netgear HA501, Netgear HA311, Proxim Harmony, SMC 2735W, Sony
PCWA-C500, IODATA WN-A54/PCM и ICom SL-50. К сожалению, поддержка комбинированных
карт реализована еще не полностью. Наш опыт показывает, что при установленном драй-
вере vt_ar5k карты Netgear CardBus WAG511 и Orinoco Gold Combo определяются, но модуль
не загружается. Тем не менее для поддерживаемых карт драйвер vt_ar5k реализует режим
мониторинга трафика и скоро будет позволять вставку фреймов, так что следите за обнов-
лениями. Надеемся, что к тому моменту, как книга выйдет из печати, этот драйвер будет
включать полную поддержку комбинированных карт.
Драйверы для Linux из проекта Madwifi также предоставляют поддержку для универсаль-
ных карт 802.Ha/b/g на базе набора микросхем Atheros. В настоящее время именно их и реко-
мендуется ставить, если у вас есть комбинированная карта 802.Ha/b/g. Официально проект
находится на сайте SourceForge (http://sourceforge.net/projects/madwifi/). Дополнительную
информацию о драйверах madwifi можно найти на странице http://www.mattfoster.clara.co.uk/
madwifi-faq.htm и на Wiki-странице http://madwifiwiki.thewebhost.de/wiki/. Перед уста-
новкой данных модулей мы рекомендуем посетить указанные сайты, чтобы ознакомиться с
самой свежей информацией о проекте и почитать FAQ.
Хотя эти драйверы пока находятся на ранних этапах цикла разработки, но они уже до-
казали свою работоспособность для многих комбинированных карт на базе набора Atheros.
Мы протестировали карты Proxim 8480-x и Netgear WAG511 и нашли, что они прилично
работают на скоростях от 18 до 24 Мбит/с. Есть сообщения о низкой производительности,
проблемах с WEP и повышенным энергопотреблением для карт Proxim 848x, так что про-
верьте на странице проекта, не было ли недавно обновлений в CVS-хранилище. Драйверы
madwifi поддерживают режим мониторинга и, в свою очередь, поддержаны в программе
Kismet (подробнее см. файл kismet.conf).

Набор микросхем ADM8211


И напоследок рассмотрим набор микросхем ADM8211 от компании ADMTek, Inc. (http://
www.admtek.com.tw/products/ADM8211.htm). Этот набор все чаще применяется в комби-
нированных картах 802.Ha/b/g. Но о его спецификациях известно очень мало. Похоже,
что драйвер для ADM8211 реализует больше функций 802.11 MAC, чем более старые драй-
веры для карт на базе наборов Lucent/Prism/Aironet; если провести аналогию с BSD, то этот
драйвер похож скорее на awi, чем на wi или an.
Мы инициировали в сообществе сторонников открытых текстов дискуссию по поводу
разработки многофункциональных драйверов под Linux и BSD для ADM8211, которые под-
держивали бы режим мониторинга RFM0N и, хорошо бы, функции точки доступа. Похоже,
это предложение вызвало интерес, и мы надеемся, что в скором времени такие драйверы
появятся. А пока компания ADMtek выпустила скомпилированные драйверы для ядра
2.4.18-3 для дистрибутива Red Hat 7.3. Исходный текст этих драйверов размещен на стра-
нице http://www.seattlewiretess.net/index.cgi/DlinkCardComments. Мы ожидаем, что разра-
ботка драйверов с открытым исходным текстом и конфигурационных утилит для карт на
44 А ПОДГОТОВКА ОБОРУДОВАНИЯ

базе наборов AR5001X и ADM8211 пойдет быстрыми темпами, после чего настанет черед пе-
реноса существующих и разработки новых приложений для обеспечения безопасности. Мы
также надеемся, что скоро появятся карты на базе наборов AR5001X и ADM8211 с разъемами
для внешних антенн, причем эти разъемы будут совместимы с существующими. А пока для
поддержки стандартов 802.11b/g лучше подойдут карты на базе наборов Prism, Aironet или
Hermes, а в случае стандарта 802.11а- карты на базе набора AR5000. Обратная совмести-
мость со стандартом 802.11д будет нелишней как для тестировщиков, так и для взломщиков.

Другие наборы микросхем, часто применяемые в последних


моделях устройств, совместимых со стандартом 802.11
По мере того как все больше компаний включаются в гонку по производству аппаратуры
для беспроводной связи, разнообразие представленных на рынке наборов микросхем с
поддержкой стандарта 802.11 растет. Можно отметить следующие новые наборы: Texas
Instruments АСХ100, Atmel AT76C503A, Broadcom AirForce, InProcomm IPN2220, Realtek
RTL8180L и Intel PRO/Wireless (Centrino). С точки зрения аудитора безопасности беспро-
водных сетей и взломщика, важно иметь открытые спецификации и драйверы с открытым
исходным текстом, в которых были бы реализованы режим мониторинга, функции про-
граммной точки доступа и возможности конструировать и изменять фреймы беспроводных
протоколов. Некоторые из вышеупомянутых наборов удовлетворяют этим требованиям и
имеют приличную поддержку в Linux и даже BSD (например, АСХ100), тогда как другие не
слишком «дружелюбны по отношению к хакеру», но могут быть использованы под Linux с
помощью программы Linuxant DriverLoader (http://www.linuxant.com/driverloader).
DriverLoader - это обертка, которая позволяет использовать стандартные Windows-драйве-
ры, поставляемые производителем, на платформе Linux x86. Есть также проект NdisWrapper,
аналогичный DriverLoader, - он поддерживает несколько наборов микросхем, для которых
еще нет драйверов с открытым исходным текстом, а именно: Broadcom, Intel PRO/Wireless
(Centrino) и InProcomm IPN2220.
Хотя DriverLoader и NdisWrapper обеспечивают возможность подключения пользователя к
сети и даже поддерживают механизмы безопасности, описанные в стандарте 802.Hi, но не
думайте, что сможете запустить свое любимое UNIX-приложение для обнаружения и взлома
беспроводной сети, если вы пользуетесь обернутыми NDIS-драйверами для Windows. Поэто-
му, если вы не являетесь разработчиком, которого интересует создание, совершенствование
или модификация драйверов для указанных наборов микросхем и перенос существующих
программ для работы с ними, то держитесь подальше от недавно появившихся и малоизвес-
тных устройств, если только нет полной уверенности, что для них уже написаны драйверы с
открытым исходным текстом. Следите за обновлениями на странице Linux Wireless Drivers в
разделе Construction and Defense Tools на нашем сайте (http://www.wi-foo.com). Там описа-
но, какие драйверы и откуда можно скачать.

Оценка характеристик клиентской карты для беспроводной связи


После выбора набора микросхем следует взглянуть на такие характеристики клиентской
карты 802.11, как выходная мощность, возможность ее регулирования и приемная чувстви-
тельность.
КАРТЫ PCMCIA И CF ДЛЯ БЕСПРОВОДНОЙ СВЯЗИ 45
46 ^ ПОДГОТОВКА ОБОРУДОВАНИЯ

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


беспроводного оборудования, тем лучше. Чем больше выходная мощность, тем больше шансов
подключиться к целевой сети с большего расстояния, тем проще провести DoS-атаку, основан-
ную на глушении, или атаку «человек посередине» на уровень 1. С другой стороны, чем боль-
ше приемная чувствительность, тем проще обнаружить беспроводную сеть, тем выше скорость
соединения и тем больший объем трафика можно перехватить и проанализировать. Если
удается перехватить много трафика, зашифрованного по протоколу WEP, то можно выделить
большее число интересных IV-фреймов, так что процесс взлома WEP (см. главу 8) займет мень-
ше времени. К нашему удивлению, никто еще не исследовал этот вопрос с применением раз-
личных клиентских карт в широком диапазоне приемной чувствительности. Если кто-то хо-
чет, чтобы мы провели такую проверку, милости просим присылать клиентское оборудование
для тестирования, предварительно связавшись с нами по адресу wifoo@arhont.com.
Чтобы помочь вам в выборе оборудования, мы включили в приложение В несколько
модифицированные таблицы характеристик аппаратуры 802.11, первоначально опублико-
ванные на сайтах Seattlewireless и Personaltelco. Картам на базе набора микросхем Prism
посвящена отдельная таблица, поскольку они особенно важны для тестирования возмож-
ности проникновения и разработки программ с открытым текстом. Проверяйте последние
обновления на упомянутых сайтах и пользуйтесь приведенными таблицами для выбора
оборудования, отвечающего вашим конкретным требованиям. Клиентские карты, идеаль-
но работающие в комплекте для аудита безопасности, совсем необязательно оптимальны
для работы пользователя в беспроводной сети. Обратное тоже верно.
Мы еще не рассмотрели вопросы о регулируемой выходной мощности и о наличии
ММСХ-разъемов для внешних антенн. Из протестированных нами карт только Cisco Aironet,
Senao Long Range и Zcomax XI-325HP позволяли регулировать уровень IR. Такая возмож-
ность важна как для атаки (скрытность, экономия заряда аккумулятора), так и для защиты
(ограничение периметра, протяженности и возможности обнаружения сети). Мы будем
возвращаться к этой теме еще не раз. Наличие разъемов для внешних антенн тоже нельзя
недооценивать даже в случае, когда у вас есть дополнительная клиентская карта со встроен-
ной антенной для тестирования безопасности внутри здания. На многих сайтах описывает-
ся, как припаять шнур типа pigtail для внешней антенны на разъем внутренней антенны, та-
кова плата за то, что вы не купили сразу карту с одним или несколькими ММСХ-разъемами.
И наконец, хотя вопрос о поддержке длинных ключей WEP и 802.1х скорее относится к за-
щите, но все же полезно, чтобы карта, предназначенная для тестирования возможности
проникновения, реализовывала такую возможность. Это может пригодиться при подклю-
чении к частной сети с необычно длинным ключом WEP после того, как ключ взломан, а
также для вскрытия 802.1х методом полного перебора.
Подводя итоги, отметим, что правильный выбор клиентского оборудования - это пер-
вый и немаловажный этап аудита безопасности беспроводной сети. Однако в большинстве
случаев не следует особо печалиться, если вы не выбрали карту PCMCIA/CF, специально
предназначенную для этой цели. После небольшого «латания» и конфигурирования по-
дойдет почти любая клиентская карта. Исключение составляют редко встречающиеся но-
вые комбинированные карты с 32-разрядной шиной для поддержки стандартов a/b/g, но и
для них уже пишутся гибкие драйверы с открытым текстом, так что недолго осталось ждать
их появления и поддержки инструментальными программами для аудита безопасности
сетей 802.11. Обращайте внимание на приемную чувствительность карты (для карт с уров-
нем -80 и -90 dBm чувствительность различается на порядок; подумайте, как это скажется
АНТЕННЫ х 47

на возможности обнаружения сети и объеме перехваченных данных). Взломщик, воору-


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

Антенны
Антенны и усилители создают огромное преимущество как атакующему, так и обороняю-
щемуся. С точки зрения атакующего, антенна - это дальность (а значит, скрытность), луч-
шее качество сигнала (и, как следствие, больший объем подслушанных данных и более
широкая полоса пропускания, которую можно использовать в своих целях) и повышение
мощности (это важно для проведения DoS-атак на уровень 1 и атак «человек посередине»).
С точки зрения обороняющегося, правильно размещенные антенны ограничивают пери-
метр сети, уменьшают риск ее обнаружения и предоставляют атакующему меньше про-
странства для маневра. Кроме того, три остронаправленных антенны в сочетании с мобиль-
ными беспроводными клиентами, вооруженными программой для мониторинга уровня
сигнала, можно использовать для триангуляции взломщика или незаконного беспроводно-
го устройства. Конечно, для этого нужно, чтобы атакующий передавал какие-то данные.
Уважающая себя компания по обеспечению безопасности беспроводных сетей должна
включать такую услугу триангуляции в состав процедуры реагирования на обращение за-
казчика. К сожалению, так бывает не всегда.
Прежде чем давать предложения по использованию антенн в аудите безопасности, нуж-
но изложить основы теории. Если вы хорошо знакомы с радиофизикой, то можете спокой-
но пропустить эту врезку.
АНТЕННЫ 49

Иногда антенне придают причудливую форму, порой они хорошо спрятаны от любопыт-
ных глаз (например, многие внутренние панельные или patch-антенны), а в некоторых
случаях они бывают похожи на устройства пожарной сигнализации (небольшие всенап-
равленные антенны, смонтированные на потолке). Обнаружение беспроводных антенн -
это важная часть процедуры осмотра места развертывания, поскольку оно позволяет оп-
ределить общую форму сети еще до включения инструментов мониторинга. Обращайте осо-
бое внимание на боковые и задние лепестки, характерные, например, для диаграмм направ-
ленности директорных антенн; сеть может покрывать такие места, о которых администратор,
плохо знакомый с радиофизикой, даже не догадывается.
При выборе антенн для аудита безопасности беспроводной сети вам как минимум понадо-
бится хорошая всенаправленная антена и остронаправленная антенна с высоким коэффици-
ентом усиления. Мы обычно пользуемся всенаправленной антенной мощностью 12 dBi и се-
точной направленной антенной 19 dBi, но вы можете выбрать то, что вам лучше подходит.
Всенаправленная антенна хороша для осмотра места, поиска нелегальных точек доступа, ана-
лиза трафика от нескольких хостов, расположенных в разных направлениях, и мониторинга
всей площади в поисках неавторизованного или подозрительного трафика или помех. Всегда
следует помнить, что чем выше коэффициент усиления, тем более плоским становится «буб-
лик», так что при использовании всенаправленной антенны с большим коэффициентом бес-
проводные хосты, расположенные выше или ниже некоторой зоны покрытия (например, на
разных этажах одного здания), могут остаться незамеченными. С другой стороны, всенаправ-
ленная антенна с малым коэффициентом усиления может оказаться недостаточно чувствитель-
ной для обнаружения этих хостов. В таком случае разумно применять полунаправленную ан-
тенну (у нас для этой цели есть директорная антенна мощностью 12 dBi). Вместо этого можно
провести тщательное сканирование остронаправленной антенной, не забывая про трехмер-
ность пространства! У направленных антенн есть несколько достоинств:
о можно проверить, насколько далеко может разместиться взломщик, располагающий
хорошим оборудованием;
о можно пробиться через стены и выяснить, насколько велика утечка данных;
о можно попытаться провести глушение и некоторые атаки «человек посередине»;
о такая антенна незаменима для поиска атакующего;
о некоторые сети можно обнаружить только с помощью хорошей направленной (или
полунаправленной) антенны с высоким коэффициентом усиления. В частности, речь
идет о беспроводных локальных сетях на верхних этажах очень высоких зданий.
Есть обширная информация (даже в популярных изданиях) о том, как самому изготовить
антенну из упаковки для чипсов «Pringls», из пустых жестянок и т.д. Все это забавно, и в
свободное время вы можете попробовать различные варианты, но мы не рекомендуем
пользоваться такими антеннами для серьезного коммерческого тестирования возможности
проникновения. Ширина луча, диаграмма направленности, коэффициент усиления и другие
важные характеристики таких антенн, скажем, коэффициент стоячей волны напряжения
(должен быть примерно равен 1,5:1), редко проверяются, а надежность может оставлять же-
лать лучшего. Разумеется, в некоторых случаях самодельные антенны могут дать большую
фору коммерческим. Но произвести корректное измерение вышеперечисленных параметров
для них дорого и трудно, а потому вам будет нелегко документировать результаты осмотра
места. В то же время приобрести приличную антенну в диапазоне 2,4-2,5 или 5,15-5,85 ГГц
можно за вполне разумную цену (мы рекомендуем сайт http://www.fab-corp.com, но есть и
много других электронных магазинов, торгующих антеннами).
50 ^ ПОДГОТОВКА ОБОРУДОВАНИЯ

Усилители высокой частоты


Если антенны обеспечивают пассивное усиление сигнала путем фокусировки энергии, то
усилители активно добавляют внешнюю энергию в высокочастотный кабель. Иногда эту
энергию называют фантомным напряжением, она передается по высокочастотному кабе-
лю от источника постоянного тока на усилитель. Усилители бывают двух типов: однонап-
равленные (увеличивают только мощность передатчика) и двунаправленные (также улуч-
шают чувствительность приемника). Кроме того, усилители обоих типов поставляются в
виде устройств с постоянным или переменным коэффициентом усиления. При проектиро-
вании сети рекомендуется применять усилители с постоянным коэффициентом, поскольку
они работают стабильнее, а также потому, что все необходимые расчеты мощности следу-
ет выполнять до развертывания сети, следовательно, требования к мощности сети должны
быть известны заранее. Традиционно усилители используют для того, чтобы компенсиро-
вать ослабление сигнала из-за длины кабеля между антенной и беспроводным устрой-
ством. Маловероятно, что для процедуры тестирования возможности проникновения вам
понадобится усилитель, поскольку дешевле и удобнее воспользоваться направленной ан-
тенной. Но, если у вас есть лишние деньги, то можете приобрести двунаправленный уси-
литель и пользоваться им в сочетании с направленной антенной для проведения экспери-
ментов, требующих большой мощности, например для установления соединения и анализа
трафика на большом расстоянии, глушения или выполнения атаки «человек посередине»
на уровень 1. Для целей тестирования мы рекомендуем усилители с переменным коэффи-
циентом. Например, можно попробовать поиграть с регулировками усилителя, чтобы най-
ти при какой мощности EIRP атака «человек посередине» на уровень 1 или DoS-атака ока-
жется успешной.
Основная проблема, связанная с использованием усилителей при оценке безопаснос-
ти, - это где взять мобильный источник питания. Поэтому непрофессиональные взломщи-
ки редко прибегают к их помощи. Но нельзя исключить возможность того, что решительно
настроенный стационарный взломщик найдет возможность применить усилитель.

Высокочастотные кабели и разъемы


И напоследок поговорим о высокочастотных кабелях и различных разъемах. Выше уже
отмечалось, что высокочастотный кабель - это один из основных источников ослабления
сигнала в беспроводных сетях. Не экономьте, приобретайте кабели с наименьшим возмож-
ным коэффициентом затухания (измеряется в децибелах на 100 футов при указанной час-
тоте). Покупайте кабели с уже смонтированными разъемами. Напаять разъем самостоя-
тельно можно, но надежность соединения будет, скорее всего, меньше, чем при изготовлении
в заводских условиях. Ослабление высокочастотного сигнала из-за плохих разъемов или
повреждения кабеля может быть очень велико, а обнаружить причину нелегко. Не забы-
вайте, что кабель должен иметь такой же импеданс (обычно 50 Ом), что и остальные ком-
поненты беспроводной сети. Выбирайте те разъемы, которые соответствуют клиентским
устройствам и имеющимся антеннам. Можно, конечно, состыковать все с помощью цилин-
дрического или обжимного соединения, но один такой разъем может привести к дополни-
тельным потерям в 2-3 дБ, сократив вполовину мощность передатчика и приемную чув-
ствительность. Когда речь идет о беспроводном оборудовании, наибольшие неприятности
РЕЗЮМЕ 51

связаны с разъемами типа pigtail. При осмотре места и аудите безопасности «косички»
часто отрываются, разъемы ломаются и приходится следить за тем, чтобы ММСХ-разъем не
соскользнул с клиентской карты (мы часто крепим его к карте или ноутбуку липкой лен-
той). Наиболее распространены разъемы такого типа для карт на базе набора микросхем
Aironet (подходят также для карт на базе набора Prism) и Lucent/Orinoco (подходят и для
Hermes), причем последние лучшего качества и более надежно крепятся на карте. Поза-
ботьтесь о наличии запасных pigtail-разъемов на случай, если ваш сломается во время
аудита безопасности.
Хотя кабели и разъемы и не имеют прямого отношения к безопасности беспроводной
сети, но сильный, четкий сигнал и хорошая приемная чувствительность важны в любом
случае. Сеть с заметным ослаблением сигнала не будет устойчивой к глушению и атакам
«человек посередине» на уровень 1. Это замечание еще раз подтверждает, что о безопас-
ности и надежности сети надо думать с самого начала.

Резюме
Тщательный выбор беспроводного оборудования при оценке безопасности сети может сэ-
кономить массу времени, сил и денег и намного повысить ваши шансы провести успешную
атаку. При выборе нужно учитывать технические характеристики, кратко описанные в
данной главе. Не надо прислушиваться к рекламе и рекомендациям, не подтвержденным
подробными и аргументированными техническими пояснениями. Но вполне может стать-
ся, что вы сумеете воспользоваться уже имеющейся у вас картой для тестирования возмож-
ности проникновения, правда, после некоторого «латания» и модификации. Чтобы аудит
безопасности был максимально эффективным, придется применять различное оборудова-
ние для решения разных задач. Не думайте, что единственный комплект аппаратуры сго-
дится для всех случаев, будьте готовы применять разные методики и оборудование в зави-
симости от характера целевой системы и требований, предъявляемых к аудиту.
ЗАВОДИМ ДВИГАТЕЛЬ:
ДРАЙВЕРЫ И УТИЛИТЫ

Один из античных стратегов говаривал: «Кто не


может эффективно развернуть свои машины,
тот проиграл».
ДуМу

Операционная система,
открытые и закрытые исходные тексты
Не секрет, что большая часть описываемых нами методов основана на применении прог-
рамм с открытым исходным текстом (с лицензией GPL или Berkeley). Тому есть несколько
причин. Занимаясь хакерством в беспроводных сетях (см. наше определение хакерства во
введении), хочется работать с программным обеспечением, которое можно модифициро-
вать и оптимизировать в соответствии со своими целями и располагаемым оборудованием.
Эта книга адресована активистам беспроводного сообщества и пользователям-энтузиастам,
а также сотрудникам корпораций и консультантам по безопасности, поэтому мы хотим
описать относительно доступные методы и решения. Кроме того, поскольку тестирование
возможности проникновения предполагает взгляд на сеть глазами взломщика, то, навер-
ное, следует придерживаться тех же путей, которыми ходит противник. Вы ведь не думае-
те, что взломщик станет покупать самый свежий коммерческий анализатор беспроводных
протоколов за 5000 долларов? Да и надо сказать, что многие подпольные средства для ата-
ки обладают возможностями, которых не найти ни в одном коммерческом продукте; не
стоит недооценивать братство хакеров. Например, не существует коммерческого инстру-
мента для аудита безопасности, способного взломать протокол WEP или сгенерировать
специальные фреймы 802.11 (по крайней мере, мы о таком не знаем).
Естественно, что в качестве платформы для запуска и разработки такого программно-
го обеспечения служит ОС Linux. Второй по важности платформой для нас является BSD
(из-за меньшего размера сообщества разработчиков и несколько более узкого списка
поддерживаемого оборудования). К сожалению, насколько нам известно, сейчас ни под
ДВИГАТЕЛЬ: НАБОРЫ МИКРОСХЕМ, ДРАЙВЕРЫ И КОМАНДЫ х 53

какой версией BSD нет поддержки стандарта 802.11а. Однако имеется ряд относящихся к
безопасности инструментов для стандартов 802.11b/g (BSD-airtools, Wnet, leapcrack), a
также приличная поддержка для точек доступа, основанных на стандарте 802.11b. Тем
не менее, на наш взгляд, драйверы HostAP для Linux обладают большей функционально-
стью и лучше конфигурируются, чем драйверы АР для BSD.
Почему мы работаем с Linux? Основная причина очевидна: это проще. Описанные инст-
рументы можно брать в готовом виде, без каких-либо модификаций. Если вы привязаны к
платформе Microsoft, то можете установить Cygwin (http://www/cygwin.com), Perl и широ-
кий набор перенесенных с UNIX инструментов и сценариев и пользоваться заголовочными
файлами и библиотеками Windows. Работать это будет, но ценой лишних потраченных уси-
лий. Гораздо проще и быстрее установить Linux или BSD. Имеются также разнообразные
коммерческие (и даже бесплатные) инструменты для работы с беспроводными сетями на
платформе Windows. Высококачественные коммерческие программы типа NAI Sniffer Wireless
или AiroPeek обладают могучими возможностями, но дороговаты. Программы попроще,
например Netstumbler и большинство бесплатных анализаторов 802.11 для Windows, не го-
дятся для серьезной работы; почему это так, мы расскажем в главе 5. Есть, правда, при-
мечательные исключения, например комбинация Packetyzer/Ethereal for Windows. Стоит от-
метить, что такие исключения распространяются по лицензии GPL.
Однако для защиты нами принят другой подход. Как консультант по безопасности или
энтузиаст вы должны иметь свободу и возможность выбора того аппаратного и программно-
го инструментария для аудита беспроводных сетей, который вам больше подходит. Как си-
стемный или сетевой администратор вы должны защитить свою компанию, пользуясь су-
ществующими ресурсами, возможно, не имея ни значительных дополнительных фондов, ни
свободного времени. Таким образом, меры защиты не зависят от платформы и варьируют-
ся от применения инструментов с открытыми текстами до развертывания дорогих коммер-
ческих шлюзов в беспроводную сеть и систем IDS. Для начала мы сделаем обзор конфигу-
рационных утилит и драйверов для Linux и отчасти BSD, имея в виду задачу тестирования
возможности проникновения в сеть. Если вы не работаете с UNIX, ничего страшного. Мы
пытались излагать описываемые методики максимально простым языком. Приносим изви-
нения профессиональным UNIX-хакерам: вы знаете, что можно спокойно пропустить. Мы
ставили себе целью пошагово описать процедуры инсталляции, конфигурирования и эксп-
луатации всех использованных нами инструментов и утилит.

Двигатель: наборы микросхем, драйверы


и команды
Примечательной особенностью драйверов для Linux является их универсальное разбиение
на категории, относящиеся к различным наборам микросхем: linux-wlang-ng, HostAP и
AirJack для карт на базе набора Prism; Orinoco и HermesAP - для карт с набором Hermes;
airo-linux - для Cisco Aironet; 0rinoco/Symbol24 - для карт с набором Symbol; vt_ar5k - для
Atheros 802.11a; оригинальные драйверы ADM8211 и Madwifi для ADM8211 и Atheros 5212 -
для многих комбинированных карт 802.Ha/b/g. Однако для всех этих драйверов исполь-
зуется один и тот же конфигурационный файл /etc/pcmcia/wireless.opts, дополненный
специальными конфигурационными файлами типа wlan-ng.conf, hermes.conf, hostap.conf
или vt_ar5k.conf. В этих дополнительных файлах содержится описание карт 802.11,
54 А ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ

которые заведомо поддерживаются конкретным драйвером. Что касается конфигурацион-


ных утилит и сценариев, то для большинства перечисленных типов карт используется ком-
плект программ Linux Wireless Extensions, написанных Жаном Турилем (Jean Tourrilhes).
Исключение составляет драйвер linux-wlan-ng (с ним поставляются собственные конфи-
гурационные утилиты wlancfg и wlanctl-ng) и Cisco Aironet (конфигурируется путем ре-
дактирования текстового файла в каталоге /proc/driver/aironet, создаваемого в момент
инициализации карты; обычно это файл /proc/driver/aironet/ethl/Config). Но при жела-
нии карты Cisco Aironet можно конфигурировать и с помощью Linux Wireless Extensions, a
также посредством графической утилиты ACU. Из-за описанных различий существуют раз-
ные сценарии инициализации для linux-wlan-ng (/etc/pcmcia/wlan-ng) и карт, сконфигу-
рированных с помощью Linux Wireless Extensions (/etc/pcmcia/wireless).
В ОС BSD драйверы для карт с набором команд Prism и Hermes находятся в драйвере интер-
фейса wi, тогда как карты Cisco Aironet поддерживаются устройством an. Можно также встре-
тить устройство ray для карт с набором Raylink и awi для старых карт с набором Prism I.
В BSD клиентские карты для беспроводной связи конфигурируются утилитой wicontrol для
карт с набором микросхем Prism или Hermes (перечислены ниже в этой главе) и ancontrol для
остальных карт. В системе FreeBSD версии 4.5 и выше функциональность wicontrol и ancontrol
интегрирована в ifconfig, но сами эти утилиты также остались. Конфигурационные сцена-
рии запуска во FreeBSD должен написать пользователь, но это несложно. Хороший пример
подобного сценария, размещаемого в каталоге /usr/local/etc/rc.d, приведен в книге Брюса
Поттера (Bruce Potter) и Боба Флека (Bob Fleck) «802.11 Security» (Безопасность 802.11).
В системе OpenBSD необходимые параметры для инициализации беспроводной карты мож-
но добавить в файл <hostname.interface>, например hostname.апО или hostname.wiO.
Если в Linux и BSD конфигурационные файлы и утилиты группируются по типу набора
микросхем, то в Windows они ассоциированы с производителем конкретной карты. Учиты-
вая разнообразие клиентских карт 802.11 на рынке, привести в этой книге полный обзор
не представляется возможным. Мы предлагаем ознакомиться с инструкциями, написанны-
ми производителем.

Как заставить свою карту работать под Linux и BSD


Первым шагом процедуры инсталляции клиентской карты 802.11 в ОС Linux или BSD являет-
ся выбор правильных параметров ядра и компиляция службы pcmcia-cs Card Services. Если у
вас имеется ядро с настройками, заданными в дистрибутиве по умолчанию, то, скорее всего,
модули, необходимые для поддержки вашей беспроводной карты, уже откомпилированы и
включены в состав ядра, а параметр Set Version Information On All Modules Symbols (Уста-
новить информацию о версии во всех символах модулей) включен. Это прекрасно, если вы
пользуетесь только картами с набором микросхем Prism, которые поддерживают режим
RFM0N по умолчанию в большинстве версий драйвера linux-wlan-ng. Вы можете даже при-
компилировать поддержку Prism к ядру. В противном случае придется использовать пропат-
ченные (Orinoco/Hermes) или поставляемые третьей стороной (Sourceforge airo-linux) моду-
ли, если вы хотите настроить систему для аудита безопасности (драйверы Aironet поставляемые
с последними версиями ядра Linux, и так годятся). Специальные драйверы типа HostAP не
поставляются с ядром и должны компилироваться отдельно. В таких случаях следует отклю-
чить параметр Set Version Information On All Modules Symbols и не пытаться прикомпили-
ровать поддержку карты к ядру, а включить ее в состав модулей (рис. 4.1).
ДВИГАТЕЛЬ: НАБОРЫ МИКРОСХЕМ, ДРАЙВЕРЫ И КОМАНДЫ 55

Рис. 4.1. Поддержка загружаемых модулей ядра

Вы можете либо пропустить шаг выбора модулей, поставляемых с ядром, либо заменить
их пропатченными модулями позже, когда будете устанавливать драйверы pcmcia-cs или
специфичные для вашей карты.
После компиляции ядра (читайте документ Kernel-How-То, если никогда не делали это-
го раньше) нужно создать пакет pcmcia-cs. Мы не рекомендуем пользоваться заранее от-
компилированными включенными в дистрибутив пакетами pcmcia-cs из-за наличия пат-
чей, а также потому, что исходные тексты понадобятся, если вы захотите компилировать
другие инструменты. Прежде чем компилировать pcmcia-cs, необходимо поставить патч
Shmoo, который можно скачать со страницы http://airsnort.shmoo.com/orinocoinfo.html.
Выберите подходящий для вашей версии pcmcia-cs патч и выполните команду:
arhontus:~# patch -pO < pcmcia-cs-"your-pcmcia-cs-version"-orinoco-
patch.diff
Вместо этого можно скачать драйвер orinoco-cs, пропатчить его и заменить не пропат-
ченные исходные тексты в каталоге /usr/src/pcmcia-cs-"current-version"-patched/wireless
пропатченными. Можно также скомпилировать пропатченные модули отдельно и скопи-
ровать их в каталог/lib/modules/"yourkernelversion"/pcmcia, например, поверх оригиналь-
ных модулей, поставляемых в дистрибутиве вместе с ядром. Если вы собираетесь так и
поступить, не забудьте отключить параметр Set Version Information On All Modules
Symbols. Если вы работаете с картой на базе набора Cisco Aironet, не пользуйтесь стандар-
тными драйверами, идущими вместе с ней или скачанными с сайта компании Cisco, посколь-
ку они не поддерживают режим RFMON. Вместо этого загрузите драйверы airo-linux с сай-
та Sourceforge (http://sourceforge.net/projects/airo-linux/). Проще всего установить их,
скопировав файлы airo.c и airo_cs.c в подкаталог pcmcia/wireless. Если вы пользуетесь мо-
дулями, идущими вместе с ядром, то придется поставить патч, включенный в пакет airo-
linux. Поскольку этот патч годится только для ядра 2.4.3, такой способ не рекомендует-
ся. Однако во всех более поздних версиях ядра уже имеются драйверы для Aironet с
56 ^ ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ

поддержкой режима RFM0N. Поэтому, если вы своевременно обновляете ядро, то можете


без опаски пользоваться поставляемыми вместе с ним модулями.
Если вы хотите перезаписать оригинальные модули ядра, воспользуйтесь при компиляции
pcmcia-cs флагом . /configure — f o r c e . В противном случае просто выполните команду:
arhontus :--# make config
Linux PCMCIA Configuration Script
ДВИГАТЕЛЬ: НАБОРЫ МИКРОСХЕМ, ДРАЙВЕРЫ И КОМАНДЫ А 57

Вот и все. Доверительные (trusting) версии утилит нужно строить, если вы хотите, что-
бы пользователи, отличные от root, могли приостанавливать и возобновлять работу карт
PCMCIA, сбрасывать карты в начальное состояние и менять схему конфигурации. Поддерж-
ка 32-разрядной шины на карте (CardBus) необходима только для карт с такой шиной, на-
пример современных комбинированных карт с поддержкой стандартов a/b/g, а также для
многих недавно появившихся карт 802.11а и 802.11b, которые поддерживают нестандарт-
ные скорости 22 и 108 Мбит/с.
Для более старых 16-разрядных карт эта возможность не нужна. Драйверы карт на базе
набора микросхем Prism, например, prism2_cs и р80211 отсутствуют в подкаталоге wireless
пакета PCMCIA_cs, они должны поставляться с ядром или строиться и инсталлироваться при
компиляции пакета linux-wlan-ng. При установке PCMCIA-cs создается каталог /etc/pcmcia,
который может быть изменен позже, при компиляции других драйверов беспроводных карт,
например linux-wlan-ng или HostAP. В случае, когда в одном ноутбуке находится несколько
беспроводных карт с разными наборами микросхем, мы рекомендуем хранить содержимое
каталога /etc/pcmcia для каждого типа карт отдельно. Тогда можно будет легко переключить-
ся с одной карты на другую. Например, если в настоящий момент вы работаете с картой на
базе набора Orinoco, а хотите переключиться на Prism, то можно сделать так:

arhontus:~# rm -rf /etc/pcmcia && cp -r /usr/local/wireless/pcmcia-


wlan-ng /etc/pcmcia && /etc/init.d/pcmcia r e s t a r t
Обязательно сделайте резервные копии всех конфигурационных файлов. Для удобства
мы разместили на сайте http://www.wi-foo.com примеры конфигурационных файлов для
драйверов Wlan-ng, HostAP и Ark. Приведенная конфигурация для Ark будет поддерживать
также Wlan-ng. Если модули airo__cs и airo корректно установлены, то карты на базе набора
Cisco Aironet не зависят от особенностей конфигурационных файлов в каталоге /etc/pcmcia
и будут работать со всеми конфигурационными файлами без перезагрузки служб PCMCIA.
Состояние карты в любой момент можно проверить с помощью утилиты cardctl:
arhontus:~# c a r d s t l config && c a r d c t l info && cardctl s t a t u s
или с помощью графической утилиты cardinfo (рис. 4.2), которая позволяет управлять кар-
той точно так же, как из сценария /etc/init.d/pcmcia.

Рис. 4.2. Графическая утилита cardinfo


Для работы с PCMCIA-картой на базе набора Atheros задайте в ядре поддержку PCMCIA,
скомпилируйте драйвер vt_ark5k (отредактируйте файл Makefile, если исходные файлы
ядра Linux находятся не в каталоге /usr/src/linux) и добавьте строку " o p t i o n s v t _ a r 5 k
reg_domain=??? " в файл/etc/modules.conf. Имеются различия в зависимости от зако-
нов, регулирующих выходную мощность, в стране, где вы находитесь: допустимые значе-
ния параметра reg_domain - это fee (США), e t s i (EC) и de (Германия и Япония). Мож-
но также указать эти параметры при вставке модуля (например, insmod v t _ a r 5 k . o
ДВИГАТЕЛЬ: НАБОРЫ МИКРОСХЕМ, ДРАЙВЕРЫ И КОМАНДЫ х 59

интерес для хакера. Если вам хочется узнать больше, предлагаем зайти на сайт Жана
Туриля, посвященный драйверам плат для беспроводной связи, и в особенности на стра-
ницу http://www.hpl.hp. com/personaL/Jean_Tourn'lLhes/Linux/Linux.Wireless.drivers.htm[
#Prism2-hostAP, а также проследовать по имеющимся на ней ссылкам. Там приведены
обширные материалы для всех, кого интересует модификация и разработка новых
драйверов для беспроводных клиентских карт, а также для тех, кто хочет знать, по-
чему для карт с набором микросхем Hermes нужно три разных драйвера и в чем
различие между функциями и структурой модулей prism2_cs и р80211 linux-wlan-
ng для карт с набором Prism. Кстати, мы не обсуждаем инсталляцию драйверов
HostAP и Airjack в этой главе, так как они будут описаны, когда речь пойдет об ата-
ках «человек посередине».
60 ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ
ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ 61

Более подробная информация о совместимости сетевого оборудования приведена в при-


ложении В. Если ваша карта присутствует в списке поддерживаемой аппаратуры и вы мо-
дифицировали конфигурационный файл ядра BSD, как описано выше, после чего пересоб-
рали ядро, то все должно работать. Подчеркнем еще раз: если вы решили использовать
платформу BSD в качестве основной, то понадобится карта на базе набора микросхем Prism,
а стандарт 802.11а будет недоступен, пока кто-нибудь не напишет соответствующие драй-
веры (если такое вообще произойдет, принимая во внимание набирающий популярность
стандарт 802.Ид).

Знакомство с конфигурированием
интерфейса беспроводных карт
Чтобы эффективно выполнять аудит безопасности беспроводной сети, нужно ознако-
миться с утилитами конфигурирования, имеющимися в UNIX. Да, придется много рабо-
тать с командной строкой. Однако, эту сулит немалые преимущества и, в частности, по-
нимание того, как работают более сложные инструменты, связанные с обеспечением
безопасности. Кроме того, вы научитесь писать полезные сценарии на языке интерпре-
татора команд, что сэкономит вам время и упростит жизнь. Да и, кроме того, отказ от
графического интерфейса продлевает срок работы аккумуляторов (подробнее об этом
в следующей главе).

Комплект программ Linux Wireless Extensions


Начнем с описания комплекта программ Linux Wireless Extensions как наиболее полезной
утилиты для конфигурирования беспроводных карт и интерфейсов в ОС Linux. Первая версия
62 ^ ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ

была разработана в 1996 году для карт на базе набора микросхем Hermes. Имеющаяся
в Wireless Extensions поддержка карт с набором Prism, работающих под управлением
драйверов wlan_ng, очень ограниченна и в основном сводится к проверке (часто не-
корректной) конфигурационных параметров установленной карты. Однако те же кар-
ты с набором Prism, работающие под управлением драйвера HostAP, поддержаны в пол-
ном объеме и Linux Wireless Extensions способна их конфигурировать. То же относится
к картам 802.11а с драйверами vt_ark5k и комбинированным картам с драйверами Madwifi.
Вопреки имеющимся в файле INSTALL замечаниям о возможных проблемах при ин-
сталляции, мы никогда ни с чем подобным не сталкивались даже при компиляции
Extensions из исходных текстов. Установка из вашего любимого дистрибутивного па-
кета тоже не вызывает трудностей, если, конечно, вы не подумываете о какой-то моди-
фикации кода.
Самая важная из утилит, входящих в Linux Wireless Extensions, - это iwconfig:
arhontus:~# iwconfig —help
Usage: iwconfig i n t e r f a c e [essid {NNIonloff} ]
[nwid {NNIonloff}
[mode {managed I ad-hoc I . . . }
[freq N.NNNN[k|M\G]]
[channel N]
[sens N]
[nick N]
[ r a t e {NI auto I fixed}]
[ r t s {NI auto I fixed I off}]
[frag {Nlautol fixedloff}]
[enc {NNNN-NNNNloff}]
[power {period NI timeout N}]
[txpower N {mWldBm}]
[commit]

Как видите, iwconfig позволяет сконфигурировать практически все параметры. Дадим


несколько полезных советов:
о при сканировании в поисках сетей или устройств 802.11 устанавливайте для пара-
метра e s s i d значение off или any:
arhontus:~# iwconfig ethO essid off

о устанавливайте для параметра nwid значение off, чтобы во время сканирования


принимались неопределенные домены:
arhontus:~# iwconfig ethO nwid off
о отключайте параметр key, чтобы можно было принимать незашифрованные по про-
токолу WEP пакеты:
arhontus:~# iwconfig ethO key off
о устанавливайте минимально возможный для вашей карты порог чувствительности:
arhontus:~# iwconfig sens -85 (если чувствительность карты ограничена)
величиной -85 dBm)
ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ л 63
о если карта позволяет регулировать мощность передатчика, то во время сканирова-
ния или анализа трафика устанавливайте минимальную мощность:
arhontus:~# iwconfig ethO txpower 1 (dBm)
arhontus:~# iwconfig ethO txpower lmW (мВт)
о очистите имя пользователя и адрес выбранной точки доступа, если они были зада-
ны, и проверьте, установлена ли величина скорости передачи в битах (параметр
r a t e ) в значение a u t o ;
о чтобы увеличить время работы аккумуляторов, включите управление энергопотреб-
лением:
arhontus:~# iwconfig ethO power timeout 300u a l l
(параметр a l l необходим при сканировании в поисках сети);
о команда iwconfig < i n t e r f a c e > mode m a s t e r будет работать только для карт
на базе набора Prism-2 с драйверами HostAP;
о при задании ключа для протокола WEP не забывайте, что при записи ключа в коди-
ровке ASCII, а не в шестнадцатеричном виде, нужно добавлять префикс s : .
arhontus:~# iwconfig ethO key s:idonttrustwep
Во всех этих, а также последующих примерах мы предполагаем, что интерфейс ethO
означает плату с набором Hermes, интерфейс wlanO - плату с набором Prism, a athO - плату
с набором Atheros. Когда будете работать сами, не забывайте указывать правильный ин-
терфейс. Если вызвать i w c o n f i g без параметров, то она выведет сведения обо всех име-
ющихся интерфейсах 802.11, взяв их из каталога /proc/net/dev.
Последние версии Linux Рис. Wireless Extensions
4.З. Графический поддерживают
интерфейс автоматическое сканирова-
к утилите iwconfig
ние на предмет поиска точек доступа в зоне действия и принятие по умолчанию ESSID и
Важным
частоты дополнениемточки
обнаруженной к iwconfig является
доступа. утилита
По нашим iwpriv. Еслитакое
наблюдениям, iwconfig отвечает замо-
сканирование ус-
тановку
жет общих
работать определенных
ненадежно, если всначала
стандарте параметров,
не поднять то iwpriv
интерфейс занимается
с помощью настройкой
ifconfig (путем
конкретных драйверов.
выполнения команды i fТак,
c o niwpriv может
f i g ethO конфигурировать
up). Пока интерфейсбеспроводной роуминг
не поднят, iwconfig для по-
может не-
которых драйверов карт 802.11
казывать сомнительное значение частоты. (например, wavelan_cs). Основное применение утилита
Если вы почему-либо предпочитаете простой графический интерфейс к утилите iwconfig,
то можете скачать программу xwconfig со страницы http://www.random-works.co.uk/xwconfig
(рис. 4.3).
ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ 65
66 ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ

В состав комплекта Linux Wireless Extensions включены следующие утилиты: iwevent,


iwgetid, iwlist и iwspy. Iwevent сообщает об изменениях параметров, например ESSID, ка-
нала, режима, активности протокола WEP и идентификатора сети, а также о присоедине-
нии к новой точке доступа или соте, об отвергнутых переданных пакетах и регистрации
или выходе новых клиентов в случае, когда карта работает в режиме хозяина (master
mode), то есть выступает в роли точки доступа, если управляется драйверами HostAP.
Таким образом, утилита iwevent может быть полезна при написании сценариев для мо-
ниторинга сети и даже для обнаружения вторжений. Iwgetid - это вспомогательная ути-
лита, которая показывает текущие параметры беспроводной сети, например МАС-адрес
точки доступа (АР), режим работы интерфейса, канал и ESSID. Она может найти приме-
нение в различных сценариях наряду с iwevent. Iwspy позволяет задать список имен, IP-
адресов или МАС-адресов беспроводных хостов и отслеживать качество канала связи для
каждого устройства в этом списке, пользуясь файлом /proc/net/wireless. Iwlist, - еще
одна утилита для показа параметров, у которой есть ряд весьма полезных флагов:
arhontus:~# iwlist -h
Usage: iwlist [interface] frequency
[interface] channel
[interface] ap
[interface] accesspoints
[interface] bitrate
[interface] rate
[interface] encryption
[interface] key
[interface] power
[interface] txpower
[interface] retry
[interface] scanning
При задании параметра f r e q u e n c y или c h a n n e l в команде i w l i s t выводится спи-
сок всех частот, поддерживаемых указанным интерфейсом, а также используемая в дан-
ный момент частота, например:
arhontus:~# i w l i s t e t h l freq
e t h l 14 channels in t o t a l ; available frequincies:
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ 67
68 ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ

(Этот пример относится к карте Cisco Aironet 350.)


Наиболее интересна команда i w l i s t s c a n (команды i w l i s t a p / a c c e s s p o i n t s
считаются устаревшими), которая показывает все точки доступа и независимые сети в
данном диапазоне и даже информирует об их различных параметрах, например о каче-
стве сигнала. При работе драйвера HostAP в режиме хозяина придется воспользовать-
ся старой командой i w l i s t ар, а не командой i w l i s t scan, хотя к моменту выхода
книги из печати ситуация может измениться. Кроме того, у утилиты iwevent имеется
флаг, при указании которого сообщается, что запрос на сканирование i w l i s t завер-
шен ( i w l i s t < i n t e r f ace> s c a n n i n g ) . Это может пригодиться при написании сце-
нариев. Команда i w l i s t s c a n дает возможность быстро обнаружить точки доступа в
диапазоне, не отключаясь от вашей точки доступа и не переводя карту в режим мо-
ниторинга.
Мы включили в приложение D прекрасно написанные страницы руководства по комп-
лекту Linux Wireless Extensions. Хотя многие полагают, что включение страниц руковод-
ства и RFC - это пустая трата места, но наш опыт показывает, что иногда нет адекватной
замены печатному тексту, а страницы руководства - это замечательное чтение на сон
грядущий.

Утилиты linux-wlan-ng
Есть целый ряд причин, по которым имеет смысл использовать драйверы linux-wlan-ng для
карт на базе набора микросхем Prism. Они конфигурируются в очень широких пределах,
режим RFMON можно установить без труда, а большая часть инструментов, предназначен-
ных для обнаружения сети и обеспечения безопасности, поддерживают linux-wlan-ng по
умолчанию. Фактически разработка программ для аудита безопасности беспроводных се-
тей в Linux началась как раз с карт Prism и драйверов wlan-ng. В состав комплекта linux-
wlan-ng входят утилиты wlancfg и wlanctl-ng. Это очень мощные инструменты, но их
синтаксис несколько запутан и плохо документирован. Тем не менее он тесно связан со спе-
цификациями стандарта 802.11 и определенными в нем MIB (Managed Information Block -
управляемый информационный блок) для протокола SNMP. Поэтому изучение wlancfg и
wlanctl-ng может оказаться весьма полезным. Если вы не сумеете сразу разобраться в ком-
плекте linux-wlan-ng и входящих в него утилитах, обратитесь к списку рассылки linux-wlan
по адресу http://archives.neohapsis.com/archives/devДinux-wlan/.
Сборка linux-wlan-ng выполняется без труда:
arhontus:~# ./Configure
Linux WLAN Configuration Script
The default responses are correct for most u s e r s .
Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [y]:
Build Prism2 PLX9052 based PCI (_plx) adapter driver? (y/n) [ n ] :
ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ 71

Принимайте поздравления - теперь вы ведете мониторинг канала 6 (ладно, признаемся,


что строка p2Cnf0wnName= • 31337 • не так уж и нужна). Если вы хотите графический
интерфейс, то имеется небольшая утилита WlanFE (The Linux Wireless Front End), которая
может пригодиться (рис. 4.5), а для КПК - программа gpe-wlancfg.
Однако мы призываем вас пользоваться командной строкой, и тому есть множество при-
чин, некоторые из них мы упомянем ниже.

Рис. 4.5. Графический интерфейс WlanFE к утилите wlancfg

Конфигурирование карты Cisco Aironet


ЗНАКОМСТВО С КОНФИГУРИРОВАНИЕМ ИНТЕРФЕЙСА БЕСПРОВОДНЫХ КАРТ 73

Рис. 4.7а. Графическая программа ACU для карт Cisco Aironet


74 ЗАВОДИМ ДВИГАТЕЛЬ: ДРАЙВЕРЫ И УТИЛИТЫ

Рис. 4.76. Графическая программа ACU для карт Cisco Aironet

Конфигурирование беспроводных клиентских карт


в системах BSD
Нам осталось рассмотреть утилиты ifconfig, wicontrol и ancontrol, применяемые в операци-
онных системах BSD. Страницы руководства для этих утилит включены в приложение D, и
добавить к этой информации почти нечего. Разумеется, вам интересно, как перевести свою
карту в режим мониторинга. Если ваша карта на базе набора микросхем Prism, то ни ifconfig
(FreeBSD), ни wicontrol этого сделать не смогут. Придется прибегнуть к помощи инстру-
мента prism2ctl из комплекта BSD-airtools:
arhontus:~# prism2ctl wiO -m
Если это карта Cisco Aironet и вы пользуетесь системой FreeBSD версии 5.0 или выше, то
драйвер an поддерживает переход в режим мониторинга с помощью флага -м:
arhontus:~# ancontrol -i <interface> -M 0-15

Возможности режима мониторинга определяются битовой маской, а именно:


о 0 - не сбрасывать в дамп пакеты 802.11;
о 1 - включить мониторинг 802.11;
о 2 - отслеживать все SSID;
о 4 - не пропускать маяки (beacon), мониторинг маяков создает высокую нагрузку на
хост;
о 8 - BPF должна возвращать полный заголовок, полученный от карты.
РЕЗЮМЕ 75

Бит, соответствующий SSID, должен быть обязательно поднят.


)
Стоит отметить, что в старых версиях Ethereal битовая маска 8 была обязательна. Вот
пример перевода карты Cisco Aironet в режим мониторинга:
arhontus:~# ancontrol -i wiO -M 1 -p 1
где флаг -р 1 устанавливает мощность передатчика равной 1 мВт (чтобы увеличить срок
работы аккумулятора).
Если вы излишне консервативны и предпочитаете устаревшие версии BSD, то придет-
ся поставить патч an.rfmon (см. http://www.ambrisko.com/doug/an/old/), иначе флаг -м
работать не будет.

Резюме
Прежде чем пускать ракеты и вступать в бой с врагом, неплохо бы научиться взлетать и
эффективно пилотировать самолет. Перед тем как приступать к аудиту безопасности бес-
проводной сети и осмотру места ее развертывания, надо убедиться, что выбранное обору-
дование распознается операционной системой и нормально работает в ней. Познакомьтесь
со всеми флагами необходимых команд, это не тот случай, когда достаточно научиться
нажимать кнопки в графическом интерфейсе. Знание команд поможет эффективно прове-
сти аудит и писать полезные сценарии, тем самым вы сэкономите время и автоматизируете
тесты. Кроме того, зная команды, вы сможете лучше понять инструменты для аудита безо-
пасности, описанные в следующей главе.
Выходим НА УЛИЦУ:
КАРТОГРАФИРОВАНИЕ
СЕТИ И ОСМОТР
МЕСТА РАЗВЕРТЫВАНИЯ

Армия не может воевать, не зная состояния про-


тивника, а узнать состояние противника невоз-
можно без шпионажа.
ДуМу

После того как все необходимое оборудование приобретено и настроено, когда вы позна-
комились с драйверами, конфигурационными файлами и утилитами, наступает время вый-
ти на улицу и осмотреть свою беспроводную сеть или нанести на карту беспроводные ло-
кальные сети в ближайших окрестностях. Такая прогулка полезна для здоровья и при этом
не требует бессмысленного топтания и поднимания тяжестей на тренажерах вдали от род-
ного черно-зеленого экрана. Если вы не вмешиваетесь в работу чужих сетей и не подслу-
шиваете проходящий трафик, то такая деятельность не вступает в противоречие с зако-
ном. На всякий случай изучите все же местное законодательство о беспроводных сетях,
чтобы не попасть в беду.
Осмотр места развертывания сильно отличается от беспечных прогулок или поездок в
поисках сетей. Человек, проводящий осмотр, концентрирует все внимание на одной конк-
ретной сети и детально изучает ее, нанося на карту значения отношеэния сигнал/шум во
всей зоне покрытия. Мы предлагаем также пинговать точки доступа или шлюзы в беспро-
водную сеть и протоколировать уровень потери пакетов и задержку в разных точках.
Для прогулки или поездки в поисках сетей не нужно специально тратить время и силы,
это просто вид отдыха, то есть вы можете просто идти с карманным компьютером и по до-
роге наносить на карту все, что обнаружите (а если ведете атаку, то попутно записывать
трафик). Существуют средства, позволяющие делать это, не отсоединяясь от сети, которой
вы обычно пользуетесь. Прочтя эту главу, вы ознакомитесь со всеми необходимыми инст-
рументами.
Способ осмотра места развертывания зависит от требований, условий и ваших личных
предпочтений. Мы не можем предложить никакой конкретной процедуры поиска сетей во
время поездки (в отличие, скажем, от планирования проникновения в сеть, чему посвяще-
на глава 7), поскольку ее просто не существует. Вместо этого мы попытаемся научить вас
ОБНАРУЖЕНИЕ БЕСПРОВОДНОЙ СЕТИ МЕТОДОМ АКТИВНОГО СКАНИРОВАНИЯ 77

«добывать пищу, а не получать ее из чужих рук» и расскажем о том, какие есть инструмен-
ты для мониторинга сигнала и нанесения сетей на карту.
Инструментов для обнаружения сетей великое множество, большая часть из них бесплат-
ны. Некоторые из них помимо картографирования сетей позволяют решать и более сложные
задачи, например дешифрируют WEP-трафик на лету или поддерживают базы данных сигна-
тур систем IDS. В общем случае для обнаружения беспроводной сети и протоколирования
трафика в ней достаточно просто перевести свою карту в режим мониторинга и запустить
программу tcpdump на соответствующем интерфейсе. Прочие функции - это дополнитель-
ные удобства, которые помогают визуализировать обнаруженные сети и декодировать тра-
фик. Конечно, читать распечатку tcpdump не очень просто, зато так вы научитесь понимать
протоколы 802.11 и события сети. Ничто так не помогает освоиться с сетями 802.11, как ана-
лиз трафика с помощью tcpdump или Ethereal (если вы предпочитаете графический интер-
фейс). Еще одна удобная возможность - это мониторинг уровня высокочастотного сигнала и
других параметров сети (например, watch - n l " d a t e >>/home/survey-wlanO; c a t
/ p r o c / n e t / w i r e l e s s I grepwlanO » /home/survey-wlanO").
Существует три способа обнаружения беспроводных сетей: активное сканирование,
анализ трафика в режиме мониторинга и поиск точек доступа или случайных сот с помо-
щью команды i w l i s t s c a n n i n g , что, впрочем, является одним из вариантов активного
сканирования.

Обнаружение беспроводной сети


методом активного сканирования
Активное обнаружение сети реализуют программы Netstumbler и MiniStumbler - работаю-
щие под Windows инструменты, которые чаще всего применяют искатели сетей во всем
мире. Иногда программу Netstumbler рекомендуют в качестве инструмента ИТ профессио-
налам, но, как мы покажем ниже, это не очень хорошая идея.
Под активным сканированием понимают отправку пробного фрейма с запросом и ожидание
ответа на него. Из полученного ответа извлекается ESSID сети, канал, индикатор включенного
протокола WEP, уровень сигнала и поддерживаемая скорость передачи в битах.
Исходные тексты программы Netstumbler не опубликованы и не существует официаль-
ной информации о ее внутреннем устройстве. Однако Hlkari из DachbOden Labs исследо-
вал, каким образом Netstumbler осуществляет сканирование, и реализовал аналогичную
технику в программе dstumbler, вошедшей в пакет BSD-airtools.
Похоже, что работа Netstumbler основана на недокументированной возможности биб-
лиотеки hcf, которую компания Lucent предоставляет для написания драйверов карт на
базе набора Hermes, и драйвера wavelan_cs для Linux (тоже с закрытыми исходными тек-
стами). Netstumbler посылает клиентской карте запрос на сканирование, выдавая команду
0x11 с параметром OxFlOl. Эта команда говорит карте о необходимости посылать проб-
ные запросы и сохранять данные об ответивших хостах. Ответы обрабатываются асинх-
ронно: когда карта получает результаты, она посылает информационное сообщение о со-
бытии обработчику прерываний в драйвере. Тот же обработчик отвечает и за чтение
других буферов, например, приема или передачи. Информационные события посылаются
в виде стандартной структуры l t v , содержащей длину, код и буфер данных, поэтому при
ОБНАРУЖЕНИЕ БЕСПРОВОДНОЙ СЕТИ МЕТОДОМ АКТИВНОГО СКАНИРОВАНИЯ 79

u_intl6_t wi_ssid_len; /* длина ssid */


u_intl6_t wi_ssid[32]; /* ssid (название точки доступа) */
u_int8_t wi_srates[10] ; /* список скоростей, поддерживаемых
точкой доступа, завершается нулем (нужно будет убрать старший бит
(&0x7f) и разделить на 2 */
u_int8_t wi_rate; /* скорость, на которой был получен ответ
на пробный запрос (ОхОа - lmbit, 0x14 - 2mbit, 0x37 - 5.5mbit, Охбе -
llmbit) */
u_int8_t wi_rsvd; /* байт-заполнитель для выравнивания
буфера на 16-битовую границу */
};
Hlkari успешно реализовал эту технику в программе dstumbler, кроме того, она поддер-
живает еще и анализ трафика в режиме мониторинга. Отметим еще, что, вопреки всеобщей
уверенности в том, что Netstumbler может работать только для карт Lucent на базе набора
Hermes, последняя версия прекрасно ведет себя и при использовании карт с набором Prism.
Мы убедились в этом, взяв PCMCIA-карту Netgear 802.11b. Возможно, результаты Hlkari
были взяты на вооружение разработчиками Netstumbler.
Хотя отправка фрейма ответа на пробный запрос - это нормальное поведение точки
доступа, описанное в стандарте 802.11, оно не обязательно должно быть реализовано на
практике. Так называемые закрытые сети не будут отвечать на пробные запросы. Кроме
того, в некоторых случаях фреймы, содержащие ESSID, которые заведомо использует про-
грамма Netstumbler и ей подобные, могут быть отфильтрованы квалифицированным адми-
нистратором. Поэтому таким способом обнаруживаются не все сети. Хуже того - чтобы
Netstumbler обнаружила сеть, до нее еще должен дойти фрейм с пробным запросом. Это
значит, что обнаруживаются лишь сети в области действия передатчика вашей карты, а она
невелика по сравнению с мощной точкой доступа, подключенной к антенне с большим
коэффициентом усиления (и про усилитель не забудьте). Водитель машины, вооруженный
программой Netstumbler, может находиться внутри зоны Френеля протяженного двухто-
чечного канала и все же не увидеть его - края слишком далеки. Поэтому чем выше эквива-
лентная изотропно излучаемая мощность (EIRP), тем больше сетей удастся обнаружить
методом активного сканирования. Негативные последствия такой методики очевидны:
о вас тоже легко обнаружить (техника обнаружения пользователей Netstumbler под-
робно обсуждается в главе 15);
о вы тратите драгоценный заряд аккумуляторов, поэтому время сканирования огра-
ниченно.
Не забудьте еще, что активное сканирование не имеет ничего общего с анализом тра-
фика; те, кто называет программу Netstumbler анализатором беспроводных протоколов,
должны серьезно заняться основами теории беспроводных сетей. Netstumbler и подобные
программы не протоколируют ничего, кроме фреймов с ответами на пробные запросы,
поэтому они не могут применяться для анализа трафика и поиска неполадок. Это также
означает,
речь
шаются
пользованиичто аи
использование
Поневышеуказанным
идет,
ограничения
вести Netstumbler
имеетпередачу
хороший
напричинам
мощность,
винтерфейс
диапазонезаконно
программу
налагаемые
сISM в любом месте,
распространенными
Netstumbler,
никому
Федеральной так как
не запрещено,
хотя
комиссией о подслушивании
GPS-приемниками,
она удобна,
если
потолько
связи
проста
(FCC).
ненельзя
нару-
в ис-
80 А ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

рекомендовать в качестве инструмента для профессионалов и тех, кто всерьез озабочен


тестированием возможности проникновения в сеть и поиском неполадок в сети. Что же
касается «крутых» взломщиков, то вряд ли они будут прибегать к активному сканирова-
нию, поскольку предпочитают скрытность, удаленность и наличие достаточного времени
(лимитированного емкостью аккумуляторов).
Конечно, Netstumbler останется любимым инструментом дилетантов, которые не наме-
рены обнаружить все сети в округе или предоставлять услуги по осмотру месту и обеспе-
чению безопасности. Надо еще добавить, что инструменты для Windows, которые поддер-
живают режим мониторинга и анализ беспроводных протоколов, являются коммерческими
и весьма недешевыми, a Netstumbler бесплатна.

Инструменты для обнаружения сети


в режиме мониторинга и анализа трафика
Самые распространенные и полезные инструменты для обнаружения беспроводных сетей
и анализа трафика используют режим мониторинга в сочетании с перебором всех DSSS-
каналов. Это позволяет обнаруживать беспроводные хосты путем перехвата и анализа
проходящего трафика, в том числе всех управляющих и административных фреймов. Един-
ственным фактором, ограничивающим возможность обнаружения сети, в этом случае ста-
новится приемная чувствительность карты, да и ее можно компенсировать за счет приме-
нения антенн с большим коэффициентом усиления и двунаправленных усилителей.
Следующая часть этой главы посвящена описанию анализаторов беспроводных прото-
колов, которые мы с пользой применяли для тестирования возможности проникновения в
сеть, работая в компании Arhont Ltd. Рассмотрены как полнофункциональные развитые
инструменты, так и простые сценарии на языке интерпретатора команд. Хотя несложные
программы и сценарии, возможно, и не так впечатляют, но и для них находится достойное
применение. Их легко включить в собственные сценарии, они потребляют минимум ресур-
сов и полезны для целей обучения, в частности, начинающих разработчиков инструмента-
рия, относящегося к безопасности.

Программа Kismet
Программа Kismet (http://www.kismetwireless.com) была нашей «рабочей лошадкой» на
протяжении многих лет. Это универсальная программа, которая эволюционировала от ин-
струмента искателя сетей на колесах до полнофункционального анализатора протоколов
стандарта 802.11 и средства создания систем IDS. Возможности Kismet относящиеся к си-
стемам IDS, рассматриваются в главе 15, здесь же мы займемся только вопросами обнару-
жения сетей и дампа трафика.
Kismet легко устанавливается и конфигурируется в любой UNIX-подобной операцион-
ной системе, ее также можно использовать в Windows в сочетании с Cygwin. Для этого до-
статочно собрать Kismet такой командой:
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА л 81

Обратите внимание на строку --enable-wsplOO в команде c o n f i g u r e . Для Kismet


и любого другого некоммерческого анализатора, использующего режим мониторинга на
платформе Windows, характерна общая проблема - широко доступные драйверы Win32 по-
просту не поддерживают этот режим, а дезассемблировать и переписывать их запрещено за-
коном. Обойти эту сложность можно, купив RFGrabber на сайте http://www.wildpackets.com/
(ранее устройство называлось WSP100 Remote 802.11b Sensor и продавалось на сайте
http://www.networkchemistry.com/) или Neutrino Distributed 802.11b Sensor на сайте
http://www.networkchemistry.com/. Эти аппаратные сенсоры легко интегрируются с Kismet;
достаточно добавить строку source=wsplO.O , " h o s t " : " p o r t " в файл kismet.conf.
В сценарии k i s m e t _ m o n i t o r есть часть, связанная с конфигурированием wsplOO:
"wsplOO")
echo "Enabling a wsplOO at $DEVICE for channel $CHANNEL"
if test "$HOSTIP" == ""; then
HOSTIP="hostname - i v
echo '/hostname -i' thinks our IP is $HOSTIP. Set HOSTIP manually
if this is wrong."
echo " ie, HOSTIP=1.2 .3 .4 kismet__monitor"
fi
WSPDEVICE= N echo $DEVICE I cut -f 1 -d: \-
WSPPORT= N echo $DEVICE I cut -f 2 -d: \-
# sensor::loghostaddress
snmpset -c public $WSPDEVICE .1.3.6.1.4.114422.1.1.5 a $HOSTIP
# sensor::channel
snmpset -c public $WSPDEVICE .1.3.6.1.4.114422.1.3.1 i $CHANNEL
# sensor::serverport
snmpset -c public $WSPDEVICE .1.3.6.1.4.114422.1.4.1 a $WSPPORT
# sensor: .-running
snmpset -c p u b l i c $WSPDEVICE .1.3.6.1.4.114422.1.1.4 1 1

Этот сценарий конфигурирует сенсор по протоколу SNMPvl, в частности устанавливает


IP-адрес устройства, номер прослушиваемого канала и UDP-порт, заданный в файле kismet.conf
для передачи перехваченного трафика. Перебор каналов нужно устанавливать на сенсоре
вручную или командой k i s m e t _ h o p p e r -s <hop_sequence> -v < v e l o c i t y > &. В ко-
манде snmpset указано сообщество (community) public, да и сам протокол SNMPvl имеет
общеизвестные небезопасные свойства (например, отсутствие аутентификации). Поэтому
сенсор очень уязвим для атак со стороны проводной локальной сети, так что стоит задать
какое-нибудь другое SNMP-сообщество на сенсоре. После такого изменения не забудьте
модифицировать сценарий k i s m e t _ m o n i t o r . Вообще использование таких сенсоров в
сочетании с Kismet может стать основой хорошего решения для мониторинга распреде-
ленной сети и обнаружения вторжений, не заставляющего Windows-администратора поки-
дать мир Microsoft. Однако такое решение не масштабируется для тестирования удален-
ных вторжений и несколько дороговато. Как и во многих других случаях, дешевле и проще
использовать ОС Linux или BSD.
Нам никогда не доводилось слышать о проблемах при сборке программы Kismet в этих
ОС, и ее всегда можно инсталлировать из дистрибутивных пакетов, хотя мы все же реко-
мендуем забрать самые свежие исходные тексты Kismet из CVS-хранилища и откомпилировать
82 А ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

их самостоятельно. Сценарий c o n f i g u r e для Kismet имеет много флагов, в том числе


- - e n a b l e - w s p l O O для включения поддержки удаленного сенсора WSP100 в конфи-
гурационных файлах и - - e n a b l e - z a u r u s для активизации звукового сигнала на КПК
Sharp Zaurus при обнаружении сети. Если вы хотите выполнить кросс-компиляцию
Kismet для Zaurus, наберите следующую команду:
arhontus:~# ./configure --host=arm-linux --disable-pcap
--enable-zaurus --disable-setuid && make
Для дистрибутива iPAQ Familiar команда будет такой:
arhontus:~# ac_cv_linux_vesr=<your kernel version>
./configure --host=arm-linux --with-pcap=linux
--disable-setuid && make
Единственное, от чего действительно зависит сборка Kismet, - это библиотека
wiretap, входящая в состав Ethereal, и мы предполагаем, что у вас уже стоит ее после-
дняя версия. Ethereal неоценима для изучения дампов, формируемых Kismet. Кроме
того, Kismet умеет пользоваться библиотекой wiretap для сброса и обработки этих
дампов. Если вы планируете работать с GPS-приемником, то следует установить продукт
GpsDrive (http://www.kraftvoll.at/software/), - в его состав входит демон GpsDrive, с
которым Kismet умеет общаться. Наконец, если вы хотите произвести впечатление на
своих клиентов, работодателей или коллег в разговоре о Kismet, можете установить ге-
нератор речи Festival, поддерживаемый Kismet. Чтобы Festival работал, нужно будет
установить еще подходящие пакеты синтезированной речи.
После сборки (в BSD пользуйтесь gmake, а не make) внимательно изучите файл /usr/
local/etc/kismet.conf. Нужно будет сделать следующее:
о отключить МАС-фильтр;
о задать, какой непривилегированный пользователь может запускать Kismet;
о разрешить устанавливать соединения с IP-адреса 127.0.0.1;
о задать m a x c l i e n t = l (если вы не собираетесь использовать Kismet в качестве IDS-
сервера, к которому может подключаться несколько клиентов);
о задать источник перехватываемых пакетов (например, s o u r c e = c i s c o , e t h l , cisco);
о включить поддержку GPS (gps=true), если необходимо;
о установить интервал между операциями записи (в секундах; 0, если вы не хотите
сбрасывать в дамп никаких данных);
о отрегулировать звук с помощью команды p l a y и генератора речи Festival, задайте
m e t r i c = t rue, если вы не пользуетесь устаревшими системами измерения расстояния;
о установить опорные точки (waypoints) GPS;
о проверить типы файлов дампов и протоколов (значения по умолчанию нас уст-
раивают);
о задать значение f a l s e для параметров n o i s e l o g и b e a c o n l o g (информация о
первом маяке все равно протоколируется, а отказ от протоколирования последую-
щих маяков от той же точки доступа позволит сэкономить много места на диске);
о остальные настройки, скорее всего, трогать не придется.
Теперь поднимите интерфейс, по которому вы собираетесь вести перехват, с помощью
ifconfig (рекомендуется), запустите сценарий k i s m e t _ m o n i t o r от имени пользователя
root, затем запустите kismet_hopper (если только вы не пользуетесь картой Cisco Aironet),
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА А 83
войдите как пользователь, заданный в конфигурационном файле, и запустите Kismet, воз-
можно, указав интерфейс для перехвата с помощью флага - с , например:
arhontus:~# kismet -с cisco,wifiO,cisco
Примечание: в более поздних ядрах нужно ввести
arhontus:~# kismet -с cisco_wifix,ethl:wifiO,cisco_wifix
Этот пример выбран неслучайно, поскольку, если задать c i s c o , w i f i O , c i s c o B фай-
ле kismet.conf, то вы получите очевидную ошибку:
arhontus:~# kismet_monitor
Using /usr/local/etc/kismet.conf sources...
Enabling monitor mode for a cisco card on wifiO:
/usr/local/bin/kismet_monitor: line 136: /proc/driver/aironet/
wifiO/Config: No such file or directory
/usr/local/bin/kismet_monitor: line 137: /proc/driver/aironet/
wif iO/Conf ig: No such file or directory
/usr/local/bin/kismet_monitor: line 138: /proc/driver/aironet/
wif iO/Conf ig: No such file or directory
Однако, если в конфигурационном файле указан интерфейс ethl, а с помощью флага -с -
интерфейс wifiO, то на консоли появится знакомая картинка и вы сможете наблюдать беспро-
водной трафик (если он есть, конечно). В случае драйверов, входящих в состав последних ядер
Linux или взятых из CVS-хранилища проекта Airo-Linux на сайте Sourceforge, нужно будет ука-
зать другой флаг Kismet. Посмотрите правильный синтаксис команды в файле kismet.conf, по-
ставляемом вместе с последней версией инструмента. Программа Kismet поддерживает мно-
жество разных драйверов, в том числе последние версии madwifi и Prism54.
Число флагов у программы Kismet воистину впечатляет (получить подсказку можно с
помощью флага - h ) . Наиболее интересны, пожалуй, следующие:
о i - подробная информация о выбранной сети;
о 1 - показывать уровни мощности беспроводной карты;
о d - выводить в дамп читаемые строки;
o r - график скорости передачи пакетов;
о а - статистика;
о р - выводить в дамп типы пакетов.
На рис. 5.1 показан экран Kismet в случае, когда задан флаг включения в дамп типа пакета.
Освойтесь с интерфейсом Kismet. Эта программа выводит множество полезных инфор-
шихся
Netstumbler
мационных
только
чанию)
лету.
для
мер
шестнадцатеричном
TCP,
со стандартом
распознавания
Orinoco
User
При
или
информационный,
конфигурации
Datagram
обнаружении
неправильно
сообщений,
обозначаются
Lynx
802.11
T1/E1
Protocol
IP
виде
микроволновые
точки
(Address
сконфигурированных
вIP-адресов
или
том
но
буквой
(см.
-Mmwaves
доступа
не
числе
UDP,
kismet.conf),
Resolution
административный
N,сетей
Dynamic
предупреждения
а(F
каналы,
SDH/SONET).
некрасным
Kismet
Р),
Protocol
Host
об
то
клиентов
работающие
обнаружении
Kismet
сообщает,
цветом),
Configuration
трафик
-Если
оARP,
заводской
(Р,
может
задать
овпробные
какой
Transmission
(D,
пробных
диапазонах
сетей,
дешифрировать
обычно
Protocol
правильный
протокол
(принимаемой
запросы
взапросах
которых
это
ISM/UNII,
Control
- DHCP).
несовместимые
был
отключ
от
программы
передается
пакеты
применен
Protocol
потеряв-
поФормат
напри-
WEP
умол-
нав-
84 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Рис. 5.1. Интерфейс программы Kismet на базе библиотеки ncurses

генерируемых Kismet дампов очень удобен для анализа: пакеты хранятся в формате файла
рсар (совет: для их просмотра пользуйтесь программой Ethereal), а перечень обнаружен-
ных сетей представлен в форматах ASCII, CSV и XML. Информация об опорных точках GPS и
об устройствах Cisco, исполняющих протокол Cisco Discovery Protocol (CDP), также хранит-
ся в отдельных ASCII-файлах. Сведения о сетях Kismet представляет в таком формате:
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 85

Рис. 5.2. kismet_qte - графический интерфейс для Kismet на базе библиотеки Trolltech Qt

Если вы хотите представить протоколы Kismet в виде аккуратного html-файла для раз-
мещения на своей Web-странице, то поможет программа Kismet Log Viewer (KLV, http://
www.mindflip.org/klv). Она принимает на входе файлы протоколов в формате XML и фор-
мирует набор html-файлов, которые легко просматривать в браузере. Кроме того, она по-
зволяет пользователям Snort сгенерировать отдельную страницу с результатами работы
Snort для каждого ESSID, для которого в протоколе есть данные. Наконец, в состав KLV вхо-
дит сценарий Kismet Log Combiner, который помогает «склеить» несколько протоколов в
формате XML и DUMP.
Отсутствие стандартного графического интерфейса - это преимущество Kismet, так как вам
не надо запускать X Windows, что позволяет сэкономить время и заряд аккумуляторов. Но при
этом существует графическая оболочка Wirekismet, разработанная для КПК и способная рабо-
тать на ноутбуке. У Wirekismet имеются дополнительные функции, в частности перевод
клиентской карты в режимы RFMON и Infrastructure, подключение к обнаруженным сетям,
включение клиента DHCP, выбор из списка сервера Kismet и т.д. Еще одним очень удобным
графическим интерфейсом для Kismet является программа kismet_qte, написанная на базе
библиотеки Qt от компании Trolltech (http://sourceforge.net/projects/kismet-qte/, рис. 5.2).
Она может также выступать в роли инструмента для конфигурирования соединения между
клиентом и сервером. Наконец, лучшей из имеющихся графических программ для ноутбуков,
вероятно, следует признать программу Gkismet (http://gkismet.sourceforge.net/); см. рис. 5.3,
а также скриншоты на сайте Sourceforge.
Поскольку КПК работают от аккумуляторов дольше, чем ноутбуки, то в этом случае при-
менение графических оболочек Kismet оправдано с точки зрения энергопотребления и
позволяет продемонстрировать «ламерам» (то есть руководству) проблемы с обеспечением
безопасности в беспроводных сетях.
86 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Рис. 5.З. Gkismet- графический интерфейс для Kismet

Интеграция Kismet с GpsDhve


Иногда полезно повторно посетить точку доступа, обнаруженную во время поездки. Но в
большом городе можно за короткое время найти сотни точек доступа. Как же выбрать нуж-
ную из длинного списка точек, получившегося по результатам поездки? Для решения этой
задачи лучше всего подходит GPS-устройство, подсоединенное к ноутбуку и позволяю-
щее отслеживать точное положение всех точек доступа. Хорошо бы также иметь инстру-
мент, который наносил бы точки доступа на карту. Без особых усилий для этой цели
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 87

можно приспособить программу GpsDrive. В составе Kismet поставляется и другая утили-


та - Gpsmap, которая, на наш взгляд, очень полезна для графического представления ре-
зультатов, собранных Kismet за время поездки, или осмотра места развертывания сети кли-
ента. В этом разделе мы опишем настройку Kismet, GpsDrive и Gpsmap для совместной
работы.
В поездку мы взяли с собой Haircom GPS Receiver HI-204E - весьма эффективный и в то
же время незаметный GPS-приемник с магнитной присоской, который можно приобрести
на сайте http://www.cheeplinux.co.uk. Во время работы его достаточно прикрепить на
крышу машины, присоединить к USB-порту ноутбука, выполнить команду m o d p r o b e
р 1 2 3 03, a3aTeMgpsd -К -р / d e v / t t y U S B O (имя устройства может быть другим) инако-
нец запустить саму программу Kismet. При этом Kismet будет записывать координаты обнару-
женных беспроводных сетей в файл, который называется как-то вроде Kismet-XXX.gps. Первая
часть задачи решена: мы сохранили широту и долготу точек доступа, так что потом к ним мож-
но будет вернуться.
Ну а если надо нанести координаты сетей на карту? Воспользуемся двумя хорошо известными
программами с открытыми исходными текстами: GpsDrive и Gpsmap. Gpsmap берет сгенериро-
ванный Kismet выходной файл, загружает из Internet карту района и наносит на нее точки дос-
тупа. Инструмент весьма гибкий и может заодно интерполировать мощность сети, оценить ее
дальность действия и выполнить множество других полезных функций (см. карту на рис. 5.4).

Рис. 5.4. Карта, сгенерированная Gpsmap


88 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Еще одна полезная утилита для GPS-навигации - это GpsDrive. Для простоты мы опишем
лишь те ее функции, которые относятся к Kismet. Если вы хотите ознакомиться с этой про-
граммой получше, зайдите на сайт проекта http://gpsdrive.kraftvoll.at, где приведена об-
ширная информация о настройке GPS в Linux. Для интеграции GpsDrive с Kismet потребу-
ется сервер MySQL с базой данных, в которую GpsDrive будет записывать свои данные.
Поэтому перед запуском GpsDrive выполните следующие действия:
о установите сервер MySQL. Создайте базу данных и заведите учетную запись для
пользователя GpsDrive;
о внесите в конфигурационный файл GpsDrive, который обычно называется -/.gpsdrive/
gpsdriverc, настройки MySQL;
о запустите программу gpsd, затем Kismet и напоследок GpsDrive.
Если все пройдет нормально, то в левом нижнем углу экрана появится маленький лого-
тип Kismet. В случае каких-либо проблем почитайте файлы README.SQL и README.kismet,
находящиеся в каталоге с исходными текстами GpsDrive. Результат интеграции GpsDrive и
Kismet должен выглядеть, как показано на рис. 5.5.

Рис. 5.5. Интеграция GpsDrive и Kismet

Научившись работать с этими иструментами, вы легко сможете вернуться к любой из се-


тей, обнаруженных во время прежних поездок. Достаточно лишь указать GpsDrive или лю-
бой другой системе GPS-навигации точку на карте, соответствующую месту нужной сети.
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 89

Программа Wellenreiter
Если вам нужен чрезвычайно простой графический анализатор беспроводных сетей, мо-
жете дальше не искать. Помимо обязательных pcmcia-cs, libpcap и tcpdump вам еще при-
дется поставить Gtk-Perl (http://www.gtkperl.org/download.html) и модуль Net-Pcap Perl
(http://search.cpan.org/search?mode=module&query=net%3A%3Apcap). После этого можно
запускать Wellenreiter (http://www.wellenreiter.net) командой p e r l W e l l e n r e i t e r . p i .
Для карт на базе набора микросхем Prism (с драйвером wlan-ng), HostAP, Cisco Aironet (с
драйвером Sourceforge airo-linux) и Hermes (с драйвером orinoco_cs) не требуется никако-
го конфигурирования. Сканирование с помощью Wellenreiter не вызывает трудностей. Вы
даже можете переключаться между окнами трафика и протокола и наблюдать пакеты и
события в реальном времени (рис. 5.6).
Дополнительно можно выбрать звуки, издаваемые при возникновении событий. Wellenreiter
сохраняет собранные данные в начальном каталоге пользователя в виде двух файлов: сге-
нерированного tcpdump (с расширением .dump) и ASCII-файла со списком параметров се-
тей с расширением .save.

Рис. 5.6. Утилита Wellenreiter


90 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Программа Airtraf
Airtraf - это интуитивно понятный инструмент для обнаружения сетей и сбора статистики
об использовании полосы частот и трафике. Инсталляция несложна - нужно лишь убедить-
ся, что предварительно установлена библиотека libncurses, разархивировать tar-файл и, как
обычно, выполнить команду make a l l && make i n s t a l l . Затем запустите команду
a i r t r a f -1 и посмотрите, как airtraf распознает ваши беспроводные интерфейсы:

Рис. 5.7. Инструмент Airtraf для обнаружения беспроводных сетей


ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 91

Можно также просто запустить Airtraf, и она переведет вашу карту в режим RFM0N, ког-
да вы скажете. Если вы хотите перевести карту в режим мониторинга, не зная правильных
команд, воспользуйтесь сценарием kismet_moni t o r или самой программой Airtraf (про-
стые сценарии для входа в режим мониторинга и выхода из него находятся в каталоге
airtraf/src/scripts).
У программы Airtraf довольно богатое меню (рис. 5.7), которое позволяет провести ска-
нирование каналов в поисках точек доступа (пункт Scan Channels for АР Activity (Скани-
рование каналов на предмет активности АР)), а затем нажатием клавиши Esc выйти в глав-
ное меню, выбрать конкретную точку доступа и следить за ее активностью.
Уникальными для Airtraf являются экраны General Protocol Statistics (Общая статисти-
ка протоколов) - рис. 5.8 - и TCP Performance Statistics (Статистика производительности
TCP). На экране с общей статистикой видно, как полоса частот используется разными про-
токолами, а в статистике производительности TCP показаны ТСР-соединения с выбранным
хостом, а также все обнаруженные беспроводные хосты, число повторно переданных па-
кетов и байтов и данные о том, какая доля частотного диапазона не используется.

Рис. 5.8. Общая статистика протоколов в программе Airtraf

Программу Airtraf можно запустить и в режиме демона. Ясно, что статистику трафика мож-
но сбросить в файл, но просматривать этот файл «умеет» только сама Airtraf. Во время про-
смотра файла статистики можно легко воспроизвести сохраненный в нем трафик. Основ-
ной недостаток Airtraf состоит в невозможности ввести ключ WEP, а затем дешифрировать
92 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

или отслеживать беспроводной трафик в реальном времени. Именно по этой причине вы не


видите на представленных скриншотах трафика на верхних уровнях стека протоколов.

Программа Gtkskan
Gtkskan (http://sourceforge.net/projects/wavelan-tools/) - это простой сканер беспровод-
ных сетей для карт с набором Hermes, работающих под управлением драйвера orinoco_cs с
патчем от группы Shmoo. Как мы знаем из собственного опыта, он может работать и для
карт Prism с драйвером linux-wlan-ng, достаточно лишь указать соответствующий интер-
фейс (например, wlanO). Пользоваться программой Gtkskan совсем несложно (рис. 5.9), и
она к тому же поддерживает GPS-приемники NMEA.

Рис. 5.9. Программа Gtkscan

Для сборки и запуска Gtkscan понадобится библиотека Berkeley db (http://www.


sleepycat.com). Нужна версия не ниже 1.85, в противном случае запускайте сцена-
рий, / c o n f i g u r e 2 .х/3 .х с флагом - - e n a b l e - c o m p a t l 8 5 . Gtkscan не поддер-
живает карт Cisco Aironet, но ее можно легко модифицировать для этой цели.

Программа Airfart
Разработчики этого инструмента пишут: «Идя по стопам основных игроков на рынке бес-
проводной связи, мы решили, что для программы Airfart лучше всего подходит префикс
air. Затем мы изменили порядок букв в слове traf и получили fart (пукать). Стало быть, наша
задача - выискивать беспроводные устройства, которые «пахнут». Airfart - это еще одна
графическая программа для обнаружения беспроводных сетей, написанная на C/C++ с ис-
пользованием библиотеки GTK+. Она поддерживает только карты с набором микросхем
Prism и драйвером linux-wlan-ng. Ее отличительная особенность - использование ранее
обсуждавшихся заголовков Prism (ARPHRD_IEEE80211_PRISM) для мониторинга уров-
ня сигнала в обнаруженных сетях 802.11. Для карт на базе недавно появившегося набора
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 93

микросхем Prism3 драйверы linux-wlan-ng неправильно определяют значения уровня сиг-


нала. Если ваша карта относится к их числу, Airfart будет показывать, что сигнал слабее,
чем на самом деле. Для получения истинных значений умножайте то, что видите, пример-
но на 2,5. На рис. 5.10 представлено главное окно Airfart.

Рис. 5.10. Программа Airfart

В этом и некоторых других случаях мы заимствовали скриншот с Web-сайта проекта


(для Airfart это http://airfart.sourceforge.net), поскольку наш собственный снимок ока-
зался бы довольно скучным. На нашем стенде есть только три сети 802.11b, причем одну
из них (с закрытым ESSID) Airfart не определила.

Программа Mognet
Если вы любите язык Java, то вам понравится и программа Mognet. Это компактный анализа-
тор беспроводных протоколов, написанной на чистом Java для КПК. Для инсталляции Mognet
(http://www.node99.org/projects/mognet/) понадобится комплект Java Development Kit (JDK),
необходимый, чтобы откомпилировать библиотеку jpcap, поставляемую в составе дистрибу-
тива. Получить самую свежую версию JDK можно на сайте http://www.sun.com или http://
blackdown.org. Убедитесь, что переменная окружения JAVA_HOME в сценарии i n s t a l l . s h
указывает на каталог с Java. После компиляции jpcap можно запустить Mognet с помощью
JDK или из среды Java Runtime Environment (JRE): Java Mognet < i n t e r f a c e > . Можно
также запустить Mognet на консоли для получения дампа беспроводного трафика:
arhontus:~# Java ConsoleCapture wlanO
opening device wlanO
wrote frame 82
Фреймы записываются в файл протокола в формате рсар (mognet-<timestamp>.log), ко-
торый создается в каталоге Mognet. В отличие от Wellenwriter, Mognet не переводит бес-
проводной интерфейс в режим мониторинга автоматически; это надо сделать вручную
перед тем, как запускать программу. С другой стороны, поддерживаются все клиентские
карты 802.11. На рис. 5.11 показано окно программы Mognet.
94 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Рис. 5.11. Программа Mognet в действии

Среди функций программы стоит отметить: вывод перехваченных данных в реальном


времени; поддержку всех общих и специфичных для некоторых фреймов заголовков, оп-
ределенных в стандарте 802.11; представление любого фрейма в шестнадцатеричном и
ASCII-формате; загрузку и сохранение сеансов перехвата в формате libpcap. Таким обра-
зом, на КПК при наличии Ethereal программа Mognet может оказаться просто бесценной.
Заметим, что на КПК Sharp Zaurus по умолчанию устанавливается среда исполнения Java
JeodeRuntime, поэтому инсталляция и эксплуатация Mognet на этих КПК - совсем простая
задача. Известно, что Mognet путает широковещательные сообщения по протоколу IPP с
фреймами 802.11b, но это фактически ошибка в старых версиях libpcap. Мы видели, что
Mognet может спутать не содержащие ESSID фреймы-маяки в закрытой сети с фреймами
запроса на присоединение к сети.

Программа WifiScanner
WifiScanner - это консольный инструмент для поиска сетей 802.11 (с помощью карты на
базе набора Prism с драйвером linux-wlan-ng), создания дампа беспроводного трафика и
формирования списков обнаруженных точек доступа и случайных сот:
Для сборки WifiScanner из исходных текстов понадобится часть объектного кода
драйверов linux-wlan-ng, так что компилируйте драйверы и утилиты для набора Prism,
не выполняя команду make c l e a n . Еще потребуется исходный текст Ethereal и при-
дется вручную откомпилировать входящую в поставку Ethereal библиотеку wtap. Ко-
нечно, не обойтись и без ncurses. Если вы не хотите собирать WifiScanner самостоя-
тельно или это не получается, то можно взять уже откомпилированный исполняемый
файл с сайта http://sourceforge.net/projects/wifiscanner/. Для работы WifiScanner ну-
жен широкий (минимум 132 колонки и 50 строк) экран, подойдет раскрытое до макси-
мума окно xterm.
96 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Рис. 5.12. Консольная программа WifiScanner

Прочие сценарии и утилиты


К тому моменту, когда на сцене появились основные программы для обнаружения беспро-
водных сетей и анализа протоколов, уже были написаны и широко применялись разнооб-
разные командные инструменты попроще. В основном их авторами были энтузиасты, за-
нимающиеся поиском беспроводных сетей с клиентскими картами в руках.
Комплект подобных инструментов был основан на утилите Prismdump, предназначен-
ной для создания дампа фреймов 802.11 в виде файла в формате рсар. В него входила
программа Prismsnort - комбинация Prismdump с ранней версией Airsnort и Prismstumler,
которая считалась улучшенным вариантом с добавлением поддержки GPS (за счет интег-
рации с демоном gpsd) и графического интерфейса на базе библиотеки GTK. Все эти ин-
струменты более не поддерживаются и зависят от уже ушедшего в прошлое интерфейса
PF_NETLINK, тогда как все современные анализаторы протоколов 802.11 уже перешли на
интерфейс PF_PACKET, а текущая версия ИЬрсар прекрасно поддерживает формат фрей-
мов стандарта 802.11. Таким образом, все инструменты, основанные на Prismdump, сле-
дует признать устаревшими. Тем не менее мы включили их описание в книгу, отдавая
дань уважения прошлому и ради образовательных (с точки зрения разработки программ-
ного обеспечения) целей.
При сборке основанных на Prismdump инструментов с той библиотекой wtap, которая
входит в состав текущей версии Ethereal, могут возникнуть сложности. Prismdump исполь-
зует библиотеку wtap для создания своих файлов протоколов:
dump_file = w t a p _ d u m p _ f d o p e n ( f i l e n o ( s t d o u t ) , WTAP_FILE_PCAP,
WTAP_ENCAP_IEEE_802_ll, 2344, &wtap_error);
<опущено>
/* Теперь можно сохранить фрейм в файле дампа */
wtap_dump (dump_file, &packet_hdr_info, NULL, &msgbuf[oi],&wtap_error);
Отметим, что при использовании Prismdump совместно с драйверами linux-wlan-ng
и библиотекой libpcap, которая поддерживает интерфейс PF_PACKET, программа зацик-
лится и ее нельзя будет остановить нажатием клавиш Ctrl+C (правда, команда k i l l -9
выручит).
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 97

Как PF_NETUNK, так и PF_PACKET - это интерфейсы ядра, которые позволяют передавать
полученные из сокетов данные из адресного пространства ядра в пользовательское адресное
пространство. PF_PACKET поддерживает дополнительные возможности для передачи пакетов
пользовательской программе, в том числе используемые обсуждавшимися выше анализатора-
ми протоколов. Именно этот интерфейс применяется в библиотеке libpcap и всех собираемых
вместе с ней инструментах. С момента перехода на интерфейс PF_PACKET для tcpdump (и
Ethereal) открылась возможность перехватывать трафик 802.11 в реальном времени. Мы не
стали рассматривать программы tcpdump и Ethereal в этой главе, так как они предназначены
отнюдь не только для анализа беспроводных протоколов. Но вы должны всегда помнить об их
наличии и применять на практике. Развитые возможности Ethereal (рис. 5.13) делают анализ
трафика 802.11 легким и приятным занятием (если, конечно, вы знакомы с протоколами).

Рис. 5.13. Анализатор сетевых протоколов Ethereal

Программа позволяет отфильтровывать фреймы-маяки, воспроизводить ТСР-сеансы,


имевшие место по беспроводному каналу, сортировать пакеты по протоколу или временно-
му штампу и т.д. Заметим, что фрейм-маяк, показанный на рис 5.13, помечен как «неправиль-
но сформированный пакет». На самом деле ничего неправильного в нем нет, но механизм
декодирования Ethereal смутило отсутствие ESSID в нем (сеть закрыта). В главе 15 приведено
несколько примеров использования Ethereal для иллюстрации интересных особенностей
трафика 802.11.
98 А ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Помимо только что описанных инструментов на базе Prismdump, существуют и дос-


тойны упоминания еще многие сценарии и утилиты. Они работают с текущей версией
библиотеки libpcap и зачастую поддерживают карты не только с набором микросхем
Prism. Например, Ssidsniff (http://www.bastard.net/~kos/wifi) позволяет обнаруживать
точки доступа с помощью карт Prism и Cisco Aironet, а также протоколировать трафик в
формате рсар:

Слово m a r t i a n s (марсиане) относится к фреймам неизвестного формата (например,


из-за искажения в результате шума на линии), а не к зеленым человечкам с всенаправ-
ленными антеннами на головах. В режиме счетчика Гейгера вы слышите, когда интен-
сивность потока фреймов нарастает. Иногда это помогает определить возможный источ-
ник фреймов.
Еще одна утилита для прослушивания канала в режиме RFM0N, правда, только с помо-
щью карт на базе набора Prism II, - это Scanchan (http://www.elixar.net/wireless/download/
download.html). Она используется уже рассмотренной выше программой Airtraf. Для карт
на базе набора Hermes есть простая в употреблении командная утилита Wavestumbler.
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 1 0 1

И наконец, для любителей языка Perl которые хотели бы использовать (и, возможно,
анатомировать) что-нибудь более простое, нежели Wellenwriter, имеется утилита Perlskan.
В ней применяется модуль GPS::Garmin (включенный в дистрибутив), реализующий интер-
фейс с GPS-приемником. Поэтому приемник должен посылать данные в GRMN/GRMN, а не в
NMEA, если, конечно, к моменту выхода книги из печати в модуль GPS::Garmin не будет
добавлена поддержка NMEA. Утилита Perlskan написана для карт на базе набора Hermes,
она легко собирается и запускается:
arhontus:~# perl perlskan
Usage: perlskan <ifname> <gps tty>
arhontus:~# perl perlskan ethl
e t h l : 31337++
link = 0
freq = 2422000000
b i t r a t e = 2000000
В этом примере Perlskan не смогла найти нашу закрытую сеть 802.Ид, что несколько
удручает. Если вместо карты с набором Hermes взять Cisco Aironet, то Perlskan все равно
находит точки доступа, но считает, что все они работают на канале 1. Возможно, это свя-
зано с тем, что по умолчанию в карте Aironet выставляется канал 1, даже если она автома-
тически перебирает каналы.

Инструменты для обнаружения сети в режиме мониторинга


и анализа трафика в системе BSD
Хотя при проведении аудита безопасности беспроводных сетей мы пользуемся главным
образом системой Linux, необходимо упомянуть о нескольких инструментах для различ-
ных вариантов ОС BSD. Их не так много, но они достаточно мощные и составляют важный
элемент в общей картине безопасности беспроводных сетей.
История разработки инструментов для исследования беспроводных сетей в BSD нача-
лась, наверное, со следующего небольшого сценария на языке Perl:
#!/usr/bin/perl -w
#
#каждую секунду сбрасывает wiO
#на первой секунде мы проверяем сеть без шифрования,
#в следующую секунду проверяется сеть с шифрованием и так далее
use strict;
1 02 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ
while (<WICO>) {
chomp;
print $l,"\t" if / A Current netname
\(SSID\):\s+[(.*)\]$/;
print $l / "\t" if /"Current BSSID:\s+\[(.*)\]$/;
print $l. M \t" if / A Comms.*[(.*)\]$/;
}
close(WICO);
p r i n t $n%2? "Y" : "N";
print "\n";
if ($n%2) { system($resetcomm); }
e l s e { system($resetcomme); }
sleep 1;
$n++;
}
Луис Рог (Louise Roque) пользовался этим сценарием, прогуливаясь и объезжая на велосипеде
городок Энн Арбор в штате Мичиган, имея при себе ноутбук с процессором 486 и картой Lucent
Orinoco, на котором стояла операционная система OpenBSD. Сценарий не переводит интерфейс
wiO в режим мониторинга. По прошествии некоторого времени появились, а потом исчезли та-
кие инструменты сканирования, как airosniff и wicontrol. Сейчас основным и самым известным
комплектом инструментов для аудита безопасности беспроводных сетей в системах BSD являет-
ся BSD-airtools от компании DachbOden Labs. Самая главная из входящих в этот набор программ -
это Dstumbler; мы уже упоминали ее при обсуждении внутренних механизмов работы
Netstumbler. В режиме RFMON Dstumbler обладает следующими уникальными возможностями:
о определяет, какая аутентификация используется в инфраструктурной сети: разде-
ляемая или по ключу;
о определяет, установлены ли BSS-узлы для подключения к любой или к указанной сети;
о отчасти распознает длину ключа шифрования в протоколе WEP: 40 или 104 бит.
Уже только эти функции делают программу Dstumbler весьма ценным дополнением к
любому инструментарию для тестирования возможности проникновения в беспроводную
сеть. Кроме того, Dstumbler сообщает об установленных по умолчанию ESSID, оценивает
интервал между посылкой маяков обнаруженными точками доступа, показывает хосты в
инфраструктурных сетях и протоколирует максимальные поддерживаемые скорости пере-
дачи как для точек доступа, так и для хостов.
Вам необходимо будет установить исходные модули, входящие в BSD-airtools, и пере-
компилировать
RFM0N.
но
an
Dstumbler
просто
Режим
ОнаВ
поддерживается
arhontus:~#
не
позволяет
комплект
забудьте, ядро,
мониторинга
интерфейс
Правда,
в режиме
перевести только
BSD-airtools
вчто
dstumbler
кOpenBSD
по
отладочным
мониторинга
-вы тогда
умолчанию.
этодолжны
карту
лишь
входят
версии
wiO
на вы
один
модулям
войти
тоже
базе сможете
После
также
3.2
-оизи
набора
не
-1
них.
ввыше
ядра переводить
сборки
утилиты
систему
вызывает
allyourbase.txt
Для
prism2,
Prism2
режим
ядра
справки карты
prism2ctl
от из сDstumbler
трудностей:
поставляемым
установить
вмониторинга
имени
любой 14набором
перечислим
и prism2dump.
пользователя
для Prism
вотладочных
составе
все в Запуск
интерфейсов
режимы.
уже
Prism2ctl
root. режим
BSD-airtools.
несложно,
режимов.
-wi
это
и
ИНСТРУМЕНТЫ ДЛЯ ОБНАРУЖЕНИЯ СЕТИ В РЕЖИМЕ МОНИТОРИНГА И АНАЛИЗА ТРАФИКА 103

-г: сбросить устройство


- i : инициализировать устройство
- s : перевести устройство в спящий режим или разбудить его
аргументы:
0 - разбудить
1 - усыпить
-f: переключить устройство на указанный частотный канал
аргументы:
номер канала (1-14)
-d: в этом режиме подавляются задержки передачи фреймов и должна
увеличиваться производительность
-t: в этом режиме устройство подавляет все ошибки в переданных фреймах
-т: войти в режим мониторинга
- 1 : включить тестирование светодиодов
аргументы:
:х - индикатор мощности мигает - х мкс горит, х мкс не горит
2:х - индикатор активности мигает - х мкс горит, х мкс не горит
-с: непрерывно передает переданную в качестве аргумента 16-битовую
последовательность
аргументы:
16-битовая последовательность в шестнадцатеричном виде
-h: выключает следующие режимы:
подавление задержки
режим мониторинга
непрерывная передача
непрерывный прием
установка состояния сигнала
-е: переводит устройство в режим постоянного приема
-д: устанавливает маску сигнала для устройства (не пользуйтесь, если
точно не уверены в том, что вы делаете, и не имеете документации)
-а: посылает команду CalEnable процессору полосы частот
-Ь: включает или выключает автоматический контроль уровня в
передаваемых фреймах
аргументы:
0 - выключить
1 - включить

Для перевода интерфейса wiO в режим мониторинга достаточно выполнить команду


p r i s m 2 c t l wiO -m.
Утилита prism2dump похожа на tcpdump и написанную для Linux утилиту prismdump и
предназначена для протоколирования трафика 802.11. Чтобы она работала правильно, сна-
чала переведите РпБт2-карту в режим мониторинга, а затем введите команду p r i s m 2 d u m p
< i n t e r f a c e > -v < v e r b o s i t y l e v e l > . Существуют следующие уровни детализации:

0: печатать только информацию о фреймах 802.11


1: печатать информацию о фреймах 8 0 2 . 1 1 , а также основную информацию
о протоколах передачи данных, управляющей и административной
информации
2: печатать всю информацию о протоколах

Запускать prism2dump нужно также от имени пользователя root.


1 0 4 А ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Стоит еще отметить интересную программу wistumbler, которая первоначально была


написана для обнаружения беспроводных сетей в системе NetBSD. Для сборки wistumbler
понадобятся библиотеки gtk+-1.2.1O и glib-1.2.10nbl или более поздние версии. Wistumbler
поддерживает интерфейс wi и устаревший интерфейс awi (для карт с набором Prism I) и
может работать совместно с GPS-приемниками, поддерживающими стандарт NMEA. Для
запуска wistumbler наберите примерно такую команду:
arhontus:~# wistumbler wiO -f wehaveyouall -g /dev/dtyOl -d
где w e h a v e y o u a l l - имя файла протокола; /dev/dtyOl - последовательный порт для
подключения GPS-приемника, а флаг -d устанавливает отладочный режим.

Инструменты, использующие команду


iwlist scan
Было бы странно, если бы таких инструментов не существовало. В этом разделе мы рас-
смотрим два из них. Их основное преимущество - возможность обнаруживать точки дос-
тупа, не отключаясь от сети, к которой вы присоединились.
Первый инструмент - это сценарий aphunter.pl на языке Perl. Он переформатирует выход
команды i w l i s t s c a n и выводит данные в экранные формы, реализованные с помощью
ncurses. При необходимости может поддерживать режим RFM0N, так что оказывается удобным
для осмотра места развертывания сети. Это весьма развитый сценарий, который поддерживает
автоматическое присоединение к сети, если вы, конечно, этого хотите. Если присоединение
состоялось, то aphunter может извлечь WEP-ключ из указанного файла (по умолчанию /etc/
pcmcia, если таковой существует, в противном случае $НОМЕ/ . a p h u n t e r k e y s ) и попытать-
ся получить IP-адрес по протоколу DHCP. Для этой цели он по умолчанию использует команду
/sbin/dhcpd -n -d -N -Y -t 999999, но вы можете подставить собственные параметры с
помощью флага -d. Aphunter может автоматически присоединиться к первой доступной сети
(флаг -с), а при наличии нескольких - к той, в которой уровень сигнала наибольший. Сеть счи-
тается доступной, если обнаружена точка доступа в нее и не используется неизвестный WEP-
ключ. Можно указать, с каким интервалом производить сканирование (флаг -т) и в течение
какого времени отображать потерянные точки доступа (флаг -к). И разумеется, Aphunter ав-
томатически распознает, поддерживает ли беспроводной интерфейс функцию i w l i s t scan.
Если нужно сгенерировать отчет о результатах осмотра, то воспользуйтесь командой
/ b i n / s h -с " a p h u n t e r 2> r e p o r t . a p h " (в оболочке С s h e l l ) , а если у вас мони-
тор небольшого размера, попробуйте выполнить примерно такую команду: xterm -geometry
40x10 -е a p h u n t e r &. Имеются также «горячие» клавиши для взаимодействия с работа-
ющим сценарием. Выполнив команду p e r l d o c -t . / a p h u n t e r , вы получите полную
документацию по этому инструменту (конечно, программа perldoc должна быть установ-
лена). Вместо этого можно просто заглянуть в конец сценария. Мы пробовали запустить
команду a p h u n t e r . pi -v, имея карту Cisco Aironet 350, результаты показаны на рис. 5.14.
К сожалению, в действительности это были каналы 3 и 11, а не 4 и 12, ну что ж, нет в
мире совершенства. Обратите внимание на шестнадцатеричное значение вместо ESSID в
нашей закрытой тестовой сети. Но не спешите пытаться преобразовать его в код ASCII.
Это значение не имеет ничего общего с настоящим скрытым ESSID и, возможно, вообще
взято из устройства /dev/urandom.
ИНСТРУМЕНТЫ, ИСПОЛЬЗУЮЩИЕ КОМАНДУ IWLIST SCAN 105

Рис. 5.14. Сценарий aphunter.pl


ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Инструменты для мониторинга


уровня сигнала
Речь идет не об анализаторах протоколов и не о программах для нанесения сетей на карту, но
поскольку инструменты из этой категории все же обнаруживают беспроводные сети (по край-
ней мере, показывают уровень высокочастотного сигнала), то мы вкратце их рассмотрим. Хотя
обычному искателю сетей не очень интересно мерить уровень сигнала или отношение сигнал/
шум, но при осмотре места развертывания эта задача имеет первостепенное значение, так что
наличие инструмента для ее автоматизации может сэкономить массу времени.
Эти утилиты реализуют два основных метода мониторинга уровней сигнала и шума в ка-
нале 802.11: watch - n l -d ' c a t < f i l e > * с последующим разбором соответствующего ка-
талога в файловой системе /ргос (например, /proc/net/wireless) или перехват заголовков
фреймов типа ARPHRD_IEEE8 0211_PRISM в случае наличия карты на базе набора Prism.
Отметим, что последний метод применяется в утилитах Airfart и WifiScanner, а также во
многих более развитых средствах типа Kismet, которые также умеют определять уровень
сигнала в прослушиваемых каналах.
Уже упоминалось, что основное применение мониторинг уровня сигнала находит в про-
цедуре осмотра места развертывания, и важность этого шага для аудита безопасности и
правильного проектирования сети нельзя переоценить. Хотя инструменты измерения
уровня сигнала и могут показать наличие помех или глушения (высокий уровень шума и
низкое значение отношения сигнал/шум в ситуации, когда расчеты показывают, что уро-
вень сигнала должен быть гораздо выше), они ни в коем случае не могут служить заменой
настоящему гармоническому анализатору.

Основы радиофизики:
Затухание в свободном пространстве и помехи
Затухание в свободном пространстве- это основная причина энергетических потерь в
беспроводных сетях. Происходит это из-за расширения фронта радиоволны и рассея-
ния передаваемого сигнала. Затухание в свободном пространстве рассчитывается по
формуле 40,69 + 20log10 (частота в гигагерцах) + 20log10 (расстояние в километрах). Име-
ющиеся в сети калькуляторы позволяют оценить эту величину; есть также приложения
для локальных расчетов.
Разумеется, затухание в свободном пространстве предполагает наличие именно свободного
пространства, любое препятствие значительно ослабляет высокочастотный сигнал. Даже
простое оконное стекло уменьшает уровень сигнала в диапазоне ISM примерно на 3 dBm.
Любой искатель сети на колесах, не имеющий внешней антенны, сразу заметит разницу,
как только откроет окно машины. В приложении Е приведена таблица примерных значений
затухания сигнала в диапазоне ISM для различных препятствий. Если вычесть величину за-
тухания в свободном пространстве и затухания из-за препятствий из эквивалентной изот-
ропно излучаемой мощности (EIRP), то вы должны получить примерный уровень сигнала в
районе измерения. Если сигнал оказывается гораздо слабее положенного, проверьте ве-
личину EIRP с помощью того же инструмента измерения, но подойдя максимально близко
к антенне. Если EIRP близко к теоретической оценке, то ищите причину в препятствиях
(распространение по нескольким путям) или в работе других высокочастотных устройств.
ИНСТРУМЕНТЫ ДЛЯ МОНИТОРИНГА УРОВНЯ СИГНАЛА Л 07

Проблема нескольких путей связана с помехами, вызванными тем, что высокочастотный


радиосигнал, излучаемый одним передатчиком, отражается от препятствий вдоль пути
распространения. Из-за этого он доходит до приемника в разные моменты времени.
Традициционно эту проблему обходят за счет разнесения антенны и выбора ее положе-
ния таким образом, чтобы избежать препятствий.
Интерферирующие передатчики могут находиться в сетях, удовлетворяющих стандартам
802.11 и 802.15, а также в беспроводных сетях, не согласованных со стандартами семей-
ства 802. Это могут быть беспроводные телефоны, работающие на частоте 2,4 ГГц, беспро-
водные камеры наблюдения, микроволновые печи, а также постановщики помех, созна-
тельно развернутые взломщиком. По иронии судьбы именно канал 6, определенный в
стандартах 802.11b/g (2,437±0,011 ГГц) и используемый по умолчанию многими точками
доступа, больше всего перекрывается с самыми распространенными источниками поме-
хами - микроволновыми печами. Теоретически магнетрон микроволновой печи излучает
на частоте 2,445±0,011 ГГц, но на практике спектр излучения гораздо шире. Впрочем, мы
не рекомендуем поджаривать свой измеритель частоты в микроволновке для проверки.
С другой стороны, диапазон UNII (стандарт 801.11а) по сравнению с диапазоном ISM не
так подвержен помехам. Раньше для устранения помех в сетях 802.11 переключались с
метода DSSS на FHSS; теперь же попробуйте просто перейти на сеть 802.11а, если мес-
тное законодательство разрешает использовать частотный диапазон UNII.

Инструменты мониторинга уровня сигнала представляют собой либо отдельные утили-


ты, либо подключаемые модули для различных оконных менеджеров. Нам больше всего
нравится программа wavemon (рис. 5.15), которая показывает красивую гистограмму уров-
ня сигнала (функциональная клавиша F2), выводит все обнаруженные точки доступа (F3)
и неплохо конфигурируется (F7).
По умолчанию wavemon поддерживает карты с набором Prism и драйверы linux-wlan-
ng, но это просто потому, что заранее предустановлен интерфейс wlanX; укажите вместо
него ethX или любой другой - и программа станет работать с драйверами других карт.
Еще одна полезная утилита - это wlanmeter, которая умеет измерять уровни сигнала,
шума и канала на всех имеющихся беспроводных интерфейсах (одновременно на трех).
Упомянем также программу Wireless Power Meter для Linux (wpm), которая пользуется
комплектом Linux Wireless Extensions и может работать на любом терминале, показываю-
щем ANSI-цвета (консоль Linux, ETerm, Gnome Term XTerm, Color RXVT). Есть еще утилита
xnetworkstrength (как ни странно, она работает под X Windows), программа Cisco ACU для
карт Aironet (рекомендуем) и целый ряд апплетов, предназначенных для мониторинга
беспроводного канала, в том числе: wmwave для Windowmaker или gwireless_applet для
Gnome, а также знаменитый подключаемый модуль для gkrellm. Программа Wireless
Network Meter, написанная с использованием библиотеки Qt для системы Embeddix, - это
хорошее дополнение к комбинации Kismet + kismet__qte на КПК Sharp Zaurus, она сильно
увеличивает полезность этого великолепного наладонника для осмотра места разверты-
вания. На платформе Windows мы рекомендуем AirMagnet (не путайте с анализатором
Java Magnet 802.11b/g) для КПК iPAQ. Эта программа привязана к карте, входящей в ком-
плект AirMagnet, в которую производителем внесены специальные модификации, по-
зволяющие обнаруживать и графически отображать перекрытие каналов 802.11b/g.
AirMagnet - это великолепный (хотя и недешевый) инструмент для решения различных
1 08 ВЫХОДИМ НА УЛИЦУ: КАРТОГРАФИРОВАНИЕ СЕТИ И ОСМОТР МЕСТА РАЗВЕРТЫВАНИЯ

Рис. 5.15. Утилита wavemon для мониторинга сигнала в беспроводной сети

задач, возникающих при оценивании безопасности беспроводных сетей, одновременно


насыщенный функциями и простой в использовании. Конечно же, мощные коммерчес-
кие программы AiroPeek и NAI Sniffer Wireless тоже умеют вести мониторинг уровня сиг-
нала наряду с множеством других функций. Для осмотра места развертывания можете
взять с собой версии обоих этих анализаторов для КПК на платформе Windows СЕ.

Резюме
Поездка на машине в поисках сетей - это обычно развлечение. Но для некоторых она мо-
жет стать воротами в мир беспроводных сетей и безопасности, а также началом новой
карьеры. Если подойти к этому занятию серьезно, то вы сможете приобрести навыки, не-
обходимые для проведения профессионального осмотра места развертывания беспровод-
ной сети. Научиться обнаруживать и наносить на карту беспроводные сети абсолютно
необходимо для профессионального аудита, включающего осмотр места, обнаружение
нелегальных беспроводных устройств и выявления наилучшего места, где может распо-
ложиться потенциальный взломщик. Нужно также уметь отыскивать атакующего на ме-
стности с помощью традиционной триангуляции. Короче говоря, прежде чем начинать
думать о криптоанализе беспроводного трафика, атаках «человек посередине», внедре-
нию постороннего трафика и других нетривиальных методов проникновения, научитесь
находить беспроводные сети в дороге.
В этой главе мы представили целый арсенал средств для обнаружения и картографиро-
вания сетей, применимых во время поездки и для регулярного осмотра места развертыва-
ния. Испытайте их, ознакомьтесь с исходным кодом и модифицируйте его, чтобы облег-
чить и автоматизировать свою работу. Хотя простой искатель сетей может вполне обойтись
единственным инструментом, настоящий хакер должен обладать широким кругозором и
постоянно искать новые подходы, методы и программы.
/ПОДБИРАЕМ АРСЕНАЛ:
ОРУДИЯ РЕМЕСЛА

Что касается воина, то этот путь предполагает создание раз-


нообразного оружия и понимания всех его свойств. Без это-
го воину не обойтись; если он не владеет мастерски своим
оружием и не понимает преимуществ разных видов воо-
ружения, значит, он недостаточно усовершенствовался в
своем искусстве.
Миямото Мусаси (Miyamoto Musashi)

Настало время перейти от безвредного исследования беспроводных сетей к подборке вну-


шающего уважение арсенала средств для профессионального тестирования возможности
проникновения в сети 802.11. Как и при выборе аппаратуры, очень важен осознанный
подход к выбору инструментария, имеющего отношение к безопасности сетей. Сейчас мы
приведем грубую классификацию атак на сети 802.11 и предназначенных для этой цели
программ в зависимости от их функций. Затем будет дано подробное описание конкрет-
ных инструментов.
Все программы для тестирования возможности проникновения можно отнести к одной
из нескольких крупных категорий:
1. Средства взлома шифров.
2. Средства генерации фреймов стандарта 802.11.
3. Средства внедрения зашифрованного трафика.
4. Средства управления точками доступа.
Хотя последняя категория, строго говоря, не связана с безопасностью, относящиеся к ней
инструменты могут пригодиться для изменения конфигурации удаленной точки доступа
по протоколу SNMP (Simple Network Management Protocol - простой протокол управления
сетью) и угадывания пароля точки доступа.
Совсем необязательно иметь все программы, описанные в этой главе, выберите те, ко-
торые отвечают вашим целям с учетом имеющегося оборудования. Многие инструменты
поддерживают только карты с одним набором микросхем, другие придется существенно
модифицировать, чтобы они могли работать на КПК, а некоторые представляют собой
1 1 О ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

простые сценарии, полезные в образовательных целях. Практически все рассматрива-


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

Средства вскрытия шифров


Как следует из названия, этот раздел посвящен инструментам для вскрытия криптогра-
фической защиты на уровне 2 стека протоколов 802.11. Не думайте, что речь идет толь-
ко о протоколе WEP. Появление решений, основанных на стандарте 802.Hi, стало новым
вызовом сообществу хакеров, и уже сейчас уже есть подпольные инструменты, предназ-
наченные для атаки на алгоритмы аутентификации 802.1х. Пока такие атаки направле-
ны только против систем аутентификации по протоколу Cisco EAP-LEAP, но нет сомне-
ний, что вскоре появятся и атаки против других вариантов протокола ЕАР (Extensible
Authentication Protocol - расширяемый протокол аутентификации). Самая простая фор-
ма аутентификации в стандарте 802.1х основана на слабом алгоритме EAP-MD5, который
может быть атакован даже без специальных инструментов взлома. В следующей главе
мы рассмотрим такие атаки. Пока еще не создано средств для атаки на более безопасные
протоколы, пришедшие на смену WEP, а именно TKIP (Temporal Key Integrity Protocol -
протокол целостности временных ключей) и ССМР. Тем не менее есть основания пола-
гать, что успешная атака против аутентификации с предварительно разделенными клю-
чами, применяемыми в TKIP, возможна (см. главу 8). Даже в случае «сверхбезопасного»
протокола ССМР на базе алгоритма шифрования AES остается возможность вскрытия по
словарю и атаки методом полного перебора, и в принципе можно разработать инстру-
менты для проведения таких атак. Как обычно, самое слабое звено - это человек. Что же
касается взлома старого доброго WEP, то теперь жизнь ушла куда дальше простеньких
Wepcrack и Airsnort. Существуют средства, чтобы ускорить взлом WEP и заставить даже
самые «тихие» беспроводные сети (с небольшим трафиком) поделиться своими драгоцен-
ными WEP-ключами. Инструменты, способные расколоть WEP на кусочки, а не ждать, пока
накопится достаточно данных для пассивного раскрытия ключа, существовали уже дав-
но. Но надо еще постараться, чтобы найти литературу, в которой они детально описыва-
ются (кроме этой книги, конечно).
В настоящий момент есть четыре класса инструментов для вскрытия шифров в беспро-
водных сетях:
о средства взлома протокола WEP;
о средства для извлечения ключей WEP, хранящихся на клиентских хостах;
о средства для внедрения трафика с целью ускорения взлома WEP;
о средства для атаки на системы аутентификации, определенные в стандарте 802.1х.
В каждом классе есть свои методы и подходы и несколько доминирующих программ.
Описывая эти классы, мы подробно рассмотрим свойства каждого инструмента для того,
чтобы понять, как должна быть устроена разумная процедура тестирования возможности
проникновения и атаки, что является предметом глав 7 и 8.
СРЕДСТВА ВСКРЫТИЯ ШИФРОВ 111

Средства взлома протокола WEP


По причинам, описанным в главе 1, протокол WEP будет еще применяться долго, сколь бы хороши
и безопасны ни были альтернативы. На всякий случай напомним некоторые из этих причин:
о WEP легко настраивается, и любая совместимая со стандартом 802.11 система его
поддерживает;
о унаследованное оборудование может не поддерживать новых протоколов безопас-
ности, а компании могут не захотеть выбрасывать его после того, как потратили
несколько миллионов долларов на приобретение и настройку;
о более новое оборудование будет вынуждено работать на пониженном уровне безо-
пасности, чтобы обеспечить совместимость с унаследованным;
о многие пользователи и системные администраторы плохо разбираются в проблемах
безопасности или просто ленятся и не обновляют программно-аппаратное обеспе-
чение и драйверы для поддержки более безопасных альтернатив WEP;
о для настройки новых систем безопасности беспроводных сетей нужно больше уси-
лий и денег, требуется обучение персонала. Некоторые компании могут возражать
против этого по финансовым или административным соображениям;
о для реализации окончательного варианта протокола 802.11i/WPAv2 CCMP потребу-
ется полная замена оборудования, на что многие пойти не готовы;
о все еще распространено мнение, что протокол WEP достаточно эффективен для за-
щиты сетей в небольшом офисе или дома. К сожалению, существуют «эксперты по
безопасности», незнакомые с реальностью, которые поддерживают это мнение.
По этим причинам атаки против WEP не устареют вместе с ним; инструменты для прове-
дения таких атак надо рассмотреть с величайшим вниманием.

Программа AirSnort
Самый распространенный инструмент для взлома протокола WEP - это программа AirSnort
от группы Shmoo (http://airsnort.shmoo.com) - рис. 6.1.

Рис. 6.1. Программа AirSnort от группы Shmoo в действии


1 1 2 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

У AirSnort интуитивно понятный интерфейс, построенный на базе библиотеки GTK+, и


ею легко пользоваться как для обнаружения сети, так и для взлома WEP. Она поддерживает
карты с наборами микросхем Prism и Hermes (после установки патча Shmoo). AirSnort мо-
жет сбрасывать перехваченные данные в файл формата рсар, а также открывать и взламы-
вать данные, которые хранятся в таких файлах, созданных другими программами, напри-
мер Kismet. Это открывает ряд интересных возможностей, касающихся взлома WEP.
Например, можно собрать данные с помощью КПК, а затем расшифровать их на настольном
компьютере аудитора, не имеющем выхода в беспроводную сеть. Можно также попробо-
вать перенести AirSnort на процессор StrongArm и дистрибутивы встраиваемой ОС Linux.
Большинство CF-карт для стандарта 802.11b построены на базе набора Prism, и это должно
стать серьезным подспорьем всякому, кто возьмется за перенос AirSnort на Intimate,
OpenZaurus, Familiar или Embeddix.

Программа Wepcrack
Хотя AirSnort и является самым распространенным инструментом, в котором применяет-
ся атака Флурера, Мантина и Шамира (Fluhrer, Mantin, Shamir - FMS) против WEP, но имен-
но в программе Wepcrack впервые была на практике реализована эта теоретическая ата-
ка, описанная тремя знаменитыми криптологами. Wepcrack - это набор Perl-сценариев,
включающий WEPcrack. p i , WeaklVGen. p i , p r i s m - g e t I V . pi и p r i s m - d e c o d e . p i .
Сценарий p r i s m - g e t i v . p l получает на входе файл в формате рсар (например, perl
prism-getIV.pl <Kismet-sdate\dump>) и извлекает пакеты с векторами инициализации (IV,
см. главу 11), соответствующие известному образцу, ослабляющему ключи WEP. Кроме
того, он извлекает первый байт зашифрованного текста и помещает его и слабые IV в
файл протокола IVfile.log. Этот файл поступает на вход сценария WEPcrack.pl, взла-
мывающего WEP. Для взлома в реальном времени (как в AirSnort) надо запустить такую
команду:
arhontus:~# tcpdump -i wlanO -w - I p e r l prism-getIV.pl
Далее измените свою таблицу crontab ( c r o n t a b - e ) , так чтобы команда p e r l
WEPcrack. pi < i v f i l e . l o g > запускалась периодически (скажем, каждые три минуты).
Чтобы сценарии p r i s m - g e t I V и WEPcrack могли проанализировать дамп, он дол-
жен создаваться с применением версии библиотеки libpcap, которая понимает формат
фреймов 802.11. Современные версии libpcap с этим справляются (скачайте с сайта
http ://www. tcp dump. org/#current).
Хотя AirSnort считается более развитым инструментом для взлома протокола WEP, чем
набор сценариев Wepcrack, но и у последнего есть свои достоинства:
о он полезен в образовательных целях. Если вы хотите узнать принцип атаки FMS, то нет
лучшего способа, чем изучить текст сценариев Wepcrack. Фактически WeaklVGen.pl
и включен-то с целью продемонстрировать возможность создания инструмента, который
генерирует файл слабых IV по данному значению WEP-ключа в десятичном представле-
нии. Прочитав его код, вы поймете, откуда берутся слабые IV. Кроме того, в сценарии
p r i s m - d e c ode. pi показано, как файл в формате рсар можно декодировать и вывести
информацию из заголовков 802.11, которая может представлять интерес для всех, кто
разрабатывает на языке Perl анализатор протоколов 802.11, да и для других целей
(см. также p e r l s k a n . p l ) ;
СРЕДСТВА ВСКРЫТИЯ ШИФРОВ /ИЗ

о сценарии, входящие в комплект Wepcrack, можно запускать и без Х-сервера и графи-


ческого интерфейса (аналогично старой версии AirSnort 0.9). Это существенно, по-
скольку не так сильно загружается процессор, экономится заряд аккумуляторов и
открывается возможность писать объемные сценарии;
о это гибкие инструменты, они позволяют реализовать усовершенствованный вариант
атаки FMS и способны интегрироваться с другими программами для аудита безопас-
ности, например Kismet и Wellenreiter;
о не надо выбирать конкретный набор микросхем, лишь бы карту можно было переве-
сти в режим RFM0N;
о сценарии Wepcrack можно запускать и на КПК, если установлен Perl. Но в настоящий
момент не существует версии AirSnort, перенесенной в системы Intimate, Familiar
или Embeddix, работающие на машинах с процессором StrongArm.
Таким образом, первый из опубликованных инструментов для взлома WEP все еще оста-
ется весьма полезным, поэтому серьезный аудитор безопасности или энтузиаст-любитель
не станет им пренебрегать.

Набор утилит Dweputils


Этот набор утилит является частью комплекта BSD-airtools и состоит из программ dwepdump,
dwepcrack и dwepkeygen. Они реализуют улучшенную атаку FMS, описанную в статье
Hlkari «Practical Exploitation of RC4 Weaknesses in WEP Environments» (Практическое ис-
пользование слабостей алгоритма RC4 в протоколе WEP), которая опубликована на сайте
http://www.dachbOden.com/projects/bsd-airtools/wepexp.txt. Эта глава посвящена утили-
там, а не описанию методов атаки, но мы еще вернемся к этой статье и деталям других атак
на WEP в соответствующем разделе главы 8.
Dwepdump - это похожая на prism2dump утилита для формирования файла в формате
рсар, специально написанная в целях подготовки исходных данных для dwepcrack и про-
ведения атак методом полного перебора (не FMS) против WEP. Современные версии
dwepdump реализуют следующие функции:
о протоколирование только слабых ключей для последующего запуска команды
dwepcrack -w;
о вывод статистики о том, сколько слабых IV уже найдено (п. х -> п: х; когда х >= 60,
можно приступать к взлому);
о возможность задать максимальный размер пакета, чтобы можно было сбрасывать в
дамп только маленькие пакеты. В результате взлом методом полного перебора про-
странства ключей ускоряется;
о необязательно указывать интерфейс, поэтому несколько рсар-файлов можно слить в
один. Это бывает полезно, когда есть много стандартных рсар-файлов, созданных
tcpdump и подобными ей программами, а вы хотите отфильтровать из них слабые IV
или объединить несколько файлов со слабыми IV в один для последующего взлома;
о применение улучшенных методов фильтрации IV, не описанных в стандартной ата-
ке FMS, для уменьшения времени сбора данных.
Таким образом, если взлом WEP осуществляется с помощью dwepcrack, то использовать
dwedump для сбора данных предпочтительнее, чем prism2dump или любую другую утили-
ту подготовки рсар-файлов, скажем, tcpdump или Ethereal.
1 1 4 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

Dwepcrack - это утилита для взлома WEP, реализующая все известные виды атак, направ-
ленные на получение ключа WEP. Поэтому она позволяет исчерпывающим образом оце-
нить безопасность ключа WEP с точки зрения всех имеющихся в данной момент методик
взлома. В частности, dwepcrack поддерживает следующие возможности:
о оптимизации атаки FMS, описанные в вышеупомянутой статье «Practical Exploitation
of RC4 Weaknesses in WEP Environments»;
о возможность взлома WEP с помощью атаки FMS и методом полного перебора;
о возможность перебрать все пространство ключей или использовать взлом по словарю;
о оптимизированный метод подбора 40-битовых ключей методом полного перебора;
о поддержка симметричной мультипроцессорной обработки с помощью флага - j .
Отметим, что исходный текст dwepcrack хорошо структурирован: в файле weakksa.c
находится код улучшенной атаки FMS, а в файле brute.с - реализация атаки методом пол-
ного перебора. Это упрощает анализ принципов атаки и внесение модификаций. Порядок
запуска dwepcrack таков:
СРЕДСТВА ВСКРЫТИЯ ШИФРОВ 115

Параметр packf i l e - это файл в формате рсар, wordf i l e - это словарь Dictionary.txt,
а под сильными ключами понимаются 128(104)-битовые ключи WEP (были времена, когда
такие ключи считались сильными). Заметим, что вы должны выбрать либо атаку методом
полного перебора, либо атаку по словарю, но не обе одновременно (по крайней мере, не в
одном и том же процессе wep_crack). Получив ключ, воспользуйтесь утилитой wep_decrypt
для дешифрирования дампов трафика в формате рсар:
arhontus:~# ./wep_decrypt
Usage: ./wep_decrypt [-g keystr] [-k hexkeystr] [-s] [ i n f i l e [outfile]]
-g keystr Строка, из которой получаются ключи
-k hexkeystr Шестнадцатеричнью ключи, разделенные пробелами или
двоеточиями
-s Использовать сильные 128-битовые ключи
Ключ должен быть задан только одним из флагов -д или -к.
По умолчанию wep_decrypt читает из s t d i n и пишет на s t d o u t . Ключ для дешиф-
рирования файла задается в виде строки шестнадцатеричных символов, которые могут
быть разделены пробелами или двоеточиями (хотя это необязательно), либо в виде строки
ASCII-символов. В последнем случае для генерации фактических ключей применяется сла-
бый метод (используемый в старых драйверах), порождающий 40-битовые ключи. Посколь-
ку многие производители теперь устраняют эту уязвимость, мы не рекомендуем задавать
ключ в формате ASCII.

Основы 802* 11: Длина ключа в протоколе WEP


Если вы незнакомы с сетями 802.11, то, возможно, разговоры о 40-, 64-, 104- и 128-бито-
вых ключах вызвали у вас недоумение. Официально для протокола WEP определены толь-
ко 64- и 128-битовые ключи, и именно эти значения вы, вероятно, встретите в руковод-
ствах по очевидным маркетинговым причинам. На самом деле первые 24 бит занимает
вектор инициализации (IV), причем IV передается в незашифрованном виде. Таким обра-
зом, реальная длина разделяемого секрета составляет 40 и 104 бит. В этой книге упоми-
нается то одна длина, то другая. Отметим, что такой же принцип должен применяться к
патентованным реализациям WEP с большей длиной ключа. Всегда проверяйте, какая часть
пространства ключа отводится под хранение IV (чем больше, тем лучше).

Программа WepAttack
WepAttack - это программа с открытым исходным текстом; похожая на Wep_tools, но зна-
чительно усовершенствованная. Как и Wep_tools, она применяет атаку методом полного
перебора или по словарю для поиска правильного ключа в рсар-файле с зашифрованными
данными. Но на странице проекта утверждается, что для начала атаки требуется всего один
перехваченный пакет с зашифрованными по протоколу WEP данными. Проект WepAttack
находится на сайте Sourceforge (http://sourceforge.net/projects/wepattack/). Изложение
теоретических основ работы WepAttack на немецком языке находится там же.
Установить и использовать программу WepAttack очень просто. Необходимые для нее биб-
лиотеки Zlib и LibPcap можно взять с сайтов http://www.gzip.org/zlib/ и http://tcpdump.org
ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

Тот факт, что можно взломать протокол WEP, не имея большого объема зашифрованных
данных, делает атаку по словарю против сетей 802.11 с этим протоколом серьезной угро-
зой. Атакующий легко может интегрировать WepAttack с Kismet и автоматически анализи-
ровать формируемый рсар-файл прямо по ходу поездки. Стоит ему перехватить несколько
зашифрованных пакетов, как сеть уже можно атаковать. Таким образом, искатель может не
только обнаружить сеть, но и получить несколько слабых WEP-ключей, и для этого ему даже
не надо парковаться где-то поблизости и часами прослушивать атакуемую сеть.

Средства для извлечения ключей WEP,


хранящихся на клиентских хостах
В настоящее время мы знаем только об одном таком инструменте - LucentRegCrypto. Про-
грамма Lucent Orinoco Client Manager сохраняет WEP-ключи в реестре Windows. Хотя она
пытается запутать взломщика и хранить ключи в зашифрованном виде, но все это легко
обходится. Известно, что ключи могут храниться в следующих узлах реестра:

Утилита Lucent RegCrypto позволяет как зашифровать WEP-ключи для получения значе-
ния, хранящегося в реестре, так и расшифровать значение из реестра и получить исход-
ный ключ. Если вы пользуетесь программой Lucent Orinoco Client Manager, то проверьте с
помощью LucentRegCrypto, сможет ли атакующий получить значение WEP-ключа для вашей
СРЕДСТВА ВСКРЫТИЯ ШИФРОВ J 1 7

сети, если случайно физически доберется до вашей машины или сможет организовать до-
ступ в нее с черного хода. Запускается LucentRegCrypto совсем просто:

>_LucentRegCrypto -e [<secret>] -d [<value>] -f <file name>


При задании секретного значения в шестнадцатеричном виде сначала введите символ ко-
сой черты.
На машинах с ОС Linux WEP-ключ обычно хранится в незашифрованном виде в файле
/etc/pcmcia/wireless.opts:

# Обобщенный пример (описывает все возможные установки)


# Encryption key : 4567-89AB-CD, s:password
KEY="value"
Безопасность ключа при таком способе хранения всецело зависит от прав доступа к
файлу wireless.opts (проверьте, как они заданы в вашей системе), что, очевидно, недоста-
точно. Разработка утилиты для шифрования WEP-ключа, хранящегося в wireless.opts, -
полезное и достойное занятие.

Средства для внедрения трафика с целью ускорения взлома WEP


Как вы, возможно, знаете или уже догадались, чем больше беспроводного трафика вам уда-
стся перехватить, тем больше шансов получить правильный WEP-ключ и тем меньше для
этого понадобится времени. Ничто не мешает внедрить трафик в защищенную протоколом
WEP сеть, даже не присоединяясь к ней. Связано это с тем, что в первоначальной реализа-
ции WEP, в отличие от TKIP или ССМР, нет средств защиты от повторения (replay) трафика.
Вам всего-то и нужно, что следить за трафиком и посылать зашифрованные WEP пакеты
обратно в сеть. Для этого потребуется карта, работающая в режиме RFM0N, которая будет
прослушивать все пакеты и повторно передавать те, которые удовлетворяют определен-
ным условиям. Именно так - мы собираемся использовать карту в режиме мониторинга для
передачи данных. Распространено ложное мнение, будто устройства 802.11 не могут пе-
редавать в режиме RFM0N. На самом деле это вполне реально, только вы не сможете по-
слать квитанцию АСК на приходящие ответы. Иными словами, нормальная двусторонняя
связь действительно невозможна. Но для целей внедрения трафика ради ускоренного взло-
ма WEP или DoS-атаки затоплением это и не нужно.
Для внедрения трафика в целях повышения эффективности взлома WEP специально пред-
назначена утилита reinj из комплекта Wnet, написанного для BSD Hlkari, автором BSD-Airtools.
Комплект Wnet в целом мы рассмотрим в этой главе ниже, когда речь пойдет об инструментах
генерации фреймов беспроводных протоколов, поскольку именно эта задача является главной
для библиотек и утилит, входящих в Wnet. А здесь лишь кратко остановимся на утилите reinj.
Во время работы утилита reinj вставляет ARP-запросы и квитанции TCP АСК в трафик атаку-
емой беспроводной сети. И содержимое, и длина этих пакетов известны, известно и то, что сеть
посылает в ответ: зашифрованные ARP-ответ и TCP RST. Поэтому поведение утилиты вполне
предсказуемо. Разумеется, есть и другие типы запросов, реакция на которые известна, напри-
мер TCP SYN или запросы по протоколу DHCP, так что этот метод можно и модифицировать.
Запустить reinj ( r e i n j <dev> < b s s i d > < t r i e s > < i n t e r v a l > ) и затем следить за
полученными ответами, чтобы убедиться в успешности попытки внедрить трафик (призна-
ком успеха является появление дополнительного ожидаемого трафика), совсем несложно.
1 1 8 А ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

Если ответа нет, то reinj будет прослушивать сеть в поисках более подходящего для вне-
дрения пакета. Разумеется, для внедрения нужно знать BSSID, так что сначала его надо
будет извлечь.
Когда reinj обнаружит пакет, который сочтет ARP-запросом или TCP ACK, она попытается
повторно внедрить его в сеть, чтобы сгенерировать дополнительный трафик. Это делается
пять раз подряд для проверки ответов, а затем внедрение продолжается через указанный при
запуске команды интервал времени. Конечно, дубли, которые вставляет reinj, не ослабляют
сеть криптографически, но вот полученные ответы этому как раз способствуют. Когда reinj
выбирает себе цель и начинает заставлять входящие в нее хосты передавать зашифрован-
ные данные, взлом WEP упрощается и занимает меньше времени, особенно если воспользо-
ваться улучшенной атакой FMS, которая реализована в dwercrack. Даже простаивающие бес-
проводные сети можно успешно атаковать, да и надо еще поискать сеть, в которой нет совсем
никакого трафика (из-за некоторых «болтливых» сетевых протоколов).
Совместное использование BSD-airtools и reinj делает систему OpenBSD (на которой оба
инструмента собираются и работают) великолепной платформой для взлома WEP. А что же
насчет Linux? К сожалению, мы не знаем инструментов для Linux, способных реализовать
улучшенную атаку FMS против WEP в стиле dwepcrack. Что же касается внедрения трафика
с целью сокращения времени взлома WEP, то можно воспользоваться программой WebWedgie,
запустив ее в цикле из сценария и настроив для опроса целевой сети по предполагаемому
широковещательному адресу. Это должно привести к генерации трафика в объеме, доста-
точном для насыщения сети, пока ключ не будет взломан. Поскольку WebWedgie - это слож-
ный и очень богатый инструмент, который умеет делать гораздо больше, чем простое дуб-
лирование и повторное внедрение трафика, то подробно мы будем рассматривать его в
отдельном разделе, посвященном внедрению зашифрованного трафика для проникновения
в беспроводную сеть без знания ключа WEP.

Средства для атаки на системы аутентификации,


определенные в стандарте 802.1х
С принятием стандарта 802.1х (детальное описание протокола приведено в главах 10 и 13)
стало неизбежным появление атак и специальных инструментов, направленных против
описанного в нем протокола безопасности. В настоящее время основным объектом напа-
дения для хакерского сообщества стала аутентификация по протоколу Cisco EAP-LEAP. По-
видимому, обусловлено это большим числом сетей, поддерживающих EAP-LEAP, что, в свою
очередь, связано с широкой распространенностью беспроводного оборудования фирмы
Cisco. Кроме того, играет роль и тот факт, что в основе LEAP, в отличие от EAP-MD5, лежит
аутентификация по паролю, а не с использованием сертификатов. Атака против EAP-LEAP
базируется на том, что он аутентифицирует пользователя по протоколу MS-CHAPv2. Таким
образом, атака на EAP-LEAP - это, по сути дела, атака против MS-CHAPv2, поэтому любой
другой метод аутентификации на основе того же протокола будет в равной степени уяз-
вим. Цель этой главы - описать инструменты, имеющиеся в распоряжении хакеров, поэто-
му особенности атаки на протокол EAP-LEAP (то бишь MS-CHAPv2) будут рассмотрены в
главе 8. А сейчас мы расскажем о двух утилитах, предназначенных для извлечения и взло-
ма пользовательских паролей из обмена запросом и ответом по протоколу LEAP. Кроме
того, мы опишем простой Perl-сценарий для взлома процедуры LEAP-аутентификации ме-
тодом полного перебора.
СРЕДСТВА ВСКРЫТИЯ ШИФРОВ А 1 1 9

Программы Asleap-imp и Leap


Первый инструмент - Asleap-imp - представил Джошуа Райт (Joshua Wright) на конферен-
ции Defcon 11. Слово imp в его названии означает improved (улучшенный). Во время рабо-
ты над этой книгой утилита Asleap-imp еще не была доступна для широкой публики, но мы
ожидаем, что это произойдет к моменту, когда книга появится на прилавках.
Asleap-imp состоит из двух программ. Первая - genkeys - генерирует список МБ4-свер-
ток по списку паролей. Список представляет собой таблицу в виде " пароль ^Tab^ с в е р -
тка " и может использоваться для атак по словарю против любых протоколов или файлов
паролей, в которых применяется алгоритм MD4. Вторая программа - asleap - реализует
саму атаку, а именно:
1. Данные считываются с беспроводного интерфейса, работающего в режиме монито-
ринга, или из файла в формате рсар (например, дампа, сформированного Kismet).
2. Извлекаются фреймы, содержащие запрос и ответ EAP-LEAR
3. Пользуясь недостатком, имеющимся в процедуре аутентификации MS-CHAP, вычис-
ляются последние два бита свертки NT.
4. Эти и оставшиеся биты сравниваются с элементами списка п а р о л ь : свертка, со-
зданного keygen, после чего печатаются взломанные пароли.
Поскольку ждать, пока кто-то войдет в систему, аутентифицируясь по протоколу EAP-LEAP,
можно долго, Asleap-imp решает эту проблему, «вышибая» пользователей из сети. Для этого
она сканирует все каналы 802.11, выявляет активных клиентов и посылает фальшивый
фрейм EAP-LEAP Logoff жертве. За ним следует фальшивый же фрейм прекращения аутенти-
фицированного сеанса с целью отключить хост-жертву от сети. В результате последует но-
вый обмен запросом и ответом. Соответствующие пакеты сохраняются в рсар-файле для взло-
ма на другой машине (например, на настольном компьютере аудитора, обладающем более
мощным процессором, более емким диском и очень длинным списком паролей).
Второй инструмент - это программа leap, которую написали DaBubble, Bishop и Evol.
В отличие от Asleap-imp, она уже была представлена на сайте Packetstorm (http://www/
packestormsecurity.org) во время работы над книгой. Принцип работы leap такой же, как у
Asleap-imp, однако для leap нет документации и она не автоматизирует перехват запроса и
ответа путем принудительного разрыва сеанса. Да и список п а р о л ь : с в е р т к а вам при-
дется генерировать самостоятельно. Чтобы создать список, можете модифицировать файл
chaptest.c, который поставляется в составе инструмента, или воспользоваться эталонной
реализацией алгоритма MD4 (RFC 320), модифицировав ее так, чтобы она брала пароли из
файла со списком слов. После того как список сгенерирован и строки запрос/ответ пере-
хвачены, впишите их в файл bfnthash.c:
// Сюда введите запрос
char *challengeResponse =
// Сюда введите ответ
char *challenge = " " ;
Можно при желании еще модифицировать переменную NUM_HASHES (максимальное
число сверток, считываемых из файла со списком пароль: свертка, по умолчанию 10000)
и ограничить число потоков, запускаемых bfnthash (по умолчанию < 200). Откомпилируй-
те bfnthash, запустите ее, указав имя файла со списком и число рабочих потоков, и надей-
тесь, что пароль пользователя окажется в списке.
1 2 0 А ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

Программа Leapcrack
Оба инструмента, направленные против протокола 802.1x/EAP-LEAP, реализуют улучшен-
ную и оптимизированную атаку по словарю на механизм аутентификации. Стоит еще упо-
мянуть старую методику подбора пользовательского пароля для EAP-LEAP путем полного
перебора. Для этой цели была написана программа Leapcrack, работающая на платформе
BSD. Leapcrack состоит из сценария для обнаружения сети (автор Франсиско Луис Рог),
который был описан в разделе об инструментах обнаружения сети и протоколирования
трафика в BSD, и еще одного Perl-сценария - anwrap. p i . Последний является оболочкой
для команды a n c o n t r o l , которая применяется для проведения атаки по словарю на бес-
проводные сети с оборудованием Cisco и включенным протоколом LEAP. Сценарий просмат-
ривает указанные списки имен и паролей, пытается аутентифицироваться и записывает ре-
зультаты в файл. Для запуска anwrap . p i вам понадобится карта Cisco Aironet, поднятый
интерфейс и установленная библиотека libexpect-perl. Работать со сценарием нетрудно:
arhontus:~# p e r l anwrap.pl
Usage : anwrap.pl <userfile> <passwordfile> <logfile>
Ron Sweeney <sween@modelm.org>
Brian Barto <brian@bartosoft.com>
Имейте в виду, что запуск anwrap . p i против сетей из машин с ОС Windows NT с реали-
зованными политиками локаута серьезно снизит производительность аутентификации в
RADIUS-сервере.

Инструменты для генерирования фреймов


беспроводных протоколов
Поскольку управляющие и административные фреймы в стандарте 802.11 не аутентифи-
цируются и не шифруются, то возможность отправки специально подготовленных фрей-
мов дает взломщику неограниченные возможности проводить DoS-атаки на второй уровень
сети-жертвы. Хуже того, квалифицированный взломщик может замаскировать свою маши-
ну под точку доступа, беспроводной мост или клиентский хост в несчастной инфраструк-
турной или управляемой сети либо одну из равноправных машин в независимой (ad-hoc)
сети. Затем можно провести DoS-атаку, чтобы отключить хосты от законной точки доступа
и вынудить их присоединиться к машине атакующего.
Есть два основных инструмента для генерирования специальных фреймов 802.11: ком-
плект AirJack (Linux) и более свежий набор утилит Wnet dinject (OpenBSD). До некоторой
степени драйверы HostAP для карт с набором Prism тоже можно считать инструментами
генерирования фреймов 802.11, поскольку точка доступа по определению должна уметь
посылать фреймы-маяки и пробные запросы. Утилита FakeAP от группы Black Alchemy,
которая работает поверх HostAP и пользуется Linux Wireless Extensions для генерирования
специальных маяков, опирается именно на эту функциональность. Она вполне годится для
некоторых видов атак против сетей 802.11, равно как и для организации хоста-приманки
(ради чего, собственно, и была написана). Еще один инструмент для генерирования фрей-
мов на базе HostAP - это программа Voidll. Она предназначена для DoS-атак на канал пе-
редачи данных в сетях 802.11, в том числе и массированных.
ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ J 21

Комплект программ Air Jack


Комплект AirJack первоначально состоял из специального драйвера для карт на базе набо-
ра микросхем Prism II и нескольких утилит, которые пользуются встроенными в модуль
a i r j a c k _ c s возможностями генерирования специальных фреймов 802.11 для проведе-
ния различных атак на беспроводные сети. Ожидаемая, но пока задержавшаяся вторая вер-
сия AirJack должна поддерживать и другие наборы микросхем. Здесь мы опишем только
первую версию, которая на момент написания книги была тщательно протестирована и оп-
робована.
Утилиты для атаки, включенные в первые две версии AirJack, вызывают отказ в обслу-
живании путем отправки фреймов прекращения сеанса (deauthentication). Для раскрытия
закрытого ESSID утилита вынуждает хост повторно аутентифицироваться. Кроме того, воз-
можна атака «человек посередине» на уровень 2 с дополнительной возможностью прове-
дения специализированной атаки такого рода против реализации протокола Wavesec (бес-
проводной версии IPSec) компании FreeSWAN. В последующих версиях AirJack осталась
только утилита для атаки с целью раскрытия закрытого ESSID. Однако утилиты из прежних
версий, предназначенные для реализации вышеупомянутых атак, прекрасно работают и в
новой версии.
Основная функциональность AirJack связана с умением посылать фреймы прекращения
сеанса. Для тех, кому интересно, как это делается, ниже приведен фрагмент кода для кон-
струирования фрейма:
void send_deauth ( u8 *dst, u8 *bssid)
{
struct {
struct a3_80211 hdr;
ul6 reason;
} frame;
memset(&frame, 0, sizeof(frame));
frame.hdr.mh_type = FC_TYPE_MGT;
frame.hdr.mh_subtype = MGTMDEAUTH;
memcpy(&(frame.hdr.mh_macl), dst, 6) ;
memcpy(&(frame.hdr.mh_mac2), bssid, 6) ;
memcpy(&(frame.hdr.mh_mac3), bssid, 6);
frame.reason = 1;
send(socket, kframe, sizeof(frame), 0) ;
}
Хотя утилиты, входящие в комплект AirJack, и были разработаны для карт с набором
Prism II, но они позволяют проводить атаки типа «человек посередине» и при помощи карт
с набором Hermes при условии, что установлен патч Orinoco.с.patch. Он была первоначаль-
но разработан для служб pcmcia-cs версии 3.1.31, так что нужно еще проверить, будет ли
он работать с более поздними версиями. У нас не получилось поставить этот патч на
pcmcia-cs-3.2.1, так что придется либо возвращаться к старой версии, либо переписывать
код патча.
Код AirJack распространяется в соответствии с лицензией GNU, загрузить его можно со
страницы http://802.llninja.net/airjack и с сайта Sourceforge; в Сети встречаются и неко-
торые неудачно модифицированные варианты AirJack, для исправления которых нужно
ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ J 23

В комплект AirJack входят следующие утилиты для проведения атаки:


о essid_jack вынуждает беспроводные хосты повторно выполнить аутентификацию с
точкой доступа в закрытой сети и при этом отыскивает в трафике скрытый ESSID;
о wlanjack затапливает сеть фреймами прекращения сеанса с поддельным МАС-адре-
сом;
о monkey_jack проводит атаку «человек посередине» (помещает хост, на котором ра-
ботает AirJack, между точкой доступа и машиной-жертвой);
о kracker_jack - модифицированный вариант monkey_jack, способный поместить ата-
кующий хост между клиентом и сервером, работающими по протоколу Wavesec.
Wavesec (http://www.wavesec.org) - это предназначенная специально для беспроводных
сетей мобильная реализация FreeSWAN IPSec-клиента для Linux. Особенность работы про-
токола Wavesec состоит в том, как он организует доверительные отношения между беспро-
водным клиентом и шлюзом IPSec. Для этого производится обмен открытыми ключами во
время назначения адреса по протоколу DHCP. Клиент передает свое имя хоста и открытый
ключ в DHCP-запросе. Сервер DHCP требует от DNS-сервера, чтобы тот вставил то и другое
в описание обратной зоны (отображение IP на имя хоста) с помощью запроса на динами-
ческое обновление DNS. Утилита kracker_jack атакует эту процедуру обмена ключами с
целью размещения атакующего хоста между клиентом и сервером Wavesec на втором уров-
не (monkeyjack), подменяет ключ клиента своим собственным и расшифровывает прохо-
дящие данные. Таким образом, krackerjack не атакует FreeSWAN и протокол IPSec как та-
ковые и настройки FreeSWAN IPSec, основанные на разделяемом секрете или сертификатах
х509 (см. главу 14), остаются неуязвимыми для этой атаки.
Еще в комплекте AirJack есть утилиты setmac и set_channel для проведения атаки «че-
ловек посередине» с помощью карты с набором Hermes и dump_core, которая позволяет
следить за необработанным потоком информации, поступающей от интерфейса ajO (пере-
направлять его в файл, выделять строки, содержащие ESSID имеющихся беспроводных се-
тей и т.д.).

Программа File2air
Джошуа Райт написал инструмент File2air для генерирования специальных фреймов с по-
мощью драйверов, входящих в комплект AirJack. Программа читает двоичный файл и по-
сылает его содержимое в эфир (как и следует из названия). Следовательно, она может от-
править практически любой фрейм, в том числе и протокола 802.1х в беспроводную сеть.
Но для пользования ею вы должны хорошо разбираться в протоколах, описанных в стан-
дарте 802.11 (или иных), чтобы подготовить двоичное представление специальных фрей-
мов, подаваемое на вход File2air, в вашем любимом шестнадцатеричном редакторе (напри-
мер, Gnome Ghex). С другой стороны, у вас появляется стимул для изучения набора протоколов,
чтобы обрести полную свободу выбора того, что вы посылаете.
Первая версия (vO.l) утилиты File2air появилась как раз в тот момент, когда близилась
к завершению работа над черновиком этой книги. В ней было три примера двоичных фрей-
мов в каталоге ./packets: прекращение сеанса, ответ на пробный фрейм и ошибка
аутентификации по протоколу ЕАР (deauth.bin, proberesp.bin и eap-failure.bin соответ-
ственно). В файле README приведены примеры атак с использованием этих фреймов.
1 2 4 А ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

Без сомнения, число присланных пользователями файлов с двоичными фреймами будет


расти как снежный ком, а функциональность инструмента заметно увеличится. Для удоб-
ства некоторые поля во фреймах, например, МАС-адреса отправителя и получателя и
ESSID, можно задать в командной строке, тогда содержимое этих полей в файле будет про-
игнорировано:
arhontus:~# . / f i l e 2 a i r -h
f i l e 2 a i r vO.l - i n j e c t 802.11 packets from binary f i l e s
<Joshua.Wright©jwu.edu>
Usage: f i l e 2 a i r [options]
Интерфейс, через который отправляются фреймы
Установить канал (по умолчанию текущий)
Установить режим работы (по умолчанию текущий)
Установить режим RFMON (1=вкл, 0=выкл, по умолчанию
текущий)
Имя двоичного файла, из которого читаются фреймы
Сколько пакетов посылать
Задержка между отправкой пакетов (иХ - мкс, X - секунды)
Адрес получателя вместо указанного во фрейме
Адрес отправителя вместо указанного во фрейме
BSSID вместо указанного во фрейме
Вывести справку и выйти
Печатать подробную информацию (чем больше -v, тем
подробнее)

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

Библиотека libwlan
Если вы не хотите создавать специальные фреймы в шестнадцатеричном редакторе, а
предпочитаете написать программу на языке С, то как раз для вас Иоахим Кейнерт
(Joachim Keinert), Чарльз Дунце (Charles Duntze) и Лайонел Литти (Lionel Litty) раз-
работали библиотеку libwlan. Она позволяет создавать фреймы при условии работы с
драйверами Linux HostAP. В библиотеке есть функции для инициализации сокетов и
для конструирования фреймов, а заголовочные файлы поддерживают создание фрей-
мов данных, управления потоком (RTS/CTS), аутентификации и присоединения к сети,
пробных запросов, прекращения сеанса и отсоединения. В файле lib_total.h деталь-
но описаны структуры различных фреймов 802.11: с данными, управляющих и адми-
нистративных, особенности отдельных фреймом, коды состояния и причин, а также
алгоритмы аутентификации (открытой или с разделяемым секретом). Это интересное
и полезное чтение.
ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

Программа FakeAP
FakeAP - это написанный на языке Perl инструмент, в котором возможности драйверов
HostAP и команда iwconf ig применяются для отправки фреймов-маяков со случайными
или специально подобранными ESSID, BSSID (МАС-адрес точки доступа) и номерами кана-
лов. Первоначально она предназначалась для организации беспроводной приманки, но при
злонамеренном использовании может решать и следующие задачи:
о затопить канал потоком фреймов-маяков, проведя тем самым DoS-атаку;
о увеличить шум в канале в ходе проведения атаки «человек посередине»;
о «свести с ума» систему обнаружения нелегальных точек доступа и заполнить до
отказа ее протокол.
Хотя FakeAP для Linux хорошо известна, немногие знают о существовании утилиты
BSD FakeAP, которую можно загрузить со страницы http://bsdvault.net/bsdfap.txt. Функ-
ции обеих очень схожи, а немногие различия отмечены в исходном тексте BSD FakeAP.
ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ 127

Программа voidi 1
Voidll - это еще один инструмент для генерирования фреймов, работающий совместно с
драйверами HostAP для Linux (не забудьте определить константу PRISM2_HOSTAPD В файле
1 2 8 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

driver/modules/hostap_config.h при компиляции HostAP, если хотите, чтобы програм-


ма voidll работала). Она была задумана для проверки устойчивости уровня передачи
данных к DoS-атакам и организации активной защиты, voidll может генерировать фрей-
мы трех типов, а именно: прекращение сеанса, аутентификация и присоединение. За-
топление потоком запросов на аутентификацию и присоединение может привести к
отказу или зависанию некоторых точек доступа из-за заполнения буфера, выделенно-
го для хранения и обработки таких запросов. В состав voidll входят две утилиты:
voidll_hopper и voidll_penetration. Утилита voidll_hopper конфигурирует беспровод-
ную карту, работающую под управлением HostAP, для перебора 14 DSSS каналов, опре-
деленных в стандарте 802.11, a voidll_penetration - это и есть, собственно, инструмент
генерирования фреймов:
arhontus:~# v o i d l l _ p e n e t r a t i o n -h
/*voidll - утилита тестирования проникновения в сеть 802.11b
* версия 20030829, отправлять замечания на reyk@vantronix.net

* флаги общего назначения:


* -t val тип (по умолчанию: 1)
* 0: ничего не делать
* 1: прекращение сеанса
* 2: затопить запросами на аутентификацию
* 3: затопить запросами на присоединение
* -d n задержка (по умолчанию: 10000 мкс)
* -s MAC станция (по умолчанию: ff:ff:ff:ff:ff:ff / случайное)
* -S s t r ssid (по умолчанию: ' ')
* -h вывести эту справку
* -D отладка (-DD... для получения большего объема
* информации)
*
* DoS-атака на конкретную цель:
bssid (по умолчанию: сканировать в поисках bssid)

с автоматическим выбором цели:


макс число одновременных потоков (по умолчанию: 23)
таймаут (по умолчанию: 10 с)
список подходящих
способ интерпретации списка (белый: 0, черный: 1,
* по умолчанию: 0)
*/
Как видите, программа voidll обладает широкими возможностями и может выполнять
следующие действия:
о сканирование сетей, выбранных для атаки;
о атаку на сеть с указанным ESSID;
о атаку на один или несколько хостов;
о одновременное затопление 23 потоками;
о выбор хостов из списка подходящих МАС-адресов;
о регулируемую задержку между отправкой фреймов.
ИНСТРУМЕНТЫ ДЛЯ ГЕНЕРИРОВАНИЯ ФРЕЙМОВ БЕСПРОВОДНЫХ ПРОТОКОЛОВ

Прежде чем запускать атаку путем затопления фреймами прекращения сеанса против
одного беспроводного хоста, необходимо перевести карту в режим хозяина (то есть сде-
лать ее точкой доступа).

Комплект Wnet
Wnet - это развитый инструментарий для создания и внедрения фреймов 802.11, работаю-
щий в системе OpenBSD 3.2. В будущем, возможно, будут поддержаны и другие версии
OpenBSD, а также иные варианты ОС BSD. В состав Wnet входит библиотека libwnet, утили-
та reinj внедрения пакетов с ARP-запросами и TCP ACK, а также утилита dinject.
Для инсталляции dinject сначала поместите исходные тексты ядра в каталог /usr/src/
sys, затем установите патч wi.diff, поставляемый с Wnet (cd wnet && sudo p a t c h -d
/ u s r / s r c - p i < wi . d i f f ) , после чего пересоберите ядро:
arhontus:~# cd /usr/src/sys/i386/compile/MYKERNEL
arhontus:~# make
arhontus:~# cd /usr/src/sys/dev/ic
arhontus:~# cp if_wi*.h /usr/include/dev/ic
arhontus:~# reboot
Затем откомпилируйте libwnet:
arhontus:-# cd wnet/libwnet
arhontus:~# make
arhontus:~# make i n s t a l l
а уже потом dinject:
arhontus:~# cd . . / d i n j e c t
arhontus:~# make
arhontus:~# make i n s t a l l
Dinject - это многофункциональный инструмент конструирования фреймов 802.11, по-
хожий на Nemesis. Как и Nemesis, dinject включает несколько утилит: по одной на каждый
тип фрейма. Переведите карту в режим HostAP (sudo w i c o n t r o l wiO -p 5) и наслаж-
дайтесь возможностью посылать управляющие и административные фреймы практически
любого типа, в том числе:
о фреймы с запросом о присоединении;
о фреймы с ответом на запрос о присоединении;
о АТШ-фреймы;
о фреймы с запросом об аутентификации;
о маяки;
о специально сформированные данные;
о фреймы с запросом о прекращении сеанса;
о фреймы с запросом об отключении;
о пробные запросы;
о ответы на пробные запросы;
о запросы о повторном присоединении;
о ответы на запросы о повторном присоединении.
13 0 А ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

Хотя dinject и не включает готовых утилит для атаки, как AirJack, но в руках взломщика,
знакомого с работой стека протоколов 802.11, это невероятно мощный инструмент. Ис-
пользование dinject в сочетании с анализатором протоколов - прекрасный способ узнать,
как функционирует сеть 802.11.

Инструменты для внедрения беспроводного


зашифрованного трафика: Wepwedgie
В предыдущем разделе мы рассмотрели инструменты, предназначенные для отправки разно-
образных управляющих и административных фреймов 802.11. Ну а как насчет внедрения за-
шифрованных данных в беспроводную сеть, ведь это могло бы перенести атаку на более высо-
кие уровни модели 0SI? Один из инструментов такого рода - входящая в комплект Wnet
утилита reinj - уже описывался при обсуждении методов ускоренного взлома протокола WEP.
Reinj решает эту задачу путем дублирования предсказуемых пакетов, уже имеющихся в сети.
Однако дублирование трафика - не единственный способ вставить зашифрованные данные в
атакуемую сеть 802.11. Вовсе необязательно знать весь ключ WEP, чтобы внедриться в трафик,
достаточно знать часть гаммы (keystream) для конкретногоЛУ, и уже можно вставлять правиль-
ные данные. Как же выделить часть (псевдослучайной) гаммы? Если нам известен открытый
текст и соответствующий ему шифртекст, то, выполнив над ними операцию XOR, мы получим
часть гаммы. В главе 11 отмечено, что заголовки пакетов, которые обязаны следовать описан-
ным в стандарте протоколам, - это хороший источник известного открытого текста. Однако
основанная на протоколе WEP аутентификация с разделяемым ключом предоставляет даже
более удобный источник пар открытый текст/шифртекст. Идея в том, чтобы послать произ-
вольный открытый текст аутентифицирующемуся хосту. Этот текст шифруется ключом WEP и
отправляется обратно точке доступа, которая проверяет правильность ключа. Таким образом,
перехватив открытый текст, соответствующий ему шифртекст и передаваемый в открытом виде
IV, атакующий имеет замечательную возможность получить часть гаммы.
Единственный инструмент, который реализует данную атаку на практике, - это про-
грамма Wepwedgie, написанная Антоном Рейджером (Anton Rager). Хотя когда-то это счи-
талось невозможным, но программа позволяет внедрить трафик в беспроводную сеть, за-
щищенную протоколом WEP, не зная секретного ключа. Во время работы над этой книгой
существовала только альфа-версия программы. Впервые она была продемонстрирована на
конференции Defcon 11 во время устроенной Рейджером презентации, на которой мы име-
ли удовольствие присутствовать. Для внедрения данных Wepwedgie пользуется драйвера-
ми AirJack. В настоящее время она состоит из двух частей: анализатора и инжектора.
Входящий в состав инструмента анализатор, который называется prgnasnarf, прослуши-
вает сеть, ожидая пока произойдет обмен фреймами аутентификации, и извлекает из них
IV и псевдослучайную гамму. Wepwedgie - это инжектор трафика, который пользуется пе-
рехваченной гаммой для внедрения специально сконструированных пакетов в атакуемую
сеть. Порядок запуска анализатора таков:

arhontus:~# prgasnarf -h
prgasnarf 0.1.0 alpha: Декодер пакетов WEP, содержащих гамму.
Эта версия перехватывает фреймы аутентификации с разделяемым ключом и
извлекает из них гамму.
Нужно лишь указать имя интерфейса AirJack и номер прослушиваемого канала. Даль-
ше остается терпеливо ждать, пока произойдет аутентификация и анализатор выделит
необходимые данные (можно вместо этого затопить клиентские машины фреймами
прекращения сеанса, чтобы вынудить их повторно аутентифицироваться, а затем уже
перехватить интересующие вас фреймы). После того как обмен фреймами аутентифи-
кации состоялся и был перехвачен, они сохраняются для последующего использования
в файле prgafile.dat.
Можете переименовать этот файл, дав ему более осмысленное имя (например, связан-
ное с местоположением сети, SSID и т.д.) и создать символическую ссылку на prgafile.dat.
Тогда при переходе в другое место будет легко настроить инструмент на интересующую
вас сеть, не перехватывая обмен фреймами аутентификации еще раз.
Как только необходимые данные получены, можно приступать к исследованию «за-
щищенной» сети. В комплект Wepwedgie уже включены различные методы сканирова-
ния, но не ожидайте от него такой же развитой функциональности, какая есть, скажем,
в шпар или других мощных утилитах сканирования, позволяющих, например, перехва-
тывать трафик FTP или избегать обнаружения системой IDS. Принимая во внимание
свойственную атакам на беспроводные сети скрытность и анонимность (см. главу 2),
атакующий может находиться вне пределов досягаемости, даже не применяя всех этих
методов, позволяющих не быть выслеженным. Синтаксис утилиты Wepwedgie довольно
сложен:
13 2 АПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА
-S: тип сканирования/внедрения.
1: внедрять трафик для проверки правил, заданных при
конфигурировании межсетевого экрана.
2 : внедрять трафик для пингования цели.
3: внедрять трафик для сканирования TCP-портов цели.
4: внедрять трафик для сканирования UDP-портов цели.
- с : номер канала (1-14), на котором работает точка доступа, по
умолчанию текущий.
- i : имя используемого интерфейса AirJack (по умолчанию ajO).
Чтобы сканирование с помощью Wepwedgie дало результат, в атакуемой сети должен быть
шлюз в проводную сеть (например, Internet), а в этой сети вам нужен хост, настроенный для
прослушивания входящего трафика (мы используем для этой цели tcpdump). Для определения
адреса шлюза автор в соответствии со здравым смыслом предлагает на основе анализа трафика
найти хост, передающий больше всего данных. Именно он, скорее всего, и является шлюзом.
Рассмотрим несколько примеров сканирований и внедрений, встроенных в Wepwedgie:
1. -S 2, или пингование:
a r h o n t u s : ~ # w e p w e d g i e - i ajO -с 11 -t C0:A8:0B:08 -h C0:A8:162:0A
-d 0 0 : 0 1 : 0 2 : 0 3 : 0 4 : 0 5 -S 2
Здесь мы указали интерфейс AirJack ( - i a j 0) и внедряем трафик по каналу 1 1 ( - с 11).
МАС-адрес получателя - это адрес внутреннего интерфейса хоста, присоединенного к
беспроводной сети и играющего роль шлюза, отделяющего локальную сеть от демили-
таризованной ЗОНЫ (-d 0 0 : 0 1 : 0 2 : 0 3 : 0 4 : 0 5 ) . Целевой IP ( - t C 0 : A 8 : 0 B : 0 8 ) -
это адрес хоста в беспроводной локальной сети. ID хоста в общем-то не нужен, по-
скольку инструмент автоматически увеличивает ID от 0 до 255 (Wepwedgie требует,
чтобы IP задавались только в шестнадцатеричном виде, так что в примере выше
СО : А8: 0В: 0 8 - это в более привычной нотации 192.168.11.08). Вспомогательный хост
(-h СО: А8:162 : 0А) посылает трафик на тестовую машину в демилитаризованной зоне
проводной сети, на которой работает tcpdump. Чтобы было проще выделять ответы на
наши пингующие запросы, запустите tcpdump следующим образом: # tcpdump -пм -i
ethO p r o t o 1 и с помощью grep ищите в дампе строку i c m p : e c h o r e p l y .
Вы увидите эхо-ответы, приходящие с хостов, отвечающих на наши пинги. Если же
какой-то IP не занят, то придет ответ icmp: h o s t u n r e a c h a b l e . На тестовом хосте
tcpdump должен напечатать примерно следующее:
20:01:17.820102 192.168.11.7 > 192.168.22.10: icmp: echo r e p l y
20:01:17.951850 192.168.11.8 > 192.168.22.10: icmp: echo r e p l y
20:01:17.953839 192.168.11.9 > 1 9 2 . 1 6 8 . 2 2 . 1 0 : icmp: echo r e p l y
20:01:18.870372 192.168.22.101 > 192.168.66.10: icmp: echo h o s t
192.168.11.1 u n r e a c h a b l e [ t o s OxcO]
20:01:19.410441 192.168.22.101 > 1 9 2 . 1 6 8 . 6 6 . 1 0 : icmp: echo h o s t
192.168.11.2 u n r e a c h a b l e [ t o s OxcO]
20:01:19.580451 192.168.22.101 > 1 9 2 . 1 6 8 . 6 6 . 1 0 : icmp: echo h o s t
192.168.11.3 u n r e a c h a b l e [ t o s OxcO]
3. -S 3 и -S 4, или сканирование портов TCP и UDP.
Эти виды сканирования используются для исследования хоста внутри защищенной
протоколом WEP сети 802.11 на предмет обнаружения открытых TCP и UDP-портов.
По умолчанию Wepwedgie сканирует открытые непривилегированные порты (0-1024),
но, изменив исходный текст и пересобрав программу, вы легко можете задать любой
диапазон портов.
При сканировании TCP-портов вы должны получить TCP RST, если порт закрыт, и SYN/
АСК в противном случае при условии, что сканирование производится с помощью
отправки SYN-пакетов. Wepwedgie позволяет сконструировать произвольный ТСР-
пакет и эмулировать большую часть методов сканирования TCP, поддерживаемых
программой NMAP. Для этого придется модифицировать исходный текст Wepwedgie,
изменив значение 0x02 в коде конструирования TCP-пакета на одно из 0x10= АСК,
0 x l 2 = SYN/ACK, 0x04=RST, 0xl4=RST/ACK и т.д.
1 34 ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА
При сканировании SYN-пакетами tcpdump на вспомогательном хосте должна выдать
примерно следующее:
20:33:09.648584 192.168.11.6.22 > 192.168.22.10.80: S
3 8 6 0 9 1 0 5 0 4 : 3 8 6 0 9 1 0 5 0 4 ( 0 ) a c k I w i n 5840 <mss 1460> (DF)
20:33:09.722845 192.168.11.6.67 > 1 9 2 . 1 6 8 . 2 2 . 1 0 . 8 0 : R 0:0(0) ack
1 w i n 0 (DF)
20:33:10.398257 192.168.11.6.25 > 192.168.22.10.80: S
3 8 6 2 7 5 9 5 9 4 : 3 8 6 2 7 5 9 5 9 4 ( 0 ) a c k 1 w i n 5840 <mss 1460> (DF)
20:33:10.492642 192.168.11.6.68 > 1 9 2 . 1 6 8 . 2 2 . 1 0 . 8 0 : R 0:0(0) ack
1 w i n 0 (DF)
При сканировании UDP-портов вы должны получить пакет ICMP port unreachable,
если порт закрыт. Имейте в виду, что процесс сканирования UDP-портов медленный
и ненадежный. Чтобы получить достойный доверия результат, придется запустить
UDP-сканирование несколько раз и проанализировать все полученные данные, срав-
нив их между собой.
При сканировании UDP-портов tcpdump на вспомогательном хосте должна выдать
примерно следующее:
20:38:17.898804 192.168.11.6 > 1 9 2 . 1 6 8 . 2 2 . 1 0 : icmp: 1 9 2 . 1 6 8 . 1 1 . 6
udp p o r t 1 u n r e a c h a b l e [ t o s OxcO]
20:38:18.069897 192.168.11.6 > 1 9 2 . 1 6 8 . 2 2 . 1 0 : icmp: 1 9 2 . 1 6 8 . 1 1 . 6
udp p o r t 2 u n r e a c h a b l e [ t o s OxcO]
20:38:18.270881 192.168.11.6 > 1 9 2 . 1 6 8 . 2 2 . 1 0 : icmp: 1 9 2 . 1 6 8 . 1 1 . 6
udp p o r t 3 u n r e a c h a b l e [ t o s OxcO]
20:38:18.423484 192.168.11.6 > 1 9 2 . 1 6 8 . 2 2 . 1 0 : icmp: 1 9 2 . 1 6 8 . 1 1 . 6
Утилиты для управления точкой доступа
Хотя
Atmel
угадать)
исходные
их
Utilities
лу
гурировать,
Needed
которые
нужно
более
браузер,
внушителен
udp
Когда
Из
SNMP.
модифицировать
производители
стакого
вероятно,
лишь
(IEEE
p
управляемым
for
поддерживает
тем
название
будете
oтексты
Ap-utils
rUNIX

так
не
запустить
рода
включает
802.11
4 именее
работать
(ap-utils),
уи
u
вести
инструментов
nподдерживает
SNMP-сообщества.
понять,
точки
rMIB
точек
для
eинформационным
ap-utils,
aесть
точки
мониторинг
cпрограмму

собственных
доступа
aсдоступ
NWN
написанный
ряд
bкак
комплектом
доступа,
l eприведен
программ,
это
DOTllEXT)
[нам
tобычно
большинство
имеется
oвсе
ap-config,
работы
sпроизводимые
больше
Ap-config
нужд.
OxcO]
функционирует,
вРоманом
блоком
инструментов
файле
поставляют
удобных
точки
также
интерфейс
Не
ввести
всего
README,
точек
ATMEL
позволяет
забывайте,
доступа
Фещуком,
поддерживаются.
компаниями
для
нравится
IP-адрес
конфигурационные
доступа
аудита
для
Private
Wepwedgie,
поскольку
входящем
с машины
конфигурирования
решать
который
что
комплект
точки
безопасности
MIB.
linksys,
наэто
ввам,
базе
Перечень
не
дистрибутив.
сТочки
самые
доступа
позволяет
только
ОС
Netgear
поленитесь
Wireless
вероятно,
набора
UNIX
утилиты
доступа
разнообразные
точек
альфа-версия.
и
точек
ипо
Access
узнать
как
D-Link.
через
микросхем
Он
придется
протоко-
No
доступа.
или,
изучить
доступа,
конфи-
весьма
Point
Wires
Web-
(или
Вам
что
УТИЛИТЫ ДЛЯ УПРАВЛЕНИЯ ТОЧКОЙ ДОСТУПА 1 35

задачи, начиная от поиска присоединенных точек доступа и кончая включением/выклю-


чением антенн. Перечислим некоторые наиболее типичные функции:
о скрывать ESSID в широковещательных сообщениях;
о включать режим тестирования устройства;
о получать информацию о программном и аппаратном обеспечении точки доступа;
о динамически обновлять статистику портов беспроводной сети и сети Ethernet;
о перечислять присоединившиеся станции и видимые точки доступа (с возможностью
сохранять МАС-адреса присоединившихся в данный момент станций в файле).
Этот инструмент может сэкономить массу времени, которое вы потратили бы, работая с
программами snmpget, snmpset и им подобными (кстати, утилиты, входящие в комплект
Net-SNMP, не имеют дружественного интерфейса на базе ncurses). Кроме ap-config в со-
став ap-utils входят еще программы ap-mrtg и ap-trapd. Ap-mrtg получает статистику от
точек доступа на базе набора ATMEL и возвращает результат в формате Multi Router Traffic
Grapher (MRTG). Ap-mrtg может получать и показывать статистику Ethernet в байтах, ста-
тистику беспроводной сети в пакетах, а также число присоединившихся хостов и статис-
тику по качеству канала и уровню сигнала от точки доступа. Хотя все эти параметры на-
прямую и не связаны с безопасностью, они могут быть полезны, чтобы получить общее
представление о состоянии беспроводной сети и определить типичный для нее трафик.
Имея эти данные, вы сможете потом выявлять аномалии в сети, DoS-атаки или кражу части
полосы пропускания. У программы ap-mrtg имеются следующие флаги:
arhontus:~# ap-mrtg -h
Usage:
ap-mrtg -i ip -c community -t type [-b bssid] [-v] [-h] [-r]
Получает статистику от точки доступа и возвращает ее в формате MRTG:
-i ip - IP-адрес точки доступа
-с community - название SMNP-сообщества
-t type - тип статистики: w - беспроводная сеть, е - Ethernet,
s - присоединившиеся станции, 1 - качество канала в режиме клиента
-b bssid - МАС-адрес точки доступа, для которой нужно узнать
качество канала, только если type=l
-v - сообщать MRTG о проблемах при соединении с точкой
доступа
-г - сбросить точку доступа при получении статистики о
качестве канала
-п - вывести эту справку
Ap-trapd - это демон, предназначенный для получения, разбора и протоколирования SNMP-
сообщений от точек доступа. Он взаимодействует с syslog (уровень протоколирования 0)
и может фиксировать в протоколе следующие наиболее распространенные события (trap):
о событие Reassociation: сообщение посылается, когда от точки доступа приходит зап-
рос на повторное присоединение станции;
о событие Association: говорит о получении пакета с запросом на присоединение и о
том, что станция-отправитель успешно присоединилась к точке доступа;
о событие Disassociation: сообщение посылается, когда от станции получен пакет с
уведомлением о прекращении сеанса;
о событие Reset: сообщение посылается в случае сброса точки досту
ПОДБИРАЕМ АРСЕНАЛ: ОРУДИЯ РЕМЕСЛА

о событие Setting IP Address with Ping: сообщение посылается вместе с передачей ping-
сообщения, когда устанавливается IP-адрес точки доступа;
о событие Start Up: сообщение посылается, когда точка доступа стартует;
о событие Failed to Erase Flash: событие посылается, когда точке доступа не удалось
стереть flash-память.
Некоторые из этих событий несут информацию, касающуюся безопасности, например
Setting IP Address with Ping и Disassociation.
Ap-trapd можно запустить с флагами a p _ t r a p d [- i d e v i c e ] [ -u u s e r ] для ука-
зания устройства, которое должно ожидать событий (только в ОС Linux), и непривилегиро-
ванного пользователя, от имени которого должен работать демон (по умолчанию nobody).
Помимо комплекта ap-utils существует еще несколько полезных утилит для конфигурирова-
ния и мониторинга точек доступа. Например, SNR - это написанный на Perl сценарий, который
собирает по протоколу SNMP, хранит и отображает информацию об изменениях отношения сиг-
нал / шум для точек доступа производства компании Lucent. Для работы SNR необходимы биб-
лиотеки librdds-perl, libunix-syslog-perl, libappconfig-perl и libsnmp-perl. Для работы с точками
доступа Apple AirPort имеется написанная на языке Python утилита Airconf, которая тестирова-
лась в разных версиях UNIX с Python 2.2, но должна также работать с Python 2.x на платфор-
мах MacOS 9 и Microsoft Windows. Для установки Airconf выполните следующие команды:
arhontus:~# install -с -m 755 -d airport_aclupdate /usr/local/bin
arhontus:~# install -c -m 600 -d airport.acl /usr/local/etc
arhontus:~# install -c -m 600 -d airport.bases /usr/local/etc
arhontus:~# python setup.py install
arhontus:~# rehash
Основная особенность Airconf - это возможность конфигурировать списки контроля
доступа сразу на нескольких базовых станциях Apple AirPort. Эту утилиту можно также
применять для специализированного обнаружения базовых станций Apple AirPort (белых
и графитовых) с помощью команды a i r p o r t _ d e t e c t .py < b r o a d c a s t > , а также для
считывания, распечатки и дистанционного изменения их конфигурации (только для гра-
фитовых станций). Еще один инструмент для управления и мониторинга станций Apple
AirPort - это airctl. Но, прежде чем запускать его, убедитесь, что в директиве препроцессо-
ра airctl заданы правильные адрес и номер порта.

Резюме
Количество полезных инструментов для аудита безопасности беспроводных сетей ошелом-
ляет. И что особенно приятно, большинство из них бесплатны и поставляются с открыты-
ми исходными текстами, так что вы можете экспериментировать с ними и модифицировать
текст в соответствии со своими потребностями. Если вы разрабатываете программное обес-
печение, то, скорее всего, вам не придется писать новый инструмент или библиотеку с
нуля; имеется огромный объем прекрасно написанного кода, поэтому есть, что использо-
вать и на чем поучиться. Тщательно и со всем вниманием изучайте, классифицируйте и об-
новляйте свой арсенал орудий для тестирования возможности проникновения в беспро-
водную сеть. Не забывайте, что взломщики могут пользоваться теми же инструментами, а
уж они-то знают, что, как, когда и почему. Тема следующих двух глав - это планирование
шагов успешной атаки против сети 802.11.
ПЛАНИРОВАНИЕ
АТАКИ

Разумное планирование - лучший способ нару-


шить чужие планы.
Ванъ Хи (Wang Xi)

В большинстве литературных источников, посвященных компьютерной безопасности, пе-


речисляются различные имеющиеся инструменты и соответствующие команды, и считает-
ся, что больше ничего и не нужно. Мы же полагаем, что это только начало. Знать основы
беспроводных сетей и инструменты для обнаружения точек доступа, уметь перехватывать
трафик, взламывать протокол WEP и т.д. - всего этого недостаточно. На самом деле, все это
лишь выводит атакующего на уровень «мальчишки-скриптописателя», а для настоящего
профессионала в области безопасности беспроводных сетей этого очень мало. Вы должны
понимать, как работают протоколы и как проводятся атаки (в этой книге мы постепенно
раскрываем эти тайны). Кроме того, у вас должен быть четкий план процедуры тестирова-
ния возможности проникновения, учитывающий все особенности конкретной сети.

Оснащение
К этому моменту весь инструментарий для тестирования возможности проникновения уже
должен быть подготовлен и проверен в лабораторной беспроводной сети во избежание не-
приятных сюрпризов (неразрешенные ссылки при вставке модулей, несовместимость вер-
сий сервисов-карт, ненадежные разъемы и т.д.), как гласит всеобъемлющий закон Мэрфи.
Если вы серьезно относитесь к своей работе, то ваш комплект должен включать следую-
щие компоненты:
1. Ноутбук с двумя разъемами для PCMCIA-карт и установленной ОС Linux или BSD (луч-
ше с обеими), правильно сконфигурированный и работающий.
2. Несколько клиентских карт PCMCIA с разъемами для внешних антенн и разными на-
борами микросхем:
- Cisco Aironet для эффективного обнаружения беспроводного трафика и простого
выполнения его перехвата сразу на нескольких каналах и последующего анализа;
1 3 8 ПЛАНИРОВАНИЕ АТАКИ
, ||Ш1[А

- Prism для взлома протокола WEP в том числе и путем внедрения трафика; прове-
дения DoS-атак с помощью FakeAP, Wnet или AirJack; проведения атак «человек
посередине» на уровень 1 с помощью HostAP и второй карты с набором Prism (!);
проведения атак «человек посередине» на уровень 2 с помощью AirJack и карты с
набором Hermes или таких же атак, но с помощью Wnet в режиме HostAP и второй
карты с набором Prism (на платформе OpenBSD);
- Hermes/Orinoco для взлома WEP, не прибегая к внедрению трафика, и для атак «че-
ловек посередине» на уровень 2 с помощью AirJack и карты с набором Prism.
2. По меньшей мере две внешних антенны (всенаправленная и остронаправленная с
высоким коэффициентом усиления) с подходящими разъемами и, возможно, трено-
гой-штативом.
3. Специальные программы по вашему выбору, сконфигурированные и готовые к рабо-
те. Вы должны уметь решать следующие задачи:
- обнаружение сети и протоколирование трафика в режиме RFM0N;
- декодирование и анализ беспроводного трафика;
- взлом протокола WEP и 802.1х методом полного перебора (если необходимо);
- генерирование специальных фреймов уровня 2 и внедрения трафика;
- конфигурирование по крайней мере одной карты для работы в роли нелегальной
точки доступа.
4. К числу необязательных компонентов относятся следующие:
- GPS-приемник, подключенный к последовательному порту ноутбука;
- КПК с программой Kismet или Wellenreiter и какой-нибудь утилитой для измере-
ния уровня сигнала;
- дополнительные антенны, в том числе полунаправленные;
- запасные аккумуляторы;
- усилители;
- «шпионское» беспроводное устройство для организации нелегального канала,
если вы планируете проверять еще и физическую безопасность. Лучший пример
такого устройства - это небольшой заранее сконфигурированный USB-клиент
802.11, который можно быстро и скрытно установить на заднюю стенку одного из
серверов или рабочих станций, принадлежащих компании;
- карты района (электронные или бумажные);
- бинокль (чтобы разглядывать антенны на крышах);
- средства передвижения (собственные ноги, автомобиль, велосипед, лодка, само-
лет, дирижабль или воздушный шар).
Прежде чем приступать к настоящему делу, убедитесь, что вы в состоянии перехва-
тить и декодировать трафик, взломать WEP и передавать фреймы в условиях лаборатор-
ной сети. Обратите особое внимание на разъемы антенн и их стойкость к перемещениям
оборудования. Уверившись, что все работает правильно и будет так же работать в поле-
вых условиях, приступайте к следующему этапу. На нем вам не придется ни ходить, ни
ездить, ни плавать, ни летать с развернутыми антеннами. Надо будет только думать и
искать информацию.
ПРИСМАТРИВАЕМСЯ К СЕТИ 139

Присматриваемся к сети
Найдите в Internet все, что возможно, о том районе или корпорации, на которую вы нацели-
лись. Не стоит недооценивать возможности поисковой машины Google. Беспроводные сети в
нужном вам районе, возможно, уже были нанесены на карту кем-то раньше и результаты опуб-
ликованы на каком-то сайте, посвященном поиску сетей, на доске объявлений или в чьем-то
Internet-дневнике. Существует множество сайтов, на которых публикуются названия и коор-
динаты как публичных беспроводных сетей, так и обнаруженных энтузиастами. В Великобри-
тании можно назвать, скажем, http://www.consume.net. Опубликованная там карта сетей в
Лондоне в районе королевского дворца показана на рис. 7.1 (но поверьте нам, в этой части
Лондона беспроводных сетей гораздо больше). Есть интересный сайт о картографировании
беспроводных сетей в США (http://www.cybergeography.org/atlas/wireless.html), причем там
есть ссылки на другие ресурсы. Самый обширный и исчерпывающий перечень беспровод-
ных сетей во всем мире (более 1000000) опубликован на сайте WiGLE (http://www.wigle.net),
а также на сайте http://www.personaltelco.net/index.cgi/WirelessCommunities. Возможно,
вы найдете что-нибудь в изучаемом районе, просто просмотрев этот перечень. Помимо

Рис. 7.1. Публичные сети в Лондоне согласно карте, опубликованной на сайте consume.net
1 4 0 ПЛАНИРОВАНИЕ АТАКИ

информации об известных беспроводных сетях вы можете отыскать полезные сведения о


возможных источниках помех в том же районе, скажем, о радиостанциях, работающих в УКВ
диапазоне, о крупных промышленных предприятиях и т.д.
Поищите как следует и постарайтесь выяснить максимально много о конкретной инте-
ресующей вас сети и других клиентских сетях поблизости - как проводных, так и беспро-
водных. Это обычная процедура, которая должна предшествовать тестированию воз-
можности проникновения независимо от типа сети. Можно ли как-нибудь забраться в
беспроводную сеть из Internet? Какие отделы компании пользуются ею? Кто настраивал
сеть и кто ее администрирует? Известен ли этот человек среди профессионалов, имеет
ли он сертификат в области беспроводных сетей или ученую степень? Отправлял ли он
когда-нибудь вопросы, комментарии или советы в форумы или группы новостей? Вы уди-
витесь, как много можно найти информации об интересующей вас сети. Разумеется, вы
должны также расспросить о сети руководство компании-заказчика и не упускать воз-
можности применить на практике методы социальной инженерии, чтобы выяснить то, что
администрация не склонна сообщать стороннему консультанту. Не надо зваться Кевином,
чтобы быть хорошим социальным инженером; почитайте советы, опубликованные на
странице http://packetstormsecurity.nl/docs/social-engineering/, здравый смысл и учет
конкретной ситуации могут привести к успеху.

Планирование осмотра места развертывания


Завершив этап сбора данных, решите, как вы собираетесь проводить осмотр и где располо-
житесь сами. Вот возможные варианты:
о пешком;
о на велосипеде;
о на машине;
о с высоты.
У каждой тактики есть свои преимущества и недостатки. Пешком обширный район не обой-
дешь, зато гарантируется большой объем собранных данных. Можно остановиться в любой
точке, чтобы замерить уровень сигнала, проверить сетевой трафик в реальном времени, попы-
таться присоединиться к сети, провести DoS-атаку или атаку «человек посередине» и т.д. Кро-
ме того, есть возможность физически осмотреть местность и засечь следующие объекты:
о местоположение и типы антенн;
о точки доступа вне помещений;
о предупредительные знаки «Пользование Bluetooth запрещено» или «Пользование
беспроводными телефонами запрещено»;
о пометки на стенах и тротуарах о наличии поблизости беспроводных сетей.
Знак «Пользование Bluetooth запрещено» ясно указывает на наличие поблизости беспро-
водной сети, администратор которой хорошо понимает, что такое помехи, и постарался пре-
дотвратить их. Что касается пометок на стенах, то хорошим источником информации по этой
теме служит сайт http://www.warchalking.org. Вы должны знать о таких пометках и понимать,
что они означают. Чтобы помочь вам, мы собрали небольшую коллекцию значков в прило-
жении F. В зависимости от района два разных значка могут означать одно и то же, суще-
ствует даже значок для сетей FHSS. Не думайте, что если ваша сеть не принадлежит к типу
ПЛАНИРОВАНИЕ ОСМОТРА МЕСТА РАЗВЕРТЫВАНИЯ 141

802.11 DSSS, а построена, скажем, по технологии HomeRF или 802.11 FHSS, она тем самым
защищена от всех возможных вторжений. Кто-то может охотиться и на такие сети, так что
нас не удивит, если вскоре улицы украсятся новыми значками («Bluetooth PAN», «двухто-
чечный канал, не соответствующий стандарту 802.11» или «сеть WEPPlus», «используется
802.lx, EAP типа ...», «сеть с поддержкой 802.Hi», «TKIP», «TurboCell» и т.д.).
У пешей прогулки есть и очевидные недостатки: вы должны тащить в руках все свое
оборудование (хуже всего дело обстоит с антеннами), а ваши возможности ограничены
зарядом аккумуляторов ноутбука или КПК плюс запасных аккумуляторов, которые вы с
собой захватили. Маловероятно, что вы возьмете на прогулку остронаправленную антен-
ну с очень высоким коэффициентом усиления или усилитель. Но самое главное - и вы сами,
и все ваше оборудование открыты всем стихиям. Ноутбуки плохо переносят дождь, а мок-
рый высокочастотный разъем ведет к значительному ослаблению сигнала, причем из-за
ржавчины это уже потом не поправишь.
Наоборот, поездка на машине защищает вас от погодных условий. К тому же у вас есть
хороший источник энергии - аккумулятор и генератор автомобиля. Вы можете обнару-
жить все беспроводные сети в округе, причем неважно, с какой скоростью ехать: фрей-
мы-маяки посылаются каждые 10 мс, так что вряд ли вы пропустите маяк, проезжая мимо
сети. Конечно, если не плестись совсем уж с черепашьей скоростью, то много трафика
вы не перехватите, а анализировать поток пакетов будет сложновато. Да и для проведе-
ния атаки придется припарковаться в подходящем месте. В центре большого города или
на принадлежащем корпорации участке земли это не всегда возможно. Еще одна понят-
ная проблема в поездке - это антенна. Внешнюю антенну придется разместить вне ма-
шины, иначе неизбежно заметное ослабление сигнала из-за корпуса автомобиля. Помни-
те, что даже обычное стекло вызывает затухание на 2 dBm. Увы, для размещения антенны
снаружи потребуется высокочастотный кабель с разъемами, а это тоже дополнительные
потери. В комплект типичного искателя сетей на колесах входит всенаправленная ан-
тенна на магнитной присоске с коэффициентом усиления порядка 5 dBi и тонкий кабель
с разъемом типа pigtail, который может вызывать ослабление сигнала, большее, чем уси-
ление, обеспечиваемое небольшой всенаправленной антенной на крыше машины. Но
поместить на крышу что-нибудь более пристойное - это дополнительные технические
сложности, а использовать остронаправленные антенны с большим коэффициентом уси-
ления вы сможете, только если у вашего автомобиля складывается крыша. Поэтому обыч-
но нужно совмещать поездку и прогулку.
Поездка на велосипеде - это нечто среднее между пешей прогулкой и ездой на машине.
У вас ограниченный источник энергии, вы подвержены непогоде и передвигаетесь мед-
ленно, зато по ходу можно протоколировать трафик, вокруг нет металлической клетки,
остановиться легко в любом месте, и ничто не мешает повесить на плечо упакованную в
чехол всенаправленную антенну с высоким коэффициентом усиления. Применение остро-
направленных антенн в этой ситуации не оправданно, а руки слишком заняты, чтобы на-
бирать команды. КПК, укрепленный на руле, годится для перехвата трафика в реальном
времени и мониторинга уровня сигнала.
Бэворя об осмотре с высоты (warclimbing), мы в компании Arhont имеем в виду обнаруже-
ние, анализ и проникновение в беспроводные сети, находясь на каком-то возвышенном месте.
Зачем ходить и выискивать сеть, если она сама может «постучаться в дверь»? Летом 2002 года,
забравшись на вершину замка Кэбот Тауэр в Бристоле (рис. 7.2), мы обнаружили 32 беспро-
водных сети, пользуясь остронаправленной решетчатой антенной с коэффициентом 19 dBi,
142 ПЛАНИРОВАНИЕ АТАКИ

и вполовину меньше, когда взяли директорную антенну с ко-


эффициентом 15 dBi. Некоторые из этих сетей были аж в
Бате и за границей Уэльса. Согласитесь, дальность обнаруже-
ния впечатляет! Даже при наличии лишь всенаправленной ан-
тенны с коэффициентом 12 dBi нам все же удалось обнару-
жить десяток сетей по соседству, с тех пор их число, наверное,
значительно возросло.
Возвышенной точкой, откуда удобно искать сети и при-
соединяться к ним, можно считать крышу высокого здания,
номер на верхнем этаже гостиницы, расположенной в под-
ходящем месте, где решительный взломщик может остано-
виться на день-другой, чтобы проникнуть в корпоративную
беспроводную сеть. Преимущества такой методики обус-
ловлены стационарностью атакующего, а также дальностью
Рис. 7.2. Замок Кэбот Тауэр и качеством канала, которые обеспечивает остронаправ-
в Бристоле, Великобритания ленная антенна, расположенная на линии прямой видимос-
ти. Конечно, для этого нужно, чтобы поблизости было под-
ходящее место, которое подбирается на основе замеров уровня сигнала от сети-жертвы.
Если говорить о тестировании возможности проникновения, то следует заранее выявить
все такие места в округе, поскольку это может оказаться полезным в случае, когда придет-
ся триангулировать и засечь продвинутого взломщика, вооруженного остронаправленной
мощной антенной и уверенного в своей непобедимости.
Мы не станем рассматривать более экзотические методы обнаружения беспроводных
сетей, например с самолета. Кто-то остроумно заметил: «А как вы будете наносить мелом
значки, находясь на высоте 3660 м?» Конечно, обнаружить сеть таким способом возможно,
но можете поздравить себя с удачей, если вам удастся перехватить хотя бы один пакет.
Впрочем, мы планируем полетать на воздушном шаре с хорошей направленной антенной.
Планируя осмотр места и последующее тестирование, учитывайте то, что удалось узнать
на этапе сбора данных, например ландшафт местности и расположение сети:
о на каких этажах здания находятся точки доступа и антенны;
о где расположены антенны-мачты;
о каковы основные препятствия в данной местности;
о из какого материала построены стены здания;
о какова толщина стен (см. таблицу ослабления сигнала из-за препятствий в прило-
жении Е);
о есть ли остронаправленные антенны, способные пробиться сквозь препятствия;
о как хорошо охраняется место развертывания; где находятся охранники и камеры
наблюдения.

Выбор времени для атаки


и экономия заряда аккумуляторов
При планировании процедуры тестирования возможности проникновения необходимо
принимать во внимание временной фактор. Прежде всего, нужно согласовать с заказчиком
ВЫБОР ВРЕМЕНИ ДЛЯ АТАКИ И ЭКОНОМИЯ ЗАРЯДА АККУМУЛЯТОРОВ Л 43

подходящее время, чтобы «подрывное» тестирование (например, тесты на устойчи-


вость к DoS-атакам) не мешало нормальной деятельности компании. Однако некоторые
тесты, в том числе осмотр места и взлом WEP, должны проводиться в периоды пиковой
активности сети. Оцените, когда пользователи чаще всего выходят в сеть и когда она
наиболее загружена. Это поможет не только при взломе WEP (напомним, чем больше
трафика, тем лучше), но и во время проведения атак после дешифрирования, во время
которых собираются имена и пароли пользователей. Такие атаки очень важны, посколь-
ку демонстрируют руководству не только тяжелые последствия, к которым приводят
бреши в системе безопасности, но и необходимость применения безопасных протоко-
лов в беспроводной сети (так же, как защищается небезопасный выход в глобальную
сеть общего пользования).
С фактором времени тесно связан вопрос о времени работы аккумуляторов. Сколько
времени потребуется на то, чтобы выполнить все запланированное? Хватит ли на это
заряда аккумуляторов? Взлом WEP часто занимает много времени, а на внедрение тра-
фика для ускорения этого процесса тратится дополнительная энергия, расходуемая на
передачу пакетов. Таким образом, в реальных условиях взлома внедрение трафика -
это палка о двух концах, если, конечно, у атакующего нет дополнительных источников
энергии (например, автомобильного аккумулятора). Аудитор обычно имеет возмож-
ность воткнуть свой ноутбук в розетку, но так бывает не всегда. Решающему испыта-
нию сеть подвергает взломщик, и никто не позволит (по крайней мере, не должен) ему
питаться от корпоративной розетки (хотя он может воспользоваться розеткой в пабе
или ресторане напротив).
Посмотрим, как можно сэкономить заряд аккумуляторов в полевых условиях. Есть
несколько простых мер для достижения этой цели. Остановите все ненужные сервисы
на время картографирования сети (они все равно не используются, мы оставляем ра-
ботать только syslog). Не запускайте X Windows, графический интерфейс очень быстро
сажает батареи! Вообще можете сложить ноутбук, чтобы экран не потреблял энергии.
Если возможно, уменьшите мощность передатчика на карте до минимума (карта Cisco
Aironet и некоторые PCMCIA-карты это позволяют). Мы на опыте выяснили, что если в
нормальных условиях аккумуляторы служат чуть меньше двух часов, то во время про-
гулки или поездки при соблюдении всех вышесказанных условий заряда хватит при-
мерно на два с половиной часа (когда Kismet и tcpdump работают в фоновом режиме).
Подумайте о том, чтобы сохранять перехваченные данные в памяти, и настройте маши-
ну так, чтобы жесткий диск выключался после короткого периода бездействия. В боль-
шинстве современных ноутбуков вполне достаточно памяти для размещения в ней дам-
па пакетов. Но не забывайте, что это энергозависимая память, поэтому нужно оставить
достаточно заряда в аккумуляторах, чтобы успеть сбросить данные на диск до того, как
компьютер «сдохнет». Работайте с командными утилитами, это сэкономит время и
энергию, а заодно и печатать научитесь. Увеличить эффективность работы можно так-
же, если заранее написать сценарии или составить список команд и пользоваться по-
том «вырезкой и вставкой», заменяя лишь несколько переменных, например IP-адреса,
МАС-адреса и номера DSSS-каналов. Выше уже отмечалось, что следует избегать актив-
ного сканирования, если только без этого не обойтись (например, во время тестирова-
ния системы IDS или генерирования IDS-сигнатур). Представленные выше соображе-
ния - это еще один аргумент в пользу применения UNIX-систем для аудита безопасности
беспроводных сетей.
1 44 ПЛАНИРОВАНИЕ АТАКИ

Скрытность при тестировании возможности


проникновения
Последний вопрос, который стоит рассмотреть, - это степень скрытности при тестирова-
нии возможности проникновения в сеть. В некоторых случаях прятаться абсолютно необ-
ходимо, например при проверке качества системы IDS. При атаке на беспроводные сети
обеспечить скрытность можно следующими способами:

о избегать активного сканирования сети;


о пользоваться остронаправленными антеннами;
о уменьшить мощность передатчика на время перехвата трафика;
о по-умному подделывать МАС-адреса;
о удалить из кода известные сигнатуры инструментов для проведения атак (см. главу 15);
о провести DoS-атаку, направленную на то, чтобы вывести из строя сенсоры системы
IDS (подробнее об этом в главе 8).
Разумеется, важно избегать обнаружения IDS и на более высоких (третьем и выше) уров-
нях стека протоколов, когда проводится атака после присоединения к сети.
Не забывайте об этих вездесущих пробных запросах! Карта Cisco Aironet может продол-
жать посылать их, даже находясь в режиме RFMON. Хотя в модулях Aironet, поставляемых
в составе ядра Linux версии 2.4.22 и выше, эта проблема уже решена, но в старых операци-
онных системах пробные запросы все еще посылаются. Да и на вашей машине может сто-
ять более ранняя версия Linux.

Последовательность проведения атаки


Подводя итог нашим наблюдением, опишем последовательность шагов хорошо продуман-
ной профессиональной атаки против беспроводной сети:
1. Изучить сеть и ее зону покрытия, пользуясь доступной в Internet информацией, а
также задействуя личные контакты и применяя методы социальной инженерии. Не
стоит недооценивать возможности поисковой машины Google. He забывайте, что
самым слабым звеном всегда остается человек.
2. Спланировать методику осмотра места развертывания и проведения атаки против
тестируемой сети.
3. Собрать, подготовить и сконфигурировать оборудование и программы, необходимые
для выполнения действий, запланированных на шаге 2.
4. Осмотреть место развертывания сети, определить ее границы и уровень сигнала вдоль
периметра. На этом шаге сначала воспользуйтесь всенаправленной антенной, затем
полунаправленной, а затем остронаправленной решетчатой антенной или тарелкой с
высоким коэффициентом усиления. Отыщите, откуда лучше всего вести стационарную
атаку. При этом следует принимать во внимание прямую видимость, уровень сигнала
и отношение сигнал/шум, скрытность (насколько хорошо просматривается место, мо-
гут ли до вас добраться охранники, где расположены камеры наблюдения), такие фак-
торы, как возможность удобно разместить ноутбук и антенну, а также собственную
РЕЗЮМЕ 145

физическую безопасность (остерегайтесь мест, где можно встретить уличных граби-


телей - ноутбуки стоят дорого!).
5. Проанализировать трафик в сети. Он зашифрован? Насколько велика нагрузка на
сеть? Какие управляющие и административные фреймы циркулируют в сети и много
ли информации можно из них извлечь? Существуют ли очевидные проблемы (высо-
кий уровень шума, перекрытие каналов, другие виды помех, потерявшиеся клиентс-
кие хосты, посылающие пробные запросы)?
6. Попытаться преодолеть обнаруженные меры противодействия. Сюда относится об-
ход фильтрации МАС-адресов и протоколов, определение закрытых ESSID, взлом WEP
и борьба с контрмерами на более высоких уровнях, как, например, фильтрация тра-
фика на шлюзе в проводную сеть, аутентификация пользователей на RADIUS-серве-
ре и виртуальные частные сети (VPN).
7. Присоединиться к беспроводной сети и найти шлюз в Internet или пограничный
маршрутизатор, возможно, беспроводной, а также сенсоры системы IDS, хосты, на
которых ведется централизованное протоколирование, и все остальные поддающие-
ся обнаружению хосты как в проводной, так и в беспроводной сети.
8. Пассивно проанализировав трафик от этих хостов, оценить безопасность протоко-
лов, используемых как в беспроводной сети, так и в присоединенных к ней провод-
ных сетях.
9. Провести активные атаки против представляющих интерес хостов, имея целью по-
лучить привилегии пользователя root, Administrator и т.д.
10. Выйти в Internet или другую сеть через обнаруженные шлюзы и проверить возмож-
ность передачи файлов с компьютера взломщика или на него.
Испытайте эту схему на практике - и не исключено, что эффективность ваших действий
по тестированию возможности проникновения многократно возрастет, хотя вы не добави-
ли в свой арсенал никаких новых инструментов.
В заключение мы хотим порекомендовать урезанный вариант формы, заполняемой по
итогам аудита безопасности и устойчивости беспроводной сети. Мы в компании Arhont
применяем ее в своей практической работе. Форма приведена в приложении G, найдите в
ней раздел, посвященный тестированию возможности проникновения, а заодно ознакомь-
тесь с графами, касающимися общих вопросов организации беспроводной сети и процеду-
ры осмотра места развертывания. Надеемся, что вы получите представление о том, как
планировать аудит, и сможете применить наш опыт в своей повседневной практике. Те
графы формы, которые сейчас могли остаться непонятными, будут разъяснены позже. Воз-
можно, вы и сами составляли подобный план. Мы рады будем обсудить все предложения и
добавления к нашей форме.

Резюме
Планирование и документирование атаки так же важны, как наличие необходимого обо-
рудования и программ. Удачно составленный план поможет вам сэкономить время и силы,
получить важную информацию еще до проведения аудита и гарантирует от неприятных
сюрпризов (например, «издыхания» аккумуляторов прямо в процессе сканирования). «Бит-
ву надо выигрывать еще до ее начала» (Сун Цзу).
ПРОРЫВАЕМ
ОБОРОНУ

Чтобы идти вперед без остановки, просачивай-


тесь сквозь бреши.
Суп Цзу (Sun Tzu)

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

Простейший способ войти, куда не звали


Первым делом атакующий ищет то, что плохо лежит. Неопытный взломщик просто не может
больше никуда проникнуть, а квалифицированный хакер стремится сэкономить время и быть
уверенным в отсутствии системы IDS и фильтрации (если, конечно, это не ловушка). Ему хоте-
лось бы найти в сети хосты, на которые можно зайти и установить там черный ход для пос-
ледующей эксплуатации. Вопреки мнению некоторых «экспертов по безопасности», существу-
ет очень много полностью открытых беспроводных сетей. Под этим мы понимаем, что в них не
реализован протокол WEP, нет фильтрации МАС-адресов, не закрыты ESSID, отсутствует фильт-
рация протоколов и, скорее всего, точкой доступа можно управлять прямо из сети. Причин
такого положения вещей много, и важнейшая из них - лень и невежество пользователей (и
даже системных администраторов). При атаке на такую сеть взломщика интересуют три основ-
ных вопроса: физическая достижимость сети, наличие выхода в Internet и (редко) возможность
попасть в ловушку-приманку. Рассмотрим их по порядку:
о физическая достижимость сети. Даже если сеть полностью открыта, она не представ-
ляет интереса для взломщика, если войти в нее можно, только сидя со своим ноутбу-
ком прямо под окнами офиса;
ПРОСТЕЙШИЙ СПОСОБ ВОЙТИ, КУДА НЕ ЗВАЛИ 1 4 7

о выход в Internet. Есть ли он вообще и насколько «толстым» является канал;


о ловушка. Не подстерегает ли здесь опасность.
Вопрос о достижимости решается с помощью антенны с высоким коэффициентом уси-
ления. Мощная всенаправленная антенна может выглядеть как трость или кий, не вызывая
никаких подозрений. Большинство директорных антенн могут сойти за плакаты, и даже
направленная тарелка никого не удивит, если взломщик будет притворяться рабочим,
починяющим неисправный канал, или даже обычным радиолюбителем. Странно будет
выглядеть лишь человек, который сидит в парке, где поблизости ничего нет, развернув
огромную антенну и выдавая себя за студента университета, проводящего какое-то ис-
следование. Вопрос о наличии выхода в Internet можно решить разными способами: на-
пример, если проанализировать трафик по протоколу DHCP, можно найти IP-адрес шлюза.
Признаемся, что нам нравится программа Ettercap. Нажмите клавишу р/Р, чтобы получить
список установленных в нее дополнительных модулей. Модуль для обнаружения шлюзов
в локальной сети называется triton. Последний вопрос - о ловушке - решить труднее. Толь-
ко интуиция и предшествующий опыт помогут понять, не отравлен ли этот так и прося-
щийся в руки плод. Иногда помогает поиск анализаторов, взгляните на модуль hunter в
программе Ettercap (рис. 8.1).
Разумеется, тестируя сеть по заказу корпорации, вы можете просто спросить, есть ли в
ней приманки, но от этого ведь никакого удовольствия, правда?

Рис. 8.1. Дополнительный модуль hunter для программы Ettercap


1 4 8 ^ ПРОРЫВАЕМ ОБОРОНУ

Перелезаем через низкий забор:


преодоление закрытых ESSID,
фильтрации МАС-адресов и протоколов
Теперь обратимся к чуть лучше защищенным беспроводным сетям. Что можно сказать о
закрытых сетях? ESSID - это плохой разделяемый секрет. Причина в том, что он удаляется
не из всех административных фреймов. Например, во фреймах с запросами на повторную
аутентификацию и повторное присоединение ESSID присутствует. Значит, сеть с мобиль-
ными хостами вообще ничего не выигрывает от закрытия ESSID, а послать фрейм с запро-
сом на прекращение сеанса (deauthentication) одному или нескольким хостам в закрытой
сети совсем просто:
arhontus:~# ./essid__jack -h
Essid Jack: доказательство того, что ssid не стоит использовать как
пароль.
Usage: ./essid_jack -b <bssid> [ -d <destination ac> ] [ -c
<channel number> ] [ -i <interface name> ]
-b: bssid, MAC-адрес точки доступа (например, 00:de:ad:be:ef:00)
-d: MAC-адрес получателя, по умолчанию широковещательный адрес,
-с: номер канала (1-14), на котором работает точка доступа, по
умолчанию текущий.
-i: имя интерфейса AirJack (по умолчанию ajO).
arhontus:~# essid__jack -b 00:02:2d:ab:cd: -с 11
Got it, the essid is (escape characters are с style) :
"ArhOnt-X"

На платформе BSD можете воспользоваться утилитой dinject-deauth из комплекта Wnet


для анализа проходящего трафика.
Разумеется, такая методика сработает только против сети, в которой есть несколько дос-
тижимых присоединившихся хостов. В редком случае «одинокой» точки доступа единствен-
ная возможность - угадать закрытый ESSID. Как ни странно, многие пользователи закрывают
ESSID, но при этом не изменяют значение, заданное по умолчанию (возможно, полагаясь на
то, что оно все равно не передается). ОШ (Organizationally Unique Identifier), хранящийся в
первых трех байтах МАС-адреса, позволит определить компанию-производителя точки дос-
тупа (см. RFC 1700) и значение ESSID, которое этот производитель выставляет по умолча-
нию. Эти и многие другие интересные факты вы найдете в приложении Н.
Преодолеть фильтрацию МАС-адресов тоже нетрудно, хотя нам приходилось встречать
плохо знакомых с беспроводной связью консультантов, которые утверждали, будто это хо-
рошая защита. Стыдитесь, ребята! Проанализируйте сетевой трафик и выясните, какие
МАС-адреса встречаются. Когда хост выйдет из сети, возьмите себе его MAC-адрес и присо-
единитесь. Можете также присвоить своей машине такой же MAC- и IP-адрес, как у хоста-
жертвы, и мирно сосуществовать с ним в одной (разделяемой) сети. Конечно, вам придется
отключить протокол ARP на своем интерфейсе и расстаться со своим межсетевым экраном.
Надо будет также следить за тем, что вы отправляете в сеть, чтобы хост-жертва не посылал
слишком много пакетов TCP RST и сообщений о недоступности порта по протоколу ICMP,
ПРЕОДОЛЕНИЕ ЗАКРЫТЫХ ESSID, ФИЛЬТРАЦИИ MAC-АДРЕСОВ И ПРОТОКОЛОВ 1 49

а то, не дай бог, сработает дорогущая система IDS. Попытайтесь при общении с внешним
миром ограничиться только протоколом ICMP. Можно воспользоваться черным ходом на
базе ICMP в стиле программы Loki (например, инкапсулировать данные в эхо-ответы или
пакеты ICMP других типов, на которые не ожидается никакой реакции). Если вы все же
хотите общаться в полную силу, то необязательно ждать, пока хост выйдет из сети добро-
вольно, можно и вышибить его. Это может привести к жалобам со стороны пользователей
и вызвать тревогу в IDS, особенно если данная система учитывает специфику беспровод-
ных сетей, но кому какое дело, если вам срочно нужно просмотреть последние обновления
на сайте http://www.wi-foo.com. Все же постарайтесь не забывать о здравом смысле - вы-
берите хост, который в данный момент не генерирует трафик, и пошлите ему фрейм с зап-
росом на отсоединение (deassociation), подменив свой МАС-адрес адресом точки доступа.
Одновременно подготовьте вторую клиентскую карту, задав для нее МАС-адрес хоста-жер-
твы и другие параметры, необходимые для присоединения к сети. В этом состязании вы
обречены на победу, так как ничто не помешает вам затопить жертву непрерывным пото-
ком запросов на разрыв соединения. В Linux для этой цели можно воспользоваться утили-
той wlanjack:
arhontus:~# ./wlan_jack -h
Wlan Jack: 802.11b DOS attack.
Usage: ./wlan_jack -b <bssid> [ -v <victim address> ] [ -c
<channel number> ] [ -i <interface name> ]

-b: bssid, МАС-адрес точки доступа (например, 00:de:ad:be:ef:00).


-v: МАС-адрес жертвы, по умолчанию широковещательный адрес.
-с: номер канала (1-14), на котором работает точка доступа, по
умолчанию текущий.
-i: имя интерфейса AirJack (по умолчанию ajO).

arhontus:~# ./wlan_jack -b 00:02:2d:ab:cd: -v 00 : 05:5D:F9:ab:cd -c 11


Wlan Jack: 802.11b DOS attack.

Можно вместо этого воспользоваться утилитой File2air. Если карта работает под управ-
лением драйверов HostAP, то можно запустить Voidll или подготовить собственные фрей-
мы с помощью библиотеки Libwlan. Еще один способ затопить хост потоком фреймов с зап-
росом на разрыв соединения - взять написанную Майком Шиффманом (Mike Shiffman)
утилиту omerta (при наличии драйверов HostAP), в которой используется библиотека
Libradiate. В этой книге мы не стали описывать Libradiate, поскольку она уже год как не
поддерживается, и в настоящее время omerta - пожалуй, единственный достойный упоми-
нания инструмент, базирующийся на этой библиотеке. На платформе OpenBSD к вашим
услугам утилита dinject-disas, которую имеет смысл запускать в цикле из простенького
shell-сценария. И наконец, еще один способ проведения очень эффективных DoS-атак с
помощью AirJack предоставляет программа fatajack. Подробнее о ней написано в конце
этой главы, в разделе, посвященном DoS-атакам.
На всякий случай напомним, как можно изменить свой МАС-адрес:
# ifconfig wlanO hw ether DE:AD:BE:EF:CO:DE (Linux ifconfig)
# ip link set dev wlanO address DE:AD:BE:EF:CO:DE (Linux iproute)
# ifconfig wiO ether DEADBEEFCODE (FreeBSD)
# sea -v wiO DE:AD:BE:EF:CO:DE (Open BSD)
ПРОРЫВАЕМ ОБОРОНУ

Sea - это отдельная утилита, она не поставляется в составе OpenBSD, но ее можно ска-
чать с сайта http://www.openbsd.org.
Преодолеть фильтрацию протоколов сложнее. К несчастью системных администраторов
и к счастью взломщиков, на рынке представлено очень немного точек доступа, в которых
корректно реализована фильтрация протоколов, причем обычно это дорогие устройства
высокого класса. Кроме того, фильтрация протоколов применима в весьма специфических
ситуациях, когда пользователи очень ограничены в своих действиях, например могут хо-
дить только на корпоративный сайт по протоколу HTTPS или посылать почту по протоколу
Secure Multipurpose Mail Extensions (S/MIME) с КПК, которые выдаются служащим исклю-
чительно для этих целей. В этой ситуации может помочь перенеправление портов (port
forwarding) no SSH, но нужно быть уверенным, что обе стороны поддерживают протокол
SSHv2.
Атаки против сетей, защищенных фильтрацией протоколов, направлены главным обра-
зом на разрешенный безопасный протокол (который может оказаться вовсе не таким безо-
пасным, как кажется). Хорошим примером подобной уязвимости может служить известная
атака против протокола SSHvl, реализованная утилитами sshow и sshmitm из комплекта
Dsniff (автор Dug Song). Утилита sshow помогает атакующему получить некоторую полез-
ную информацию о том, как обойти SSH-трафик (например, выявить попытки аутентифи-
кации или узнать длину передаваемых паролей и команд в трафике по протоколам SSHvl
и SSHv2). A sshmitm - это утилита для проведения атаки «человек посередине» против
SSHvl, которая позволяет перехватить имя и пароль и завладеть соединением. К сожале-
нию, хотя основные сетевые операционные системы сейчас поддерживают протокол SSHv2,
но для захода на маршрутизаторы и некоторые межсетевые экраны по-прежнему можно
воспользоваться только SSHvl. Этот же устаревший протокол все еще применяется в про-
граммах telnet и rlogin. В проводных сетях sshmitm будет работать только при условии
перенаправления трафика путем подделки записи в DNS. Но в сетях 802.11 вместо этого
можно успешно применить атаку «человек посередине» на второй уровень типа monkey Jack.
При этом в протоколах системы IDS останется меньше следов, если только она не реализо-
вана корректно с учетом специфики беспроводных сетей (а это редкость).
Автор Dsniff не оставил без внимания и протокол HTTPS. Утилита webmitm может неза-
метно пропускать через себя и анализировать весь трафик по протоколу HTTPS и попутно
перехватывать большую часть «безопасно» зашифрованных по SSL входов на сайты с Web-
почтой и заполненных форм, отправляемых на Web-сайты. И в этом случае перенаправле-
ние трафика с помощью dnsspoof для работы webmitm можно в беспроводной сети заме-
нить атакой «человек посередине», уменьшив риск привлечь внимание администратора.
Еще один замечательный инструмент, разработанный специально для атаки на защищен-
ные SSL соединения (HTTPS, IMAPS и т.д.), - это программа Omen. О ней, как и о webmitm,
мы подробнее расскажем в следующей главе.
Если проектировщики сети и руководство решат выбрать в качестве основной линии
обороны протоколы SSH, HTTPS и т.п. и не реализовывать шифрование на нижних уровнях
и корректную взаимную аутентификацию (например, 802.lx, EAP-TLS или еще более на-
дежную), то вам, возможно, даже не придется атаковать протоколы безопасности на уров-
не 6. Ничто не помешает взломщику присоединиться к целевой сети, на короткое время
запустить nmap для сканирования, после чего провести атаку на обнаруженный демон sshd
(например, с помощью программы sshnuke, эксплуатирующей уязвимость в алгоритме
CRC32). Конечно, в реальной жизни ошибка в CRC32 была исправлена давным-давно, но в
СПРАВЛЯЕМСЯ С ПРОСТЫМ ЗАМКОМ: РАЗЛИЧНЫЕ СПОСОБЫ ВЗЛОМА ПРОТОКОЛА WEP / 1 5 1

sshd регулярно обнаруживаются все новые уязвимости. Что касается безопасности HTTPS,
то последние версии искателей уязвимостей в CGI-приложениях поддерживают и этот про-
токол (например, Nikto с флагом - s s l ) , и в большинстве случаев для эксплуатации обна-
руженных «дыр» по протоколу HTTPS достаточно заменить номер порта с 80 на 443 или
пропустить данные через stunnel.
Наконец, решительно настроенный взломщик всегда может прибегнуть к атаке методом
полного перебора. Для взлома SSH методом полного перебора есть много утилит и сцена-
риев: guess-who, ssh-crack, ssh-brute.sh, 55hb_vl.sh и другие. Если речь идет о защищен-
ной по SSL странице входа на Web-сайт, то можете попробовать сценарий php-ssl-brute.
Хотя взлом методом полного перебора оставляет красноречивые следы в протоколах, но
для атакующего беспроводную сеть это не имеет значения, поскольку найти его и подвер-
гнуть наказанию все равно достаточно сложно. Хотя взлом методом полного перебора тре-
бует много времени и истощает аккумуляторы, но если больше ничего не остается, кто-то
может попробовать и даже добиться успеха.

Справляемся с простым замком:


различные способы взлома протокола WEP
Следующим шагом на пути к получению полного контроля над беспроводной сетью явля-
ется взлом протокола WEP. Уже отмечалось, что атака на беспроводную сеть не начинается
и не заканчивается взломом WEP, как полагают некоторые эксперты. Но если атакующий
не в состоянии взломать WEP, то вмешаться в работу сети он может, лишь проводя DoS-ата-
ки на уровни ниже того, на котором реализован этот протокол.
Из раздела, посвященного инструментам для взлома WEP, вы, наверное, помните, что есть
три основных способа атаковать WEP:
о атака методом полного перебора, возможно, с оптимизацией;
о атака FMS;
о улучшенная атака FMS.
Поскольку эта книга представляет собой практическое руководство по безопасности
беспроводных сетей, а на тему слабостей WEP и математики взлома написаны уже сотни
страниц, мы не станем вникать в математические тонкости атак на этот протокол. Тем не
менее мы считаем необходимым изложить некоторые криптологические сведения о WEP
как дань уважения всем исследователям, которые внесли свой вклад в анализ этого прото-
кола и выявление его недостатков.

Взлом WEP методом полного перебора


Полный перебор пространства ключей WEP с помощью таких инструментов, как wep_tools или
dwepcrack, реален только в случае 40-битовых ключей. Даже при такой небольшой длине клю-
ча на одном компьютере с процессором Pentium III на это может уйти примерно 50 дней. Впро-
чем, возможна и эффективная распределенная атака против WEP с 40-битовым ключом, и не
следует недооценивать потенциала атак по словарю. Последнее соображение применимо и к
ключам длиной 128 бит и больше. В частности, атаку по словарю против единственного пере-
хваченного пакета данных, зашифрованного WEP, реализует программа Wepattack.
1 5 2 ПРОРЫВАЕМ ОБОРОНУ

Тим Ньюшэм (Tim Newsham) отметил, что алгоритм, принятый в качестве стандарта де
факто для генерирования 40-битового WEP-ключа многими производителями беспровод-
ного оборудования, никуда не годится. В самом начале строка пароля сворачивается в 32-
40 32
разрядное число, что сразу уменьшает размер пространства ключей с 2 до 2 бит. Это
случайное число служит начальным значением для генератора псевдослучайных чисел
(PRNG, см. главу 11), который порождает все четыре 40-битовых WEP-ключа, используемых
в сети. Хотя теоретически длина цикла в пространстве ключей, сгенерированных алгорит-
32
мом PRNG, равна 2 , но из-за особенностей способа получения значений от PRNG реальная
24
периодичность сокращается до 2 . Точнее, затравка х порождает те же ключи, что и зат-
24
равка х + 2 . Хуже того, метод сворачивания строки пароля в 32-разрядное число таков,
что старший бит каждого из четырех байтов наверняка равен нулю. Сочетание всех этих
21
слабостей приводит к тому, что алгоритм может породить всего 2 уникальных наборов
WEP-ключей, соответствующих затравкам в диапазоне от 0 до 0x10 0 0 0 0 0, в которых сбро-
шены биты в позициях 0x80, 0x8 0 0 0 и 0x8 0 0 0 0 0. Таким образом, для взлома любого на-
21
бора WEP-ключей, сгенерированных из пароля данным алгоритмом, требуется не более 2
операций. По наблюдениям Ньюшэма, взлом займет примерно 90 с на компьютере с про-
цессором РП 233 МГц или 35 с при наличии процессора РШ 500 МГц. Сравните это с 50
днями при взломе методом полного перебора без учета описанных слабостей.
Впрочем, не все производители применяют именно этот уязвимый алгоритм генериро-
вания ключей (насколько мы знаем, фирма 3Com этого никогда не делала). Да и 40-бито-
вые ключи уже практически не используются, хотя имеются инструменты, генерирующие
такие ключи правильно. Примером подобной программы может служить dwepkeygen, вхо-
дящая в состав комплекта BSD-airtools. Кроме того, для взлома WEP с помощью wep_tools
нужен большой (порядка 24 Гб) файл дампа в формате рсар. Таким образом, хотя замеча-
ния Ньюшема интересны и займут свое место в истории криптоанализа беспроводных про-
токолов, но мы не рекомендуем пробовать описанную им атаку или пытаться вскрыть ме-
тодом полного перебора 128/104-битовые WEP-ключи, применяемые в современных сетях.
Впрочем, если в вашем распоряжении имеется по-настоящему большой массив перехва-
ченных данных, то атака по словарю с помощью wep_tools или dwepcrack может и приве-
сти к успеху. Но есть вариант и получше: попытаться провести атаку по словарю против
одного-единственного перехваченного пакета данных или дампа небольшого размера с
помощью программы Wepattack.

Атака FMS
В самой распространенной атаке против протокола WEP используется метод вскрытия клю-
ча, который в 2001 году предложили Скотт Флурер (Scott Fluhrer), Ицик Мантин (Itsik
Mantin) и Ади Шамир (Adi Shamir). Оригинальная статья называется «Weaknesses in Key
Scheduling Algorithm of RC4», ее можно скачать со страницы http://www.cs.umd.edu/-waa/
class-pubs/rc4_ksaproc.ps. Как вы уже знаете, впервые эта атака была реализована на прак-
тике в программе Wep_crack, а затем в AirSnort. Для тех, кому любопытно, как работает
атака, мы приводим здесь краткие пояснения. Если вы уже знакомы с атакой FMS или не
интересуетесь теоретическим криптоанализом, то можете без ущерба для понимания про-
пустить этот раздел.
СПРАВЛЯЕМСЯ С ПРОСТЫМ ЗАМКОМ: РАЗЛИЧНЫЕ СПОСОБЫ ВЗЛОМА ПРОТОКОЛА WEP 1 53

В основе атаки FMS лежат три основных принципа:


1. При некоторых векторах инициализации (IV) шифр RC4 (см. главу 11) оказывается
таким, что информация о ключе проявляется в выходных байтах.
2. Слабость, выражающаяся в инвариатности, позволяет использовать выходные байты
для определения наиболее вероятных байтов ключа.
3. Первые выходные байты всегда предсказуемы, поскольку содержат заголовок SNAP,
определенный в спецификации IEEE.
WEP-ключ можно определить как К - IV.SK, где SK - секретный ключ. Операцию в алго-
ритме RC4 можно описать так: K=IV.SK > KSA(K) > PRNG(K) XOR п о т о к д а н -
ных. Алгоритм развертки ключа (key scheduling) KSA(K) работает следующим образом:
Инициализация:
For i = 0 \х{202б} N - 1
S[i] = i
j = О
Перемешивание:
For i = 0 \х{2026} N - 1
j = j + S [ i ] + K [ i mod 1]
Swap(S[i], S[j])
Генератор псевдослучайных чисел PRNG устроен так:
Инициализация:
i = 0
j = О
Цикл генерирования:
i = i + 1
j + j + SCi]
Swap(S[i], S[j])
Output Z = S[S[i] + S[j]]

Некоторые IV инициализируют PRNG так, что первый байт гаммы генерируется с использо-
ванием одного байта из секретного ключа. Поскольку над первым байтом данных на выходе
PRNG выполняется операция XOR с предсказуемыми данными (заголовок SNAP), то этот байт
легко вычислить. Значения, которые можно получить из слабых IV, верны только на протяже-
нии 5% времени; некоторые сохраняют достоверность примерно в 13% времени. Принимая во
внимание длину ключа, для определения правильного ключа WEP потребуется проанализиро-
вать от б до 8 млн пакетов. Теоретически максимальная пропускная способность в сети 10Base-T
Ethernet сравнимой по быстродействию с сетью 802.11b, составляет 812 фреймов в секунду
(размер фрейма равен 1518 бит). Если разделить 6000000 на 812, то получится 7389 с или око-
ло двух часов. За это время можно набрать достаточно пакетов для эффективного взлома WEP.
Но, как мы увидим ниже, в действительности все обстоит иначе.
Базовая атака FMS сводится к поиску IV, удовлетворяющих правилу (А + 3, N - 1, X), где
А - байт секретного ключа, который мы пытаемся взломать, N - размер S-блока (256), а X -
случайное число. Рекомендуется, чтобы после выполнения функции развертки KSA выпол-
нялись следующие соотношения.
154 ПРОРЫВАЕМ ОБОРОНУ

Основная проблема состоит в том, что эти соотношения зависят от предыдущих байтов
ключа, поэтому их нужно применять ко всему пакету для каждого проверяемого байта
ключа. В классической атаке FMS проверяется только первый выходной байт, поскольку
это очень надежно: мы знаем, что почти всегда первый байт заголовка SNAP равен ОхАА.

Улучшенная атака FMS


Чтобы обойти указанную проблему и оптимизировать атаку FMS, Hlkari из DasbOden Labs
проанализировал, как выглядят слабые IV и как они связаны с байтами ключа. В статье
«Practical Exploration of RC4 Weaknesses in WEP Environments» (любой серьезный профес-
сионал в области безопасности беспроводных сетей должен ее прочесть; она выложена на
странице http://www.dachbOden.com/projects/bsd-airtools/wepexp.txt) он отмечает, что
структуру слабых IV можно описать так:

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


СПРАВЛЯЕМСЯ С ПРОСТЫМ ЗАМКОМ: РАЗЛИЧНЫЕ СПОСОБЫ ВЗЛОМА ПРОТОКОЛА WEP 1 55

8 - 8-bit set of weak IVs


16 - 16-bit set of weak IVs
+ - 2 дополнительных зависящих от х и у 8-битовых слабых IV
Из этого распределения можно получить грубую оценку числа слабых IV на байт клю-
ча. Есть и другие способы вычислить это значение, описанные в цитируемой статье. Одна-
ко настоящая задача состоит в том, чтобы найти алгоритм, который позволил бы отфильт-
ровать слабые IV, основываясь на байте секретного ключа, для атаки на который они могут
быть использованы. Искомый алгоритм выглядит примерно так:
пусть 1 - это число элементов в секретном ключе SK
i = О
For В = 0 . . . 1 - 1
I f ( ( ( 0 <= a a n d a < В) o r
( а = В a n d b = (В + 1) * 2) ) a n d
(В % 2 ? а ! = (В + 1) / 2 : 1 ) ) o r
(а = В + 1 a n d (В = 0 ? b = (В + 1) * 2 : 1) ) o r
(х = В + 3 a n d у = N - 1) o r
(В ! = О a n d ! (В % 2) ? ( х = 1 a n d у = (В / 2) + 1) o r
(х = (В / 2) + 2 a n d у = (N - 1) - х : 0)
Then
Сообщить о с л а б о м IV
Эта методика сокращает время поиска для каждого ключа примерно в 20 раз, так что
времени для взлома WEP нам хватит. Не нужно собирать 6000000 или больше пакетов, хва-
тит и полумиллиона! Это улучшенный вариант атаки FMS, реализованный в утилите
dwepcrack из комплекта BSD-airtools. Если хотите узнать больше, почитайте ее исходный
текст.
Многие все еще отрицают практическую применимость атак с целью взлома WEP. Утвер-
ждается, например, что домашняя сеть или сеть SOHO (small office/home office - сеть для
1 5 6 ПРОРЫВАЕМ ОБОРОНУ

малого или домашнего офиса) не генерирует столько трафика, чтобы можно было за ра-
зумное время набрать достаточно много слабых или интересных IV и скомпрометировать
ключ. Но вы только что видели методику, которая позволяет заметно уменьшить объем
необходимых данных, и она была программно реализована еще в 2001 году! Впрочем, даже
если воспользоваться самым популярным инструментом для взлома WEP - программой
AirSnort, то результат вовсе не обрадует немногих оставшихся энтузиастов этого протоко-
ла. Наш опыт показывает, что при работе с AirSnort достаточно всего от 3000 до 3500 фрей-
мов, содержащих интересные IV, чтобы взломать 64- или 128-битовый ключ WEP. Един-
ственная разница между этими размерами ключей - время, необходимое для сбора такого
количества фреймов. В тестируемой беспроводной сети для сбора фреймов, нужных для
взлома 128-битового ключа, потребовалось всего на 10-20% больше времени. Для взлома
64-битового ключа при прослушивании двухточечного канала 802.11b с помощью AirSnort
потребовалось 1 ч 47 мин; при этом один хост непрерывно посылал пинг-запросы другому
(примерно 300 пакетов в секунду). Иными словами, для завершения атаки потребовалось
собрать 107 мин х 300 пакетов/с = 1926000 пакетов, то есть намного меньше 6000000, пред-
сказанных теорией. Возможно, нам просто повезло, но будете ли вы ставить безопасность
своей сети в зависимость от того, насколько удачлив окажется взломщик?
В больших корпоративных беспроводных сетях 300 пакетов в секунду - это вполне
нормальная и ожидаемая интенсивность, особенно когда речь идет о стандартах
802.11а и 802.Ид, в которых предполагается более широкая полоса частот и повышен-
ная пропускная способность. Работа «болтливых» сетевых протоколов (RIP, протоколы
маршрутизации с опросом состояния канала, STP, HSRP, VRRP, NetBIOS, IPX RIP и SAP,
AppleTalk и т.д.) может заметно уменьшить время, необходимое для взлома WEP. Они
генерируют трафик даже тогда, когда пользователи ничего не делают. Представьте себе
большую беспроводную сеть на базе ОС Novell, в которой работает протокол NetBIOS
поверх IPX и имеется три маршрутизатора Cisco с включенным режимом горячего ре-
зервирования на случай отказа и активированным протоколом CDP (нам встречались
подобные сети в Великобритании). Такая сеть не обязана быть целиком беспроводной;
достаточно, чтобы часть проводного трафика протекала в беспроводную часть, а нам
не раз приходилось видеть точки доступа, включенные непосредственно в коммутатор
или мультиплексор. Предположим, что в сети есть 100 хостов, а пользователи ничего
не передают. За час каждый хост сгенерирует примерно 1200 пакетов-контролеров
NetBIOS (keep-alives), 40 пакетов IPX RIP и 40 пакетов SAP, а каждый маршрутизатор
пошлет 1200 пакетов HSRP Hello и 60 фреймов CDP, если параметры, выставленные по
умолчанию, не изменены (а их редко кто меняет), ну и, конечно, 40 пакетов RIP. Таким об-
разом, всего будет отправлено 100 х (1200 + 40 + 40) + 3 х (1200 + 60 + 40) т 131900 пакетов.
Значит, на сбор 2000000 пакетов, необходимых для взлома WEP с помощью AirSnort,
уйдет примерно 15 ч. Для dwepcrack нужно всего около 500000 пакетов, которые мож-
но собрать за 3 ч 47 мин. И это без единого работающего пользователя! Не забывайте,
что мы говорим о гипотетической идеальной сети. На практике сервер Novell может по-
сылать пакеты SAP чаще чем раз в 90 с, поскольку один такой пакет может объявлять
до семи сервисов, а на сервере может работать и большее их число. Может работать
также NLSP и присутствовать трафик по протоколу STP. Нам часто доводилось встре-
чать сети, администратор которых даже не подозревал о совершенно ненужном STP-
трафике, а на некоторых дорогих коммутаторах и даже беспроводных точках доступа
протокол STP включен по умолчанию. Помните о трафике!
ВЗЛОМ WEP - ПРАКТИЧЕСКИЕ НАБЛЮДЕНИЯ Л 57

Наконец, некоторые старые карты 802.11b используют одно и то же значение IV или


начинают отсчитывать номера IV с 0 при каждой инициализации карты и увеличивают
ровно на 1. Это весьма существенно уменьшает время, необходимое для взлома WEP.
Ну а как насчет взлома WEP в сетях 801.11а? Да в основных чертах все так же. Един-
ственная разница состоит в том, что нам не известно о приличной поддержке стандар-
та 802.11а на платформе BSD, a AirSnort не работает с драйверами ark_5k. Но можно
сохранить в файле формата рсар трафик 802.11а, собранный картой с набором микро-
схем Atheros в режиме RFM0N во время работы tcpdump (или Kismet), а затем подсу-
нуть его на вход AirSnort или даже dwepcrack (после перезагрузки в BSD). Если вы
хотите взламывать WEP в сетях 802.11а в режиме реального времени, воспользуйтесь
программой wepcrack в сочетании с периодическим запуском через at/crond. Напри-
мер, можно передать выход tcpdump на вход prism_getIV.pl, а затем обработать файл
IVFile.log с помощью WEPCrack.pl.

Справляемся с простым замком более


сложным способом: внедрение трафика
для ускоренного взлома WEP
Рассмотренные до сих пор атаки против протокола WEP были пассивными, то есть зависе-
ли от трафика, уже циркулирующего в беспроводной сети. Но можно ли сгенерировать
дополнительный трафик, не присоединяясь к сети? Ответ положительный, и мы уже упо-
минали в главе 5 необходимые для этого инструменты, например reinj или Wepwedgie. Го-
ворят, что reinj может гарантированно сократить время взлома WEP до менее чем часа, и
нет причин не верить такому утверждению (в любом случае профессионал в области ком-
пьютерной безопасности должен быть немного параноиком, правда?). Поэтому аргументы
типа «эта сеть SOHO генерирует так мало трафика, что не может быть мишенью для взлома
WEP» не проходят; ничто не помешает взломщику внедрить дополнительный трафик с по-
мощью ранее описанных инструментов. Более того, атака на беспроводную сеть с помо-
щью внедрения трафика может включать обнаружение хостов и даже сканирование пор-
тов, вообще не обращая внимание на наличие WEP. Пакеты TCP SYN предсказуемы и могут
быть внедрены, то же относится к пакетам TCP ACK, TCP RST, TCP SYN-ACK и сообщениям
ICMP о недостижимости объекта, например, порта. В настоящее время активно разрабаты-
вается один подобный инструмент - Wepwedgie - для Linux, его работающая бета-версия
должна появиться к моменту появления этой книги на прилавках. Не пропустите! Вовсе
необязательно дожидаться завершения взлома WEP, чтобы продолжить исследование сети.
Пока ищется ключ, пользуйтесь Wepwedgie - это поможет сэкономить время.

Взлом WEP - практические наблюдения


Чтобы завершить рассказ о взломе WEP, приведем некоторые наблюдения из нашей прак-
тики. Некоторые обстоятельства, например шум, ненадежный канал, события прекращения
сеанса или отсоединения, могут увеличить объем зашифрованного WEP трафика, циркули-
рующего в беспроводной сети.
1 5 8 А ПРОРЫВАЕМ ОБОРОНУ

Одно из таких обстоятельств - присутствие каналов, на которых работает протокол с


установлением постоянных соединений. Представьте себе два хоста, обменивающихся дан-
ными по беспроводному каналу по протоколу TCP или SPX. Если канал ненадежен или вне-
запно пропадает, то сегменты данных будут повторяться, пока, наконец, датаграмма не
дойдет до получателя. Число пакетов, необходимых для передачи данного объема данных,
возрастает, а вместе с ним и число фреймов с интересными IV. Более того, чтобы как-то
решить проблему плохого качества связи, администратор может уменьшить размер фрей-
ма, как рекомендуется во всех руководствах по беспроводным сетям. Это, конечно, помо-
жет, но одновременно увеличится и число посылаемых фрагментов, и в каждом из них
будет свой IV. Отметим, что такие типичные для высокочастотной связи проблемы, как
распространение сигнала по нескольким путям, активные помехи и скрытые узлы, обычно
и становятся причиной уменьшения размера фрейма. Честно говоря, «устойчивость и бе-
зопасность сети - это две стороны одной медали» (Дэн Каминский). Странно, что никто не
проводил исследований, направленных на вывод математического соотношения между
предустановленным в стандарте 802.11 размером фрейма и временем, необходимым для
взлома WEP. Нам кажется, что это любопытная тема, которая должна заинтересовать мно-
гих взломщиков.
Еще одна причина, по которой пропадание канала приводит к генерации избыточного
трафика, - это обновление маршрутных таблиц. Представьте себе протокол маршрутиза-
ции, зависящий от состояния канала (например, OSPF), который работает в беспроводной
сети. Стоит исчезнуть каналу к одному из маршрутизаторов, как тут же последует лавина
уведомлений о состоянии канала (LSA - Link State Advertisement), поставляющих алгорит-
му Дейкстры новые данные. Ну а если канал «падает» регулярно, приводя к меняющемуся
маршруту (flapping route)? В ситуации, когда каналы к назначенному и резервному марш-
рутизаторам «падают» одновременно, происходит выбор маршрутизаторов, а значит, еще
больше пакетов, еще больше IV. Протоколы типа вектор-расстояние, например RIP и IGRP,
ничем не лучше; они не только постоянно генерируют большие объемы сетевого трафика,
но в случае пропадания канала начинают передавать интенсивный поток обновлений. Эти
примеры демонстрируют, что DoS-атаки на первый и второй уровень беспроводной сети -
это не просто досадная неприятность или побочный эффект атак «человек посередине»,
они могут быть частью более широкого плана вторжения в сеть и свидетельствовать о по-
пытках ускорить взлом WEP.

Взлом протокола TKIP: новая угроза


В главах, посвященных защите, сказано, что протокол TKIP из стандарта 802.Hi устраня-
ет только что описанные уязвимости WEP и считается практически невзламываемым. Но
так ли это? Когда ключи TKIP генерируются, распределяются и ротируются с помощью
802.1х или RADIUS, взломщик ничего не достигнет, пытаясь их взломать. Но он может
подойти к делу с другой стороны и попробовать атаковать сам протокол 802.1х. Однако,
если по каким-то причинам использовать 802.1х нельзя, то вместо него будет применен
предварительно разделенный ключ (Preshared Key- PSK). Хотя на каждом клиентском
хосте может быть свой PSK, но в настоящее время во всех реализациях используется один
PSK на каждый ESSID точно так же, как в протоколе WEP. Правда, в отличие от WEP, PSK
применяется не для шифрования данных, а для порождения пары временных ключей
ВЗЛОМ ПРОТОКОЛА TKIP: НОВАЯ УГРОЗА Л 59

(Transient Key - РТК) для каждого защищенного протоколом TKIP соединения. Ключи
распределяются в ходе выполнения процедуры четырехстороннего квитирования, и по-
мимо PSK используются две случайные строки (nonces) из двух первых пакетов с кви-
танциями и два МАС-адреса участвующих хостов. Поскольку и пакеты с квитанциями, и
МАС-адреса легко перехватить, то, зная PSK, вы можете легко сгенерировать все необхо-
димые РТК и получить сеть в свое распоряжение. Как и раньше, инициировать процедуру
квитирования можно путем DoS-атаки, вынуждающей клиента отсоединиться от своей
точки доступа. Уже это сводит на нет декларируемое достоинство TKIP, состоящее в том,
что он якобы предотвращает атаку со стороны не в меру любопытных сотрудников (пользо-
вателей одной беспроводной сети, прослушивающих трафик друг друга). Вероятность
такой атаки можно снизить за счет того, что пользователи не знают PSK, но это воз-
лагает дополнительные обязанности на администратора, который теперь должен сам за-
водить ключ на машинах всех пользователей.
Но может ли внешний противник получить PSK и вместе с ним контроль над беспровод-
ной сетью? Если немного повезет, то да. В процедуре четырехстороннего квитирования РТК
используется для вычисления свертки фреймов. Поскольку нам известны обе случайные
строки (nonces) и оба МАС-адреса, то для получения PSK из РТК нам нужно обратить про-
цедуру вычисления свертки. Эта задача не нова и не сложна. Мы еще поговорим о ней в
разделе этой главы, посвященном атакам против EAP-LEAP. Длина PSK составляет 256 бит,
это много. Хотя с точки зрения криптографии это прекрасно, но ни один пользователь не
станет ни запоминать, ни вводить такой длинный пароль. Поэтому PSK генерируется из
парольной фразы в коде ASCII по следующей формуле:
РМК = PBKDF2(passphrase, essid, essidLength, 4096, 256)
где PBKDF2 - криптографический метод из стандарта PKCS #5 v2.0. В двух словах, па-
рольная фраза, ESSID и длина последнего перемешиваются 4096 раз для генерирования
256-битового ключа. Интересно, что ни длина парольной фразы, ни длина ESSID не оказы-
вают существенного влияния на скорость перемешивания. Как утверждается в стандарте
802.Hi, в типичной парольной фразе на один символ приходится 2,5 битов безопасности.
Парольная фраза из п бит должна порождать ключ с (2,5п + 12) бит безопасности. В соот-
ветствии с этой формулой (и стандартом 802.Hi) ключ, сгенерированный из парольной
фразы длиной меньше 20 символов, недостаточно безопасен и может быть взломан. Но
сколько пользователей (и даже системных администраторов) запоминают пароли длиной
20 символов и больше?
На практике атака против протокола, в котором используется PSK, должна походить на
офлайновый взлом WEP с помощью программы WEPattack. Перехватить фреймы с квитанци-
ями можно после того, как хост вынужденно отсоединится от точки доступа в результате
одной из описанный в этой главе DoS-атак. Роберт Московиц (Robert Moskowitz), предложив-
ший такую атаку, полагает, что осуществить ее легче, чем, скажем, атаку методом полного
перебора или по словарю на WEP. Хотя пока еще не существует готового инструмента для
офлайнового взлома TKIP, но его потенциальная ценность настолько высока, что к моменту
выхода книги из печати, сообщество хакеров, скорее всего, уже что-нибудь придумает.
В конце-то концов, речь идет всего лишь об инструменте для взлома процедуры хэширова-
ния типа md5crack и о shell-сценарии для отправки фреймов с запросом на отсоединение и
последующего перехвата фреймов с квитанциями. Похожая функциональность уже реализо-
вана в одном инструменте для атаки на беспроводные сети, а именно в Asleap-imp.
1 6 0 А ПРОРЫВАЕМ ОБОРОНУ

Каковы будут последствия такой атаки? Беспроводные сети, в которых не используется


802.1х для распределения и ротации ключей TKIP, - это, главным образом, сети, в которых
нет RADIUS-сервера, - из-за сложностей инсталляции, цены или по другим причинам. К той
же категории относятся сети с унаследованным беспроводным оборудованием и программ-
но-аппаратным обеспечением, не способным поддержать стандарт 802.1х. Это означает,
что сети SOHO и хотспоты публичного пользования (вспомните о пользователях, работаю-
щих с устаревшими необновленными клиентскими картами) как раз и станут объектами
офлайновых атак со взломом TKIP. Именно в таких сетях пользователи и администраторы
обычно устанавливают простые, легкие для взлома пароли, которые можно найти в слова-
ре даже скромного размера. Вот вам пример закона Мэрфи в действии.

Атаки «человек посередине»


и размещение фальшивых точек доступа
Далее мы рассмотрим атаки типа «человек посередине» на беспроводные сети. Прежде
всего, следует задаться вопросом, а возможна ли такая атака на сеть 802.11 в принципе?
В коммутируемых проводных сетях атаки «человек посередине» часто используются, что-
бы обеспечить саму возможность перехвата трафика. Сети 802.11 - это, по определению,
сети общего пользования среднего размера, и, преодолев шифрование (если оно включе-
но), вы можете прослушивать все пакеты в сети, даже не присоединяясь к ней. Мы уже
ответили на поставленный вопрос, когда описывали утилиты Dsniff: решение состоит в
перехвате соединений и внедрении трафика. Если поместить себя между двумя беспровод-
ными хостами, то открывается великолепная возможность вставлять команды в трафик,
которым обмениваются между собой эти хосты. Но если выдать себя за точку доступа или
беспроводной мост, то можно проводить атаки с перехватом соединений и внедрением
трафика на куда большее число хостов. В следующей главе мы опишем инструменты, име-
ющиеся для достижения этой цели.
Одно из конкретных применений атак «человек посередине» состоит в том, чтобы уста-
новить фальшивую точку доступа и атаковать односторонние системы аутентификации
802.1х, в которых используется протокол EAP-MD5. Чтобы провести такую атаку, фальши-
вая точка доступа должна также выступать в роли фальшивого RADIUS-сервера и предос-
тавлять обманутым клиентским хостам подложные «верительные грамоты» в виде поло-
жительного ответа на запрос об аутентификации. Позже вы увидите, что организовать
фальшивую точку доступа и RADIUS-сервер на ноутбуке не так сложно, как может пока-
заться. Однако у такой атаки ограниченное применение, поскольку современные реализа-
ции 802.1х поддерживают взаимную (клиент-сервер и сервер-клиент) аутентификацию, а
к протоколу EAP-MD5 прибегают только в крайнем случае.
Атаки «человек посередине» на проводные сети можно провести путем подделки DNS,
злонамеренного изменения кэша протокола ARP или проникнув в комнату, где установ-
лен коммутатор, и поменяв местами некоторые кабели (а 1а Кевин Митник). Атаки «чело-
век посередине» на беспроводные сети напоминают последний случай, только вы може-
те находиться за много миль от коммутатора. Атаковать таким образом можно первый и
второй уровень модели 0SI. Атака «человек посередине» на первый уровень сводится к
глушению существующей точки доступа и предложению вместо нее собственной с чис-
тым и сильным сигналом, причем ее рабочий канал должен отстоять по крайней мере на
АТАКИ «ЧЕЛОВЕК ПОСЕРЕДИНЕ» И РАЗМЕЩЕНИЕ ФАЛЬШИВЫХ ТОЧЕК ДОСТУПА 1 6 1

5 каналов от канала атакуемой точки доступа. Для глушения можно использовать специ-
альное устройство или просто затопить канал точки доступа «мусорным» трафиком (на-
пример, с помощью FakeAP, Voidll или File2air). Если применяется аппаратная глушилка,
то у обороняющейся стороны должен быть хороший частотный анализатор для обнаруже-
ния атаки; традиционные беспроводные системы IDS здесь бессильны.
Конечно, параметры вашей фальшивой точки доступа (ESSID, WEP, MAC) должны соот-
ветствовать параметрам настоящей. Атака на уровень 2 заключается в затоплении сети
поддельными запросами на прекращение сеанса или отсоединение с целью заставить хост-
жертву покинуть канал связи с настоящей точкой доступа. Обычно это более эффективно,
чем глушение. Решительный противник может без труда провести атаку одновременно на
уровни 1 и 2, чтобы достичь максимального эффекта. Большинство современных клиентс-
ких карт обнаружат новую фальшивую точку доступа на канале, отличном от текущего, и
автоматически присоединятся к ней, если присоединение к настоящей точке доступа зат-
руднительно или невозможно. Однако если на клиентской карте установлено, что она дол-
жна работать только на конкретной частоте, то шансы на успех атаки «человек посереди-
не» сильно снижаются, поскольку для этого пришлось бы на том же канале создать сигнал
значительно более высокого уровня, чем у настоящей точки доступа. Такая атака, скорее
всего, выродится в DoS-атаку из-за радиопомех.
Для проведения атаки «человек посередине» не всегда необходимо размещать собствен-
ную точку доступа; иногда атакующему может быть нужно «вышибить» выбранный кли-
ентский хост и прикинуться им для точки доступа и всей остальной сети. Эта задача зна-
чительно проще: у клиентского хоста уровень EIRP, скорее всего, ниже, поэтому вам не
надо конфигурировать свой хост как точку доступа (достаточно имитировать IP- и МАС-
адрес жертвы), а быстрая атака «человек посередине» против единственного хоста вряд
ли вызовет жалобы со стороны пользователя и не оставит следов в протоколах. Кроме того,
расстояние до клиентской машины может быть меньше, чем до точки доступа.

Изготавливаем фальшивые точки доступа и беспроводные


мосты для тестирования возможности проникновения
В литературе по безопасности беспроводных сетей тех, кто проводит атаки «человек посере-
дине», часто изображают как людей, сгибающихся под тяжестью аппаратных точек доступа
и аккумуляторов. Такое представление просто нелепо. Ну сами посудите - как далеко вы
смогли бы уйти с тяжелым аккумулятором, точкой доступа, ноутбуком, кабелями и антенна-
ми? К тому же куда проще перехватить соединение и внедрить данные, манипулируя сете-
вым интерфейсом машины-перехватчика, чем заставлять аппаратную точку доступа в режи-
ме репитера маршрутизировать весь трафик через подключенный к Ethernet атакующий хост
(да и как бы вы сделали это на практике?). Итак, оптимальное решение состоит в том, чтобы
сконфигурировать программную точку доступа на клиентской карте, вставленной в ноутбук
(или даже КПК) взломщика. Вторую карту можно использовать для глушения или генериро-
вания фреймов, чтобы «погасить» настоящую точку доступа. Для обеспечения нужной фун-
кциональности может оказаться необходимым, чтобы эти карты работали под управлением
разных драйверов или, по крайней мере, были произведены разными фирмами. У такой ата-
ки есть и варианты, например использование двух объединенных мостом клиентских карт,
работающих в режиме точки доступа, или двух ноутбуков. В последнем случае один эмули-
рует работу точки доступа, а с другого проводится DoS-атака.
1 6 2 ПРОРЫВАЕМ ОБОРОНУ

Задайте необходимые параметры, нажмите клавишу Enter и наблюдайте, как ваш


хост с картой на базе набора Hermes/Orinoco внедряется между жертвой и точкой дос-
тупа. Чтобы усилить атаку на первый уровень, установите максимально возможный
уровень EIRP, которого позволяют достичь ваша карта и антенны. Это надо сделать для
обеих карт: и той, что затопляет жертву потоком запросов, и той, что работает в режи-
ме точки доступа.
АТАКИ «ЧЕЛОВЕК ПОСЕРЕДИНЕ» И РАЗМЕЩЕНИЕ ФАЛЬШИВЫХ ТОЧЕК ДОСТУПА 1 6 3

Можно вместо этого организовать точку доступа с помощью двух карт с набором
Prism и драйверов HostAP. При этом одна карта затопляет канал с помощью программы
FakeAP, а вторая работает в режиме хозяина (то есть имитирует точку доступа). Затап-
ливать канал маяками не так эффективно, как посылать фреймы с запросом на прекра-
щение сеанса, поэтому можете поставить одну карту под управление HostAP, а дру-
гую - под airjack_cs. Для этого отредактируйте файл/etc/pcmcia/config, привязав одну
карту к модулю " h o s t a p - c s " , а вторую - к модулю " a i r j a c k _ c s " . Затем переза-
пустите службы PCMCIA, вставьте обе карты - и вперед. Для отсоединения хостов от
точки доступа воспользуйтесь утилитами wlanjack или fata_jack. Можете также огра-
ничиться только драйверами HostAP, установить библиотеку Libradiate и воспользо-
ваться программой omerta для генерирования одной из карт фреймов с запросами на
отсоединение. Можно поступить и еще лучше: нанести удар с помощью программы
Voidll, которая способна заставить сразу несколько хостов прекратить сеанс и умеет
генерировать одновременно несколько затопляющих потоков. Можно даже попытать-
ся «повалить» законную точку доступа, бомбардируя ее запросами на присоединение
или аутентификацию. Выбор за вами.
Установить и настроить драйверы HostAP совсем просто. Скачайте последнюю версию из
CVS-хранилища на сайте http://hostap.epitest.fi/, выполните команду make && make_pccard
от имени root (предполагается, что вы пользуетесь клиентской картой PCMCIA), перезапустите
службы PCMCIA и вставьте карту в разъем. Будет выдано что-то вроде:
arhontus:~# ./lsmod

Module Size Used by Tainted: P


hostap_cs 42408 0 (unused)
hostap 61028 0 [hostap_cs]
hostap_crypt 1392 0 [hostap]

arhontus:~# iwconfig
wlanO IEEE 802.11b ESSID:"test"
Mode:Master Frequency:2.422GHz Access Point: 00:02:6F:01:ab:cd
Bit Rate:llMb/s Tx-Power:-12 dBm Sensitivity=l/3
Retry min l i m i t : 8 RTS t h n o f f Fragment thrroff
Encryption key:off
Power Management:off
Link Quality:0 Signal l e v e l : 0 Noise l e v e l : 0
Rx invalid nwid:0 Rx i n v a l i d crypt:0 Rx invalid frag:O
Tx excessive r e t r i e s : 0 Invalid misc:425 Missed beacon:0

Карта автоматически начала работать в режиме точки доступа (Master) с принятым по


умолчанию ESSID " t e s t " . Отметим, что если вставить карту с набором Hermes, то она за-
работала бы с драйверами hostap_cs, но перевести ее в режим хозяина или репитера не-
возможно, интерфейс был бы ethl, a ESSID по умолчанию оказался бы пустым. Чтобы изме-
нить режим работы карты, выполните команду iwconfig < i n t e r f ace> mode ad-hoc
i I managed I I m a s t e r I I r e p e a t e r I I s e c o n d a r y I I m o n i t o r . Подробнее о под-
держиваемых режимах можно прочитать в страницах руководства. Попробуйте режим ре-
питера (Repeater) с драйверами HostAP и картой на базе набора Prism, чтобы вставить
фальшивый репитер в тестируемую сеть. Ниже приведена еще одна возможная атака «че-
ловек посередине».
164 ПРОРЫВАЕМ ОБОРОНУ

arhontus:~# iwconfig wlanO channel 1 txpower lOOmW mode repeater


essid Sly
arhontus:~# iwconfig wlanO
wlanO IEEE 802.11b ESSID:"Sly"
Mode:Repeater Frequency:2.412GHz Access Point: 00:00:00:00:00:00
Bit Rate:2Mb/s Tx-Power:20 dBrn Sensitivity=l/3
Retry min l i m i t : 8 RTS t h r : o f f Fragment t h r : o f f
Еще один довольно забавный трюк состоит в том, чтобы вставить мост из двух беспровод-
ных карт в двухточечный канал (это воистину атака типа «человек посередине», поскольку
наилучшая позиция атакующего находится как раз между двумя концами, в середине зоны
Френеля). Для этой атаки нужно активировать в ядре Linux поддержку мостов и стандарта
802.lid (если вы хотите использовать протокол остовного дерева Spanning Tree Protocol
(SPT)), кроме того, понадобится инсталлировать инструменты для поддержки организации
моста (http://bridge.sourceforge.net). Настройка беспроводного моста аналогична настрой-
ке беспроводной системы распределения (wireless distribution system - WDS), но необходим
беспроводной интерфейс на второй карте, а не обычный проводной интерфейс:
i w p r i v wlanO wds_add 0 0 : 2 2 : 2 2 : 2 2 : 2 2 : 2 2
b r c t l addbr brO
b r c t l a d d i f brO wlanl
b r c t l a d d i f brO wlanO
b r c t l a d d i f brO wlanOwdsO
ifconfig wlanl 0.0.0.0
i f c o n f i g wlanO 0 . 0 . 0 . 0
i f c o n f i g wlanOwdsO 0 . 0 . 0 . 0
i f c o n f i g brO <укажите здесь IP> up
После этого мост можно настроить для участия в протоколе STP и автоматически доба-
вить новые распределительные каналы. Последнее выполняет команда p r i s m 2 _ p a r a m
wlanO a u t o m _ a p _ w d s 1. В файле README.prism2 написано, что для проверки работы
моста существует несколько команд:
1
•brctl show должна показать мост brO с добавленными интерфейсами и
включенный протокол STP.
' b t c t l showstp brO' должна показать дополнительную информацию о
каждом порте моста. Параметр s t a t e должен в течение нескольких секунд
быть равен ' l e a r n i n g ' , а потом изменить значение на 'forwarding'.
' b t c t l showmacs brO' можно использовать для того, чтобы проверить, за
каким портом моста сейчас находится каждый из известных МАС-адресов.
Возможно, теперь вы захотите сделать свой компьютер корневым мостом в STP-сети.
Запустите на одном из беспроводных интерфейсов программу Ettercap, перейдите в спи-
сок установленных дополнительных модулей (клавиша р/Р) и выберите модуль lamia. Зна-
чение приоритета для корневого моста должно быть как можно меньше - укажите 0. Воз-
можно, понадобится также уменьшить свой МАС-адрес на случай, если обнаружится другой
мост с нулевым приоритетом. Когда возникает конфликт по приоритету, предпочтение
отдается хосту с наименьшим МАС-адресом.
АТАКИ «ЧЕЛОВЕК ПОСЕРЕДИНЕ» И РАЗМЕЩЕНИЕ ФАЛЬШИВЫХ ТОЧЕК ДОСТУПА 1 6 5

Вообразите только, сколько трафика вы пропустите через себя в интенсивно использу-


емой беспроводной сети, имея такой мост!
Если у вас есть только карта с набором Hermes/Orinoco (а для качественного тести-
рования мы настоятельно рекомендуем иметь карты с тремя разными наборами микро-
схем: Cisco Aironet, Prism и Hermes), то для организации программной точки доступа
можно воспользоваться драйверами HermesAP (http://www.hunz.org/hermesap.html).
Эти драйверы появились значительно позже HostAP, им недостает многих функций
последних, но все же это какой-то выход. Инсталляция HermesAP сложнее, чем HostAP,
поскольку придется обновить программно-аппаратное обеспечение самой карты и пропат-
чить как драйвер Orinoco, так и модуль pcmcia-cs; см. файл README (http://www.hunz.org/
README). После установки драйверы HermesAP можно конфигурировать с помощью Linux
Wireless Extensions, при этом обеспечивается поддержка WDS, RFMON и закрытых ESSID.
Поскольку мы не знаем, как генерировать трафик (помимо маяков) с помощью HermesAP,
то на этом закончим обсуждение организации атак «человек посередине» с помощью
этих драйверов. Тем не менее HermesAP - это очень многообещающий проект, и мы на-
деемся, что этот абзац возбудит к нему интерес и привлечет новых хакеров в ряды раз-
работчиков.
Наконец, на платформе BSD организовать точку доступа можно с помощью команды
w i c o n t r o l -n f o o b a r e d -р б -f 6 -е 0 (этот пример работает в OpenBSD, далее мы
будем говорить только о комплекте Wnet; флаг -р б определяет режим hostap, - f задает
канал, -е 0 говорит о том, что для присоединения к сети не нужен WEP). Интерфейс, на-
строенный для работы в качестве точки доступа, можно затем использовать для бомбарди-
ровки сети фреймами с запросами на отсоединение и прекращение сеанса (утилита dinject
из комплекта Wnet), требуя от беззащитных хостов, чтобы они прервали соединение с точ-
кой доступа. Да-да, это означает, что под OpenBSD для проведения эффективной атаки
«человек посередине» не нужна вторая карта, так что вы сэкономите время на конфигури-
ровании, а заодно и заряд аккумуляторов. Возможно, придется написать небольшой сцена-
рий, чтобы заставить dinject посылать множество фреймов с запросами на отсоединение и
прекращение сеанса. Не забывайте, что все это работает только для карт с набором микро-
схем Prism.

Атаки «человек посередине» на физический уровень


Прежде чем закончить разговор об атаках «человек посередине», мы хотим поделиться
некоторыми соображениями о попытках атаки на уровень 1. Есть два возможных способа
провести успешную атаку такого рода:
1. Управление сетью связано ограничениями на уровень EIRP, выпущенными FCC, EITS
и аналогичными государственными органами. В то же время взломщики могут и
пренебречь ими (если уж атака запущена, то закон все равно нарушен) и превысить
допустимые значения выходной мощности. Например, взломщик может воспользо-
ваться клиентской PCMCIA-картой с мощностью передатчика 23 dBm (200 мВт) и ан-
тенной с высоким коэффициентом усиления (скажем, тарелкой или решетчатой ан-
тенной 24 dBm). Уровень EIRP достигнет 45 dBm (вычтите 2-3 dBm на потери в
разъемах), что эквивалентно 31,62 Вт. Это гораздо больше разрешенной в большин-
стве беспроводных сетей мощности 1 Вт.
1 66 ПРОРЫВАЕМ ОБОРОНУ

2. Предполагается, что хосты 802.11 присоединяются к точке доступа на основе значе-


ния базового коэффициента ошибки (Basic Error Ratio - BER). На практике это сво-
дится к уровню сигнала и отношению сигнал/шум в предположении, что все осталь-
ные параметры (например, ESSID и ключ WEP) правильны. Теоретически появление
фальшивой точки доступа с очень высоким уровнем EIRP должно, о чем уже говори-
лось выше, заставить хосты в беспроводной сети присоединиться именно к этой, а
не к настоящей точке доступа. Реальность, однако, не так проста, поскольку многие
хосты стараются присоединиться к той же точке доступа, с которой установили ас-
социацию раньше, и готовы изменить частоту лишь в случае, когда старый канал уж
очень сильно зашумлен. Такие правила выбора точки доступа обычно встраиваются
в программно-аппаратное обеспечение карты. В некоторых случаях, например при
конфигурировании карты AirPort в системе Mac OS X, можно вручную указать, дол-
жен ли хост присоединяться к точке доступа с наибольшим отношением сигнал/шум
или стараться «сохранить верность» старой точке доступа. Разумеется, беспровод-
ные сети с мобильными клиентами более уязвимы для атак «человек посередине» на
физический уровень, поскольку мигрирующие хосты должны присоединяться к точ-
ке доступа на базе ее отношения сигнал/шум. Тем не менее по вышеописанным при-
чинам такие атаки не слишком надежны и могут проводиться лишь в дополнение к
атакам на уровень канала данных путем затопления фреймами с запросами на пре-
кращение сеанса и отсоединение.

Комбинированные атаки «человек посередине»


Атаки «человек посередине» необязательно проводить только на какой-то один уровень.
Если глубоко эшелонированная оборона должна распространяться на все семь уровней
модели 0SI, то и о продуманной атаке можно сказать то же самое: нужно попытаться мино-
вать все расставленные защитные механизмы. 0 недостатках атаки «человек посередине»
на уровень 1 мы уже говорили. Но если сочетать атаки на уровни 1 и 2, то результат почти
гарантирован. Вы не только попытаетесь «соблазнить» хосты своей фальшивой точкой до-
ступа, но и за счет более мощного излучения заставите их сделать такой выбор. Одновре-
менно можно затопить канал легальной точки доступа шумом.
Сделать это нетрудно. Можно, например, использовать режим хозяина, реализованный
драйверами HostAP (фальшивая точка доступа должна отстоять от настоящей не менее чем
на 5 каналов), в сочетании с утилитами FakeAP (генерирует шум в канале точки доступа) и
Voidll (принудительное отсоединение одного или нескольких хостов). Если в сети приме-
няется протокол EAP-MD5, то можно добавить еще сервер аутентификации hostapd, чтобы
заставить хосты присоединиться к фальшивой точке доступа и получить пароль. Чуть ниже
мы опишем эту атаку в деталях. Наконец, если включены также протоколы обеспечения
безопасности более высокого уровня, например SSH или SSL, то можно еще и провести
атаку «человек посередине» против них, чтобы уж наверняка добиться успеха.
Интересный и довольно специфический случай возникает, когда беспроводная точка до-
ступа или сервер аутентифицирует пользователей через Web-интерфейс, как часто делают
беспроводные хотспоты. Для этой цели можно использовать программу NoCat (см. главу 13)
или различные коммерческие программы. В таком случае пользователь доверяет появившей-
ся Web-странице с приглашением ввести имя и пароль. Если вы сумеете подделать эту стра-
ницу, то ничего не подозревающий пользователь введет свои «верительные грамоты», но
ВЗЛАМЫВАЕМ БЕЗОПАСНЫЙ СЕЙФ 167

лишь для того, чтобы чуть позже увидеть сообщение «произошла сетевая ошибка, соедине-
ние разорвано». Можно даже подделать целую серию Web-страниц с регистрацией (напри-
мер, eBay, Paypa, Hotmail), чтобы выведать у жертвы как можно больше паролей. Программа
для входа в доверие пользователю таким хитрым способом называется Airsnarf. Неважно,
использует ли соединение протокол SSL или ключи PGP (как NoCat), конечные пользователи
об этом не знают и хотя бы некоторые обязательно присоединятся к фальшивой точке досту-
па и введут имя и пароль. Вопрос лишь в том, сколько именно их будет. В программе Airsnarf,
впервые представленной на Defcon 1, применяется повышенная мощность излучения для по-
давления законных точек доступа. Конечно, это заставляет вспомнить обо всех проблемах,
характерных для атак «человек посередине» на уровень 1. Что если клиенты настроены на
работу с конкретным каналом? Что если помехи окажутся слишком сильными? Что если
фальшивая точка доступа реализована на КПК и использует стандартную антенну, встроен-
ную в CF-карту, а атакуемая точка доступа обладает большой мощностью, да еще присоеди-
нена к антенне с высоким коэффициентом усиления через усилитель?
Это как раз тот случай, когда для достижения успеха необходимо сочетать атаки на уров-
ни 1 и 2. Сразу приходит на ум комбинация Airsnarf + HostAP + Voidll + Fake АР. Решитель-
но настроенный взломщик может еще и попытаться подавить законную точку доступа. Это
можно сделать с помощью дополнительных экземпляров Voidll, бомбардирующих точку
доступа фреймами с запросами на аутентификацию и присоединение. Если атакующий
способен присоединиться к хотспоту или уже является мошенническим пользователем, то
он может сначала запустить DoS-атаку на верхние уровни протоколов, чтобы отключить
точку доступа в сеть. Такая атака может базироваться на протоколе SNMP (сколько пользо-
вателей или администраторов забывают изменить принимаемые по умолчанию имена со-
обществ!) или использовать более традиционные способы, например затопление SYN-
пакетами. Мы обнаружили, что многие точки доступа не справляются с интенсивным
трафиком, состоящим из больших пакетов, и их можно вывести из строя командой p i n g -s
6 5 5 0 7 -f или аналогичными действиями. А в это время фальшивая точка доступа, воз-
можно реализованная на КПК Zaurus, который лежит в кармане взломщика, с помощью
Airsnarf или пакета ipkg заманит ничего не подозревающих пользователей и выведает их
имена и пароли. Это еще раз подчеркивает необходимость тщательного тестирования то-
чек доступа на устойчивость к различным атакам на протоколы верхних уровней, а также
на известные угрозы уровню 2. Только после этого можно приступать к массовому произ-
водству. Если в процессе аудита безопасности выяснится, что точку доступа можно выве-
сти из строя или «подвесить», дело плохо. Это не просто DoS-атака, речь идет об опасности,
грозящей каждому хосту в тестируемой сети из-за атаки «человек посередине». Чтобы
уменьшить серьезность такой угрозы, полностью отключите все средства управления точ-
кой доступа со стороны беспроводной сети и закройте все ее порты.

Взламываем безопасный сейф


Последний барьер, который надо преодолеть, чтобы присоединиться к беспроводной
сети, - это аутентификация на базе стандарта 802.1х и виртуальные частные сети (VPN) на
верхних уровнях. Для атаки на 802.1х и VPN нужно хорошо представлять себе структуру и
работу соответствующих протоколов. Мы настоятельно рекомендуем прочитать главы 10
и 13, где говорится о стандарте 802.1х и протоколе ЕАР, и главу 14, в которой идет речь о
VPN. Только после этого приступайте к изучению атак, описанных ниже.
1 6 8 ПРОРЫВАЕМ ОБОРОНУ

Атаки на системы аутентификации


Если в реализации стандарта 802.1х, защищающей сеть, задействованы протоколы EAP-TLS,
EAP-TTLS или ЕАР-РЕАР (рассматриваемые в части, посвященной защите), то у атакующего
мало шансов на успех и ему придется прибегнуть к DoS-атаке, социальной инженерии или
атаке со стороны проводной сети на сервер сертификатов. Имеются теоретические иссле-
дования о возможности атак «человек посередине» против тунеллированных протоколов
аутентификации, см. материал IETF «The Compound Authentication Binding Problem» на
странице http://www.ietf.org/internet-drafts/draft-puthenkulam-eap-binding-02.txt. Только
время покажет, появятся ли практические реализации таких атак. В некоторых случаях
протокол EAP-TTLS может быть настроен на работу со старыми методами аутентификации,
например MS-CHAP. Они уязвимы к атакам при условии, что атакующий сумеет внедриться
в туннель.
Улучшенную атаку по словарю или старый добрый метод полного перебора можно при-
менить против протокола Cisco EAP-LEAP, так как в нем используются пароли пользовате-
лей, а не сертификаты хостов. Такая улучшенная атака против EAP-LEAP, описанная Джо-
шуа Райтом на Defcon 11, представляет серьезную угрозу для беспроводных сетей,
безопасность которых зависит от LEAP. Атака основана на том факте, что в EAP-LEAP при-
меняется протокол MS-CHAPv2 для аутентификации пользователей. Стало быть, он насле-
дует несколько пороков MS-CHAPv2, в том числе и передачу паролей пользователей в от-
крытом виде, выбор слабого DES-ключа для шифрования запроса и ответа и отсутствие
начального значения в хранимых NT-свертках. Взглянем более пристально на то, как ра-
ботает процедура запроса/ответа в LEAP. Сначала, аутентифицирующая сторона (точка до-
ступа) посылает случайный 8-битовый запрос претенденту (клиентскому хосту). Претен-
дент использует МБ4-свертку пароля аутентификации для генерирования трех различных
ключей DES. Каждый из этих ключей применяется для шифрования полученного запроса,
и шифртекст (всего 3 х 64 = 192 бит) возвращается аутентифицирующей стороне в виде
ответа. Аутентифицирующая сторона проверяет ответ и посылает фрейм, содержащий при-
знак успешно или неудачно завершившейся аутентификации.
К сожалению, в каждом обмене запросом и ответом по протоколу LEAP обязательно
имеется пять нулей, из-за чего третий ключ DES оказывается слабым. Поскольку запрос
известен, то для вычисления оставшихся двух ключей DES требуется меньше секунды.
Проблема в том, что третий дефектный ключ DES позволяет вычислить два последних бита
NT-свертки, поэтому атакой по словарю или методом полного перебора нужно вскрыть все-
го 6 байт. Это не должно быть чересчур сложно, так как вычисление МБ4-свертки выпол-
няется быстро и не требует много ресурсов.
Атака против EAP-LEAP была реализована Джошуа Райтом в программе Asleap-imp сле-
дующим образом:
о вычислить длинный список МВ4-сверток паролей;
о перехватить фреймы с запросом и ответом по протоколу EAP/LEAP;
о извлечь из них запрос, ответ и имя пользователя;
о на основе ответа вычислить два последних бита МБ4-свертки;
о провести атаку по словарю против этой свертки, принимая во внимание два извест-
ных бита.
Еще один общедоступный инструмент для проведения аналогичной атаки на LEAP назы-
вается Leap. Почитайте подробное описание утилит leapcrack, leap и Asleap-imp в главе 6.
ВЗЛАМЫВАЕМ БЕЗОПАСНЫЙ СЕЙФ 169

EAP-MD5, оригинальная (и принимаемая в отсутствие альтернативы) реализация прото-


кола ЕАР, уязвима к атакам «человек посередине» против точки доступа из-за отсутствия
аутентификации между хостом и точкой доступа либо сервером. Фальшивая точка досту-
па, размещенная между аутентифицирующимся по EAP-MD5 хостом и RADIUS-сервером,
может легко похитить имя и пароль, посылаемые серверу, и даже аутентифицироваться от
имени пользователя по подложным «верительным грамотам». Для проведения такой атаки
взломщик должен разместить RADIUS-сервер на хосте с фальшивой точкой доступа и пере-
направить ему весь пользовательский трафик. Альтернатива - воспользоваться поставляе-
мым в составе HostAP демоном hostapd, который реализует минимальный сервер аутенти-
фикации. Этот сервер запрашивает данные у клиента и авторизует любой хост, способный
послать корректный фрейм с ответом ЕАР. Не требуется никаких ключей, и любой клиент
может аутентифицироваться. Вряд ли вы захотите, чтобы подобным образом вела себя
настоящая точка доступа, но для проведения атаки «человек посередине» в ходе тестиро-
вания возможности проникновения - это как раз то, что доктор прописал. Для запуска
hostapd в режиме сервера аутентификации служит команда h o s t a p d -xm wlanO. Когда
сервер hostapd работает, клиенты, не поддерживающие стандарт 802.1х, не смогут посы-
лать фреймы с данными через фальшивую точку доступа.
Наконец, имеется целый спектр DoS-атак против различных реализаций ЕАР:
о DoS-атаки, основанные на затоплении фреймами типа EAPOL-Start Взломщик мо-
жет попытаться «повалить» точку доступа, затопив ее такими фреймами. Чтобы из-
бежать такой атаки, нужно ограничить объем ресурсов, выделенных для приема
фреймов EAPOL-Start;
о DoS-атаки, основанные на циклическом переборе всех идентификаторов ЕАР.
Взломщик может вывести из строя точку доступа, захватив все пространство иден-
тификаторов ЕАР (ЕАР Identifier space), 0-255. Идентификатор ЕАР должен быть уни-
кален только в пределах одного порта 802.1х, поэтому у точки доступа нет причин
отказывать в последующих соединениях, как только пространство идентификаторов
исчерпано. Тем не менее некоторые точки доступа так поступают;
о DoS-атаки против клиентов, основанные на преждевременной отправке фрей-
мов типа ЕАР Success. Стандарт IEEE 802.1х позволяет клиенту не поднимать свой
интерфейс, если необходимая взаимная аутентификация не завершена. Поэтому
правильно реализованный клиент не будет обманут попыткой фальшивой аутен-
тифицирующей точки доступа затопить его преждевременными фреймами ЕАР
Success;
о DoS-атаки против клиентов, основанные на подделке фреймов ЕАР Failure. В спе-
цификации ЕАР требуется, чтобы претендующие на аутентификацию клиенты могли
использовать альтернативные признаки успешной или неудачной аутентификации
в рамках 802.1х. Поэтому правильно реализованный претендент не будет введен в
заблуждение взломщиком, который затапливает сеть фреймами ЕАР Failure. Претен-
дент, получающий фрейм ЕАР Failure от фальшивого аутентификатора не в рамках
описанной в стандарте 802.1х процедуры обмена, должен его игнорировать. Но не
все претенденты так делают. Если настоящая аутентифицирующая точка доступа
желает удалить претендующего на вход клиента, она должна сначала послать ЕАР
Failure, а затем фрейм с запросом на отсоединение. Ничто не может помешать атаку-
ющему имитировать такую ситуацию. Для проведения подобной атаки годится про-
грамма File 2 air;
170 ПРОРЫВАЕМ ОБОРОНУ

о DoS-атаки с использованием неправильно сформированных фреймов ЕАР. Одна из


таких атак вызывает крах сервера FreeRADIUS 0.8.1 в результате посылки пакета
EAP-TLS с флагами • с 0 \ не содержащего ни длины TLS-сообщения, ни данных. Со-
общение об этой атаке читайте на странице http://www.mail-archive.com/freeradius-
users@lists.citron.nl/msgl5451.html.
Что можно сказать о практической реализации этих атак? К сожалению, во время рабо-
ты над этой книгой еще не было инструментов для генерации специальных фреймов
802.1х/ЕАР типа Nemesis или Wnet. Выше уже отмечалось, что вы можете создать собствен-
ные фреймы ЕАР в двоичном виде и отправить их с помощью File2air. Кроме того, компа-
ния QA Cafe выпустила коммерческую программу для тестирования ЕАР на платформе
Linux, получившую название EAPOL (http://www.qacafe.com/eapol/). Она работает только
с картами Cisco Aironet 350. Демонстрационную версию программы в виде двоичных фай-
лов для дистрибутивов Red Hat и Debian можно скачать с сайта QA Cafe. Ниже приводится
описание тестов, выполняемых демонстрационной версией, скопированное со страницы
http://www.qacafe.com/eapol/test-summary-demo.htm#4.
Аутентифицирующая сторона посылает пакеты на МАС-адрес претендента:
Описание:
шаг 1. Послать EAPOL-Logoff, чтобы перевести управляемый порт в
неавторизованное состояние.
шаг 2. Послать EAP-Start для инициирования аутентификации.
шаг 2. Ждать прихода пакета EAPOL от аутентификатора (не более
txWhen секунд).
шаг 3. Проверить, что МАС-адрес получателя совпадает с МАС-адресом
претендента.
Литература: IEEE Std 802.1x-2001
Section 7.8 EAPOL Addressing
Примечание: Аутентификатор должен находиться в состоянии CONNECTING
после того, как претендент отправит пакеты EAPOL-Logoff/EAPOL-Start.

Основной случай аутентификации, инициированной аутентифицирующей стороной:


Описание:
шаг 1. Послать EAPOL-Logoff, чтобы перевести управляемый порт в
неавторизованное состояние.
шаг 2. Послать сообщение ICMP Ping в порт локальной сети
доверенному хосту.
шаг 3. Продолжать эти попытки в течение 12 0 с.
шаг 4. Проверить, произошла ли аутентификация для
сконфигурированного типа.
шаг 5. Проверить отправку ICMP ping доверенному хосту.
Литература: IEEE Std 802.1x-2001
Section 8.4.2.1 Authenticator initiation

Основной случай аутентификации, инициированной претендентом:


Описание:
шаг 1. Послать EAPOL-Logoff, чтобы перевести управляемый порт в
неавторизованное состояние.
Сводный перечень тестов, входящих в полную версию программы EAPOL, дает представле-
ние о том, сколько существует возможных DoS-атак против ЕАР. Познакомиться с этим переч-
нем можно на странице http://www.qacafe.com/eapol/test-summary.htm. Для настройки EAPOL
с целью тестирования аутентификации в беспроводной сети с поддержкой 802.1х необходима
Linux-машина с одним интерфейсом Ethernet и одним беспроводным интерфейсом. Один из
интерфейсов хоста - это интерфейс претендента 802.1х, соединенный с аутентифицирующим
устройством (точкой доступа). Второй интерфейс должен быть соединен с доверенной часть
этого устройства (Ethernet-портом точки доступа) или с сетью, которая не требует аутентифи-
кации в стандарте 802.1х (проводная локальная сеть, вкоторую включена тестируемая точка
доступа). EAPOL - это тестовая программа для разработчиков протоколов и программного обес-
печения безопасности беспроводных сетей, бета-тестеров и консультантов по компьютерной
безопасности, а вовсе не готовый инструмент для «скриптописателей». Но, поскольку в «подпо-
лье» имеется информация об атаках, то мы полагаем, что скоро появятся модификации клиента
Xsupplicant и аутентификаторы на базе HostAP, реализующие описанные выше атаки.
1 7 2 ПРОРЫВАЕМ ОБОРОНУ

Подводя итог, отметим, что главная проблема фреймов ЕАР такая же, как у управляю-
щих и административных фреймов 802.11: отсутствие надлежащей аутентификации и за-
щиты целостности (безопасных контрольных сумм).

Атаки против VPN


Атаки на верхние уровни VPN вряд ли можно назвать специфичными для беспроводных
сетей. Эта тема, безусловно, заслуживает отдельной книги. Здесь мы лишь укажем некото-
рые направления, в которых может двигаться специалист по компьютерной безопасности
или любитель-энтузиаст, интересующийся данным вопросом. Чаще всего для построения
VPN применяется протокол Point-to-Point Tunneling Protocol (PPTP) или различные реали-
зации протокола IPSec. В среде профессионалов бывает много нападок на протокол РРТР, и
существует немало инструментов, в которые встроены средства для атаки на создаваемые
им туннели. Одним из них является Anger:
arhontus:~# ./anger -- h
usage: anger [ -v ] [ -d device ] outputl [ output2 ]
Выводит перехваченные запросы/ответы в o u t p u t l .
Если задано output2, то проводит активную атаку на РРТР-соединения и
выводит свертки паролей на output2.
-d Устройство, открытое для прослушивания,
-v Выводить диагностические сообщения.
Как утверждается в документации, поставляемой вместе с программой, Anger - это
утилита для анализа протокола РРТР и атаки на него. Она прослушивает РРТР, ожидая
пакеты с запросом и ответом по протоколу MS-CHAP, и выводит их в формате, пригодном
для знаменитой программы взлома паролей LOphtcrack. Anger реализует активную атаку
против протокола смены пароля в MS-CHAPvl. Когда анализатор обнаруживает РРТР-кли-
ента, пытающегося аутентифицироваться по протоколу MS-CHAPvl, он посылает якобы
от имени сервера поддельную команду, требующую сменить пароль. Если обманутый
пользователь поддастся на эту уловку, Anger запишет в протокол свертку как его теку-
щего, так и нового пароля. Затем эти свертки будут переданы программе LOphtcrack для
взлома. А можно использовать их и в хакерском РРР-клиенте совместно с клиентом про-
токола для Linux, чтобы войти в сеть. Помимо Anger есть и другие утилиты, реализую-
щие атаку на смену пароля в протоколе РРТР, например программа deceit, написанная
Aleph One (http://packetstormsecurity.ni/new-exploits/deceit.c).
После опубликования и эксплуатации недостатков протокола MS-CHAP, Microsoft выпу-
стила его новую версию, которая уже неуязвима для атак на процедуру смены пароля. Она
не выполняет аутентификацию методом запрос/ответ на основе слабых LM-сверток и спо-
собна аутентифицировать сервер. Microsoft добавила ряд новых шагов в алгоритм генери-
рования ответа на запрос и реализовала хэширование методом SHA1. Однако анализатор
по-прежнему может заранее вычислить свертки, и для взлома MS-CHAPv2 в программу
LOphtcrack не придется вносить никаких изменений.
Последние версии Anger поддерживают выявление в прослушиваемом трафике паке-
тов с ответом и запросом MS-CHAPv2. Для анализа MS-CHAPv2 все биты LM-свертки сбра-
сываются в 0, так как ее просто не существует. К сожалению, невозможно использовать
ВЗЛАМЫВАЕМ БЕЗОПАСНЫЙ СЕЙФ 173

командную версию LOphtcrack для вскрытия элементов MS-CHAPv2, так как она не пыта-
ется провести атаку по словарю на ответ NT, если не предоставлена LM-свертка. Однако
можно воспользоваться для этой цели графической версией для Windows. В таком случае
нужно отключить вскрытие LM-свертки и, наоборот, включить вскрытие NT-свертки в
меню Options (Параметры), поскольку LOphtcrack не будет считать LM-свертку, состоя-
щую из одних нулей, некорректной и попытается взломать ее. Если же подменить значе-
ние этого поля, то возникнет ошибка разбора.
Для программы Ettercap имеется целый набор дополнительных модулей, написанных
для прослушивания РРТР-туннелей, извлечения трафика и получения имен и паролей
пользователей:

-- РРТР:
Получает пароли
-- РРТР:
Производит декапсуляцию трафика
-- РРТР:
Заставляет выполнить повторное согласование
-- РРТР:
Заставляет выполнить аутентификацию по
протоколу РАР
-- РРТР: Пытается заставить передавать пароль в
открытом виде
H08_hydra6 1.0 -- РРТР: Заставляет перейти с chapmsv2 на chapms
Если вы в своей сети пользуетесь протоколом РРТР, то должны знать, насколько опасны мо-
гут оказаться эти модули, если РРТР - единственная или самая сильная оборонительная линия
между взломщиком и трафиком в беспроводной сети. Если вы хотите узнать о безопасности
РРТР больше, чем необходимо для проведения нескольких атак с помощью имеющихся инстру-
ментов, то рекомендуем прочитать статью «Cryptanalysis of Microsoft's РРТР Authentication
Extensions (MS-CHAPv2)» (Криптоанализ расширений при аутентификации по протоколу
Microsoft РРТР (MS-CHAPv2)) Брюса Шнейера (Bruce Schneier) и доктора Маджа (Dr. Mudge),
доступную на сайте http://www.counterpane.com/pptpv2-paper.htmlf и дополнение к этой ста-
тье, опубликованное на странице http://www.team-teso.net/releases/chap.pdf.
Основное предварительное условие для атаки на VPN, защищенные протоколом IPSec, -
это понимание принципов работы последнего. Если вы этого не знаете, то не поймете и
всего следующего далее обсуждения. Обратитесь к главе 2, где эта тема изложена более
подробно, и тогда вы увидите, что не существует такой вещи, как атака против IPSec; мож-
но говорить лишь об атаках против конкретных режимов или реализаций этого протоко-
ла. К числу реализаций IPSec, имеющих известные ошибки, например переполнение буфе-
ра или уязвимость к атакам «человек посередине», относятся следующие:
о Cisco VPN Client 3.5;
о Cisco VPN Client 1.1;
о SafeNet/IRE SoftPK и SoftRemote;
о PGPFreeware 7.03 - PGPNet;
о WAVEsec.
Для исследования локальной сети, защищенной протоколом IPSec, воспользуйтесь сцена-
рием IKEProber.pl Антона Т. Рейгера (Anton T. Rager) или программой Ike-scan Роя Хиллса
(Roy Hills). Оба инструмента - это анализаторы пакетов Internet Key Exchange (IKE - обмен
ключами через Internet), предназначенные для обнаружения хостов, выполняющих такой
обмен, и фиксации их цифровых отпечатков (fingerprint). Ниже приведен порядок вызова
обеих утилит.
174 ПРОРЫВАЕМ ОБОРОНУ
ВЗЛАМЫВАЕМ БЕЗОПАСНЫЙ СЕЙФ 175

Величина таймаута для каждого хоста умножается на этот коэффициент


после того, как произошел таймаут. Таким образом, если число попыток
равно 3, начальный таймаут 50 0 мс, а коэффициент увеличения равен
1,5, то первый таймаут составит 5 00 мс, второй - 7 50 мс, а третий -
1125 мс.

--selectwait=<n> или -w <n>


Устанавливает время ожидания в системном вызове select(2) равным
<п> мс, по умолчанию 10. Этот параметр определяет нижнюю границу и
гранулярность интервала между пакетами, заданного флагом --interval.
Чем меньше значение, тем более точно вычисляются интервалы и тем они
короче; большие значения снижают нагрузку на процессор.

--verbose или -v
Выводить диагностические сообщения о ходе работы. Чем больше
флагов -v задано, тем подробнее диагностика:
1 - сообщать об удалении хостов из списка и о получении пакетов
с неверным значением cookie.
2 - сообщать об отправке и получении каждого пакета.
3 - вывести список хостов и их цифровых отпечатков перед началом
сканирования.

--lifetime=<s> или -1 <s>


Установить время жизни IKE-пакета равным <s> секунд, по умолчанию
28800. В документе RFC 2407 по умолчанию предлагается значение 28800,
но в некоторых реализациях требуется другое число.
--auth=<n> или -т <п>
Задать метод аутентификации, по умолчанию 1 (предварительно
разделенный ключ). В RFC определены значения от 1 до 5. См. RFC 2409
Appendix A.

--version или -V
Вывести номер версии программы и выйти.
--vendor=<v> или -е <v>
Установить строку с названием производителя для вычисления MD5-
хэша. Примечание: экспериментальная функция.

--trans=<t> или -a <t>


Нестандартное преобразование вместо принимаемого по умолчанию.
Значением <t> задает метод шифрования, метод вычисления хэш-функции,
метод аутентификации и группу.
Например, 2,3,1,5. См. RFC 2409 Appendix А о том, какие значения
использовать. Так, --trans=2,3,1,5 означает метод шифрования IDEA-CBC,
метод вычисления хэш-функции Tiger, метод аутентификации shared key
(разделяемый ключ) и DH Group=5.
Если этот параметр задан, то применяется единственное
нестандартное преобразование вместо набора из 8 преобразований по
умолчанию. В результате размер пакета становится равным 112 байт
вместо обычных 3 64.
176 ПРОРЫВАЕМ ОБОРОНУ

--showbackoff[=<n>] или -о[<п>]


Вывести таблицу коэффициентов увеличения. Эта таблица служит
цифровым отпечатком реализации IKE на удаленных хостах. Необязательный
аргумент задает время ожидания в секундах после получения последнего
пакета, по умолчанию 60. Если вы пользуетесь короткой формой (флаг -
о ) , то значение аргумента должно идти сразу за буквой о без пробелов,
например -о25, а не -о 25.

--fuzz=<n> или -и <п> Задает уровень погрешности <п> мс,


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

Сообщения об ошибках и предложения посылать на адрес ike-scan@nta-


monitor.com. См. страницу, посвященную ike-scan, по адресу http://
www.nta~monitor.com/ike-scan/.

arhontus:~# perl IKEprober.pl


ikeprober.pl VI.13 -- 02/14/2002, updated 9/25/2002
By: Anton T. Rager - arager.com

Usage:
-s SA [encr:hash:auth:group]
-k xlauser value I user value [KE repeatedX times Iascii_suppliedl
hex_supplied]
-n xlauser value I user value [Nonce repeatedX times Iascii_supplied|
hex__supplied]
-v xlauser value I user value [VendorlD repeatedXIascii_suppliedI
hex_supplied]
-i xlauser value I user Irawip value [ID repeatedXIascii_suppliedI
hex_supplied|Hex_IPV4]
-h xlauser value I user value [Hash repeatedXIascii_suppliedI
hex_supplied]
-spi xx [SPI in lbyte hex]
-r x [repeat previous payload x times]
-d ip_address [Create init packet to dest host]
-eac [Nortel EAC transform - responder only]
-main [main mode packet instead of aggressive mode - logic
will be added later for correct init/respond]
-sa_test 1121314 [l=86400sec life, 2=0xffffffff life, 3-192
group attribs, 4=128 byte TVLV attrib]
-rand randomize cookie
-transforms x [repeat SA transform x times]

С помощью этих инструментов вы сможете обнаружить уязвимые реализации протоко-


ла IPSec в сети, загрузить код соответствующего «эксплойта», откомпилировать и попро-
бовать запустить его.
ВЗЛАМЫВАЕМ БЕЗОПАСНЫЙ СЕЙФ Л 77
WAVEsec - реализация IPSec для мобильных компьютеров - может быть атакована ути-
литой kracker jack из комплекта AirJack:
arhontus:~# ./kracker_jack
Kracker Jack: Wireless 802.11(b) Пример атаки "человек посередине".
Usage: ./kracker_jack -b <bssid> -v <victim mac> -C <channel number>
[ -c <channel number> ]
-V <victims ip address> -s <server mac> -S <server ip address>
[ -i <interface name> ] [ I <interface name> 3 [ e <essid> ]
-n <netmask> -B <broadcast address>
-а: сколько посылать фреймов с запросом на отсоединение (по
умолчанию 7)
-t: сколько посылать фреймов с запросом на прекращение сеанса
(по умолчанию 0)
-b: bssid, МАС-адрес точки доступа (например, 00:de:ad:be:ef:00)
-v: МАС-адрес жертвы
-V: IP-адрес жертвы
-s: МАС-адрес wavesec-сервера
-S: IP-адрес wavesec-сервера
-В: сетевой широковещательный адрес
-п: маска сети
-с: номер канала (1-14) , на котором работает точка доступа,
по умолчанию текущий
-С: номер канала ( 1 - 1 4 ) , на который мы хотим вынудить жертву перейти
-i: имя интерфейса A i r J a c k (по умолчанию ajO)
-I: имя рабочего интерфейса (по умолчанию e t h l )
ших-
ческие
жетДля
Если:
посередине»
Наконец,
время,
вынудив e sна
полностью
(свыше
Н09_горегs800
внаправлена
важный iпротив
остановить
менее
формате
500
IKE).
хотите
(файл
чтобы
пока dтрафик,
Можноточки
системного
отчаявшийся доступа
http://802.llninja.net/bh2002.ppt.
торая
IKECrack
но,
на
туннель,
дуля
файл
www.securiteam.com/windowsntfocus/6N00G0A3F0.html)
таться
режима
порта специализированной
ikecrack-snarf-l.OO.pl
администратор
рсар
кхостах,
загрузить
подробнее
разобраться,
байт)
программе
ISAKMP
только
и запустить
пытается
WAVEsec,
пакетов,
то
где
администратора
против
процессор
надежды
противник
для
разобраться
работает
Ettercap
в защищенного
ищет
чем
внаправляемых
познакомьтесь
иреальном
агрессивного
атаки
менее
на
атакующего
дело.
причины
и(вероятно,
может
сайте)
протокол
«подвесить»
против
вотключить
специализированную
Если
времени
том,
прибегнуть
-IPSec
это
неполадок
врежима
по
IKE
связаны
как
сUDP-порт
будет
IKE.
Perl-сценарий,
презентацией,
беспроводному
трафика
методом
можете
на
атакуемую
krackerjack
работать
время
офазы
Опубликовано
кстом,
вDoS-атакам
тем,
500
попробовать
полного
туннеле.
с помощью
1защищенный
что
на
что
протокола
атаку,
машину.
только
который
выполняет
непрерывный
машине
каналу
размещенной
он
перебора
Взломщик
например,
против
окажется
дополнительного
против
сообщение
утилиту
принимает
передается
IKE
Windows
этим
определить
атаку
IPSec,
иагрессивного
может
IKECrack,
не
протоколом
поток
MD5_HMAC.
затопление
по
«человек
защищен
2000,
возмож-
на
(http://
крити-
адресу
попы-
боль-
входе
PSK.
мо-
ко-
1 7 8 А ПРОРЫВАЕМ ОБОРОНУ

Последнее средство: DoS-атаки


на беспроводные сети
В этой главе упоминались разнообразные DoS-атаки против различных беспроводных (и
даже проводных) протоколов, в том числе протоколов безопасности. Во многих случаях
эти атаки можно включить в продуманный план проникновения в сеть наряду с социаль-
ной инженерией, атаками «человек посередине», кражей или вскрытием секретных клю-
чей. Но отчаявшийся взломщик может запустить DoS-атаку, просто чтобы отомстить за
безуспешные попытки взломать сеть. Кроме того, DoS-атаки на беспроводные сети могут
быть проведены конкурентами, по политическим мотивам, из любопытства и т.д.; ситуа-
ция ничем не отличается от DoS-атак на общедоступные сети, в частности Internet. К со-
жалению, из-за природы радиоволн как носителя информации и в силу структуры базо-
вых протоколов стандарта 802.11 беспроводные сети невозможно защитить от DoS-атак на
первый уровень и от некоторых DoS-атак на второй уровень. Поэтому, на наш взгляд, ка-
налы 802.11 не стоит использовать для критически важных приложений. На практике,
впрочем, бывают ситуации, когда это единственно возможное решение, а также случаи,
когда системный администратор или проектировщик сети, не зная о проблеме или отмахи-
ваясь от нее, разворачивает беспроводную сеть несмотря ни на что. Поэтому вы как про-
фессионал в области безопасности должны суметь продемонстрировать своим клиентам
все опасности DoS-атак. Если вы администратор или просто любитель, то можете всегда
проверить, как поведет себя сеть в условиях атаки, быть может, просто для того, чтобы
знать, к чему готовиться, и заранее сгенерировать сигнатуры для системы IDS. Чтобы вам
было удобнее, мы разбили известные DoS-атаки на несколько категорий.

/. Атаки на физический уровень, или глушение


С глушением радиоканала ничего нельзя поделать, разве что триангулировать глушащее
устройство и выследить его владельца. Но даже тогда владелец может заявить, что не де-
лал ничего незаконного, поскольку всем разрешено вести передачу в диапазоне ISM. Вам
придется доказать в суде, что атакующий имел дурные намерения и превысил разрешен-
ный FCC уровень EIRP (скорее всего, так и будет). В качестве глушилки может выступать
специально сконструированный передатчик или беспроводная клиентская карта высокой
мощности или даже точка доступа (например, компания Demartech предлагает точки дос-
тупа мощностью 500 мВт!), затопляющая выбранные каналы «мусорным» трафиком. Для
затопления можно воспользоваться программами FakeAP, Voidll, File2air или любым дру-
гим инструментом, генерирующим фреймы 802.11. Специально сконструированная глу-
шилка может задействовать гармоники и передавать на частоте 1,2 ГГц или даже 600 МГц.
Построить такое устройство проще, чем глушилку на частоте от 2,4 до 2,5 ГГц, а для распоз-
навания атаки и ее источника вам понадобится хороший и дорогой частотный анализатор.
Если кто-то захочет сконструировать очень мощный передатчик на частоте 2,4-2,5 ГГц, то
достать главный компонент он сможет без труда; это не что иное как магнетрон микровол-
новой печи. Посмотрите примеры действующих передатчиков на базе магнетрона на стра-
нице http://www/voltagelabs.com/pages/projects/herf005/. Основной недостаток атак на
первый уровень с точки зрения нарушителя - это затраты времени, сил и денег на созда-
ние глушилки и то, что располагать ее придется близко к атакуемой сети, иначе атака не
ПОСЛЕДНЕЕ СРЕДСТВО: DOS-АТАКИ НА БЕСПРОВОДНЫЕ СЕТИ 1 79

достигнет эффекта. Весьма вероятно, что, коль скоро атака будет обнаружена, с глушил-
кой придется расстаться, а в суде она станет вещественным доказательством.

2. Затопление фальшивыми фреймами


с запросами на прекращение сеанса и отсоединение
Такие атаки, наверное, известны лучше всего и чаще других применяются против сетей
802.11. В начале этой главы мы обсудили затопление фреймами с запросами на прекраще-
ние сеанса для обхода фильтрации МАС-адресов и сетей с закрытыми ESSID.
Как и в случае с глушением, противопоставить этому почти нечего. Разработчики стандар-
та 802.Hi обсуждали возможность «аутентифицированной деаутентификации» (извините за
тавтологию). Но, насколько нам известно, эта идея не получила практического воплощения.
Для генерирования потока фреймов с запросами на прекращение сеанса и отсоединение есть
различные инструменты, в том числе dinject, wlanjack, File2air, Voidll и omerta. Самым разру-
шительным из них, пожалуй, является программа Voidll, так как в нее заложены уже готовые
сценарии массивного затопления и затопления по списку подходящих:

Возможность атаковать хосты по списку может быть очень полезна при реализации ак-
тивной защиты беспроводной сети.
Обобщением атаки путем затопления фреймами с запросами на прекращение сеанса
и отсоединение являются атаки с последовательностью фреймов. Например, сначала
посылаются фреймы с запросами на прекращение сеанса или отсоединение, а затем
поток поддельных ответов на пробные запросы и маяков, содержащих подложную ин-
формацию (ESSID, канал) о точке доступа, к которой надо присоединиться. Если в сети
применяется протокол 802.1х, то фрейм EAP-Failure может предотвратить цепочку «пре-
кращение сеанса/отсоединение + поддельные ответы на пробные запросы». Такая ата-
ка гарантирует, что хост-жертва будет выброшен из сети и вряд ли сможет повторно
присоединиться. Станет ли поток подложных фреймов с ответами на пробные запросы
причиной проблем с повторным присоединением - зависит от того, отдает ли про-
граммно-аппаратное обеспечение беспроводной карты атакуемого хоста приоритет
пассивному или активному сканированию. Пример атаки типа «прекращение сеанса +
поддельные фреймы с ответами на пробные запросы» приведен в файле README к про-
грамме File2air. Для проведения атаки можно воспользоваться как этим, так и другими
(Voidll + FakeAP) инструментами.

3. Атака с помощью поддельных неправильно


сформированных фреймов аутентификации
На практике такая атака реализована в утилите fatajack (Mark Osborne; http://www.loud-fat-
bloke.co.uk). В ее основу положен код wlanjack, только посылает она модифицированные
1 8 0 ПРОРЫВАЕМ ОБОРОНУ
im||
JL тш
.| .. i и

поддельные фреймы с запросом на аутентификацию. Как утверждает автор инструмента,


в отправляемом фрейме указаны адрес точки доступа в качестве получателя, адрес атаку-
емого клиента в качестве отправителя, неизвестный тип алгоритма (2), а порядковый но-
мер и код состояния установлены равными Oxf f f f.
В результате атаки точка доступа посылает атакуемому клиенту фрейм с ответом
«Получен фрейм аутентификации с неожиданным порядковым номером транзакции»
(код ОхОООе). Поэтому клиент перестает быть аутентифицированным точкой досту-
па. Как показывает наш опыт, клиент в этом случае отсоединяется и начинает вести
себя странно, испытывая трудности с повторным присоединением и спорадически ме-
няя каналы.

4. Заполнение буферов точки доступа, предназначенных для


обработки запросов на присоединение и аутентификацию
Во многих точках доступах не реализована защита против переполнения этих буферов.
В случае установления слишком большого числа соединений или отправки чрезмерного
количества запросов на аутентификацию происходит крах. То же относится и к про-
граммным точкам доступа, например на базе OpenBSD 3.1. В программе Voidll реализо-
вано затопление фреймами с запросами на присоединение и аутентификацию с хостов
со случайными МАС-адресами. Небольшая утилита progtest, поставляемая в качестве при-
мера с библиотекой libwlan для Linux HostAP, также пытается присоединить к точке до-
ступа большое число фальшивых станций, чтобы вывести ее из строя или «подвесить».
Можно вместо этого присоединиться к точке доступа, а затем начать быстро менять МАС-
адрес интерфейса, с которого соединение было установлено. Такой вариант атаки путем
переполнения буфера запросов на присоединение реализован в сценарии macfld.pl, на-
писанном Джошуа Райтом:

-h, --help
Мы считаем, что производители точек доступа и беспроводных мостов просто обязаны
использовать подобные инструменты для тестирования своего оборудования перед запус-
ком его в промышленное производство.
ПОСЛЕДНЕЕ СРЕДСТВО: DOS-АТАКИ НА БЕСПРОВОДНЫЕ СЕТИ 1 8 1

Идея этой атаки состоит в том, чтобы изменить контрольную сумму CRC-32 перехваченно-
го фрейма и таким образом заставить принимающий хост отвергнуть его. В то же время
атакующий посылает поддельный фрейм АСК отправителю с подтверждением успешного
принятия фрейма. В результате искаженный фрейм по сути дела удаляется и не посылает-
ся повторно. Поскольку аутентификация всех фреймов CSMA/CA в силу ограниченности
ресурсов невозможна, то для предотвращения такой атаки ничего нельзя сделать. Чтобы
изменить CRC, атакующий может попытаться послать искаженный фрейм одновременно с
настоящим отправителем или сгенерировать шум в тот момент, когда отправитель посылает
последние четыре байта фрейма. Именно реализация надежного метода искажения CRC и
есть самая хитрая часть атаки. Если атака удалась, то обнаружить ее или защититься от нее
нелегко. Однако, во время написания этого абзаца такая атака существует только в теории
и еще ждет воплощения в жизнь.

Существуют не вполне очевидные возможности для атак, эксплуатирующих настройки


некоторых параметров уровня 2 в сетях 802.11, например, режима экономии энергии и
обнаружения виртуальной несущей (протокол RTS/CTS).
В атаках на настройку режима экономии энергии взломщик может притвориться клиентом
в спящем режиме и следить за появлением фреймов, накапливаемых точкой доступа для жерт-
вы. Как только клиент забирает фреймы, точка доступа очищает буфер. Получается, что настоя-
щий клиент никогда не получит предназначенные ему фреймы. Вместо этого взломщик может
подделать фреймы с картой индикации трафика (Traffic Indication Map - TIM), посылаемые точ-
кой доступа. Они сообщают клиентам в спящем режиме о том, что для них поступили новые
данные, так что пора выйти из спящего режима и забрать их. Если взломщику удастся заста-
вить клиента в спящем режиме поверить в то, что никаких новых данных на точке доступа
нет, то клиент так и не выйдет из этого режима. Тем временем, накопив слишком много не-
востребованных пакетов, точка доступа будет вынуждена отбросить их, иначе произойдет пе-
реполнение буфера. Такую атаку реализовать труднее, поскольку взломщику придется как-то
перекрыть настоящим TIM-фреймам путь к хостам-жертвам. Наконец, взломщик может подде-
лать фреймы-маяки, в которых установлено поле TIM или ATIM-фреймы в независимых (ad-hoc)
беспроводных сетях, чтобы заставить хосты выходить из спящего режима даже тогда, когда
для них нет никаких данных. Тем самым режим экономии энергии отключается, вследствие
чего аккумулятор клиентского хоста садится быстрее.
DoS-атаки против сетей, в которых реализовано обнаружение виртуальной несущей, -
это фактически атаки на алгоритм назначения приоритетов. Взломщик может затопить
сеть запросами на передачу (Request to Send - RTS), установив в них большое значение
поля t r a n s m i s s i o n d u r a t i o n (длительность передачи), и тем самым зарезервировать
физический носитель для своего трафика, закрыв другим хостам доступ к каналу связи.
Сеть будет переполнена фреймами CTS (Clear to Send - готов к передаче), посылаемыми в
182 ПРОРЫВАЕМ ОБОРОНУ

ответ на каждый фрейм RTS. Хосты в беспроводной сети будут вынуждены последовать
указанию и прекратить передачу.
Хотя для проведения этих атак нет специальных инструментов, но на ум сразу приходит
комбинация File2air, шестнадцатеричного редактора и небольшого сценария на языке ин-
терпретатора команд.

У всего есть недостатки, и новые стандарты безопасности могут внести новые бреши, пытаясь
закрыть старые. Важно ведь только соотношение между риском и достигаемой выгодой, а в слу-
чае стандарта 802.Hi баланс положительный: лучше ввести этот стандарт, чем не вводить. Тем
не менее в реализации 802.Hi имеется ряд проблем, которые можно использовать для проведе-
ния довольно хитрых DoS-атак. В этой главе мы уже рассматривали атаки против протоколов
аутентификации 802.1х/ЕАР, с помощью которых можно заставить ничего не подозревающего
администратора перейти на другие, менее безопасные средства аутентификации пользователей.
Еще одна возможность провести DoS-атаку на защищенную по стандарту 802.Hi сеть - это ис-
казить контрольную сумму, подтверждающую целостность сообщения (Message Integrity
Checksum - MIC) в протоколе ТК1Р. Стандарт говорит, что если в течение одной секунды обна-
ружено более одного фрейма с неправильной MIC, то получатель должен на одну минуту зак-
рыть соединение и сгенерировать новый сеансовый ключ. Стало быть, взломщик, который из-
меняет MIC фреймов несколько раз каждые 59 с, в конечном итоге «уронит» канал связи.
Впрочем, провести подобную атаку не так просто, как кажется. Поскольку для понимания всех
тонкостей атаки, связанной с искажением MIC, нужно знать, как эта контрольная сумма вычис-
ляется (и вообще весь протокол ТИР), то детальное обсуждение этого вопроса мы отложим до
главы 12. А сейчас скажем лишь, что реализовать эту атаку путем отправки фреймов с разными
MIC, но одинаковыми IV весьма затруднительно, если вообще возможно. Атакующий должен
будет прибегнуть к средствам типа применяемых для искажения CRC-32 в атаке, направленной
на удаление фреймов (см. выше), например попытаться заглушить канал в момент передачи ча-
сти фрейма, содержащего MIC. В настоящее время атака, ставящая целью искажение MIC, как и
атака путем удаления фреймов, существует только в теории.
В завершение этой главы отметим, что даже самые прогрессивные механизмы защиты
беспроводных сетей не являются стопроцентно безопасными. В последующих главах вы
сможете понаблюдать (или даже поучаствовать) за тем, к чему может привести успешная
атака на беспроводную сеть.

Резюме
Существует несколько уровней защиты беспроводных сетей, начиная от ограничения облас-
ти распространения сигнала до основанной на RADIUS-сервере аутентификации и разверты-
вания виртуальной частной сети. Однако на любую контрмеру найдется контр-контрмера.
Все это напоминает разработку ракет, антиракет, ложных целей и постановщиков помех для
отклонения антиракет с траектории в военной промышленности. Квалифицированный спе-
циалист по тестированию возможности проникновения в сеть должен быть знаком со сред-
ствами преодоления механизмов защиты и уметь их применять. Такое тестирование не огра-
ничивается обнаружением сетей и взломом протокола WEP; по мере усложнения защитных
систем растет и изощренность атак, направленных на их преодоление.
НАЛЕТ
и РАЗГРАБЛЕНИЕ:
ВРАГ в ГОРОДЕ

Ну а колдовству, как известно, стоит только на-


чаться, а там уж его ничем не остановить.
М. А. Булгаков

По традиции в каждой книге по компьютерной безопасности есть часть, в которой описы-


вается, что может сделать злобный хакер, если ему удастся проникнуть в вашу сеть. Она
пишется для того, чтобы устрашить читателя и напугать его рассказами о том, как хакеры
читают его электронную почту, маскируются под него, организуют сайты для распростра-
нения нелегальных копий Windows и - самое страшное - могут узнать, на какие Web-сайты
вы ходите по ночам. Мы решили последовать этой традиции и включить такую главу, но с
одним отличием: мы расскажем, как они все это проделывают. С точки зрения тестирова-
ния возможности проникновения в сеть без учета таких атак аудит безопасности не может
считаться завершенным. С точки зрения администратора, это лучший способ убедить ру-
ководство и остальных сотрудников ИТ департамента в том, что с безопасностью надо что-
то делать, пока не станет слишком поздно. Разумеется, мы не можем привести полное и
подробное описание всех атак на взломанную сеть; для этого пришлось бы написать дру-
гую книгу. Но показать логическую последовательность таких атак и обрисовать основные
инструменты мы в состоянии и, более того, считаем это необходимым.
Итак, вы раскрыли закрытый ESSID, обошли фильтрацию МАС-адресов, взломали прото-
кол WEP, возможно, преодолели защиту верхних уровней, например, VPN, присоединили
свой хост к сети (быть может, в качестве фальшивой точки доступа или беспроводного
моста), подобрали или получили разумный IP-адрес и даже нашли шлюз во внешнюю сеть,
например в Internet. Что дальше?

Шаг 1. Анализ сетевого трафика


Шагать в неизвестность, то есть присоединяться к беспроводной локальной сети, не изучив
предварительно трафик в ней, неразумно. Очень много информации можно собрать, просто
переведя карту в режим RFM0N и проанализировав циркулирующие пакеты в реальном
1 8 4 НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

времени с помощью программы Ethereal. Еще лучше сбросить все пакеты за определенное
время в рсар-файл и спокойно проанализировать его в своем кабинете, а не на территории
клиента (не забывайте, что в некоторых странах перехват и протоколирование данных счи-
тается незаконным). Консультант по информационной безопасности, будь то в проводных
или беспроводных сетях, должен быть знаком с различными сетевыми протоколами настоль-
ко хорошо, чтобы с первого же взгляда на дамп определить структуру сети и возможные
бреши. Раздел «Процедура тестирования возможности проникновения в беспроводную сеть»
в форме, приведенной в приложении G, содержит все (или почти все) необходимое. Здесь мы
только проясним некоторые пункты, включенные в эту форму.

Содержат ли они какую-нибудь специфическую информацию? Если выставленное на заводе


значение ESSID не изменено, то, вероятно, и другие настройки точки доступа оставлены без
изменения, к примеру административные пароли, сообщества SNMP и IP-адреса. Список при-
нимаемых по умолчанию параметров беспроводных точек доступа приведен в приложении Н.
Ваше умение зайти на точку доступа и изменить ее настройки, конечно, произведет впечат-
ление на клиента, но представьте себе, что может сделать с сетью взломщик, получивший
такой уровень доступа. Используйте комплекты AP-tools и Net-SNMP, в частности snmpwalk,
snmpget и snmpset, для сбора информации о целевой точке доступа и ее настройках.
Есть ли какие-либо особые относящиеся к стандарту 802.11 детали, которые вы должны
знать перед тем, как присоединяться к сети? Нужно ли вам изменить размер фрейма или
порог фрагментации, чтобы получить нужный канал? Включен ли протокол RTS/CTS? Если
да, то в сети должна быть какая-то хитрость, например скрытый узел. Тогда лучше и вам вклю-
чить RTS/CTS, присоединяясь к такой сети, иначе будут серьезные проблемы со связью.

Очень распространено ошибочное мнение: «Если я нахожусь за межсетевым экраном, то могу


безопасно пользоваться telnet». Это не так. К числу самых распространенных и хорошо изве-
стных протоколов, в которых данные, имена и пароли передаются в открытом виде, относятся
POP, ШАР, HTTP, FTP, IRC, а также Internet-пейджеры типа AOL Instant Messenger и ICQ. По про-
токолу SNMP в открытом виде передаются имена сообществ и масса другой полезной информа-
ции в событиях MIB. Более специализированные протоколы, например Cisco Discovery Protocol
(CDP), могут предоставить много сведений о поддерживаемых функциях и конфигурации уст-
ройств. В некоторых случаях передачи информации в незашифрованном виде не избежать, а
иногда про это забывают. Например, разумный системный администратор может разрешить
только протоколы SSH/FTPS, для доступа к закрытым разделам корпоративного сайта приме-
нять HTTPS и заставить пользователей шифровать свою почту с помощью программы PGP. В то
же время на сетевые принтеры все равно отправляются незашифрованные документы, и тут
мало что можно сделать, если принтер или подсистема печати не поддерживает протокол SSL.
А что если сеть построена не на базе TCP/IP? Даже если применяемый анализатор не
может декодировать протоколы IPX, AppleTalk или DecNet (что редко случается), то откры-
тый текст все равно остается открытым, так что данные легко выделить. Кроме того, есть
много ситуаций, когда сетевым устройством можно управлять только по небезопасному
ШАГ 1. АНАЛИЗ СЕТЕВОГО ТРАФИКА 1 8 5

протоколу типа telnet. Это относится к коммутаторам, маршрутизаторам, беспроводным


точкам доступа и некоторым простым межсетевым экранам. Если не обращать внимания
на безопасность уже на ранних стадиях проектирования сети, то весьма вероятно, что в
нее будут включены и такие устройства.
Вот некоторые интересные вещи, которые можно проделать с данными, передаваемыми
в открытом виде:
о настроить браузер так, чтобы он автоматически заходил на те Web-сайты, на которые
заходит выбранный хост (скажем, компьютер исполнительного директора). Для этой
цели служит программа webspy, входящая в комплект Dsniff (webspy -i wlanO <IP
жертвы>) или pdump ( p e r l pdump.pl -В <hostname>). Это можно проделать со
всеми хостами в сети, задав флаг -Ь, хотя можете себе представить, как поведет себя
Netscape, когда им пользуются сразу несколько человек. Как ни странно, для этого
трюка необходимо присоединиться к беспроводной сети и стать ее законным членом;
о искать в данных на лету некоторую строку с помощью n g r e p -w, команды ss -k
(Super Sniffer) или pdump (эта утилита имеет много флагов для фильтрации выраже-
ний, читайте файл README);
о с помощью программы driftnet извлекать из сетевого трафика файлы с картинками в
форматах .jpeg или .gif, а также видео/аудиофайлы в формате .mpeg.

arhontus:~# . / d r i f t n e t -h
d r i f t n e t , version 0.1.6
Извлекает изображения из сетевого трафика и выводит их в окне X Windows.
Synopsis: driftnet [option] [ f i l t e r code]
Флаги:
-h Вывести эту справку.
-v Выводить диагностическую информацию.
-i interface Выбрать прослушиваемый интерфейс (по умолчанию в с е ) .
-р Не переводить прослушиваемый интерфейс в
прозрачный режим,
-а Режим приложения: не выводить изображения на экран,
а сохранять во временном каталоге и печатать на
стандартном выводе их имена,
-m number Максимальное число изображений, сохраняемых во
временном каталоге в режиме приложения,
-d directory Имя временного каталога.
-х prefix Префикс имен сохраняемых файлов,
-s Пытаться извлечь из сети не только изображения, но и
потоковые аудиоданные. В настоящий момент
поддерживается только формат MPEG.
-S Извлекать только потоковые аудиоданные, но не
изображения.
-М command Пользоваться указанной командой для проигрывания
аудиоданных, извлеченных с помощью флага -s; при
этом должны обрабатываться MPEG-фреймы, поданные на
стандартный вход.
По умолчанию: 'mpgl23 - ' .
1 8 6 А НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

После всех флагов в командной строке можно еще задать код фильтра, как в програм-
ме tcpdump. Фильтр будет вычисляться как выражение 'TCP и (код фильтра, задан-
1
ный пользователем) . Для сохранения изображения в текущем каталоге достаточно
просто щелкнуть по нему. Режим приложения введен для совместного использова-
ния с другими программами, использующими driftnet для выкачивания изображений
из Сети. При наличии флага -m driftnet молча игнорирует изображения, если во вре-
менный каталог уже помещено указанное число файлов. Предполагается, что какой-
то другой процесс параллельно обрабатывает и удаляет сохраненные файлы изоб-
ражений;
о перехватывать трафик по протоколу Voice over IP (VOIP) с помощью программы vomit:

Обратите внимание на возможность вставки wav-файла в ведущийся телефонный разго-


вор, только подумайте, какой это открывает простор для разного рода проделок.
Менее очевидный вид открытого трафика, который может представлять интерес для
потенциального противника, - это cookie, которые посылает сервер X Windows, и описате-
ли файлов, передаваемые по протоколу NFS. В X Windows magic cookie применяются для
аутентификации требующих соединения клиентов. Если выделить из трафика cookie и
вставить его в файл .Xauthority, находящийся в начальном каталоге взломщика, то тот смо-
жет соединиться с Х-сервером от имени клиента, чей cookie был перехвачен. Выделение
описателя файла в NFS позволит взломщику установить связь с демоном nfsd, работающим
на сервере, и получить доступ к ресурсам, с которыми связан этот описатель. Лучшим ин-
струментом для выделения описателей NFS является Super Sniffer (ss -n).

Примерами таких протоколов являются SSHvl (уязвим к атаке «человек посередине» с


помощью программы sshmitm, входящей в комплект Dsniff) и применяемые для аутен-
тификации свертки LM/NTLMvl. Самый распространенный способ взлома сверток LM/
NTLMvl - воспользоваться программой LOphtcrack, но в UNIX вы можете выполнить ко-
манду r e a d s m b < o u t p u t f i l e > для сбора сверток и применить потом утилиту John
the Ripper ( J o h n - f o r m a t : LM) или Mdcrack (mdcrack -M NTLM1) против получен-
ного файла для вскрытия паролей.

В переговорах об аренде по протоколу DHCP содержится масса информации, полезной


для подслушивающего, в том числе адреса текущих маршрутизаторов, DNS-серверов,
NetBIOS-серверов и типы узлов. Такие программы, как Kismet, анализируют DHCP-трафик
для выявления диапазона IP-адресов обнаруженных беспроводных сетей, a Aphunter и
ШАГ 1. АНАЛИЗ СЕТЕВОГО ТРАФИКА 1 8 7

Apradar могут автоматически присоединять хосты к сетям и получать IP-адреса от DHCP-


сервера. Противник, нацеленный на кражу части полосы пропускания, который пере-
мещается между несколькими беспроводными сетями в округе, может воспользоваться прог-
раммой АР Hopper, чтобы все время оставаться на связи. АР Hopper - это утилита, которая
автоматически переходит с одной точки доступа на другую, даже если они принадлежат
разным сетям. Она проверяет наличие DHCP-пакетов и пользуется протоколом DHCP, если
таковые присутствуют. Кроме того, АР Hopper ищет шлюзы во внешние сети и может быть
запущена в режиме демона с флагом -D.
При проектировании протокола DHCP безопасность не принималась во внимание, по-
этому есть множество инструментов, направленных против него. Изучите программу DHCP
Gobbler (http://www.networkpenetration.com/downloads.html), если хотите включить ата-
ки против DHCP в свой арсенал аудитора безопасности сетей.
Путем анализа данных протоколов маршрутизации, передаваемых по небезопасному
каналу, знающий противник может реконструировать всю карту сети и определить шлюзы
и выходы во внешние сети. Он может спланировать последующие атаки, связанные с пере-
направлением трафика, с использованием задействованных в сети-жертве протоколов мар-
шрутизации, или, что более вероятно, просочиться в беспроводную сеть со стороны про-
водной из-за неправильно настроенного механизма разделения сетей. Протокол RIPvl не
содержит никаких средств аутентификации, в других же протоколах, скажем, RIPv2, IGRP,
EIGRP и OSPF, они редко включаются. Даже если администратор маршрутизатора проявил
мудрость и включил аутентификацию в протоколе маршрутизации, трафик будет содержать
пароль в открытом виде или в виде М05-свертки, которую можно вскрыть атакой по слова-
рю или методом полного перебора. Если программа MDcrack не дала результата, то всегда
можно подставить ту же М05-свертку при генерации фальшивого пакета с информацией
об обновлении маршрута с помощью такого инструмента конструирования пакетов, как
Nemesis или IRPAS.
При слежении за беспроводным трафиком противник может также легко выделить па-
кеты типа 9 и 10 протокола обнаружения маршрутизаторов ICMP (объявление о маршрути-
заторе и ходатайство). Этот протокол обнаружения абсолютно небезопасен и допускает
злонамеренное перенаправление трафика. Такого рода атаки мы кратко опишем в следую-
щей главе.
Наконец, не забывайте о протоколах обеспечения живучести шлюзов, например Cisco
Hot Standby Router Protocol (HSRP) и Virtual Router Resilience Protocol (VRRP). Протокол
HSRP «защищен» паролем, передаваемым в открытом виде (по умолчанию c i s c o ) , и суще-
ствует целый ряд атак, включая DoS и перехват шлюза, направленных против маршрутиза-
торов компании Cisco, поддерживающих HSRP. Провести такие атаки можно с помощью
утилиты hsrp, входящей в комплект IRPAS:
НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

В протоколе VRRP (стандарт IETF) реализовано три основных метода аутентификации:


без какой-либо аутентификации, незашифрованный пароль и IPSec Authentication Header
(АН). Мы видели несколько беспроводных сетей, в которых работал протокол VRRP, и ни в
одном случае метод АН не использовался! Если вы хотите поэкспериментировать с этим
протоколом в Linux, скачайте исходный текст программы vrrpd с сайта http://www.gen-
i.co.nz/. Существуют реализации VRRP и для других платформ.

Перед присоединением к сети противник может определить, включено ли удаленное протоко-


лирование. Если это так, то взломщик узнает, какие хосты участвуют в этом процессе и сможет
спланировать атаку против центрального сервера протоколов. Возможны варианты от получе-
ния доступа к серверу (поэтому он должен быть хорошо защищен) до специализированных
DoS-атак против syslog (поищите информацию на сайте http://www.packetstormsecurity.org)
или вставки хоста взломщика между жертвой и центральным сервером протоколов с помощью
атаки «человек посередине». В последнем случае трафик, содержащий данные протоколов,
можно модифицировать на лету с помощью техники внедрения пакетов и других инструмен-
тов, чем затруднить последующую процедуру расследования инцидента. Чтобы еще больше
усложнить эту задачу, аналогичные атаки можно провести против NTP-сервера, если обнару-
жен трафик по протоколу NTP. Если отсутствуют корректные временные метки, то нет и закон-
ных доказательств против взломщика. Чтобы подделать NTP-пакеты и проверить, можно ли
обмануть сервер времени, воспользуйтесь утилитой SendIP с флагом -р n t p , который загру-
жает специальный модуль создания NTP-пакетов.

Нам часто приходилось наблюдать беспроводные сети, в которых были включены совершенно
неиспользуемые протоколы STP, NetBIOS, IPX или SNMP. Хотя к безопасности это, возможно, и
не имеет отношения, но неиспользуемые протоколы потребляют ресурсы, а взломщик может с
их помощью определить хосты, рассылающие широковещательные сообщения, и даже попро-
бовать запустить атаку с переполнением буфера, если найдутся подходящие бреши. Ваша обя-
занность как аудитора сети - посоветовать заказчику отключить такие протоколы.

Шаг 2. Соединение с беспроводной сетью


и выявление прослушивания
Если кто-то поблизости прослушивает трафик, то это вполне может оказаться сенсор системы IDS
или какой-нибудь инструмент мониторинга сети. Разумный взломщик первым делом попытается
выявить хосты, на которых работает IDS, и обойти либо «погасить» их. Вообще-то весьма вероят-
но, что, обнаружив, например, сенсор IDS, взломщик сразу отсоединится от сети и удалится. При
тестировании сети на возможность проникновения вы должны заранее убедить сетевого адми-
нистратора в том, что атаки против системы IDS тоже не исключены. Обнаружить устройства,
работающие в прозрачном (promiscuous) режиме можно с помощью дополнительного моду-
ля hunter к программе Ettercap или других бесплатных утилит, скажем, Sentinel Sniffdet или
APD. Использование Ettercap или APD - самый быстрый способ выявить прослушивание.
1 9 0 А НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

Как видите, в случае беспроводных сетей программа Sniffdet предпочтительнее, по-


скольку она применяет четыре разных метода обнаружения прослушивания, в отличие от
apd - одной из первых утилит для этой цели. Кроме того, sniffdet может получать список
IP-адресов в файле и без труда проверять всю локальную сеть на наличие устройств, рабо-
тающих в прозрачном режиме.
Можно также проанализировать сетевой трафик на предмет наличия пакетов, направ-
ляемых сенсором IDS главному хосту, или сообщений центральному серверу протоколов.
Если обнаружены хосты, ведущие мониторинг, то можно прервать эту деятельность с по-
мощью сценария killmon от DachbOden Labs:

Разумеется, вы и сами можете не удержаться от прослушивания трафика (это более


сильный наркотик, чем кофе!). Тогда просто откройте на своем хосте порт 80 (пс -1
-n -v -р 8 0). Вместо этого можно воспользоваться дополнительным модулем leech к
программе Ettercap, чтобы изолировать хост с системой IDS от остальной сети, попы-
таться получить к нему административный доступ или «погасить» его с помощью DoS-
атаки (это легко, если хост находится в беспроводной сети). Такие атаки против сенсо-
ров IDS вряд ли останутся незамеченными, так что взломщик должен соотносить риск
с выгодой и надеяться на удачу. Сколько времени пройдет от момента срабатывания
IDS до того, как системный администратор предпримет какие-то действия? Хватит ли
этого времени, чтобы проникнуть на один из хостов локальной сети и разместить на
нем черный ход или провести успешную атаку против хоста в Internet или другой сети,
в которую есть выход? Можно ли это сделать, не потревожив IDS? Подумайте обо всем
этом, планируя защитные действия и, в частности, развертывание IDS.
ШАГ 3. ИДЕНТИФИКАЦИЯ ХОСТОВ И СНЯТИЕ ЦИФРОВОГО ОТПЕЧАТКА С ОС 1 9 1

Шаг 3. Идентификация хостов


и выполнение пассивного снятия цифрового
отпечатка с операционной системы
Разумеется, не всякий хост в беспроводной сети (или в неправильно подключенной к ней
локальной сети Ethernet) будет вести передачу, поэтому его не удастся обнаружить путем
пассивного прослушивания. Для автоматического обнаружения имеющихся в сети машин,
помимо команды p i n g < b r o a d c a s t IP>, можно воспользоваться программой Ettercap
(которая использует для обнаружения хостов протокол ARP) или THCrut (которая может
еще применять для этой цели протоколы DHCP и ICMP):
arhontus:~# . / t h c r u t
Размер системного буфера передачи устанавливается равным 104857 6 байт.
Usage: t h c r u t [ t h c r u t - o p t i o n s ] [ command ] [ command-options-and-
arguments ]

Команды:
discover Обнаружение хоста и снятие цифрового отпечатка ОС
icmp Обнаружение по протоколу ICMP
dhcp Обнаружение по протоколу DHCP
агр Обнаружение по протоколу ARP
Флаги:
-1 < i n t e r f a c e > Сетевой интерфейс (первый найденный)
-1 <п> Сколько хостов проверять параллельно
-s <1Р> Исходный IP сетевого устройства (ethO, eth0:0, ...)

Задавайте -1 100 для локальной сети и -1 5000 в противном случае.


Для получения справки о параметрах команды введите t h c r u t [command] -h.

Пример:
# thcrut arp 1 0 . 0 . 0 . 0 . - 1 0 . 0 . 2 5 5 . 2 5 4
# thcrut d i s c o v e r -h
# thcrut d i s c o v e r -O 192.168.0.1-192.168.255.254

arhontus:~# . / t h c r u t icmp -h
usage: icmp [options] [IP range] . . .
-P Эхо-запрос по ICMP (по умолчанию)
-А Запрос маски адреса по ICMP (по умолчанию)
-R Запрос с предложением стать маршрутизатором
с групповой адресацией
-1 <п> Сколько хостов проверять параллельно

Обращаем ваше внимание,


иьращаем ваше внимание, что
что снятие
снятие цифрового
цифрового отпечатка
отпечатка вв режиме
режиме dd ii ss cc o
o vv ee rr не
не яв-
яв-
ляется пассивным,
ляется пассивным, поэтому
поэтому вв этом
этом разделе
разделе мы
мы не
не станем
станем его
его обсуждать.
обсуждать. Но
Но стоит
стоит отметить,
отметить,
что
что программа
программа THCrut
THCrut была
была специально
специально написана
написана для
для обнаружения
обнаружения хостов
хостов в в неизвестных
неизвестных
беспроводных сетях во время поездки на машине.
беспроводных сетях во время поездки на машине.
А
А что
что если
если некоторые
некоторые обнаруженные
обнаруженные IP-адреса
IP-адреса принадлежат
принадлежат не не разным
разным хостам,
хостам, аа одно- одно-
му,
му, на котором работают несколько виртуальных серверов с разными IP-адресами? Это
на котором работают несколько виртуальных серверов с разными IP-адресами? Это
можно
можно выяснить,
выяснить, проанализировав
проанализировав начальные
начальные порядковые
порядковые номера
номера (Initial
(Initial Sequence
Sequence
1 9 2 А НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

Number - ISN) TCP-пакетов, идентификаторы IP или кэш протокола ARP. На практике про-
ще всего сделать это, запустив утилиту ISNprober в групповом режиме (задайте флаг -q
для получения сводного отчета для всей локальной сети):
arhontus:~# ./isnprober
-- ISNprober / 1.02 / Tom Vandepoel (Tom.Vandepoel@ubizen.com) --
Usage:
Режим одиночного хоста:
./isnprober [options] <ip>|<ip:port>
Режим сравнения:
./isnprober [options] -с < i p l > | < i p l : p o r t > <ip2>I<ip2:port>
Групповой режим:
./isnprober [options] -g <filename>
-v напечатать номер версии и выйти
-n < i t e r a t i o n s > : число пробных итераций [по умолчанию = 3]
-i <interface>: сетевой интерфейс
-р <default port>: какой порт использовать по умолчанию, если он не
задан явно [по умолчанию = 80]
-q: подавить вывод необработанной информации, выводить только результаты
-w: сколько времени ожидать пакета с ответом (секунд) [по умолчанию = 1]
--ipid: использовать идентификаторы IP вместо TCP ISN
--variate-source-port: использовать новый порт отправителя для каждого
посланного пакета (по умолчанию для всех пробных пакетов
указывается один и тот же порт отправителя)
За
За исключением
исключением случая,
случая, когда
когда сканируются
сканируются машины
машины под
под управлением
управлением OpenBSD,
OpenBSD, провер-
провер-
ка идентификаторов IP оказывается несколько надежнее, чем TCP
ка идентификаторов IP оказывается несколько надежнее, чем TCP ISN. ISN.
Что
Что касается
касается снятия
снятия цифрового
цифрового отпечатка
отпечатка ОС,
ОС, неважно
неважно вв активном
активном или
или пассивном
пассивном режи-
режи-
ме, то
ме, то есть
есть золотое
золотое правило,
правило, которое
которое гласит:
гласит: «Не
«Не доверяйте
доверяйте какой-то
какой-то одной
одной технике
технике снятия
снятия
цифрового отпечатка
цифрового отпечатка ОС,
ОС, сравнивайте
сравнивайте результаты,
результаты, получившиеся
получившиеся разными
разными методами».
методами». Для
Для
снятия цифровых
снятия цифровых отпечатков
отпечатков есть
есть следующие
следующие инструменты:
инструменты:
о siphon (первый общедоступный инструмент для снятия цифровых отпечатков);
о pOf;
о disco;
о ST-divine;
о pdump -a;
о passifist;
о Ettercap.
У каждого инструмента есть свои особенности, которые мы предлагаем вам изучить
самостоятельно. Обратите внимание, что для пассивного снятия отпечатка необяза-
тельно присоединяться к беспроводной сети, это относится, в частности, и к отпечат-
кам, получающимся на основе анализа дампов в формате рсар программами pOf или
passifist. Многие полагают, что определить, какая ОС работает на конкретной машине,
даже не войдя в сеть и со значительного расстояния, - это фантастика, но такова ре-
альность в мире Wi-Fi.
ШАГ 4. ПОИСК И ЭКСПЛУАТАЦИЯ УЯЗВИМЫХ ХОСТОВ В БЕСПРОВОДНОЙ СЕТИ Л 93

Шаг 4. Поиск и эксплуатация


уязвимых хостов в беспроводной сети
Это активная фаза атаки. Дойдя до четвертого шага, вы уже должны были собрать солидный
объем полезной информации, которая сделает проникновение в беспроводные хосты, шлюзы и
обнаруженные в проводной сети машины совсем простым делом. Возможно, и проникать-то не
понадобится, так как вы уже выделили или взломали пароли пользователей, передаваемые по
сети. С помощью собранных данных вы можете выбрать наиболее подходящие для последую-
щей атаки хосты, на которых удастся получить права администратора или пользователя root.
На этом этапе можно выполнять активное снятие цифрового отпечатка ОС, сканирование пор-
тов и прочие действия, направленные на выявление и последующую эксплуатацию уязвимых
служб. Не забывайте о золотом правиле снятия цифровых отпечатков: пользуйтесь разными
методами и сравнивайте результаты. К числу имеющихся инструментов относятся:
о шпар -0;
о thcrut discover (применяется улучшенная по сравнению с nmap техника снятия циф-
ровых отпечатков);
о Ettercap (нажмите клавишу f/F, выбрав предварительно хост);
о xprobe;
о xprobe2 (да, это совершенно другой инструмент);
о induce-arp.pl (снятие цифрового отпечатка OS на базе протокола ARP);
о sing (снятие цифрового отпечатка OS на базе протокола ICMP);
о sprint и sprint-lite;
о инструменты для снятия цифровых отпечатков с помощью специальных служб, если
таковые присутствуют (Idistfp, Ipdfp, telnetfp);
о прочие инструменты, которые в изобилии встречаются в Internet.
Что касается собственно сканирования портов, то всеми любимой программой является
nmap. В какой литературе для хакеров не встретишь ее описания? Не углубляясь в дебри
теории сканирования портов, приведем собственные рекомендации:
о сначала попробуйте сканирование зомби и простаивающих процессов с флагом - s i .
Это может и не сработать;
о попробуйте сканирование протоколов (- sO). Попробуйте снять отпечаток, запустив
программу с этим флагом;
о запустите программу с флагом -sN (null). Многие межсетевые экраны и системы IDS
не обнаруживают такого сканирования (например, в протоколах ipchains оно не
фиксируется);
о далее для пущей уверенности переходите к флагу - s F , но избегайте флага -sX
(Xmas);
о если ни один из этих методов не дал результата, то на хосте, скорее всего, работает
какая-то версия Microsoft Windows. Тогда воспользуйтесь сканированием с полусое-
динением (-sS).
Поскольку речь идет о локальной сети (возможно, беспроводной), то имеет смысл упомя-
нуть и еще один инструмент: Ghost Port Scan. Эта программа «отравляет» кэш ARP, подделывая
и IP-, и МАС-адрес сканирующего хоста. Сканер способен найти не используемые в локальной
сети IP-адреса. Такая методика задействуется, когда не указан IP-адрес отправителя. Назначение
1 9 4 НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

этой функции - избежать потенциального отказа от обслуживания, которое может стать ре-
зультатом «отравления» кэша ARP. У сканера довольно много возможностей:

Для перехвата анонса программы (banner) старомодным способом можно использовать


telnet или netcat. Но можно сэкономить время (в беспроводных сетях это особенно важно)
и силы, взяв одну из следующих программ:
о nmap+V (nmap с патчем, изготовленным Saurik; попробуйте флаг -sVVV) или
последнюю версию nmap с новой функцией снятия отпечатка по анонсам (флаг
-sV или - А ) ;
о атар;
о THCrut;
о arb-scan;
о banshee (позволяет запускать команды для сканируемых IP-адресов);
о grabbb (очень быстрая);
о целый ряд перехватчиков анонсов, написанных группой Men in Grey (MIG) - работают
очень быстро, но не всегда точно;
о перехватчики анонсов для «скриптописателей», написанные для «дыры месяца»
(обычно быстрые; наверное, началось это с перехватчиков для разных версий wu-ftpd).
ШАГ 5. АТАКА НА ПРОВОДНУЮ ЧАСТЬ СЕТИ 1 9 5

В качестве консультанта по безопасности вы всегда можете воспользоваться авто-


матизированным многофункциональным пакетом программ типа Nessus, но настоящий
взломщик никогда не прибегнет к таким инструментам, поскольку нуждается в скрыт-
ности. Выбирайте те средства, которые вам нравятся по причине экономии времени
или просто из эстетических соображений. Непосредственно на вашем ноутбуке долж-
на храниться обширная коллекция «эксплойтов» и длинный список паролей, выбирае-
мых по умолчанию, а также словари. Тогда вам не придется тратить время на обраще-
ние из беспроводной сети к таким сайтам, как SecurityFocus или PacketStorm. Для
вскрытия паролей по словарю и методом полного перебора применяйте такие програм-
мы, как Hydra и ей подобные.

Шаг 5. Атака на проводную часть сети


Если сеть спроектирована правильно и беспроводную часть отделяет от проводной хоро-
ший межсетевой экран, то ваши шансы успешно атаковать проводную часть сети невели-
ки. Однако наш опыт показывает, что так бывает редко. Обычно точки доступа включают-
ся в коммутаторы, которые соединяют их с остальной частью сети и расположены в том же
широковещательном домене, что и проводные хосты. Существуют различные способы и
инструменты для перенаправления трафика из проводной части сети в беспроводную для
анализа и манипулирования. Если беспроводная точка доступа включена в коммутатор,
можете попробовать следующее:
о «отравить» кэш ARP с помощью атаки «человек посередине», запущенной из беспро-
водной части против хостов в проводной сети. Такую атаку сможет провести любой
современный анализатор протоколов, иногда в руководствах она называется «актив-
ным прослушиванием». В качестве примеров можно назвать arpspoof из комплекта
Dsniff, Ettercap, Hunt и Angst. Существуют также и более специализированные инст-
рументы, например arpmim, sw_mitm и BKtspidbc. Помните, что атаку можно прове-
сти против единственного хоста (классическая атака «человек посередине») или
против нескольких машин (подделка ARP-шлюза);
о переполнить таблицу САМ коммутатора, чтобы данные, циркулирующие в проводной
сети, просочились через порт, подключенный к беспроводной части. Лучший из извес-
тных инструментов для этой цели - программа macof, включенная в комплект Dsniff
после переписывания на С оригинального кода, написанного на Perl. Самый интересный
инструмент из этой категории - Taranis. Эта программа используется для проведения
атаки с переполнением таблиц САМ и первоначально предназначалась для кражи аутен-
тификационной информации с почтового сервера. С нею поставляется также утилита
switchtest, тестирующая коммутаторы на уязвимость к переполнению САМ. Не будет ли
ваш коммутатор вести себя, как обычный мультиплексор, если подвергнется атаке?
Switchtest скажет об этом. Есть также инструменты, реализующие затопление ком-
мутаторов МАС-адресами, например angst -f, pdump -M и дополнительный модуль
Spectre к программе Ettercap. Отметим, что если атака оказалась успешной, то вы все
равно не сможете получить больше данных, чем позволяет пропускная способность
беспроводной сети. Если через коммутатор проходит трафик 100 Мбит/с, то вы сможете
получить лишь ту его часть (скажем, 7 Мбит/с в сети 802.11b при использовании Linux),
которую способен пропустить беспроводной канал;
1 9 6 А НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

о перенаправить трафик с помощью протокола обнаружения маршрутизатора, встро-


енного в ICMP. Как утверждается в разделе 9.6 книги «TCP/IP Illustrated» (TCP/IP в
иллюстрациях), существуют правила, позволяющие не дать злоумышленнику моди-
фицировать системные таблицы маршрутизации:
- вновь объявляемый маршрутизатор должен находиться в сети, подключенной
напрямую;
- пакет с информацией о перенаправлении должен исходить от текущего маршру-
тизатора к данному получателю;
- пакет с информацией о перенаправлении не может сообщать хосту, что тот дол-
жен сам стать маршрутизатором;
- модифицированный маршрут должен быть непрямым.
Однако наличие таких правил еще не означает, что поставщики ОС им строго следуют
(хотя первое правило выполняется всегда, поэтому вы должны быть напрямую подключе-
ны к локальной сети, если хотите попытаться перенаправить трафик). Лучшие инструмен-
ты для проведения атаки на протокол перенаправления в ICMP - это Sing и IRPAS. Послед-
ний включает готовую утилиту для эксплуатации этой уязвимости - IRDPresponder. Она
ищет пакеты с предложениями стать маршрутизатором и отвечает, периодически отправ-
ляя назад обновления:

По умолчанию приоритет (preference) равен нулю; если IP-адрес получателя не указан,


берется широковещательный адрес.
Конечно, если между проводной и беспроводной частями сети находится безопасный
шлюз, то эти атаки ничего не дадут. Однако есть методики, которые все-таки приведут к
успеху, - нет в мире совершенства. Если нельзя атаковать данный уровень модели 0SI, то
противник может перебраться на уровень выше и продолжить попытки. Существует много
способов преодолеть безопасный шлюз между проводной и беспроводной сетями. Очевид-
ный объект атаки - это сам шлюз, но тут, скорее всего, ничего не получится, зато сработа-
ет система IDS и останутся бросающиеся в глаза записи в протоколах. Другой очевидный
способ - посмотреть, каким проводным хостам посылают трафик беспроводные компьюте-
ры, и атаковать эти хосты, возможно, притворившись одной из беспроводных машин, пред-
варительно «выбросив» ее из сети с помощью wlan_jack, fata_jack и т.п.
Более элегантный способ состоит в том, чтобы воспользоваться существующими соеди-
нениями между проводными и беспроводными хостами для их перехвата, внедрения и
модификации трафика. Для вставки перехватывающего хоста между концевыми точками
соединения обычно используется подделка ARP. Однако разделяемая природа сетей 802.11
и возможность атаки «человек посередине» на уровень 2 без модификации таблиц ARP
открывает целый спектр новых способов перехвата существующих соединений. В частно-
сти, можно модифицировать проходящий через интерфейс в ходе атаки «человек посере-
дине» трафик, не нанося заметного ущерба. Например, вместо доменного имени в исходя-
щих запросах можно подставить другое. Предлагаем ознакомиться с заменами на сайтах
ШАГ 5. АТАКА НА ПРОВОДНУЮ ЧАСТЬ СЕТИ Л 97

http://www.rathergood.com и http://www.attrition.org. Таким образом достигается эффект


подделки DNS, но DNS-сервер в этом не участвует. Можно заменить буквы СЕО (исполни-
тельный директор) в проходящем трафике любой другой комбинацией из трех букв, воз-
можности ограничены только вашим воображением. Ну а если серьезно, то атакующий
может причинить ощутимый и в то же время трудно обнаруживаемый вред, скомпромети-
ровав целостность данных, а затем воспользовавшись компроматом для шантажа. Следова-
тельно, возможность успешного проведения таких атак надо обязательно тестировать в
ходе аудита безопасности беспроводной сети.
Чтобы обнаружить существующие в сети соединения, воспользуйтесь своим любимым
анализатором протоколов или автоматизируйте эту процедуру за счет дополнительного
модуля beholder к программе Ettercap. Для выделения трафика по образцу и модификации
на лету годится программа netsed:

В результате применения такого правила образец p a t t e r n l заменяется на p a t t e r n 2


во всех пакетах, где он встречается. Дополнительный параметр ( e x p i r e ) служит для того,
чтобы прекратить модификацию после указанного числа успешных замен. Восьмиразряд-
ные символы, в том числе NULL и 7\ задаются с помощью esc-последовательностей ана-
логично тому, как это делается в HTTP (например, %0a%0d). Сам знак процента представ-
ляется в виде '•%%'.. Примеры:

Правила не применяются к образцам, пересекающим границы пакетов. Порядок приме-


нения - с первого до последнего правила с неисчерпанным счетчиком.
Помимо модификации проходящего трафика его еще можно воспроизводить. Атаки с
воспроизведением полезны для того, чтобы противник мог аутентифицироваться на сер-
вере с помощью свертки чужого имени и пароля. Тем самым удается сэкономить массу вре-
мени, которое иначе пришлось бы потратить на вскрытие пароля. Воспроизведение LM-
или NTLM-сверток для получения тех же прав, что у ранее аутентифицированного пользо-
вателя, - самый распространенный пример такой атаки. Ее можно автоматизировать с по-
мощью инструмента smbproxy.
1 9 8 НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

Для классического перехвата TCP-соединений программа Hunt остается непревзойден-


ным инструментом, с которым должен быть знаком любой аудитор безопасности. Страница
руководства по ней (man hunt) - это прекрасное чтение на сон грядущий! Интересные
добавления к возможностям Hunt предлагает программа pdump (pdump -А), которая по-
зволяет вставлять новые пакеты в существующее соединение, оставляя его при этом син-
хронизированным. В этом случае перенаправлять пакеты уже не нужно, а риск сброса со-
единения устраняется.
Еще два варианта перенаправления трафика через маршрутизатор или шлюз - это вклю-
чение постороннего маршрута с помощью работающего протокола маршрутизации и под-
делка или перехват DNS в случае, когда для доступа к машинам в локальной сети использу-
ются доменные имена.
В первом случае противник периодически посылает поддельные сообщения с объявле-
нием маршрута, в которых его хост декларируется шлюзом по умолчанию, или присоеди-
няется к домену маршрутизации и пытается выиграть выборы нового маршрутизатора (это
характерно для атак на некоторые протоколы маршрутизации, например OSPF). Для встав-
ки вредоносных обновлений маршрута используйте nemesis-rip (протоколы RIPvl и RIPv2),
nemesis-pspf (протокол OSPF), утилиту igrp из комплекта IRPAS (протокол IGRP) либо Sendip
с подгруженными модулями rip (RIPvl и RIPv2) или bgp (BGPv4). Для присоединения к до-
мену OSPF с целью стать назначенным маршрутизатором и взять на себя управление всеми
обновлениями маршрутов в домене установите на атакующий ноутбук программы Zebra
или Quagga и задайте параметры, относящиеся к OSPF: установите наивысший приоритет
(255) и наибольший возможный из разумных IP-адресов закольцованного интерфейса (или
«идентификатор маршрутизатора») на случай конфликта приоритетов. Возможно, то же
самое можно проделать и с программой Gated, но мы еще не испытывали ее в процессе
аудита безопасности протоколов маршрутизации. В общем и целом, для успешной атаки
путем вставки постороннего маршрута вы должны быть знакомы с устройством и работой
протоколов маршрутизации. Хороший источник по всем вопросам, касающимся коммута-
ции и маршрутизации, это книга «Routing and Switching: Time of Convergence?» (Маршру-
тизация и коммутация: Время конвергенции?) Риты Пузмановой (Addison-Wesley, 2002,
ISBN: 0201398613). Можно также обратиться к руководству «CCIE Routing and Switching»
(Маршрутизация и коммутация CCIE).
Что касается атак с подделкой DNS, то, поскольку протокол Secure DNS (SNDS) еще не на-
шел широкого распространения, проведение таких атак на UDP-версию протокола без аутен-
тификации - это простая задача, для решения которой к тому же есть немало инструментов.
Программа Dnsspoof из комплекта DSniff подделывает ответы на любые DNS-запросы об ад-
ресе или указателе с помощью файла в формате hosts, содержащего подставные записи.
Все корпоративные пользователи, читающие новости на Web-сайте http://www.cnn.com
во время обеда, будут перенаправлены на ноутбук атакующего. Пока тот попивает кофе в
кафе через дорогу, l E s p l o i t . t c l воспользуется уязвимостями в Internet Explorer версий
5.0,5.5 и 6.0, связанными с «символом % 0 0 в имени файла» и автоматическим запуском прог-
рамм для некоторых типов MIME, чтобы загрузить и выполнить файл veryeviltrojan.exe на
всех уязвимых машинах с ОС Windows, посетивших поддельный сервер.

Шаг 6. Проверка правил фильтрации на


шлюзе из беспроводной сети в проводную
Консультант по безопасности, равно как и бета-тестер программ, связанных с безопаснос-
тью, должен выяснить, обеспечивает ли установленный безопасный шлюз в беспроводную
2 0 0 ^ НАЛЕТ И РАЗГРАБЛЕНИЕ: ВРАГ В ГОРОДЕ

сеть достаточный уровень защиты от атак со стороны беспроводной сети и надежно ли он


скрывает структуру проводной части сети. Хотя детальное описание процедуры тестиро-
вания межсетевых экранов выходит за рамки главы, посвященной основам аудита безопас-
ности, но несколько рекомендаций мы все же дадим:
о с помощью шпар или hping2 проверьте, как шлюз обрабатывает фрагментацию пакетов;
о с помощью Ghost Port Scanner или какой-либо DoS-атаки проверьте, как шлюз обра-
батывает перекрывающиеся фрагменты;
о с помощью Isrscan или вручную (netcat, telnet) проверьте, имеет ли место утечка че-
рез шлюз пакетов с описанием строгого или свободного маршрута от отправителя;
о проверьте, дает ли сканирование с помощью nmap с флагами - s a (ACK) или -sw
(Window) какие-либо полезные сведения;
о установив в качестве порта отправителя 20 для TCP или 53 для UDP, проведите ска-
нирование портов (nmap -g) и посмотрите, есть ли разница;
о поиграйте с установкой IP и МАС-адресов отправителя при сканировании портов
(для этого хорошо подходит Ghost Port Scanner, a randsrc можно использовать для
рандомизации IP-адресов);
о попробуйте программу Firewalk Майка Шиффмана (Mike Schiffman):
РЕЗЮМЕ 201

Чтобы выполнить тестирование шлюза, необходимо поместить шпионский хост по


другую сторону межсетевого экрана и анализировать весь протекающий трафик. Мно-
гие инструменты для тестирования экранов выполнены в виде клиент-серверной пары,
где клиентом является генератор специальных пакетов, а сервером - демон, анализи-
рующий протекающий трафик и снабженный средствами его декодирования. На плат-
форме UNIX примерами таких инструментов служат Ftester и Spoofaudit для тестиро-
вания фильтрации поддельного IP-трафика. Убедите руководство своей компании или
заказчика дать разрешение на тестирование правильности фильтрации трафика шлю-
зом, объяснив, что если вы сможете найти протечку, то и взломщику это тоже по пле-
чу. Высококлассные шлюзы в беспроводные сети дороги, но так ли они хороши, как
заявляют производители? Не окажется ли, что из-за некорректно написанных правил
деньги будут выкинуты на ветер? Есть только один способ узнать точно.

Резюме
Единственный способ узнать, насколько безопасна ваша беспроводная сеть и что может
сделать взломщик, проникнув в нее, состоит в том, чтобы взглянуть на беспроводную и
соединенную с ней проводную сеть глазами противника и попытаться атаковать ее само-
стоятельно. Только притворившись решительным и хорошо оснащенным взломщиком, вы
сможете должным образом провести внешний аудит безопасности беспроводной сети.
Нет особого смысла в том, чтобы бродить в зоне покрытия сети, вооружившись програм-
мой Netstumbler или даже Sniffer Wireless, в лучшем случае такое времяпрепровождение
можно назвать осмотром места развертывания сети, но никак не аудитом безопасности.
Набирайтесь опыта в обеспечении безопасности беспроводных и даже обычных локаль-
ных сетей путем экспериментирования с описанными инструментами. Можете даже по-
пробовать модифицировать или полностью переписать их (благодаря лицензиям GNU и
Berkeley это возможно). Если уж результаты экспериментов не способны убедить вас в
важности данной темы, то и мы тут бессильны.
На этом мы заканчиваем первую половину книги, посвященную тестированию возмож-
ности проникновения и методам атаки на сети 802.11. В следующей части мы попытаемся
показать, что нужно сделать, чтобы не дать решительно настроенному противнику вло-
миться в вашу сеть, разрушить ваш бизнес или лишить вас работы.
Не показывайте свою готовность, но будьте со-
браны и устраняйте все бреши и слабости.
Мей Яочжень

Возможно, что после прочтения предыдущих глав вы решили вообще не связываться с бес-
проводными сетями. Это ошибка! Беспроводные локальные сети могут и должны быть бе-
зопасными. Нет ничего, что нельзя было бы взломать, но уровень защиты может быть на-
столько высоким, что лишь несколько человек во всем мире сумеют его преодолеть, да и то
не наверняка. Скорее всего, эти люди будут на вашей стороне, так как вместе со знаниями
приходит и ответственность. Мастера кунфу не лезут первыми в драку. Именно этому воп-
росу и посвящена данная часть книги: как поднять планку защищенности.

Политика обеспечения безопасности


беспроводной сети: основы
Первое, с чего нужно начинать развертывание и защиту корпоративной беспроводной
сети, - это выработать надлежащую политику обеспечения безопасности. Лучший источ-
ник информации о том, как написать подробную формализованную политику, - это прило-
жение А к «Official CWSP Guide» (Официальное руководство для получения сертификата
CWSP). Мы расскажем о том, что должен включать такой документ и какие технические
аспекты в нем следует отразить.

Из-за функций, необходимых для обратной совместимости, беспроводную сеть следует


считать настолько безопасной, насколько безопасен самый незащищенный клиент в ней.
Если вы полагаетесь на механизмы защиты 802.11, реализованные на уровне 2, скажем,
ПОЛИТИКА ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ БЕСПРОВОДНОЙ СЕТИ: ОСНОВЫ 2 0 3

WEPPlus или (в будущем) стандарт 802.Hi, то надо быть уверенным, что все устройства в
сети поддерживают эти функции.
Если включена та или иная схема фильтрации МАС-адресов или основанная на RADIUS-
сервере аутентификация МАС-адреса, то следует составить и своевременно обновлять базу
данных о МАС-адресах всех беспроводных клиентов.
Когда в новых версиях программно-аппаратного обеспечения реализуются дополни-
тельные механизмы безопасности, то обновление всех устройств в сети должно быть про-
ведено синхронно. Хостам, на которые обновления не установлены, должен быть закрыт
доступ в сеть.
Наконец, самый простой способ получить доступ к беспроводной сети в случае, когда аутен-
тификация основана на учете устройств, - это просто украсть или найти потерянное клиентс-
кое устройство. Поэтому обо всех случаях утраты устройств следует немедленно сообщать
администратору по безопасности, который должен сразу же закрыть для них доступ.

2, Обучение пользователей и воспитание ответственности ^ ^ ^ Д


Пользователей следует информировать о содержании корпоративной политики в области
безопасности и об основных задействованных механизмах защиты (чтобы случайно их не
отключили). Необходимо также потребовать, чтобы они без промедления сообщали обо
всех случаях кражи или утери устройств. То же относится ко всем незнакомым устройствам,
обнаруженным пользователями (например, беспроводной USB-клиент неизвестного про-
исхождения, воткнутый в одну из машин в сети или в КПК). Несанкционированная уста-
новка пользователями любых беспроводных устройств, в том числе клиентов Bluetooth,
должна быть строго запрещена. Не следует также одалживать кому-либо азое устройство
или оставлять его без присмотра.
Пользователи должны знать о примерной протяженности зоны покрытия сети и не пы-
таться подсоединиться к ней с большего расстояния. Это поможет, в частности, избежать
проблемы «скрытого узла».
В более широком контексте общей политики безопасности пользователям следует рас-
сказать об атаках методами социальной инженерии и потребовать, чтобы они не сообщали
потенциальным противникам никакой информации о сети, в частности своего имени и
пароля для аутентификации, секретных ключей, закрытых ESSID, положения точек досту-
па и сведений о физических границах сети.
Если компания открывает общедоступный хотспот, то первым делом любой человек,
входящий в сеть, должен увидеть заявление с отказом от ответственности, в котором опи-
сываются правила поведения пользователя в сети, диктуемые политикой безопасности.
Дальнейшие действия должны быть возможны, только если пользователь согласится с эти-
ми правилами, подтвердив это явным действием (например, щелчком мышью). Эта простая
мера безопасности поможет вам избежать многих юридических проблем в случае, когда
кто-то злонамеренно воспользуется хотспотом, например для проведения атаки или неза-
конного скачивания материалов.

3. Физическая безопасность
Точки доступа, беспроводные мосты, антенны и усилители должны быть расположены и
смонтированы так, чтобы предотвратить кражу и умышленное повреждение. Охранники
2 0 4 СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

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

4, Безопасность физического уровня


Уровень EIRP должен находиться в разрешенных пределах. Излучаемая мощность должна
быть не слишком высока, чтобы сеть не простиралась дальше необходимого. Место разме-
щения антенны следует выбрать так, чтобы минимизировать распространение сигнала за
пределы требуемой зоны покрытия. При необходимости можно установить параболичес-
кие отражатели, препятствующие распространению сигнала в нежелательных направле-
ниях. Наконец, следует выявить и по возможности устранить все источники помех.

5. Развертывание сети на местности


Установка нескольких точек доступа в беспроводную сеть не только создает резервную
полосу пропускания на случай выхода из строя одной из точек, но и повышает устойчи-
вость сети к DoS-атакам и атакам «человек посередине».
Беспроводная и проводная сети должны находиться в разных широковещательных до-
менах. Если точки доступа подключены к разным коммутаторам, то следует организовать
виртуальные локальные сети (VLAN) и по возможности поместить все точки доступа в одну
такую сеть. Шлюз из беспроводной сети в проводную должен обеспечивать надежное раз-
деление сетей, поддерживать аутентификацию и шифрование данных и быть устойчивым
к возможным атакам.

6, Защитные контрмеры
Строка ESSID не должна содержать никакой полезной информации о компании и точке
доступа. Следует активировать такие базовые защитные меры, как протокол WEP и закры-
тие ESSID. Когда есть возможность, нужно пользоваться фильтрацией МАС-адресов. В час-
тности, нужно ввести ограничения на адреса (BSSID) корпоративных точек доступа, к ко-
торым могут присоединяться клиенты. Когда возможно и имеет смысл, следует включать
фильтрацию протоколов.
Вышеописанных базовых мер недостаточно для надежной защиты беспроводной сети.
Следует реализовать дополнительные механизмы, в частности протокол 802.1х и виртуаль-
ные частные сети. Выбор и реализация таких механизмов должны быть тщательно доку-
ментированы, и нужно назначить лица, ответственные за сопровождение. Если реализова-
ны какие-то патентованные защитные механизмы, например усовершенствованный протокол
WEP, то их эффективность должна быть подтверждена внешним аудитором еще до начала
развертывания сети. Следует проверить и документально зафиксировать период ротации
ключей WEP.
Следует выработать политику безопасности паролей для доступа к беспроводной сети и
строго следить за выбором паролей и секретных ключей. В беспроводной сети должны
быть отключены все ненужные протоколы, а доступ к разделяемым ресурсам (например,
по NFS) должен быть ограничен.
ОСНОВЫ БЕЗОПАСНОСТИ УРОВНЯ 1 В БЕСПРОВОДНОЙ СЕТИ 2 0 5

7. Мониторинг сети и реакция на происшествия


Вся работа сети должна отслеживаться. Следует заранее определить показатели, харак-
терные для нормальной работы. Значительные отклонения от нормальных значений дол-
жны выявляться и документироваться. Следует развернуть систему IDS, учитывающую
специфику беспроводных сетей, и подключить ее к централизованной системе протоко-
лирования. Если сеть велика и имеет несколько точек доступа, то необходимо размес-
тить удаленные сенсоры IDS, чтобы обеспечить мониторинг всей сети. Необходимо на-
значить ответственных за просмотр протоколов и тревожных сигналов системы IDS.
В соответствии с общей корпоративной политикой должно быть обеспечено безопасное
хранение протоколов. Все случаи вторжения должны быть выявлены, проверены, под-
тверждены и документированы. Необходимо заранее сформировать группу реагирования
на происшествия, готовую к немедленным действиям. В частности, о происшествии долж-
ны быть письменно извещены правоохранительные органы. Со всеми вещественными
доказательствами, которые удастся собрать (протоколы, хосты, на которые было совер-
шено вторжение, незаконные беспроводные устройства и прочая аппаратура, брошен-
ная взломщиками или конфискованная у них), нужно обращаться с крайней осторожнос-
тью, чтобы сохранить их значимость для суда. Убедитесь, что группа реагирования знакома
с местными законами об обращении с вещественными доказательствами.

8. Аудит безопасности и устойчивости сети


Следует регулярно проводить аудит безопасности корпоративной беспроводной сети силами
внешних специалистов, имеющих хорошую репутацию и аккредитованных в этой конкретной
области. Процедура аудита безопасности и устойчивости сети должна включать:
о осмотр места развертывания сети;
о общую оценку работы и устойчивости сети;
о оценку политики обеспечения безопасности беспроводной сети;
о обнаружение и идентификацию незаконных беспроводных устройств;
о систематическое тестирование возможности проникновения в сеть с заполнением
формы, приведенной в приложении G;
о предоставление подробного отчета о результатах аудита;
о взаимодействие с руководством и администраторами сети для разрешения возник-
ших проблем.

Основы безопасности уровня 1


в беспроводной сети
Рассмотрим теперь некоторые технические аспекты обсуждаемой политики обеспечения
безопасности. Начнем с защиты физического уровня. Сюда входит вопрос: о том, как избе-
жать утечки сигнала за границы сети и устранить все явные и неявные источники помех.
Вопрос о помехах обсуждался в первой части книги, так что здесь мы сосредоточимся толь-
ко на ограничении зоны покрытия. Это редкий пример достижения безопасности за счет
сокрытия информации, который работает (до некоторой степени).
2 0 6 А СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Есть два способа предотвратить распространение сигнала за пределы области, которая


должна быть доступна законным пользователям. Во-первых, следует ограничить уровень
1
сигнала. В мире UNIX less - это то же самое, что more . Тот же принцип относится и к безо-
пасности физического уровня. Уровень EIRP должен быть достаточен для обеспечения хо-
рошего качества канала в планируемой зоне покрытия и ни на децибел больше. Доводить
EIRP до максимального разрешенного FCC значения часто бывает излишне, поскольку ваша
сеть будет маяком для всех искателей сетей на колесах в округе и станет предметом об-
суждения на собрании местной группы хакеров. Есть несколько способов регулировки
мощности излучения:
о в точках доступа (все высококлассные точки доступа должны поддерживать регули-
рование выходной мощности);
о в усилителе переменной мощности;
о за счет выбора правильного коэффициента усиления антенны.
В крайнем случае можно разместить даже аттенюатор.
Второй способ состоит в том, чтобы сформировать нужную зону покрытия за счет правиль-
ного выбора антенн и мест их размещения. В приложении С приведены примеры диаграмм
направленности антенн разных видов, решите, какая вам больше подходит для предоставле-
ния доступа только там, где нужно. Можем предложить некоторые рекомендации:
о пользуйтесь всенаправленными антеннами, только когда без этого не обойтись. Во
многих случаях для ограничения распространения сигнала подойдет секторная или
панельная антенна с таким же коэффициентом усиления;
о если доступ к беспроводной сети за пределами здания не нужен, размещайте все-
направленные антенны в центре здания;
о при развертывании беспроводной сети в высоком здании пользуйтесь всенаправлен-
ными антеннами, монтируемыми на уровне земли, чтобы ваша сеть была не так за-
метна с нижних этажей и соседних улиц;
о если покрытие во всех направлениях не нужно, но вы вынуждены пользоваться все-
направленными антеннами, то разместите в стратегических точках параболические
отражатели, чтобы контролировать распространение сигнала. Отражатель изменяет
форму диаграммы направленности антенны, так что зона покрытия, формируемая
всенаправленной антенной, становится похожа на зону, характерную для некоторых
полунаправленных антенн. Конечно, при этом увеличится и коэффициент усиления
сигнала. Типичный случай, в котором применение отражателей оправдано, - это
размещение точки доступа без разъема для внешней антенны или возможность за-
мены стандартной прилагаемой к точке доступа всенаправленной антенны в форме
утенка чем-нибудь более подходящим. Для отражателя важно лишь иметь плоскую
металлическую поверхность нужного размера. Поэтому можно самостоятельно сде-
лать отражатель из подручных материалов, скажем, из кровельного железа. В статье
на странице http://www.freeantennas.com/projects/template/index.html подробно
описывается, как сделать отражатель самому. Рекомендуем также книгу Роба Фли-
кенджера (Rob Flickenger) «Wireless Hacks» (Взлом беспроводных сетей - вышла
в издательстве O'Reilly, 2003, ISBN 0596005598), прием № 70;
1
less (меньше) и more (больше) - это две программы постраничного просмотра файла в UNIX,
решающие одну и ту же задачу. - Прим. пер.
ОСНОВЫ БЕЗОПАСНОСТИ УРОВНЯ 1 В БЕСПРОВОДНОЙ СЕТИ 2 0 7

о если беспроводной канал должен идти вдоль длинного коридора, соединяющего не-
сколько кабинетов, то разместите две панельных или patch-антенны на противопо-
ложных концах вместо множества всенаправленных по всей длине коридоре. Може-
те также попробовать протянуть вдоль всего коридора неэкранированный провод,
припаянный к разъему для антенны, имеющемуся в точке доступа. Такая импровизи-
рованная всенаправленная антенна без усиления может обеспечить связь в коридо-
ре и примыкающем пространстве, не выпуская сигнал на улицу;
о если клиентские устройства оборудованы антеннами с горизонтальной поляризаци-
ей, то используйте такие же антенны в точке доступа. Любимые искателями сетей
всенаправленные антенны с магнитной присоской всегда располагаются вертикаль-
но относительно машины. Если все ваши антенны имеют горизонтальную поляриза-
цию, то шансы обнаружить вашу сеть из проезжающей мимо машины резко падают.

Не стоит думать, что одним лишь правильным размещением антенн можно добиться
идеальной формы зоны покрытия. Во-первых, в диаграмме направленности большинства
полунаправленных и даже направленных антенн существует небольшой задний лепесток.
2 0 8 СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

У директорных антенн есть задние и боковые лепестки, которые при большом уровне EIRP
могут распространяться довольно далеко. Поэтому водитель может обнаружить сеть, слу-
чайно проехав за излучающей антенной, а взломщику необязательно находиться прямо
перед антенной, где его и поджидает охрана.
Кроме того, если не брать во внимание экранированные бункеры, то ограничить рас-
пространение радиоволн - весьма сложная задача. Из-за отражения сигнала, рефракции и
рассеяния беспроводную сеть можно случайно обнаружить в совершенно неожиданной
точке. Отсюда следует, что очень важно изъять всю сколько-нибудь интересную информа-
цию из фреймов-маяков. Если водителю удастся перехватить единственный маяк, показы-
вающий наличие WEP или закрытого ESSID, то, скорее всего, он проигнорирует такую сеть,
ведь рядом так много незащищенных. А вот если маяк показывает отсутствие WEP, a ESSID
содержит строку M i c r o s o f t _ H e a d q u a r t e r s _ W L A N , то реакция будет совсем иной.

Полезность WEP, закрытых ESSID,


фильтрации МАС-адресов и
перенаправления портов по протоколу SSH
Вот мы и подошли к таким мерам защиты, как включение протокола WEP, закрытие ESSID и
фильтрация МАС-адресов. Их, конечно, можно преодолеть и, прочтя предыдущие главы, вы зна-
ете, как это сделать. Но тем не менее есть веские причины активировать эти защитные меха-
низмы. Первая из них - это закон. Если атакующий обходит любую из указанных контрмер, то
он не может утверждать, будто ничего не знал и присоединился к сети случайно. Таким обра-
зом, наличие WEP или закрытого ESSID - это предупреждение, гласящее: «Это частная сеть, руки
прочь». Если организация потеряет ценную информацию или свои активы после атаки на ее
беспроводную сеть, то в случае отключенных механизмов защиты ее можно подвергнуть су-
дебному преследованию за халатность. Если же базовые механизмы были включены, то ответ-
ственность можно переложить на кого-то еще (производителей, разработчиков стандартов,
литературу, в которой утверждается, будто «статического протокола WEP достаточно», и т.д.).
Другая причина - поднять планку защищенности. Для преодоления любой обороны нужно
приложить время и силы. Чем больше прошло времени, тем меньше остается заряда в аккуму-
ляторе и тем выше вероятность быть схваченным за руку. Значительная часть взломщиков охо-
тится за полосой пропускания. Вооружившись ноутбуком с предустановленной ОС Windows и
программой Netstumbler, они пытаются найти открытую сеть, воспользовавшись которой мож-
но скачать порнографию или пиратские программы либо разослать спам. С теми инструмента-
ми, которые есть в их распоряжении, они обычно не в состоянии взломать WEP, сгенерировать
специальные фреймы для раскрытия скрытого ESSID или провести DoS-атаку либо атаку «че-
ловек посередине» против уровня 2. Их знаний, как правило, недостаточно даже для измене-
ния МАС-адреса своего беспроводного интерфейса. Поэтому базовые механизмы защитят вас
от таких противников, но не надо думать, что все взломщики до такой степени неумелы. В са-
мый неподходящий момент вы можете наткнуться на противника посерьезнее.
С другой стороны, правильно реализованное перенаправление портов по протоколу
SSH может поднять планку защищенности довольно высоко. Очень неплохо было бы со-
брать программу sshd с поддержкой TCP Wrappers и запретить в беспроводной сети лю-
бой He-SSH-трафик, отфильтровав в то же время SSH-трафик с неизвестных IP-адресов
ПОЛЕЗНОСТЬ WEP, ЗАКРЫТЫХ ESSID, ФИЛЬТРАЦИИ MAC-АДРЕСОВ 2 0 9

(не забудьте отключить DHCP). Это можно успешно сочетать с фильтрацией МАС-адресов и
организацией статического ARP-кэша, если есть такая возможность. Типичный пример пе-
ренаправления портов по SSH - это экспорт приложений для X Windows с помощью SSH:
arhontus# ssh -X -f Xserverhost xapplication_to__use
Помимо шифрования данных и аутентификации пользователей такой подход позволит
разгрузить процессор и сэкономить заряд аккумуляторов переносного компьютера. Дру-
гой широко распространенный пример - путешествие по Web или покупка в онлайновых
магазинах через proxy-сервер, установленный на шлюзе в беспроводную сеть и защищаю-
щий ваш сеанс по протоколу SSH:
arhontus# ssh -L 5777rlocalost:3128 proxyhost
Далее вы указываете браузер localhost:5777 в качестве proxy-сервера - и все (при усло-
вии, что этот proxy-сервер действительно прослушивает порт 3128). Выбор порта 5777 на
локальном хосте совершенно произволен, но proxy-сервер Squid действительно должен
прослушивать 3128 на одном из ваших беспроводных шлюзов. Если мобильный хост рабо-
тает под управлением ОС Windows, то для организации SSH-туннеля придется воспользо-
ваться приложением, поставляемым третьей фирмой. Например, работая с программой
PuTTY, выполните следующие действия:
1. В меню, расположенном в левой части окна Configuration (Конфигурация), выбери-
те пункт Connection => SSH ==> Tunnels (Соединение => SSH => Туннели).
2. В окне Add new forwarded port (Добавление нового перенаправленного порта) вве-
дите в поле Source port (Порт отправителя) номер порта, который ваш компьютер
будет прослушивать.
3. В поле Destination (Получатель) введите текст localhost:5777.
4. Убедитесь, что стоит флажок Local (Локальный), и нажмите кнопку Add, (Добавить).
5. В списке Forwarded ports (Перенаправленные порты) должно появиться новое пра-
вило перенаправления. Если вы захотите удалить перенаправленный порт, укажите
на него и нажмите кнопку Remove (Удалить).
6. Сохраните изменения, вернувшись на вкладку Sessions (Сессии) и нажав кнопку
Save (Сохранить).
7. Мы определили новый туннель. Чтобы активизировать его, просто соединитесь с
SSH-сервером.
Число возможных применений перенаправления портов по SSH бесконечно, мы не бу-
дем задерживаться на этой теме. Убедитесь лишь, что вы пользуетесь протоколом SSHv2
(по возможности) и что у вас установлены последние версии сервера и клиентов SSH, ко-
торые не имеют известных «дыр» (иначе вы рано или поздно столкнетесь с атакой из прог-
раммы Trinity). Будьте такими же параноиками, как мы. По умолчанию выбор шифров в
файле /etc/ssh/ssh_config выглядит так:
#Ciphers aesl28-cbc,3des-cbc/blowfish-cbc/castl28-cbc,arcfour/
aesl92-cbc/aes25 6-cbc
Мы рекомендуем раскомментарить эту строку и изменить порядок выбора шифров:
Ciphers aes256-cbc ,aesl92-cbc, aesl28-cbc,blowfish-cbc, cast 128-cbc,3des-
cbcarcfour
210 А СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

и добавить следующие строки в файл:


MACs hmac-ripemdl60/hmac-shal,hmac-md5/hmac-shal-96/hmac-md5-96
HostKeyAlgorithms ssh-dss,ssh-rsa
Основания для такой рекомендации станут ясны в следующей главе, где обсуждаются и
сравниваются между собой практически все вышеупомянутые шифры. Конечно, найдутся
криптографы, которые назовут наше предложение субъективным, но иного и быть не мо-
жет.
Подводя итог, скажем, что перенаправление портов по SSH - это простое добавление к
обычным слабым механизмам защиты беспроводных сетей, к каковым относятся протокол
WEP и фильтрация МАС-адресов. При некоторых обстоятельствах этого может оказаться
достаточно (сравните с фильтрацией протоколов, описанной в главе 8), но если вы ищете
более полное решение проблемы безопасности, защищающее уровни выше второго, то
настоятельно рекомендуем рассмотреть протокол IPSec.

Безопасное размещение беспроводной


сети и виртуальные локальные сети
Следующий пункт политики безопасности - это принципы размещения и разделения се-
тей. Если в сети есть единственная точка доступа или беспроводной мост, то ее разверты-
вание не вызывает сложностей: подключите IP-адрес к интерфейсу глобальной сети под-
ходящим образом сконфигурированного межсетевого экрана. Это может быть развитый
коммерческий шлюз в беспроводную сеть или программный экран на базе той или иной ОС
или даже экран SOHO типа Cisco PIX 501 или Nokia SonicWall. Но, если развернуто несколь-
ко точек доступа и пользователям разрешено свободно перемещаться между ними, то про-
цедура конфигурирования усложняется. Можно, например, развернуть Mobile IP в корпо-
ративной сети. Однако в таком случае реализация виртуальных частных сетей на третьем
и более высоких уровнях станет сложной задачей. Ее можно решить, но, чтобы обеспечить
беспрепятственное перемещение клиентов, придется отчасти пожертвовать безопаснос-
тью. Вспомните о протоколе Wavesec и атаке с помощью krackerjack.
Более распространенное и разумное решение - поместить все точки доступа в один и
тот же широковещательный домен с помощью виртуальных локальных сетей VLAN. Для его
реализации сетевые коммутаторы должны поддерживать по крайней мере статически скон-
фигурированные виртуальные сети. Таким образом, на первом этапе проектирования всей
сети нужно продумать именно структуру беспроводной части, в противном случае позже
придется потратить значительные средства на приобретение коммутаторов с поддержкой
VLAN. Мы не можем в этой главе вдаваться в технические подробности настройки вирту-
альных сетей, поскольку команды зависят от конкретной модели коммутатора. Но все же
приведем примеры развертывания VLAN и безопасного размещения беспроводной сети на
базе оборудования компании Cisco. Мы никоим образом не связаны с Cisco, просто нам
приходилось работать именно с этим оборудованием.
БЕЗОПАСНОЕ РАЗМЕЩЕНИЕ БЕСПРОВОДНОЙ СЕТИ И ВИРТУАЛЬНЫЕ ЛОКАЛЬНЫЕ СЕТИ 2 1 1

Использование коммутаторов Cisco Catalyst


и точек доступа А!гопегдля оптимизации
проекта безопасной беспроводной сети
Коммутаторы Cisco Catalyst 6000 поддерживают интересное дополнение к реализации вир-
туальных локальных сетей. Представьте, что в одной виртуальной сети есть беспроводные
соты А, В, С и D, но вы хотите ограничить перемещение между ними, чтобы пользователи
могли находиться только в одной из сот, а получать доступ к проводной сети, лишь нахо-
дясь в соте А. Тогда можно будет сегментировать сеть между отделами компании и различ-
ными физическими точками, не вводя дополнительных виртуальных сетей и маршрутиза-
торов и усложнив логическую структуру сети на уровне 3. Все эти чудеса возможны при
наличии частных виртуальных сетей, которые позволяют вводить ограничения на уровне 2:
виртуальная сеть внутри виртуальной сети.
Есть три вида портов частных виртуальных сетей:
о прозрачные (promiscuous) порты, которые могут взаимодействовать со всеми осталь-
ными портами частных виртуальных сетей. Обычно они применяются для подклю-
чения к шлюзу или маршрутизатору;
о изолированные порты, которые могут взаимодействовать только с прозрачными пор-
тами;
о коммунальные порты, которые могут взаимодействовать только с портами, принад-
лежащими тому же сообществу (community), и с прозрачными портами.
Неудивительно, что есть также три типа частных виртуальных сетей. По первичным
виртуальным сетям передаются данные от прозрачных портов к изолированным, ком-
мунальным и другим прозрачным портам. По изолированным сетям передаются дан-
ные от изолированных к прозрачным портам. И наконец, в коммунальных сетях циркули-
рует трафик между портами, принадлежащими одной коммуне, и прозрачными портами.
Помимо безопасности, которую обеспечивает сегментирование виртуальной сети, есть
еще возможность составлять списки управления доступом к виртуальной сети (VACL), ото-
бражаемые раздельно на первичные и вторичные виртуальные сети. Для реализации VACL
не нужен маршрутизатор, достаточно вставить в Catalyst карту Policy Feature Card (PFC). Под-
робнее о частных виртуальных сетях и конфигурировании VACL в коммутаторах Cisco Catalyst
6000 можно прочитать на страницах http://www.cisco.com/en/US/products/hw/switches/
ps700/ product_tech_note09186a008013565f.shtml и http://www.cisco.com/en/US/products/
hw/ switches/ps700/products_configuration_guide_chapter09186a008007f4ba.html.
Интересно, что элементы ARP-'кэша, которые соответствуют интерфейсам частной вир-
туальной сети на уровне 3, фиксированы, то есть не имеют срока хранения и не могут
быть изменены. Представьте себе точку доступа, воткнутую в порт коммутатора в част-
ной виртуальной сети, которая подключена к шлюзу через прозрачный порт. Противни-
ку удалось присоединиться к беспроводной сети и запустить атаку с подделкой ARP против
шлюза. Но когда элементы кэша фиксированы, САМ-таблицу не удастся модифицировать с
помощью такой атаки, зато в протоколе появится сообщение.
2 1 2 ^ СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Обратите внимание, что для того чтобы избежать использования Mobile IP и обеспечить
свободное перемещение, мы намеренно сделали ужасную ошибку при развертывании бес-
проводной сети. Мы решили подключить точку доступа непосредственно к коммутатору, а
не к беспроводному шлюзу или, по крайней мере, к хорошему маршрутизатору с встроен-
ным межсетевым экраном. Фиксация элементов ARP-кэша частично исправляет эту ошиб-
ку, предотвращая и атаки «человек посередине» на основе подделки ARP, и атаки с пере-
полнением САМ-таблиц. Но эта возможность реализована только в конкретной, и притом
дорогой, модели коммутатора.
При работе с другими коммутаторами нужно будет сконфигурировать фильтрацию МАС-
адресов и безопасность портов, то есть явно перечислить допустимые МАС-адреса и огра-
ничить число хостов, которым разрешено одновременно соединяться с одним портом. Об-
ратите внимание, что безопасность портов и фильтрация МАС-адресов на коммутаторе и
фильтрация МАС-адресов на точке доступа - вещи похожие, но не идентичные. Фильтра-
цию МАС-адресов и на коммутаторе, и на точке доступа можно обойти, «выбив» законный
хост из сети и взяв себе его МАС-адрес. Однако механизм обеспечения безопасности пор-
тов на коммутаторе вводит новую линию обороны, защищая ARP от затопления поддель-
ными МАС-адресами. Нам нравятся коммутаторы Cisco Catalyst, поскольку их можно кон-
фигурировать в широких пределах, поэтому мы приведем один пример безопасной
конфигурации портов на базе Catalyst.
В случае, когда для управления коммутатором применяется командный интерфейс (на-
пример, Catalyst 1900), для построения САМ-таблицы укажите постоянные МАС-адреса:
abrvalk(config)#mac_address_table permanent 0040.1337.1337 ethernet 0/4
Введите все необходимые адреса, скажем, 20 штук. Затем свяжите некоторое число до-
пустимых соединений с постоянными МАС-адресами и укажите, что нужно сделать, когда
это число превышено:
abrvalk(config)#port security action trap
abrvalk(config)#port security max-mac-count 20
abrvalk(config)#address-violation suspend
При такой конфигурации работа порта будет приостановлена после получения фрейма
с некорректным МАС-адресом и возобновлена, как только придет фрейм с допустимым МАС-
адресом. Будет также возбуждено SNMP-событие с извещением о нарушении правил. Ко-
нечно, противник может провести DoS-атаку, затопив порт случайными МАС-адресами, но
лучше уж на время потерять соединение, чем пустить взломщика внутрь, к тому же будут
ясно видны тревожные сигналы. В коммутаторах Catalyst с командным интерфейсом мож-
но задать не более 132 МАС-адресов на один порт.
В случае коммутатора с командным интерфейсом типа Set/Clear (например, Catalyst
5000) для конфигурирования безопасности портов воспользуйтесь командой s e t :
e b l e o ( e n a b l e ) s e t port security 2/1 enable
ebleo(enable)set port security 2/1 enable 0040.1337.1337
Введите все 20 разрешенных МАС-адресов и зафиксируйте это число командой:
e b l e o ( e n a b l e ) s e t port security 2/1 maximum 20
БЕЗОПАСНОЕ РАЗМЕЩЕНИЕ БЕСПРОВОДНОЙ СЕТИ И ВИРТУАЛЬНЫЕ ЛОКАЛЬНЫЕ СЕТИ 21 3

Определите действие, выполняемое при нарушении безопасности:


e b l e o ( e n a b l e ) s e t port security 2/1 v i o l a t i o n r e s t r i c t
Эта команда говорит, что коммутатор должен игнорировать все пакеты, приходящие от
хостов с недопустимыми МАС-адресами, но порт при этом отключать не надо. Таким обра-
зом, DoS-атака путем затопления МАС-адресами против таких коммутаторов невозможна
(при условии правильной конфигурации, конечно). Проверить конфигурацию безопасно-
сти портов и получить статистику позволяет команда:
ebleo(enable)show port security 2/1
Число статических («безопасных» на жаргоне Cisco) записей в САМ-таблице коммутато-
ра с командным интерфейсом типа Set/Clear равно 1024 плюс один дополнительный безо-
пасный МАС-адрес на каждый порт. Этот пул статических МАС-адресов разделяется между
всеми портами коммутатора, поэтому если все 1024 статических МАС-адреса отданы одно-
му порту, то остальные вынуждены будут довольствоваться единственным статическим
МАС-адресом. Если одному порту отдано 512 записей, то остальные 512 могут быть разде-
лены между оставшимися портами.
Еще один интересный аспект применения оборудования Cisco для конфигурирования
виртуальных локальных сетей и беспроводных сетей - это включение протокола WEP или
TKIP на точках доступа производства Cisco раздельно для каждой виртуальной сети. Имен-
но так: вы можете задать разные ключи WEP или TKIP и определить различные интерва-
лы ротации ключей TKIP для разных виртуальных сетей. Например, чтобы указать, что
128-битовый ключ WEP на точке доступа Cisco Aironet 1200 должен применяться только
в виртуальной сети 13, введите такие команды:
aironet#configure terminal
aironet(config)#configure interface dotllradio 0
aironet(config-if)#encryption vlan 13 mode cipher wepl28
aironet(config-ssid)#end
Разбив беспроводную сеть на несколько виртуальных сетей и присвоив каждой свой
ключ WEP, вы сможете уменьшить объем трафика, зашифрованного единственным ключом,
и тем самым затруднить взлом WEP. Однако мы настоятельно рекомендуем вместо этого
пользоваться протоколом TKIP. В следующем примере точка доступа Cisco Aironet 1200
сконфигурирована для работы с протоколом WPA TKIP, описанным в следующей главе, с
ротацией широковещательного ключа каждые 150 с, но только в виртуальной сети 13:
aironet#configure terminal
aironet(config)#configure interface dotllradio 0
aironet(config-if)#encryption vlan 13 mode cipher tkip
aironet(config-if)#broadcast-key vlan 13 change 150
aironet(config-ssid)#end
Возможность задавать разные ключи для разных беспроводных виртуальных сетей и
изменять их с различными интервалами обеспечивает лучшее разделение и сегментиро-
вание виртуальных сетей, а также предоставляет большую гибкость проектировщику се-
тей, озабоченному безопасностью.
2 1 4 СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Развертывание специального
особо защищенного шлюза
в беспроводную сеть на платформе Linux
Далее мы хотим обеспечить безопасность шлюза, отделяющего нашу точку доступа или мост
или беспроводную виртуальную сеть от проводной части сети. Мы уже упоминали, что такие
шлюзы представляют собой не что иное, как гибкий межсетевой экран с запоминанием состо-
яния, который рассматривает интерфейс, подключенный к беспроводной части, как интерфейс,
соединяющий локальную сеть с небезопасной сетью общего пользования. Единственное осо-
бое требование, предъявляемой к такому шлюзу, - это возможность перенаправлять трафик
VPN, если в беспроводной сети реализована виртуальная частная сеть. Альтернативно шлюз
может быть VPN-концентратором, если вы хотите сэкономить на безопасности сети (обычно
это плохая идея). Если VPN реализована на транспортном уровне (например, clpe), то перенап-
равление трафика не вызывает сложностей: откройте порты, используемые протоколом VPN, и
все дела. Перенаправить IPSec-трафик сложнее. Нужно разрешить пропуск трафика по прото-
колам 50 или 51, а также открыть UDP-порт 500 для обмена ключами по протоколу IKE. Ниже
приведен пример сценария для Linux Netfilter, разрешающий пропуск IPSec-трафика:

iptables -A INPUT -i $EXT -p 50 -j ACCEPT


iptables -A INPUT -i $EXT -p 51 -j ACCEPT
iptables -A INPUT -i $EXT -p udp --sport 500 --dport 500 -j ACCEPT

Было бы неплохо задать статические записи в таблице ARP для всех точек доступа и
критически важных серверов, подключенных к шлюзу. Поместите в свой файл /etc/rc.local
те из приведенных ниже строк, которые имеют смысл для вашей системы:

arp -s <АР1 1Р> <АР1 МАС>


arp -s <АР2 1Р> <АР2 МАС>
В этом примере IP-адреса назначаются на основе МАС-адресов, так что противнику при-
дется подделать МАС-адрес легального хоста, чтобы получить IP-адрес от DHCP-сервера.
Не слишком квалифицированного взломщика это может на время обескуражить: сервер
есть, DHCP-трафик присутствует, а IP-адрес не выдается.
А что если точка доступа, шлюз, межсетевой экран, сервер аутентификации и VPN-кон-
центратор реализованы на одной машине? Под Linux это возможно. Можно создать такой
хост и на платформе BSD, но мы не станем писать о том, чего сами не пробовали.
Конфигурирование безопасной точки доступа с помощью драйверов HostAP - это гораз-
до более сложное дело, чем создание фальшивой точки доступа на ноутбуке с ОС Linux (как
это сделать, мы описывали в главе 8). Причина в том, что у HostAP есть множество допол-
нительных возможностей, которые обычно не нужны при настройке простой фальшивой
точки доступа, но становятся совершенно необходимыми, когда речь заходит о разверты-
вании настоящей. К числу таких возможностей относятся:
о фильтрация МАС-адресов;
о закрытые ESSID (да, HostAP это позволяет);
о поддержка аутентификации по протоколу 802.1х;
о беспроводная система распределения (Wireless Distribution System - WDS).
2 1 6 А СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Можно даже подключить дополнительные PCI или PCMCIA карты в специально постро-
енный универсальный беспроводной шлюз и заставить их работать под управлением тех
же драйверов HostAP, чтобы организовать доступ по трем разным каналам и осуществлять
циклическое балансирование нагрузки с помощью программы Netfilter. Вместо этого мож-
но перевести одну из карт в режим мониторинга и использовать для мониторинга сети или
в качестве средства обнаружения вторжений (IDS) - подробнее см. главу 15.
В этой главе мы не станем обсуждать развертывание системы WDS и другие функции
HostAP, не связанные непосредственно с безопасностью. Но поиграть с этим настройками
очень любопытно. Проверьте, сколько частных беспроводных расширений может поддержать
программно-аппаратное обеспечение вашей карты и какие подвиги на ниве конфигуриро-
вания позволяют программы prism2_param и hostapd. Обсуждение механизмов аутентифи-
кации и реализацию VPN на беспроводном шлюзе в Linux мы отложим до глав 13 и 14. Здесь
же сосредоточим внимание на безопасности точек доступа и возможностях построенных
нами беспроводных шлюзов.
Чтобы точка доступа, размещенная на беспроводном шлюзе, нормально стартовала, до-
бавьте ее параметры в соответствующий конфигурационный файл. Например, в Debian
Linux надо добавить в файл /etc/network/interfaces примерно такие строки:
auto wlanO
iface wlanO inet static
address 0.0.0.0
up /sbin/iwconfig wlanO essid ArhOnt-X
/sbin/iwconfig wlanO channel 11
/sbin/iwconfig wlanO mode Master
auto ethO
iface ethO inet static
address 0.0.0.0
auto brO
iface brO inet static
address 192.168.1.1
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
bridge_ports wlanO ethO
up

Поскольку это Linux, то всегда есть несколько способов решить задачу (см., например,
описание другого подхода в книге Брюса Поттера и Боба Флека «802.11 Security»). Выбе-
рите тот, что вам больше нравится.
Фильтрация МАС-адресов с помощью драйверов HostAP делается с использованием час-
тных беспроводных расширений:
iwpriv wlanO maccmd <val>
0: open policy for ACL (default)
1: allow policy for ACL
2: deny policy for ACL
3: flush MAC access control list
4: kick all authenticated stations
РАЗВЕРТЫВАНИЕ ШЛЮЗА В БЕСПРОВОДНУЮ СЕТЬ НА ПЛАТФОРМЕ LINUX 2 1 7

РАЗВЕРТЫВАНИЕ ШЛЮЗА В БЕСПРОВОДНУЮ СЕТЬ НА ПЛАТФОРМЕ LINUX 2 1 7


iwpriv wlanO addmac <mac addr>
add mac addr i n t o access control l i s t
iwpriv wlanO delmac <mac addr>
remove mac addr from access control l i s t
iwpriv wlanO kickmac <mac addr>
kick authenticated s t a t i o n from AP
Чтобы создать список контроля доступа (ACL), выполните команду i w p r i v maccmd
<ACL number>. В файле README предлагается вести два списка ACL: один для разрешен-
ных и второй для явно запрещенных МАС-адресов. На наш взгляд, это неплохая мысль.
Вместо этого для фильтрации МАС-адресов можно воспользоваться программой Netfilter:
$IPTABLES -N m a c f i l t e r
$IPTABLES -A m a c f i l t e r -i $WLAN_INTERFACE -m mac -mac-source
d e : a d : b e : e f : c o : d e -j ACCEPT
$IPTABLES -A macfilter -i ! $WLAN_INTERFACE -j ACCEPT
$IPTABLES -A macfilter -j LOG
$IPTABLES -A macfilter -j DROP
$IPTABLES -A FORWARD -j macfilter
Однако мы рекомендуем фильтрацию с помощью HostAP: пользоваться ею очень легко и
можно сразу «вышибить» подозрительный аутентифицированный хост из сети.
Чтобы еще повысить безопасность своей точки доступа, воспользуйтесь командой
p r i s m 2 _ p a r a m wlanO a n h _ s e c 3 для игнорирования пробных запросов с флагом ANY
ESSID. В точке доступа должна быть установлена карта с набором Prism и последней верси-
ей программно-аппаратного обеспечения, поддерживающей расширение e n h _ s e c . Прове-
рить, какие беспроводные расширения поддерживает программно-аппаратное обеспечение
вашей карты можно, запустив команду i w p r i v wlanO, а узнать номер его версии позволит
командаprism_diag wlanO. Ищите в выходной информации строку, в которой есть слова
11
( s t a t i o n f i r m w a r e ) ". Чтобы обновить программно-аппаратное обеспечение, необ-
ходимо скомпилировать HostAP с поддержкой функции PRISM2_DOWNLOAD_SUPPORT.
Для этого можно либо напрямую модифицировать заголовочный файл driver/modules/
hostap_config.h, либо запустить сборку HostAP командами make p c i I I p c c a r d
EXTRA_CFLAGS= • -DPRISM2_DOWNLOAD_SUPPORTH. Затем выполните команду make
программно-аппаратного
i n Usage:
Флаги:
arhontus:#
s t a-v
l l , depmod

-f
-d
-i prism2_srec
./prism2_srec
печатать
поместить
загрузить
выдаче-а идиагностическую
ПРЕДУПРЕЖДЕНИЕ!
к
игнорировать наконец
обеспечения.
[-vvrfd]
большего
образ
SREC-файл воспользуйтесь
<interface>
сообщения
Это
SREC
объема
вво
может
в ЗУПВ
офайл утилитой
<srec
flash-память
информацию
несовместимости
информации)
привести file
prism2_srec
с name>
(знергозависимую
prism2_srec.dump
к(еще для-vобновления
(энергонезависимую)
ошибке
один
интерфейсом
память)
при
флагобновлении!
приводит
2 1 8 А СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Флаги -г и -f нельзя задавать вместе. Если не задан ни один из флагов -г или -f, то
показывается сводная информация об образе и проверяется совместимость с беспровод-
ной картой, но образ никуда не загружается.
Убедитесь, что ваша версия утилит, поставляемых в составе HostAP, поддерживает флаг - f,
в противном случае придется выполнять обновление программно-аппаратного обеспечения
с помощью флага -г после каждого сброса карты. Получить шестнадцатеричные образы но-
вого программно-аппаратного обеспечения можно со страниц http://www.intersil.com/
design/prism/ss/p2smtrx.asp или http://www.netgate.com/support/prism_firmware/. Затем за-
пустите команду

и проверьте, успешно ли прошло обновление с помощью команды p r i s m 2 _ d i a g wlanO.


Чтобы включить поддержку 802.1х, нужно воспользоваться функцией Authenticates в де-
моне hostapd. Эта функция передает фреймы от претендента серверу аутентификации, в
качестве которого может выступать только RADIUS. Чтобы воспользоваться ею, откомпили-
руйте HostAP командой make p c i I I p e c a r d EXTRA_CFLAFS="-DPRISM2_HOSTAPD11
или отредактируйте файл driver/modules/hostap_config.h перед запуском компиляции. Вне-
шний RADIUS-сервер конфигурируется такими командами:

Аутентификатор в hostapd может автоматически выбирать принимаемый по умолчанию


и широковещательный ключ WEP, разделяемый всеми аутентифицируемыми станциями.
Для этого нужно запустить hostapd с флагом -Ь5 (64-битовый ключ) или - Ы З (128-бито-
вый ключ). Кроме того, можно задать флаги - i 5 или -113, тогда для каждой станции бу-
дет выбран индивидуальный ключ. Но для этого нужно, чтобы драйвер, установленный в
станции, поддерживал индивидуальные ключи. Для установки индивидуальных ключей
предназначена утилита hostap_crypt_conf:
ПАТЕНТОВАННЫЕ УСОВЕРШЕНСТВОВАНИЯ WEP 219

Алгоритмы:
WEP п р о т о к о л WEP с 4 0 - или 104-битовым ключом
NULL отсутствие шифрования; применяется для того, чтобы
отменить шифрование для данной станции, когда шифрование
используется по умолчанию
опущен отменить шифрование
Хотя задать ключи WEP для клиента под управлением HostAP можно и с помощью прог-
раммы iwconfig, но она не позволяет сконфигурировать индивидуальные ключи для hostapd,
поддерживающего такую возможность.
Настройка идеальной точки доступа с использованием HostAP с поддержкой всех толь-
ко что описанных функций - это непростая задача. Однако это отличный способ многое
узнать о беспроводных сетях и сэкономить своему коллективу кучу денег. Поинтересуй-
тесь, сколько стоит коммерческий шлюз, поддерживающий все возможности программно
реализованного шлюза или точки доступа на базе Linux. Вы будете весьма удивлены. И не
забудьте, что большинство коммерческих беспроводных шлюзов высокого класса не обла-
дают функциональностью точки доступа, так что для построения всей сети вам еще при-
дется покупать дополнительные точки доступа.
Основной недостаток решения «все в одном» - это единственная точка отказа. Поэтому
мы рекомендуем перенести часть функций на вторую машину. В частности, это относится
к серверу аутентификации RADIUS. У шлюза число портов, открытых для беспроводной
части сети, должно быть минимальным. Если же говорить о безопасности самого шлюза, то
мы рекомендуем следующие меры:
о разрешить доступ к шлюзу только администраторам;
о удалить учетные записи лишних пользователей;
о не запускать сервер X Windows;
о закрыть все ненужные порты;
о фильтровать SSH-доступ со стороны администратора на межсетевом экране;
о удалить со шлюза GCC и все прочие компиляторы;
о удалить интерпретируемые языки, в частности Perl;
о поставить на ядро патч OpenWall или Grsecurity;
о сконфигурировать и запустить модуль ядра StJude;
о запустить logrotate и посылать протоколы удаленному syslog-серверу по протоколу
TCP с использованием syslog-ng;
о установить, сконфигурировать и запустить Snort.
Для настоящих параноиков существует еще система LIDS и особо безопасные дистрибу-
тивы Linux, например распространяемая Агентством национальной безопасности (АНБ)
SELinux или Immunix. Правильно сконфигурированная и хорошо сопровождаемая машина
с ОС Linux настолько безопасна, насколько это возможно; не ругайте систему, если истин-
ная причина - невежество или лень администратора.

Патентованные усовершенствования WEP


Перед тем как перейти к обсуждению прикладной криптографии и реализации безопасной
аутентификации и виртуальных частных сетей, рассмотрим патентованные и основанные
2 2 0 А СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

на стандартах усовершенствования тех уязвимых механизмов, которыми сейчас защище-


ны сети 802.11.
Самая известная уязвимость стандарта 802.11 - это небезопасный протокол WEP. Мы уже
говорили о криптографических слабостях WEP, связанных с повторным использованием
пространства векторов инициализации и неудачным алгоритмом генерирования ключа из
строки. Есть также ряд хорошо известных проблем, касающихся управления ключами в
WEP:
о всем реализациям симметричных шифров свойственна проблема распределения клю-
чей, и протокол WEP - не исключение. Первоначально предполагалось, что WEP бу-
дет защищать небольшие сети из одной соты. Но в XXI веке беспроводные сети со-
стоят из тысяч мобильных хостов, так что задача распределения и изменения ключей
WEP становится кошмаром;
о ключ WEP позволяет аутентифицировать устройство, а* не пользователя. Если взлом-
щик украдет или просто найдет бесхозное устройство, то тем самым он получит до-
ступ к соответствующей сети;
о у всех хостов в локальной сети один и тот же ключ WEP. Прослушать беспроводную
сеть не сложнее, чем прослушать разделяемую сеть Ethernet, кроме того, можно за-
пустить и другие разрушительные атаки, что было продемонстрировано в главе 9.
Не забывайте, что нелояльный служащий представляет даже большую угрозу, чем
внешний противник. Пользователи беспроводной сети, разделяющие общий ключ
WEP, входят в один и тот же информационный домен, даже если сеть разбита на не-
сколько широковещательных доменов. Внутреннему противнику, знающему ключ
WEP, для подслушивания трафика в другой беспроводной сети, нужно лишь переве-
сти свою карту в прозрачный режим.
Проблемы, относящиеся к криптографии и управлению ключами, были решены (или
хотя бы была предпринята попытка решения) Комитетом по стандартизации IEEE, а также
различными производителями аппаратного и программного обеспечения для беспровод-
ных сетей.
Первой реакцией многих производителей было увеличение длины ключа WEP до 128 бит
(так называемый WEP2) или еще больше. Как вы уже знаете, такой подход не защищает ни
от чего, кроме атак методом полного перебора, если только не расширить пространство IV.
Первыми реальными шагами для исправления недостатков WEP были предложения RSA
по использованию ключей, уникальных для каждого пакета, и устранению первых байтов
гаммы. Кратко суть этих предложений изложена в главе 11. Похоже, что в продукте Agere/
Proxim WEPPlus реализовано устранение первых байтов гаммы или какое-то аналогичное
решение (в восьмой версии программно-аппаратного обеспечения карты Agere/Proxim).
Мы протестировали WEPPlus с помощью AirSnort, пользуясь точкой доступа АР 2000 Orinoco
и картами Orinoco Gold 802.11a ComboCard (рис. 10.2), в которых этот протокол реализо-
ван, и можем подтвердить, что в трафике, перехваченном за три дня, не обнаружилось ни
одного фрейма с интересным IV. Конечно, если в беспроводной сети есть клиенты, для
которых WEPPlus не реализован, то вся затея становится бессмысленной, так как произой-
дет откат к стандартной версии WEP.
В проекте Cisco SAFE реализованы политики ротации ключей, которые можно централи-
зованно сконфигурировать на Windows-сервере управления доступом или на аналогичном
сервере (access registrar) под UNIX. Разумеется, современная версия Cisco SAFE полностью
СТАНДАРТ БЕЗОПАСНОСТИ БЕСПРОВОДНЫХ СЕТЕЙ 802.111 И WPA НОВЫЕ НАДЕЖДЫ 221

совместима с WPA, но мы говорим о первоначальном и все еще широко используемом про-


токоле Cisco Centralized Key Management (CCKM - централизованное управление ключами)
ССКМ гарантирует, что изменение ключа WEP происходит незаметно для конечных пользо-
вателей. ССКМ позволяет сконфигурировать политику ротации ключей на точках доступа
Cisco Aironet и с помощью учетных записей RADIUS-сервера протоколировать, аудировать
и даже взимать плату за пользование беспроводной сетью. ССКМ настраивается отдельно
для каждого SSID и требует, чтобы в сети была реализована аутентификация на базе про-
токола EAR Точка доступа с поддержкой ССКМ выступает в роли службы беспроводного
домена (Wireless Domain Service - WDM) и хранит кэш «верительных грамот» для всех кли-
ентских устройств, совместимых с ССКМ, в подсети. Компания Cisco также реализовала соб-
ственные усовершенствования WEP и базовую схему проверки целостности WEP. Речь идет
о протоколах Cisco Key Integrity Protocol (CKIP - протокол обеспечения целостности клю-
ча) и Cisco Message Integrity Check (CMIC - проверка целостности сообщений), основанных
на ранних идеях группы по разработке стандарта 802.111. Их можно активировать на точ-
ках доступа Cisco Aironet командами e n c r y p t i o n mode c i p h e r c k i p , e n c r y p t i o n
mode c i p h e r cmic и e n c r y p t i o n mode c i p h e r c k i p - c m i c отдельно для каждой
виртуальной локальной сети. Таким образом, даже модели Cisco SAFE, выпущенные до сер-
тификации WPA, обеспечивают достаточный уровень безопасности сетей 802.11. Понятно,
однако, что они страдают от проблемы, общей для любых патентованных решений: вся
ваша сеть должна быть однородной и построенной на оборудовании Cisco Aironet. Для то-
чек доступа в публичные беспроводные сети или работающие во время проведения кон-
ференций это, очевидно, невозможно.

Стандарт безопасности беспроводных


сетей 802.11i и WPA: новые надежды
Таким образом, надежды всего международного сообщества пользователей и администра-
торов сетей 802.11 связаны, главным образом, с разработкой стандарта 802.11L Иногда о
нем говорят, как о стандарте сети с повышенной безопасностью (Robust Security Network -
RSN), в отличие от сети с традиционной безопасностью (Tradition Security Network - TSN).
Предполагалось, что рабочая группа IEEE по стандарту i предложит новый стандарт
безопасности, который заменит устаревший WEP, к концу 2003 года. А тем временем
2 2 2 СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

некоторые фрагменты грядущего стандарта уже реализованы поставщиками оборудова-


ния и программного обеспечения для беспроводных сетей. Сертификат Wireless Protected
Access (WPA - защищенный доступ к беспроводным сетям), учрежденный организацией Wi-
Fi Alliance (http://www.wi-fialliance.org/OpenSection/Protected_Access.asp) - это подмноже-
ство текущего варианта 802.Hi. К числу функций, планируемых в стандарте 802.Hi, но не
включенных в спецификацию WPA, относятся безопасность независимых (ad-hoc) беспро-
водных сетей, быстрая и безопасная передача клиента от одной точки доступа к другой,
безопасное прекращение сеанса и отсоединение, а также применение алгоритма шифро-
вания AES. Когда стандарт 802.Hi будет принят, спецификация WPA будет доработана и
станет называться WPA2.
Из-за ограничений на объем данной книги мы не можем рассмотреть все особенности
стандарта 802.Hi в этой главе. Имейте в виду, что многие составные части стандарта рас-
сматриваются в других главах. Например, мы уже описывали некоторые атаки против се-
тей с поддержкой 802.Hi. Шифр AES, режим ССМ, перемешивание ключей в протоколе TKIP
и односторонняя функция хэширования MIC будут рассмотрены в главах 11 и 12, а практи-
ческие аспекты протокола 802.1х обсуждались, когда речь шла об аутентификации пользо-
вателей в беспроводных сетях. Лучшим источником информации по стандарту 802.Hi и
спецификации WPA во время работы над книгой была книга Джона Эдни (Jon Adney) и
Уильяма А. Абота (William A. Arbaugh) «Real 801.11 Security: Wi-Fi Protected Access and
802.Hi» (Реальная безопасность 801.11: защищенный доступ Wi-Fi и 802.Hi - вышла в из-
дательства Addison-Wesley, 2004, ISBN 0321136209). Мы рекомендуем заглянуть в нее, если
вы всерьез заинтересованы разработкой стандарта 802.Hi.
В архитектуре 802.Hi можно выделить два «рубежа»: улучшенные протоколы шифро-
вания и протокол контроля доступа на базе портов 802.Их.

Ставим стража: протокол 802.1х


Первоначально стандарт 802.1х (http://standards.ieee.org/getieee802/download/ 802.IX-
2001.pdf) задумывался для того, чтобы обеспечить аутентификацию пользователей на
уровне 2 в коммутируемых беспроводных сетях. Мы уже упоминали в этой главе о ком-
мутаторах Cisco Catalyst 6000; умение конфигурировать поддержку 802.1х на этих ком-
мутаторах - одно из требований экзамена CCIE по безопасности. Как отмечалось выше,
это обсуждение стандарта 802.1х следует рассматривать как вводное: более подробное
описание его составных частей, в том числе структуру пакетов, процедуры квитирова-
ния и примеры практической реализации мы отложим до главы 13, которая целиком по-
священа аутентификации.
В беспроводных локальных сетях стандарт 802.1х имеет дополнительную функцию:
динамическое распределение ключей. Для ее поддержки генерируется два набора ключей.
Первый набор состоит из сеансовых или попарных ключей, уникальных для каждой ассо-
циации между клиентским хостом и точкой доступа. Сеансовые ключи обеспечивают при-
ватность канала и решают проблему «одного ключа WEP для всех». Второй набор состоит
из групповых ключей. Групповые ключи разделяются всеми хостами в одной соте сети
802.11 и применяются для шифрования трафика, вещаемого на группу. Длина сеансовых и
попарных ключей составляет 128 бит. Попарные ключи порождаются из главного попар-
ного ключа (Pairwise Master Key - РМК) длиной 256 бит. РМК выдается RADIUS-сервером каж-
дому устройству-участнику с помощью атрибута MS-MPPE-Recv-key (vendor_id=17).
СТАНДАРТ БЕЗОПАСНОСТИ БЕСПРОВОДНЫХ СЕТЕЙ 802.11 i И WPA НОВЫЕ НАДЕЖДЫ 2 2 3

Аналогично групповые ключи порождаются из главного группового ключа (Groupwise


Master Key - GMK). В ходе процедуры порождения РМК и GMK используются в сочета-
нии с четырьмя ключами квитирования EAPOL, которые в совокупности называются по-
парным временным ключом. Более подробную информацию о попарном временном
ключе и о процедуре генерации ключей в 802.1х в целом можно найти в предваритель-
ном документе IETF «EAP Keying Framework» (http://www.ietf.org/internet-drafts/draft-
adoba-pppext-key-problem-06.txt).
В сетях SOHO и домашних сетях развертывание RADIUS-сервера с базой данных конеч-
ных пользователей маловероятно. В таком случае для генерирования сеансовых ключей
используется только предварительно разделенный РМК (вводится вручную). Это аналогич-
но тому, что делается в оригинальном протоколе WEP.
Поскольку в локальных сетях 802.11 нет физических портов, то ассоциация между бес-
проводным клиентским устройством и точкой доступа считается сетевым портом доступа.
Беспроводной клиент рассматривается как претендент, а точка доступа - как аутентифи-
катор. Таким образом, в терминологии стандарта 802.1х точка доступа играет роль комму-
татора в проводных сетях Ethernet. Очевидно, что проводной сегмент сети, к которому
подключена точка доступа, нуждается в сервере аутентификации. Его функции обычно
выполняет RADIUS-сервер, интегрированный с той или иной базой данных пользователей,
в качестве которой может выступать стандартный RADIUS, LDAP, NDS или Windows Active
Directory. Коммерческие беспроводные шлюзы высокого класса могут реализовывать как
функции сервера аутентификации, так и аутентификатора. То же относится и к программ-
ным шлюзам на базе Linux, которые, как уже описывалось, могут поддержать стандарт
802.1х с помощью HostAP и установленного RADIUS-сервера.
В стандарте 802.1х аутентификация пользователей на уровне 2 выполняется по про-
токолу Extensible Authentication Protocol (расширяемый протокол аутентификации -
EAP, RFC 2284), который был разработан Группой по проблемам проектирования Internet
(IETF). Протокол EAP- это замена протокола CHAP, который применяется в РРР, он
предназначен для использования в локальных сетях. Спецификация EAP over LAN (EAPOL)
определяет, как фреймы ЕАР инкапсулируются во фреймы 802.3, 802.5 и 802.10. Обмен
фреймами между объектами, определенными в стандарте 802.1х, схематично изображен
на рис. 10.3.

Точка доступа

Рис. 10.3. Обмен фреймами ЕАР

Есть несколько вариантов ЕАР, спроектированных с участием различных компаний-про-


изводителей. Такое разнообразие вносит дополнительные проблемы совместимости, так
что выбор подходящего оборудование и программного обеспечения для беспроводной сети
становится нетривиальной задачей.
224 СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

При конфигурировании способа аутентификации пользователей в беспроводной сети


вам, вероятно, придется столкнуться со следующими вариантами ЕАР:
о EAP-MD5 - это обязательный уровень ЕАР, который должен присутствовать во всех
реализациях стандарта 802.1х, именно он был разработан первым. С точки зрения
работы он дублирует протокол CHAP. Мы не рекомендуем пользоваться протоколом
EAP-MD5 по трем причинам. Во-первых, он не поддерживает динамическое распре-
деление ключей. Кроме того, он уязвим для атаки «человек посередине» с примене-
нием фальшивой точки доступа и для атаки на сервер аутентификации, описанной в
главе 8, так как аутентифицируются только клиенты. И наконец, в ходе аутентифи-
кации противник может подслушать запрос и зашифрованный ответ, после чего про-
вести атаку с известным открытым или шифртекстом (см. главу 8);
о EAP-TLS (Transport Layer Security, экспериментальный RFC 2716) поддерживает взаимную
аутентификацию на базе сертификатов. EAP-TLS основан на протоколе SSLv3 и требует
наличия удостоверяющего центра. Поскольку EAP-TLS поддержан наиболее широко, то
в главе 13 приводится детальное обсуждение его практической реализации;
о EAP-LEAP (Lightweight ЕАР или EAP-Cisco Wireless) - это запатентованный компани-
ей Cisco вариант ЕАР, реализованный в точках доступа и беспроводных клиентских
картах Cisco Aironet. Полное описание метода EAP-LEAP размещено на странице
http://lists.cistron.nl/pipermail/cistron-radius/2001-September/002042.html и остает-
ся лучшим источником информации о функциональности и работе этого протокола.
LEAP был первой (и на протяжении длительного времени единственной) схемой
аутентификации в стандарте 802.1х, основанной на паролях. Поэтому LEAP приоб-
рел огромную популярность и даже поддержан в сервере Free-RADIUS, несмотря на
то, что это запатентованное решение. В основе LEAP лежит прямой обмен запрос-
свертка пароля. Сервер аутентификации посылает клиенту запрос, а тот должен вер-
нуть пароль, предварительно выполнив его свертку со строкой запроса. Будучи ос-
нован на применении паролей, EAP-LEAP аутентифицирует пользователя, а не
устройство. В то же время очевидна уязвимость этого варианта для атак методом
полного перебора и по словарю, не характерная для методов аутентификации с при-
менением сертификатов.
Очень подробная информация о практическом конфигурировании EAP-LEAP приведена
на сайте Cisco (http://www.cisco.com/warp/public/707/ accessregistrar_leap.html).
К числу не так распространенных реализаций ЕАР относятся PEAP (Protected ЕАР, неут-
вержденный стандарт IETF) и EAP-TTLS (Tunneled Transport Layer Security ЕАР), разрабо-
танный компанией Certicom and Funk Software. В скором времени ситуация может изме-
ниться, так как эти варианты и достаточно развиты, и поддержаны производителями, в
частности Microsoft и Cisco.
Для работы EAP-TTLS требуется, чтобы был сертифицирован только сервер аутентифи-
кации, а у претендента сертификата может и не быть, так что процедура развертывания
упрощается. EAP-TTLS поддерживает также ряд устаревших методов аутентификации, в том
числе PAP, CHAP, MS-CHAP, MS-CHAPv2 и даже EAP-MD5. Чтобы обеспечить безопасность при
использовании этих методов, EAP-TTLS создает зашифрованный по протоколу TLS туннель,
внутри которого эти протоколы и работают. Примером практической реализации EAP-TTLS
может служить программное обеспечение для управления доступом в беспроводную сеть
Odyssey от компании Funk Software (Windows XP/2000/98/Me). Протокол ЕАР-РЕАР очень
СТАНДАРТ БЕЗОПАСНОСТИ БЕСПРОВОДНЫХ СЕТЕЙ 802.11 i И WPA: НОВЫЕ НАДЕЖДЫ 225

похож на EAP-TTLS, только он не поддерживает устаревших методов аутентификации типа


РАР и CHAP. Вместо них поддерживаются протоколы PEAP-MS-CHAPv2 и PEAP-EAP-TLS, ра-
ботающие внутри безопасного туннеля. Поддержка ЕАР-РЕАР реализована в пакете прог-
рамм Cisco Wireless Security Suite и включена в утилиту Cisco Aironet Client Utility (ACU) и
в Windows XP Service Pack 1. Этот протокол активно пропагандируется компаниями Cisco,
Microsoft и RSA Security.
Еще два варианта ЕАР - это EAP-SIM и ЕАР-АКА для аутентификации на базе SIM и USIM.
В настоящий момент оба имеют статус предварительных документов IETF и здесь не рас-
сматриваются, поскольку в основном они предназначены для аутентификации в сетях GSM,
в не в беспроводных сетях 802.11. Тем не менее протокол EAP-SIM поддержан в точках
доступа и клиентских устройствах Cisco Aironet.

Латаем самую большую «дыру»: протоколы TKIP и ССМР


Второй рубеж защиты, определенный в стандарте 802.Hi, - это криптографические усо-
вершенствования исходного протокола WEP, которые в итоге должны привести к полной
его замене. Протокол целостности временных ключей (Temporal Key Integrity Protocol -
TKIP) и протокол режима счетчика с СВС-МАС (Counter Mode with CBC-MAC - ССМР) пред-
ставляют собой новые реализации шифрования, имеющие целью убрать WEP из сетей
802.11. TKIP - это улучшенная версия WEP, в которой устранены все известные уязвимос-
ти. В настоящий момент криптографическая безопасность, определенная в спецификации
WPA, основана на TKIP. В протоколе TKIP применяются 48-битовые векторы инициализа-
ции, чтобы избежать повторного использования IV, на котором построена атака FMS. Ожи-
даемый интервал времени между появлениями фреймов со слабыми IV составляет пример-
но сто лет, так что к тому моменту, как взломщик соберет 3000 или более интересных
фреймов, ему стукнет 300000 лет.
К сожалению, то, что выглядит просто в теории, с трудом реализуется на практике. На
рынке все еще доминирует унаследованное оборудование, за одну неделю оно никуда не
денется, а 48-битовых IV не поддерживает. Чтобы решить эту проблему, 48-битовый IV в
протоколе TKIP расщепляется на две части: 16- и 32-битовую. 16-битовая часть дополня-
ется до 24 бит, что дает традиционный IV. Дополнение производится так, чтобы избежать
появления слабых IV. Интересно, что 32-битовая часть не используется для генерирования
передаваемых IV, зато находит применение в перемешивании пакетного ключа.
Перемешивание пакетного ключа в TKIP выполняется для того, чтобы внести дополни-
тельную неопределенность в ключи (объяснение этого термина см. в главе 11). Процедура
генерирования пакетного ключа состоит из двух этапов, и на ее вход подается несколько
величин, в частности МАС-адрес передающего устройства, уже упомянутые выше 32 бит IV,
первые 16 бит IV и временный сеансовый ключ. На первом этапе перемешиваются времен-
ный сеансовый ключ, 32 бит IV и МАС-адрес передатчика. Далее результат, полученный на
первом этапе, перемешивается с временным сеансовым ключом и 16 бит IV. Из-за первого
этапа один и тот же ключ уже не будет использоваться всеми соединениями, а второй ус-
траняет корреляцию между IV и пакетным ключом. Отметим, что из-за перемешивания
ключа в каждом направлении обмена по каналу связи используются разные ключи. По-
скольку функция перемешивания ключа это, по существу, крохотная, но полная реализа-
ция шифра Фейстеля, то ее работа будет объяснена в главе 11 после знакомства со всей
необходимой терминологией.
226 СТРОИМ КРЕПОСТЬ: ВВЕДЕНИЕ В МЕТОДЫ ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Еще одно новшество в реализации IV, примененное в протоколе TKIP, - это порядковый
счетчик. Напомним, что существуют инструменты для атак с воспроизведением, которые
внедряют новый трафик для ускорения взлома WEP или даже сканируют порты беспровод-
ных хостов (reinj, WEPWedgie). В традиционной реализации WEP ничто не может такую
атаку остановить, поскольку стандарт ничего не говорит о том, как должен выбираться IV.
В большинстве случаев выбор производится (псевдо?) случайно. Напротив, в TKIP IV уве-
личиваются последовательно, причем те пакеты, где порядок IV нарушен, отбрасываются.
Это смягчает остроту проблемы воспроизведения трафика, но зато вступает в некоторое
противоречие с одним усовершенствованием, направленным на повышение качества об-
служивания, которое было придумано группой по разработке стандарта 802.Не. Дело в
том, что подтверждать каждый принятый фрейм, как описано в алгоритме CSMA/CA, неэф-
фективно. Поэтому было предложено улучшение, названное групповым подтверждением
(burst-ACK). Смысл его в том, чтобы подтверждать не каждый отдельный фрейм, а группу
из 16 фреймов. Если один из 16 посланных фреймов не дошел до получателя, то применя-
ется селективное подтверждение (аналогичное селективному АСК в опциях TCP), требую-
щее повторно передать только потерянный фрейм, а не все 16. Разумеется, из-за порядко-
вого счетчика TKIP повторно переданный фрейм будет отвергнут, если уже получены
фреймы с большими номерами IV. Чтобы решить эту проблему, в протоколе TKIP применя-
ется окно воспроизведения (replay window), в котором хранятся последние 16 принятых
IV, и проверяется, присутствует ли среди них фрейм-дубль. Если это так и если этот фрейм
еще не был получен ранее, он принимается.
TKIP также обеспечивает целостность сообщений, вычисляя контрольную сумму MIC
(или Michael, Message Integrity Code) вместо очень простого и небезопасного вектора про-
верки целостности (Integrity Check Vector - ICV) в WEP. Полное описание алгоритма MIC
приведено в разделе главы 11, посвященном односторонним функциям хэширования (преж-
де чем рассказывать о структуре этой функции, необходимо познакомить вас с основами
прикладной криптографии). Протокол TKIP не является обязательным для реализации в
планируемой окончательной версии стандарта 802.Hi, но он обратно совместим со ста-
рым WEP и не требует полного обновления беспроводного оборудования.
Напротив, реализация протокола ССМР является обязательной для совместимости со
стандартом 802.Hi. В нем применяется шифр Advanced Security Standard (AES или шифр
Rijndael) в режиме счетчика со сцеплением блоков шифртекста и кодом аутентификации
сообщения (СВС-МАС). Режим счетчика (ССМ) был создан специально для стандарта 802.Hi,
но позже был представлен комитету NIST для универсального применения совместно с
шифром AES. В стандарте 802.Hi определено, что размер ключа AES равен 128 бит, ин-
тересно, почему не 256. Как и в ТКЕР, в ССМР используются 48-битовые IV (здесь они называют-
ся номерами пакетов, или PN) и несколько видоизмененный алгоритм MIC. Использование
сильного шифра AES делает излишним создание пакетных ключей, поэтому в ССМР функ-
ции порождения пакетных ключей не реализованы. В этом протоколе один и тот же ключ,
создаваемый отдельно для каждой ассоциации, применяется как для шифрования данных,
так и для генерирования контрольной суммы. Контрольная сумма длиной 8 октетов, при-
меняемая для гарантии целостности сообщения, считается гораздо сильнее, чем вычисля-
емая алгоритмом Michael в протоколе TKIP.
Поскольку планируется создать микросхему с аппаратной реализацией AES, чтобы сни-
зить вычислительную нагрузку, обусловленную необходимостью шифрования, и, значит,
увеличить быстродействие и пропускную способность сети, то в связи с выходом на рынок
РЕЗЮМЕ 227

продуктов, поддерживающих протокол ССМР, ожидается полный пересмотр архитектуры


оборудования для сетей 802.11. Кроме того, в настоящее время еще остается несколько
вопросов, не решенных в стандарте 802.Hi. В частности, речь идет о безопасности незави-
симых сетей, быстрой передаче пользователя от одной точки доступа другой, а также о
процедурах прекращения сеанса и отсоединения. Поэтому на практике широкое внедре-
ние стандарта 802.Hi не обещает быть легкой задачей, и протокол WEP (надеемся, что в
виде ТКЕР, который, бузусловно, лучше) останется с нами еще долго. Это может побудить
администраторов беспроводных сетей к поискам надежных, не зависящих от версий и по-
ставщиков решений в области безопасности на уровнях модели 0SI, лежащих выше уровня
передачи данных.

Резюме
Разумного уровня защиты сетей 802.11 достичь можно, но нескольких щелчков мышью для
этого явно недостаточно. Обеспечение безопасности беспроводных сетей- это сложная
процедура, которая начинается с разработки четкой корпоративной политики и, скорее
всего, никогда не кончается. Не стоит недооценивать важность безопасности на уровне 1.
Размещайте свои точки доступа за надежно защищенным шлюзом и попытайтесь извлечь
все, что можно, из таких простых методик, как фильтрация МАС-адресов и протоколов.
Чтобы обеспечить безопасность, вовсе необязательно покупать дорогие высококлассные
шлюзы, нужной степени защиты можно добиться, воспользовавшись машиной с ОС BSD или
Linux. И наконец, близится к завершению работа над стандартом 802.Hi, который разре-
шит многие из нынешних проблем безопасности беспроводных сетей. Мы не думаем, что
этот стандарт и вторая версия спецификации WEP окажутся идеальными, и не ожидаем, что
они будут повсюду внедрены за одну ночь; кроме того, усовершенствования в области га-
рантий конфиденциальности и целостности заставят взломщиков искать сети, в которых
802.Hi еще не реализован. В свою очередь, это станет побудительной причиной для об-
новления оборудования, программно-аппаратного и программного обеспечения до уров-
ня 802.Hi. В следующей главе мы обратимся к прикладной криптографии, поскольку это
необходимо для понимания принципов работы RC4, AES, MIC, CCM, перемешивания ключей
в протоколе TKIP и причин, по которым именно эти методы были задействованы в стандар-
те 802.Hi. Мы надеемся ответить на все ваши вопросы по терминологии, которые могли
возникнуть при чтении предшествующих глав. Кроме того, мы расскажем о шифрах и тех
принципах, которые необходимо знать для того, чтобы развернуть беспроводные VPN и
сильные средства аутентификации эффективно и с минимальными потерями для произво-
дительности сети.
Криптография лежит в основе сетевой безопасности, и все же многие системные админи-
страторы и консультанты по информационной безопасности мало знают о принципах этой
дисциплины, о силе и эффективности различных имеющихся шифров и о том, в каких ус-
ловиях их применение будет оптимальным. Почти все публикации по криптографии мож-
но отнести к одной из двух больших категорий:
о те, в которых математические основы криптографии объясняются настолько подроб-
но, что системному администратору или консультанту по безопасности трудно в них
разобраться;
о те, в которых криптография разъясняется без единой формулы, а факты, требующие
развитого математического аппарата, излагаются без обоснований и чересчур упро-
щенно.
Следующие две главы - попытка навести мост между этими двумя крайностями. Кроме
того, мы надеемся, что они станут интересным чтением для экспертов по сетям, системных
администраторов и консультантов по информационным технологиям. Кстати, это еще и
чуть ли не единственный текст по криптографии, в которых не упоминаются Боб и Алиса
(разве что в этом предложении). Вздохните с облегчением!

Введение в прикладную криптографию


и стеганографию
Можно развернуть прилично защищенную беспроводную или проводную сеть, ничего не
зная о том, какие шифры в ней используются и как шифруются пароли. Но нам такой под-
ход не интересен. Хакерство - это, прежде всего, понимание, а не тупое следование ин-
струкциям; если жать на кнопки, не зная, что происходит за кулисами, то ничего не
ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ И СТЕГАНОГРАФИЮ 2 2 9

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


вы увидите в следующей главе, неправильный выбор шифра и метода его реализации мо-
жет привести к созданию безопасной, но очень медленно работающей сети. Пользователи
сети, скорее всего, ничего не скажут о ваших достижениях в области безопасности, зато о
низкой пропускной способности и больших задержках сразу будет сообщено в ИТ депар-
тамент и, возможно, руководству компании.
Прежде чем переходить к шифрам, режимам и протоколам, дадим несколько определений.
Криптография - это наука и искусство преобразования данных в последовательность
битов, которая представляется внешнему наблюдателю или противнику случайной и бес-
смысленной. Избыточность данных можно снизить также за счет сжатия. Однако, если
сжатые данные легко восстановить, то для дешифрирования нужен ключ, с помощью кото-
рого исходный открытый текст был видоизменен. Кстати говоря, поскольку и шифрование,
и сжатие увеличивают энтропию преобразованных данных, то после сжатия объем зашиф-
рованных данных может даже вырасти, что обессмысливает сжатие. Если вы хотите реали-
зовать и сжатие, и шифрование, то сначала применяйте сжатие.
Криптоанализ - это дисциплина, обратная криптографии, его цель - попытаться найти
слабости в различных криптографических алгоритмах и их реализациях. Любая попытка
провести криптоанализ считается атакой. Исчерпывающий перебор ключей (метод полно-
го перебора) - это не криптоанализ, но тоже атака!
Криптология объединяет криптографию и криптоанализ, она рассматривает математи-
ческие основания обеих этих дисциплин.
Шифрование данных обеспечивает конфиденциальность данных, аутентификацию, це-
лостность и неотрицаемость. Некорректная реализация криптографических служб может
отрицательно сказаться на доступности данных, например, за счет слишком большого тра-
фика или неприемлемой задержки пакетов.
Кроме того, для локальных DoS-атак необходимо предварительно аутентифицировать-
ся. Встречающиеся во многих источниках утверждения о том, что криптография не оказы-
вает влияния на доступность, неверны. Отметим еще, что нередко встречаются зашифро-
ванные вирусы, которые расшифровывают себя перед активизацией, и не забудем о черных
ходах, передающих взломщику зашифрованные данные по каналам связи. Это примеры ха-
керских применений криптографии. В то же время безопасная аутентификация, необходи-
мая для получения доступа к антивирусным программам, и шифрование баз данных с
сигнатурами вирусов могут защитить их от злонамеренных программ и пользователей.
Следовательно, заявления о том, что шифрование не имеет ничего общего с вредоносными
вирусами, также лишено оснований.
Самые первые шифры были основаны на простых алгоритмах с подстановками и пере-
становками. Представьте себе колоду карт. Перекладывание карт способом, который изве-
стен вам и никому другому (один из видов шулерства), является перестановкой (в отличие
от обычного тасования). Карты остались теми же, но их порядок изменился. Соглашение о
том, что король будет выступать в роли валета, а шестерка станет тузом, или что бубны
надо считать пиками и наоборот, - все это варианты подстановочных шифров. Классичес-
кие примеры подстановочных шифров, приводимые во всех учебниках, - это сдвиговые
шифры, в которых данные сдвигаются на заранее известное число позиций. Например, в
шифре Цезаря каждая буква сдвигается на некоторое число к позиций (в случае шифра
Цезаря к = 3). Таким образом, А становится D, В становится Е и т.д. Вариантом шифра Цеза-
ря является шифр ROT13, который еще иногда встречается в некоторых программах, в этом
2 3 0 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

случае производится сдвиг на 13 символов: Р = ROT13(ROT13(P)), то есть если дважды при-


1
менить этот шифр к некоторому тексту, то получится исходный текст .
Подстановочные и сдвиговые шифры легко взламываются. Например, чтобы взломать
шифр Цезаря, противник должен был бы выбрать одно зашифрованное слово из длинно-
го текста, раздать его 22 солдатам (поскольку в латинском алфавите 23 буквы) и попро-
сить первого солдата сдвинуть все буквы в слове на одну позицию, второго - на две по-
зиции и т.д. В результате значение к было бы найдено очень быстро. В этом случае
значение к - это ключ и притом очень слабый: целое число по модулю 23, то есть мень-
ше 5 бит данных во всех возможных комбинациях! Чтобы взломать более изощренный
подстановочный шифр со случайным на первый взгляд соглашением о том, какая буква
вместо какой подставляется, понадобится статистический криптоанализ (то же относит-
ся и к взлому перестановочных шифров). Для каждого языка характерно определенное
распределение частот букв, поэтому, проанализировав это распределение в шифртексте,
машина легко восстановит открытый текст, а затем и ключ. Например, в английском язы-
ке наиболее распространена буква е, поэтому именно ей и должен соответствовать са-
мый часто встречающийся символ в шифртексте, полученном из английского открытого
текста. Когда-то для обмана статического криптоанализа пробовали применять биграм-
мы или триграммы (то есть подставлять вместо одной буквы последовательности из двух
или трех букв), но и эти попытки провалились, так как ныне частоты появления биграмм
и триграмм для разных языков также опубликованы. Если речь идет о зашифрованном
исходном тексте программы, то для разных языков программирования известны частоты
появления различных операторов и ключевых слов и эту информацию можно использо-
вать совместно со статистическим анализом разговорного языка. Например, для языка С
можно ожидать большого числа вхождения директив #def i n e и # i n c l u d e в начале
текста программы. Аналогичные закономерности существуют и для зашифрованных биб-
лиотек (вызовы функций, циклические структуры и т.д.), что также делает их уязвимы-
ми для статистического криптоанализа. Обращаясь к зашифрованному сетевому трафи-
ку, собранному программой tcpdump и ей подобными анализаторами, не следует ли
упомянуть о сходстве и повторяемости полей во фреймах, пакетах, сегментах и датаг-
раммах? Мы же знаем их точную длину и место расположения.
В попытках создать шифр, превосходящий основанные на алгоритмах перестановки
и подстановки, были испробованы разные подходы. Один из них основан на идее безо-
пасности за счет скрытности. Истории известно применение невидимых чернил, ма-
сок, закрывающих одни символы и открывающих другие, и т.д. Относительно недавно
появилась военная технология радиоизлучения с рассеянным спектром, которая теперь
активно эксплуатируется в сетях 802.11 и Bluetooth. Это тоже пример обеспечения
безопасности за счет скрытности - слабый широкополосный радиосигнал выглядит для
радиочастотного сканера обычным шумом. К сожалению, а может быть, и к счастью, из-
за проблем совместимости и практической применимости в беспроводных сетях такая
методика обеспечения безопасности не работает. Кроме того, противник, вооруженный
хорошим "(и дорогим) спектральным анализатором, все-таки сможет обнаружить и вы-
делить сигналы с рассеянным спектром. 0 некоторых примерах обнаружения и анализа
таких сигналов можно прочитать на странице http://www.tscm.com/spectan.html.

1
Это, естественно, применимо для латинского алфавита, в котором 26 букв. - Прим. пер.
ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ И СТЕГАНОГРАФИЮ 2 3 1

Еще одна попытка прибегнуть к скрытности - это стеганография. Она основана на упря-
тывании информационного сообщения в младших битах данных, хранящихся в файлах с
изображениями, музыкой или видео. Для этого используются такие программы, как Steghide
(http://steghide.sourceforge.net; см. также пример извлечения такой информации на стра-
нице http://www.outguess.org/detection.php). Еще один вид стеганографии - это мимикрия,
восходящая к уже упоминавшимся аппаратным решеткам-маскам. Преобразованное таким
способом сообщение становится похоже на нечто другое, обычно невинное и не бросающе-
еся в глаза. Примером таких невинных и не вызывающих подозрений (правда, весьма раздра-
жающих) сообщений, постоянно циркулирующих в Internet является спам. Можете заглянуть
на сайт http://www.spammimic.com или скачать со страницы http://packetstormsecurity.org/
UNIX/misc/mimic.zip Perl-сценарий, который маскирует полезные сообщения под мусорную
почту. Еще один пример, который тоже можно отнести к стеганографии, - это сокрытие по-
дозрительного трафика в потоках данных, которые обычно не вызывают вопросов у се-
тевого администратора. Многие черные ходы скрывают свой коммуникационный канал
за ICMP-пакетами (обычно эхо-ответы) или трафиком по протоколу IGMP (см., напри-
мер, http://packetstormsecurity.org/UNIX/penetration/rootkits/icmp-backdoor.tar.gz или
http://packetstormsecurity.org/UNIX/penetration/rootkits/sneaky-sneaky-l.12.tar.gz).
В главе 8 мы уже упоминали о том, что такие черные ходы применяются, чтобы замаски-
ровать компьютер атакующего беспроводную сеть под законный хост. Интересно, что по-
добные скрытые каналы можно использовать для передачи совершенно секретных дан-
ных по небезопасному носителю (например, беспроводной сети) как составную часть
стратегии глубоко эшелонированной обороны.
Для работы шифров с ключом необходимо выполнить некую последовательность действий,
чтобы получить ключ. Например, заранее оговоренное сообщение b k l 0 . 3 L . 1 5 . 3 6 . 9 может
означать следующее: «Ключ ищи в книге на полке 10,3-я книга слева, страница 15, строка 36,
слово 9». Вы открываете книгу и, конечно же, искомым словом будет Microsoft (мы никого не
хотели обидеть!). Хотя использование шифров с такого рода ключом и может обеспечить ра-
зумную безопасность, но для защиты сетей и хостов они неприменимы.
Наконец, существует идеальная схема шифрования, которую нельзя взломать в прин-
ципе, какими бы вычислительными ресурсами ни располагал противник. Как ни пе-
чально, но эта схема практически бесполезна для информационной безопасности, рав-
но как и шифры с ключом. Возможно, вы догадались, что речь идет об одноразовых
блокнотах. Так называется большой массив, составленный из истинно случайных дан-
ных. Первоначально это была одноразовая лента для передачи по телетайпным кана-
лам. Открытый текст шифровался путем выполнения операции XOR с одноразовым
блокнотом, который использовался лишь единожды на обоих концах канала. Исполь-
зованный одноразовый блокнот уничтожался. С точки зрения криптоанализа такая
схема передачи данных абсолютно безопасна при условии, что источник данных для
одноразового блокнота действительно случаен. Однако безопасное распределение и
хранение блокнотов, а также синхронизация отправителя и получателя оказываются
исключительно сложной задачей. Поскольку у сверхдержав обычно достаточно ресурсов
для ее решения, то одноразовые блокноты все же применялись для защиты «горячей»
телефонной линии, действующей между противниками во времена холодной войны. Часто
они были и на вооружении шпионов по обе стороны железного занавеса. Похоже, что ра-
дист на русской подводной лодке из фильма «К-19» пользовался одноразовым блокнотом
для шифрования передаваемых сообщений.
2 3 2 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

Из всех описанных вариантов в нашем распоряжении остается всего два. Во-первых,


можно и дальше укреплять подстановочные и перестановочные шифры, пока для их крип-
тоанализа не перестанет хватать вычислительных мощностей. Во-вторых, можно приду-
мать новые схемы шифрования, отличные от классических методов (мы еще вернемся к
этому при обсуждении асимметричных шифров). Еще один вариант - стеганография.
В этой главе мы не станем останавливаться на ней, так как в беспроводных сетях она не
нашла широкого применения. Отметим, однако, что программа stegtunnel от группы SYN
АСК Labs (http://www.synacklabs.net/projects/stegtunnel) - это интересный бесплатный
инструмент, который можно использовать для защиты беспроводного трафика. Если эта
тема вас заинтересовала, рекомендуем ознакомиться с такими сайтами, как http://
www.cl.cam.ac.uk/~fapp2/steganography или http://www.jrjtc.com/Steganography, а также с
литературой по данному вопросу (Johnson, Duric, Amp «Information Hiding: Steganography
and Watermarking - Attacks and Countermeasures» 2000, Cluwer Academic Publishers,
ISBN: 0792372042; Wayner «Disappearing Cryptography: Information Hiding: Steganography;
Watermarking», 2002, Morgan Kauffman, ISBN: 1558607692 и Katzenbeisser «Information
Hiding: Tecniques for Steganography; Digital Watermarking», 2000, Artech House Books,
ISBN: 1580530354). Ну а теперь пришло время вернуться к подстановочным и перестано-
вочным шифрам, с которых мы и начали.
Прежде чем говорить о современных подстановочных и перестановочных шифрах, надо
развеять одно широко распространенное недоразумение. Чтобы разбираться в криптогра-
фии, вовсе не нужно быть гениальным математиком. Наш опыт показывает, что достаточ-
но понимать, что такое функция, двоичная арифметика, матрицы, арифметика по модулю и
булевские логические операторы. Возможно, имеет смысл освежить в памяти последнюю
тему. Для усвоения булевской логики очень полезны таблицы истинности:
Таблица истинности оператора NOT (!= в языке С) такова:

вход выход
1 0
0 1

Таблица истинности оператора OR ( I I в языке С, например


{if ((х>0) II (х<3)) у=10;} ) такова:
А В А | 1 В
1 1 1
1 0 1
0 1 1
0 0 0

Таблица и с т и н н о с т и о п е р а т о р а AND ( && в я з ы к е С, например


{ i f ((x>0) ScSc (x<3)) y = 2 0 ; } ) т а к о в а :

А В А && В
1 1 1
1 0 0
0 1 0
0 0 0

(помните, как применяется маска подсети? IP && netmask)


СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫХ ШИФРОВ 233

л
И наконец, таблица истинности оператора XOR (исключающее ИЛИ, = в
языке С) такова:

Обратите внимание, что:


а л= а = О
а л= b л= b = a
или что если
р А= к = с
то
с л= к = р
Попросту говоря, применение XOR к одном и тому же значению дважды восстанавлива-
ет исходное значение, точно так же, как в случае двойного применения шифра ROT13. На
самом деле многие производители для шифрования применяют к открытому тексту опера-
цию XOR с секретным ключом. Это серьезная ошибка, такого рода шифрование не более
безопасно, чем шифр ROT13. Для вскрытия нужно лишь определить длину ключа, подсчи-
тывая совпавшие байты в шифртексте. После этого шифртекст можно сдвинуть на эту дли-
ну и выполнить XOR с самим собой, в результате чего мы получим ключ.
Однако операция XOR активно используется как составная часть многих сильных шиф-
ров. Когда в популярной литературе пишут, что ключ «применен» к открытому тексту,
имеется в виду операция p l a i n t e x t £? k e y . Основная причина этого заключается в том,
что, поскольку повторная операция XOR с одними и теми данными восстанавливает исход-
ные данные, то для шифрования и дешифрирования можно воспользоваться одним кодом.
Итак, что же нужно сделать, чтобы создать сильный промышленный шифр на базе небе-
зопасных подстановочно-перестановочных шифров и операции XOR?
Структура и режимы работы
современных шифров
Сила (или стойкость) шифра зависит от длины ключа, его секретности (сюда входят процедуры
управления и распределения ключей) и самого алгоритма. Клод Шеннон (Claude Shannon), ко-
торый считается отцом современной криптографии, предложил два основных элемента крип-
тографических систем. Он назвал их перемешиванием (Confusion) к рассеиванием (Diffusion).
Под рассеиванием понимается устранение статистических зависимостей шифртекста от
открытого текста. Цель перемешивания - сделать статистическую зависимость шифртек-
ста от ключа максимально сложной.
Первой криптосистемой, в которой были применены принципы, сформулированные Шен-
ноном, стал шифр Lucifer, опубликованный Хорстом Фейстелем (Horst Feistel) из команды
криптографов компании IBM в 1973 году (через 56 лет после Шеннона). Эти принципы были
234А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

реализованы путем последовательного выполнения многократных перестановок и подстано-


вок. Каждая подстановка или перестановка называлась шагом (Round), а вся последователь-
ность - итерацией. Вместо того чтобы использовать ключ как таковой, применялся алгоритм
развертки ключа (Key Scheduling Algorithm), который генерировал подключи из исходного
ключа. Затем выполнялось несколько итераций, в ходе которых различные подключи объеди-
нялись посредством XOR с блоками данных. Тем самым достигался достаточный уровень пере-
мешивания.

Классический пример; алгоритм DES


На основе шифра Lucifer был разработан шифр Data Encryption Standard (DES - стандарт
шифрования данных), который и применялся в течение последующих 20 лет. Из-за важно-
сти DES и элегантности решения мы уделим некоторое внимание его математическому
описанию, продемонстрировав элементы Шеннона в действии. Поняв, как работает DES, вы
уже без труда разберетесь и в более поздних шифрах.
Алгоритм DES называют симметричным блочным шифром. Слово «симметричный» оз-
начает, что все пользователи криптосистемы должны знать общие секретные ключи (обыч-
но каждому пользователю выдается свой ключ) для шифрования и дешифрирования дан-
ных. Секретность этих ключей не должна быть скомпрометирована, именно поэтому была
в свое время введена теневая копия файла /etc/passwd (помните времена неправильно
сконфигурированных FTP-серверов с анонимным доступом, cat /etc/passwd с последующим
пропусканием через программу взлома паролей?). Слово «блочный» означает, что откры-
тый текст шифруется не побитово, а сначала разбивается на блоки одинаковой длины.
В случае DES и многих других современных шифров длина блока составляет 64 бит. Шиф-
ры, которые шифруют данные бит за битом, называются потоковыми и рассматриваются
ниже. Потоковые шифры очень важны для шифрования и дешифрирования данных на лету,
например, когда они посылаются и принимаются через сетевое соединение. Поскольку в
беспроводных сетях безопасность на уровне 1 оставляет желать лучшего, то использова-
ние потоковых шифров или блочных шифров, модифицированных так, чтобы они работали
подобно потоковым, - это единственный способ обеспечить конфиденциальность данных.
Можно было бы предположить, что, раз в DES размер блока открытого текста составляет
64 бит, то и размер ключа должен быть таким же. Однако не все так просто. Биты ключа
DES, занимающие позиции 8,16, 24, 32, 40, 48, 56 и 64, используются для контроля ошибок
(по сути дела гарантируют, что в каждом байте нечетное число единиц). Более того, при
выполнении шагов DES из оставшихся 56 бит ключа используются только 48.
Итерация DES начинается и заканчивается вызовом начальной и конечной функций
перестановки, которые введены только для удобства ввода/вывода и никак не сказывают-
ся на общей безопасности алгоритма.
Если 64-битовый блок открытого текста обозначить через х, то начальную перестанов-
ку можно описать как Хо щ IP(x) = LoRo, где LQ = Ro - 32, то есть блок данных расщепляется на
левую и правую половину, каждая длиной 32 бит.
После начальной перестановки выполняется 16 шагов подстановок и перестановок.
Если обозначить функцию шифра f, функцию развертки ключа К„ а ключи, генерируемые
функцией Ks, - Ki, эти 16 шагов можно описать так:
СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫХ ШИФРОВ 2 3 5

Это значит, что по мере выполнения шагов правая часть блока данных поступает на вход
функции шифра, а левая часть объединяется посредством XOR с выходом этой функции,
после чего результат работы становится новой правой частью и вновь подается на вход
функции. Это процедура повторяется 16 раз.
Что же делает сама функция шифра?
Мы уже упомянали, что используется лишь 48 бит ключа. На практике это означает, что
Kj * 48 бит. Однако размер блока данных после начальной перестановки 1Р(х) составляет
32 бит. Таким образом, первой операцией шага является расширяющая перестановка E(Rj),
которая расширяет правую часть блока данных с 32 до 48 бит (понятно, что именно по этой
причине правая часть проходит обработку функцией шифра). С помощью какого таинства
32 бит превращаются в 48?
Разобьем 32 бит на входные блоки по четыре бита. Затем сдвинем данные в каждом из
них так, чтобы последний бит входного блока стал первым битом следующего выходного
блока, а первый бит входного блока - последним битом последнего выходного. Таким обра-
зом, с помощью сдвига каждый входной блок отдает два бита каждому выходному. Поскольку
исходные четыре бита в каждом выходном блоке помещаются в соответствующий выходной
блок, мы получаем 8 шестибитовых выходных блоков из 8 четырехбитовых входных. Про-
блема решена! Более того, расширяющая перестановка обладает одним очень важным крип-
тографическим свойством, которое называет лавинным эффектом. Поскольку из-за расши-
рения размер шифртекста оказывается больше размера открытого текста, то небольшие
различия в открытых текстах продуцируют сильно различающиеся шифртексты.
Имея 48 блоков, мы можем выполнить операцию XOR между ними и подключами: Е(1у л= К*.
Но на этом шаг еще не заканчивается. Напомним, что нам нужно получить 64 бит зашифро-
ванных данных из 64 бит открытого текста, поэтому необходимо вернуться к двум 32-битовым
блокам, иными словами, нейтрализовать действие расширяющей подстановки после того, как
она свою задачу выполнила. Для этого мы разобьем 48-битовые блоки на восемь 6-битовых и
применим к ним так называемые S-блоки, которые преобразуют шесть битов в четыре.
Первый и последний из имеющихся шести битов образуют число, интерпретируемое как
номер строки в S-блоке. Внутренние же четыре бита - это номер столбца. Следовательно, S-блок
представляет собой таблицу из 4 строк и 16 столбцов, в позициях которой стоят четырехбитовые
числа. Таким образом, S-блок по сути дела некоторым образом перетасовывает внутренние че-
тыре бита исходного шестибитового блока. S-блоки обеспечивают самое нелинейное преобра-
зование во всем алгоритме DES, именно они, в основном, и отвечают за его безопасность. Для
хранения восьми S-блоков требуется 256 байт. Четырехбитовые результаты применения S-бло-
ков объединяются в один 32-битовый блок с помощью еще одной перестановки.
На этот раз перестановка называется чистой (straight): никакие биты не используются
многократно для расширения данных и никакие биты не игнорируются. 32 бит данных по-
даются на вход Р-блока, состоящего из 2 строк и 32 столбцов, и на выходе оказывается
число из соседней строки.
Вы еще не забыли, что мы пока говорили лишь о правой части исходного 64-битового блока?
После того как Р-блок возвратит 32 бит данных, над ними и левой 32-битовой частью
производится операция XOR. Затем обе половины меняются местами, и начинается следу-
ющий шаг. После шага 16 левая и правая половина просто объединяются и подвергаются
последней перестановке, которая меняет их местами, выполняя действие, обратное началь-
ной перестановке IP.
236 ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

Последнее, что осталось рассмотреть, это преобразование К => Kif то есть способ полу-
чения подключей.
Сначала отбрасывается 8 бит четности, а оставшиеся 56 бит разбиваются на две рав-
ных части. Это разбиение аналогично функции 1Р(х) и называется фиксированной пере-
становкой РС1(К) - C0D0. Затем обе половины циклически (по модулю 28) сдвигаются на
1 или 2 бита в зависимости от номера шага: Q = LS^Q - 1); Di • LS^Di - 1).
На шагах от 3 до 8 и от 10 до 15 делаются сдвиги влево на 2 бита, а на остальных ша-
гах - на 1 бит. После сдвига Q и Di сцепляются, и мы получаем 56 бит, которые следует
объединить с помощью XOR с 48 бит данных, выработанных в результате расширяющей
перестановки правой части. Следовательно, нам нужна сжимающая перестановочная
функция РС-2, чтобы преобразованный ключ соответствовал (переставленному) откры-
тому тексту: К* = РС-2(СД).

Рис. 11.1. Структура и работа шифра DES


СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫ S ШИФРОВ 2 3 7

Функция РС-2 не реализует какой-то алгоритм, основанный на сдвиге или отбрасывании


битов, а просто пользуется предопределенной таблицей, в которой хранятся номера битов.
Новая позиция каждого бита берется прямо из этой таблицы. Например, в позиции 1 от нача-
ла таблицы РС-2 находится число 14, значит, 14-й бит входных данных попадет на первую
позицию в выходных. Таблица РС-2 опубликована во многих источниках (см. стр. 274 книги
Шейера «Applied Cryptography» (Прикладная криптография)). После применения таблицы
РС-2 мы получаем 48-битовый подключ Ьц, пригодный для выполнения XOR. Из-за того что
сдвиги зависят от номера шага, для создания каждого подключа используются различные
части исходного ключа.
Схемы работы алгоритма в разделе, посвященном криптографии, на странице Джона
Саварда (John Savard) по адресу http://home.ecn.ab.ca/~jsavard/crypto/entry.htm так хо-
роши, что мы не устояли перед искушением позаимствовать их. Иногда взгляд на иллюст-
рацию заменяет тысячи строка кода! На рис. 11.1 показано все, что мы только что описали,
причем слева представлена вся итерация DES, а справа - один шаг.

Правило Керчкоффа и секретность шифра


Возможно, вы задаетесь вопросом, почему внутреннее устройство шифра, являющегося
правительственным стандартом США, было опубликовано в открытой печати. Ответ таков:
засекречивание шифра не сулит ничего хорошего ни ему самому, ни его разработчикам и
пользователям. Еще в 1883 году Жан Гильямен Юбер Виктор Франсуа Александр Огюст Кер-
чкофф фон Нивенхоф (есть же люди с такими длинными именами) писал, что использован-
ный ключ и функция шифра - это две совершенно разных вещи, а секретность криптосис-
темы должна зависеть исключительно от ключа, но не от алгоритма. Примерно 111 лет
спустя неизвестный хакер опубликовал в Internet исходный текст патентованного нераз-
глашаемого алгоритма RC4, поместив его в список рассылки Cypherpunks. Вскоре после
раскрытия структуры RC4 были разработаны несколько атак против него (однако эти ата-
ки не связаны со слабостями протокола WEP, основанного на шифре RC4). Заметим, что
сотрудники компании RSA Data Security, Inc., разработавшей RC4, считаются отличными
криптографами и создали целый спектр различных промышленных шифров! Что же гово-
рить о мелких компаниях, заявляющих, будто они создали высокоэффективный и безопас-
ный секретный алгоритм шифрования? Зачастую они не могут предложить ничего боль-
шего, чем вариация на тему R0T13 с одним шагом XOR. Получается, что, когда речь заходит
о безопасности, у раскрытия структуры шифра, как и у раскрытия исходных текстов прог-
рамм, имеются свои преимущества, и одно из них - публичное исследование.
Еще одно преимущество открытости DES состоит в том, что теперь вы получили возмож-
ность узнать об S-блоках, подключах, расширяющих, сжимающих и чистых перестановках
на классическом, но все еще применяемом (напомним о шифре 3DES и унаследованном
криптографическом программном и аппаратном обеспечении) примере. Теперь будет го-
раздо проще объяснить, как работают шифры, созданные после DES, так что мы сэкономим
много места и времени.

Введение в стандарт 802.1 И: один шифр в помощь другому


В качестве уместного примера упомянем функцию перемешивания пакетного ключа в про-
токоле TKIP. Это пример компактного шифра Фейстеля, который разработали Дуг Уайтинг
2 3 8 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

(Doug Whiting) и Рональд Райвест (Ronald Rivest). Цель этой функции состоит в том, чтобы
выработать пакетный ключ из временного ключа и IV либо порядкового номера в TKIP
(TKIP Sequence Number - TSC). Полученный пакетный ключ служит безопасным начальным
значением для протокола WEP, за счет чего устраняется опасность атаки типа FMS. Началь-
ное значение можно вычислить перед использованием, что положительно сказывается на
производительности сети.
Рассмотрим более детально функцию перемешивания пакетного ключа в том виде, как она
описана в предварительном варианте стандарта 802.Hi, имеющемся на момент написания
книги. В предыдущей главе уже было сказано, что работа функции перемешивания состоит
из двух этапов. Оба они полагаются на S-блок, который подставляет одно 16-битовое значе-
ние вместо другого. Функция подстановки нелинейна и реализована в виде таблицы. Табли-
цу можно реализовать в виде линейного массива из 65536 элементов, индексируемого
16-битовым числом (всего требуется 128 Кб), или двух массивов по 256 элементов, каж-
дый из которых индексируется 8-битовым числом (1024 байт для хранения обоих масси-
вов). Если используются маленькие таблицы, то старший байт будет служить для выбора
16-битового числа из одной таблицы, а младший - для выбора из другой. В этом случае выхо-
дом S-блока является результат XOR над двумя выбранными 16-битовыми значениями.
Входные данные, подаваемые на вход первого этапа, - это 80 бит из 128-битового времен-
ного сеансового ключа (ТК), МАС-адрес передатчика (ТА) и 32 бит вектора инициализации
IV (TSC). На выходе первого этапа (ТТАК) получается 80 бит, представленных в виде масси-
ва из пяти 16-битовых значений ТТАКО, ТТАК1, ТТАК2, ТТАКЗ и ТТАК4. В описании алго-
ритма этапа 1 эти значения трактуются как 8-битовые массивы ТАО. . ТА5 и ТКб. . ТК12.
В вычислениях на этапе 1 используются операции XOR, ADD и поразрядное AND. Также
упоминаются счетчик цикла i и временная переменная j для хранения индекса. В проце-
дуре вызывается единственная функция, названная Мк16, которая порождает 16-битовое
значение из двух 8-битовых: M k l 6 ( X , Y ) = 256*X+Y.
Алгоритм этапа 1 состоит из двух шагов. На первом шаге ТТАК инициализируется на
основе IV и МАС-адреса, но без участия временного ключа. На втором шаге используется
вышеупомянутый S-блок для того, чтобы подмешать биты ключа в 80-разрядный ТТАК, а
переменной P H A S E 1 _ _ L 0 0 P _ C 0 U N T присваивается значение 8.
СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫХ ШИФРОВ 239

л
ТТАКЗ <= ТТАКЗ + S[TTAK2 « Mkl6(TK13 + J,TK12 + j) ]
л
ТТАК4 <= ТТАК4 + S[ТТАКЗ » Mkl6(TKl+j,TKO+j)]+i
end
Входными данными для второго этапа функции перемешивания временного ключа яв-
ляются результат работы первого этапа (ТТАК), тк и младшие 16 бит TSC. Созданное на-
чальное значение для WEP обладает внутренней структурой, согласующейся с исходной
спецификацией WEP. Первые 24 бит начального значения передаются открытым текстом
так же, как IV в старом варианте WEP. В предыдущей главе мы говорили, что эти 24 бит
служат для доставки младших 16 бит TSC от передатчика приемнику. Оставшиеся 32 бит
доставляются в поле Extended IV ( E i v ) в порядке big-endian (старший байт слева).
На этапе 2 значения тк и ТТАК представляются так же, как на этапе 1. Вырабатываемое
начальное значение для WEP является массивом из 8-битовых значений от SeedO до S e e d l 5 .
TSC трактуется как еще один массив, состоящий из 16-битовых значений TSC0-TSC2. Нако-
нец, в псевдокоде, описывающем алгоритм этапа 2 функции перемешивания, упоминается счет-
чик цикла i и переменная РРК. Длина этой переменной 128 бит, она представляет собой
массив 16-битовых значений, обозначаемых РРКО, ..., РРК7. При отображении 16-бито-
вых значений РРК на 8-битовые значения генерируемого начального значения явно предпо-
лагается порядок little-endian (старший байт справа). Так сделано из соображений совмести-
мости с архитектурой хранения целых чисел на большинстве процессов, применяемых для
реализации протокола TKIP.
В вычислениях, которые производятся на этапе 2, участвуют операции XOR, ADD, AND,
OR и поразрядный сдвиг вправо ( » ) . При этом используются четыре функции:
о Lo8 выделяет младшие 8 бит из 16-битового входного значения;
о H i 8 выделяет старшие 8 бит из 16-битового входного значения;
о R o t R l циклически сдвигает 16-битовый аргумент на один бит вправо;
о Мк16 уже встречалась при описании этапа 1.
Этап 2 состоит из трех шагов:
о на шаге 1 копируется Т Т А К и привносятся 16 бит TSC;
о шаг 2 - это применение S-блока;
о на шаге 3 привносятся оставшиеся биты тк и определяется 24-разрядное значение
IV, участвующего в протоколе WEP.
Вход: промежуточный ключ ТТАКО..ТТАК4, ТК и порядковый номер TKIP (TSC) .
Выход: WEPSeedO...WEPSeedl5
PHASE2-KEY-MIXING(ТТАКО..ТТАК4, ТК, TSC)
240 ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

end
r e t u r n WEPSeedO..WEPSeedl5
На шаге З этапа 2 вычисляются значения всех трех октетов IV. Алгоритм спроектирован
так, чтобы исключить появление известных слабых ключей. Принимающее устройство лег-
ко может реконструировать младшие 16 бит TSC, использованных передатчиком, путем
сцепления первого и третьего октетов IV (второй игнорируется). Оставшиеся 32 бит TSC
извлекаются из поля EIV. Итак, вы только что познакомились с любопытным случаем, ког-
да некоторый шифр специально был спроектирован и реализован с целью исправить недо-
Шифр
статок - это
другого еще не все: что такое режимы работы шифра
шифра.
Понимания принципов работа DES (равно как и любого другого симметричного блочного
шифра, не исключая только что описанную функцию TKIP и шифр AES, который будет при-
меняться в окончательной редакции стандарта 802.Hi) еще недостаточно. Очень важно
также разобраться в том, что такое режим работы шифра. DES позволяет зашифровать 64 бит
открытого текста и получить эквивалентный объем шифртекста, но что если нужно зашиф-
ровать лишь 50 бит? Или 128? Или 200? Или 31337?
Очевидное решение - разбить длинную строку на блоки по 64 бит и дополнить короткий
блок какой-то предсказуемой комбинацией нулей и единиц. Это самый простой ре>ким блоч-
ного шифра. Он называется режимом электронной кодовой книги (Electronic Codebook Mode -
ЕСВ). Иными словами, если х = хг х2 х 3 ..., то q - ek(Xi). К числу достоинств режима ЕСВ следует
отнести возможность параллельного шифрования и дешифрирования на многопроцессорных
системах и тот факт, что ошибка в шифртексте затрагивает только один блок данных. На этом
достоинства режима ЕСВ и заканчиваются. В достаточно длинной строке данных обычно встре-
чаются повторяющиеся последовательности, и разбиение на 64-битовые блоки не скрывает
повторов. Если на основе анализа таких последовательностей удастся сделать вывод о том,
какой фрагмент открытого текста соответствует фрагменту шифртекста, то можно провести
СТРУКТУРА И РЕЖИМЫ РАБОТЫ СОВРЕМЕННЫХ ШИФРОВ 2 4 1

атаку повтора сеанса. Например, мы можем установить, что зашифрованные сообщения - это
электронные письма, а повторяющиеся последовательности - их заголовки. Тогда можно вос-
произвести заголовок, чтобы отправить письмо конкретному адресату. Но вместо обычного
любовного послания в нем будет содержаться, скажем, программа на языке Visual Basic Script.
Другая проблема, характерная для режима ЕСВ, - это короткая длина блока. Мы обнару-
жили, что на машинах, работающих под управлением американской версии Debian Linux (в
которой из-за экспортных ограничений все еще используется DES в режиме ЕСВ для шифро-
вания пароля) максимальная длина пароля не может превышать 8 символов, а любой символ
сверх того никак не сказывается на зашифрованном значении (иными словами, система пу-
стит вас с паролем p a s s w o r d , даже если настоящий пароль password% / 4 *&) ) @! # 0 x 6 9 ) .
Таким образом, возрастают шансы на успешное завершение атаки по словарю или методом
полного перебора. Если вспомнить, что размер блока равен 64 бит, а один ASCII-символ за-
нимает один байт, то причина указанного явления становится очевидной. И все же большин-
ство администраторов, которым мы сообщили о нашем открытии, были озадачены. Иногда
знание теории оказывается полезнее, чем может показаться на первый взгляд.
Подводя итог, скажем, что режим ЕСВ имеет смысл использовать для шифрования корот-
ких строк, например PIN-кодов или записей базы данных (возможность параллельного
шифрования и дешифрирования больших баз данных иногда оказывается весомым преиму-
ществом). Но для шифрования сильных паролей или больших объемов данных на него
полагаться не стоит.
Чтобы решить проблему воспроизведения, нужно сцепить 64-битовые блоки данных так,
чтобы они стали взаимозависимыми. Поэтому далее мы рассмотрим режим сцепления бло-
ков шифртекста (Cipher Block Chaining - СВС). Идея в том, чтобы выполнить операцию
XOR между блоком открытого текста и ранее полученным блоком шифртекста еще перед
тем, как шифровать открытый текст. Но при шифровании самого первого блока еще нет
никакого шифртекста, поэтому вводится новый параметр - вектор инициализации (IV). Это
всего лишь блок случайных данных того же размера, что и используемый в шифре (64 бит
для DES и многих других симметричных шифров). Это может быть временной штамп, зна-
чение, полученное от «устройства» /dev/urandom, или еще что-нибудь. IV необязательно
держать в секрете, можно его передавать в открытом виде. Считайте, что это фиктивный
зашифрованный блок. Именно так и обстоит дело в протоколе WEP, где IV передаются в
беспроводной сети в открытом виде. Дешифратор заталкивает IV в регистр обратной связи
перед началом дешифрирования, а потом он уже не используется. Повторим схему режима
СВС. Пусть х = ха х2 х 3 ... х п . Тогда

Из-за применения IV шифртексты, получающиеся из открытых текстов, первые несколь-


ко байтов которых схожи (например, заголовки протоколов LLC SNAP или IP), будут суще-
ственно различаться. У режима СВС есть два основных недостатка:
о сцепление делает невозможным параллельное шифрование (хотя параллельное де-
шифрирование реализуемо);
о ошибка в одном блоке распространяется на все последующие (сцепленные с ним),
что, скорее всего, приведет к необходимости повторной передачи.
2 4 2 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

Но мы по-прежнему шифруем блоки фиксированного размера, неважно, сцепляются они


или нет. А если нужно шифровать меньшие блоки или осуществлять шифрование бит за
битом, не дожидаясь, пока придет целый блок? Для некоторых приложений (например,
удаленных командных оболочек) данные нужно шифровать сразу - символ за символом
(то есть 8-битовые блоки). У этой проблемы есть два решения: режимы с обратной связью
по шифртексту (Cipher Feedback - CFB) и с обратной связью по выходу (Output Feedback -
OFB). В режиме CFB мы начинаем помещать блоки генерируемого шифртекста в зашифро-
ванное значение IV, а не в открытый текст:

za-ek(IV)
л
С а = Xj = Z,
z 2 = e k (сг)
c2 - x2 л = z2

В отличие от режима СВС, режим CFB позволяет посылать зашифрованные данные как от-
крытый текст, а к z применяется операция XOR. В режиме СВС q генерируется путем шифрова-
ния, а не XOR с ранее зашифрованными данными, а это значит, что можно посылать только
блоки того размера, который определен для шифра. Конечно, генерировать ъ, перед каждым
выполнением XOR накладно с точки зрения быстродействия и пропускной способности. Есть
оценка, согласно которой производительность шифрования в режиме CFB уменьшается в
m/n раз, где m- это размер блока шифра, a n - число битов, шифруемых за раз. Например,
шифр с размером блока 64 бит, применяемый для шифрования ASCII-символов в режиме CFB,
будет работать в 64 / 8 = 8 раз медленнее, чем тот же шифр, применяемый для шифрования
64-битовых блоков в режиме ЕСВ или СВС. Замечание о распараллеливании шифрования в ре-
жиме СВС относится и к режиму CFB. Но ошибка в блоке шифртекста распространится только
на соответствующий ему открытый текст и следующий полный блок.
Наконец, в режиме OFB нет сцепления блоков, а значит, нет и распространения ошибок.
С другой стороны, блоки данных перестают быть взаимозависимыми, поэтому необходима
какая-то форма внешней синхронизации (например, что-то подобное алгоритму CSMA/CA
в сетях 802.11). Чтобы избавиться от сцепления, в режиме OFB из IV генерируется поток
констант Zi, и между ними и открытым текстом выполняется операция XOR для шифрова-
ния данных; z{ не зависят ни от открытого текста, ни от шифртекста:

z, - e k (IV)

z i = e k (z i _ 1 )
л
Q = Xi = Zi

Поскольку существует лишь один поток Zi ъ, для шифрования и дешифрирования, то распа-


раллеливание невозможно ни в том, ни в другом случае. Следовательно, число процессоров на
посылающем и принимающем хостах не влияет ни на скорость работы шифра в режиме OFB, ни
на пропускную способность. Правило m/n применимо к режиму OFB в той же мере, что и к CFB.
А что можно сказать относительно режима счетчика (ССМ), используемого в стандар-
те 802.Hi для шифра AES (Advanced Encryption Standard)? Он аналогичен только что рас-
смотренному режиму OFB. В режиме OFB OFB очередное
очередное значение
значение Zj
ъх вычисляется из предыду-
^ == eek (Zi_
щего по формуле Zj ). В режиме ССМ все еще проще: значения IV, получающиеся
k (z i _a1 ). В режиме ССМ все
ПОТОКОВЫЕ ШИФРЫ И БЕЗОПАСНОСТЬ В БЕСПРОВОДНЫХ СЕТЯХ 2 4 3

из монотонно увеличивающегося счетчика, шифруются и объединяются посредством XOR


с блоками открытого текста, в результате чего и получается шифртекст:

% - е к (IV)
Л
Ci = X l = гг

Наличие параметра п призвано подчеркнуть тот факт, что начальное значение может быть
произвольным, а увеличиваться он может на любую выбранную константу или по некоторо-
му правилу. На практике предполагается, что IV инициализируется на основе случайной
строки (попсе), которая изменяется для каждого сообщения. Таким образом решается про-
блема повторяющихся блоков в режиме ЕСВ. Конечно, получатель должен знать и IV, и п, то
есть способ получения п необходимо стандартизировать, а IV передавать (возможно, в неза-
шифрованном виде) перед началом безопасного обмена данными. После того как приемник
и передатчик синхронизовались, для дешифрирования приходящих данных на приемном
конце нужно лишь выполнить XOR. Поэтому отпадает нужда в специальной схеме дешифри-
рования AES, а процедуры шифрования и дешифрирования можно распараллелить. Важный
момент заключается в том, чтобы избежать повторного использования IV (вспомните о про-
блеме повторяющихся блоков в режиме ЕСВ и атаке FMS на протокол WEP). Но резервирова-
ния 48 бит для IV, по идее, достаточно, чтобы эта проблема не возникала. Мы посчитали, что
на полнодуплексном канале 100BaseT (размер пакета 1500 бит) для исчерпания всего про-
странства 48-битовых IV потребуется 127 лет, а современные беспроводные каналы пока еще
медленнее, чем 100BaseT, и размеры пакетов в них обычно больше.

Потоковые шифры и безопасность


в беспроводных сетях
Потоковые алгоритмы были придуманы для того, чтобы избежать падения скорости и пропус-
кной способности, неизбежного из-за особенностей реализации блочных шифров в режимах
CFB и OFB, применяемых для побитового шифрования данных. Идея потоковых шифров состо-
ит в том, чтобы генерировать идентичные гаммы на стороне шифратора и дешифратора. Для
шифрования и дешифрирования над открытым текстом и гаммой выполняется операция XOR.
Для порождения гаммы применяются генераторы псевдослучайных чисел (PRNG), поэтому
потоковые алгоритмы находятся где-то посередине между легко взламываемым шифром на
базе XOR с предопределенным ключом и невзламываемым, но трудно реализуемым одноразо-
вым блокнотом. Генераторы псевдослучайных чисел строятся на базе алгоритмов, которые
вырабатывают на первый взгляд случайные, но все же воспроизводимые числа. Поскольку
выработанную последовательность можно воспроизвести, то она не является истинно случай-
ной. Однако результаты работы генератора должны выдержать целый ряд специально спроек-
тированных тестов на случайность. Хорошим источником информации по генераторам псев-
дослучайных чисел, где можно найти исходные тексты, а также подробное описание тестов,
является сайт http://random.mat.sbg.ac.at/. Предложения правительства США, стандарты
и требования к случайности результатов работы генераторов, а также критерии их оценки
опубликованы на странице http://csrc.nist.gov/encryption/ tkrng.html. Генератор получа-
ет на входе некоторые данные (называемые начальным значением (seed)) и на их основе
2 4 4 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

вырабатывает числа, которые выглядят случайными. Если взять другое начальное значение,
то будут вырабатываться другие числа. Если же начальные значения одинаковы, то совпада-
ют и результаты. Если раз за разом подавать на вход одно и то же начальное значение, то
криптосистема станет предсказуемой и ее можно будет вскрыть. Поэтому часто использует-
ся начальное значение большого размера, чтобы максимизировать объем шифртекста, кото-
рый придется собрать потенциальному противнику для выявления повторяющихся строк.
Именно поэтому начальные значения потоковых шифров не используются в качестве клю-
чей (как вам понравится ключ из 65535 бит?).
Разумеется, гаммы на обоих концах необходимо синхронизировать, иначе криптосисте-
ма работать не будет. Синхронизация может быть обеспечена самим алгоритмом шифра.
Такие потоковые шифры называются самосинхронизирующимися. В самосинхронизирую-
щемся шифре каждый бит гаммы зависит от фиксированного числа предыдущих битов
шифртекста. Значит, самосинхронизирующиеся шифры очень похожи на работу блочных
шифров в режиме CFB. Но можно обеспечить синхронизацию и внешними средствами, так
что она не будет зависеть от потока шифртекста. Такие потоковые шифры называются син-
хронными. Вероятно, вы догадались, что они работают примерно так же, как блочные шиф-
ры в режимах OFB или ССМ (AES в сетях 802.Hi).
На сегодня самым распространенным потоковым шифром является синхронный шифр
RC4, о котором мы уже говорили при обсуждении принципа Керчкоффа. Этот шифр по
умолчанию применяется в протоколах SSL и WEP. В RC4 используются ключи с длиной от 0
до 256 бит. Применяется S-блок размером 8x8 для выполнения перестановок чисел от 0 до
255. Перестановка является функцией ключа. Шифр RC4 работает очень быстро, примерно
в 10 раз быстрее DES. Для получения максимальной производительности RC4 следует реа-
лизовывать аппаратно, как сделано в карте Cisco Aironet и во многих других беспроводных
клиентских картах для реализации WEP. Быстродействие и является одной из основных
причин, почему RC4 так широко применяется в сетевых протоколах. А как же история с
взломом WEP, которую мы поведали в главе 8?
Следует отличать пороки самих шифров и их практической реализации. Слабость WEP
обусловлена не недостатками шифра RC4 как такового. RC4 выступает в роли генератора
псевдослучайных чисел. Начальным значением для него служит комбинация секретного
ключа (который не меняется и одинаков для всех хостов в беспроводной сети) и вектора
инициализации IV, который и делает начальное значение уникальным. В протоколе WEP
вектор IV занимает всего 24 бит - для криптографии это очень мало. Неудивительно, что
после передачи достаточно большого объема данных в загруженной сети IV начинают по-
вторяться. Но ведь выбор начального значения слишком малого размера - это не проблема
генератора. На самом деле, в протоколе SSL ключи RC4 порождаются для каждого сеанса, а
не единожды, как в классическом статическом варианте WEP. Поэтому для вскрытия SSL
взломщик не сможет накопить достаточный объем данных для атаки на RC4, по крайней мере
теоретически. В технологии HomeRF, ныне уже почти не применяемой (FHSS вместо 802.11b),
размер IV составляет 32 бит, что заметно повышает безопасность по сравнению с сетями на
базе стандарта 802.11b. Вместо того чтобы увеличивать длину IV, можно пойти по пути SSL
и реализовать сеансовые или даже пакетные ключи и автоматически ротировать их по исте-
чении короткого промежутка времени. Сеансовые и ротируемые ключи лежали в основе пер-
воначального проекта устройств Cisco SAFE, а в спецификации 802.11i/WPA применяются как
увеличенного размера IV (48 бит), так и динамическая ротация ключей. Наконец, компания
RSA Labs предложила довольно простое и элегантное решение проблемы слабых IV в прото-
коле WEP (с его деталями можно познакомиться на странице http://www.rsasecurity.com/
ЗАПРОС НА РАЗРАБОТКУ СТАНДАРТА AES 2 4 5

rsalabs/ technotes/wep.html). Криптографы из RSA вычислили, что если бы в WEP можно было
отбросить первые 256 байт, выработанных генератором гаммы, перед тем, как гамма начина-
ет объединяться с открытым текстом посредством XOR, то в беспроводной сети не было бы
слабых IV. К сожалению, эта методика, равно как и упомянутое раньше предложение RSA по
быстрому изменению ключей в пакетах, несовместима со все еще широко распространенной
реализацией WEP. Тем не менее IEEE вместе с производителями беспроводного оборудования
и программного обеспечения постепенно исправляются, о чем свидетельствует появление
802.11/i/WPA, Cisco SAFE и Agere/Proxim WEPPlus.

Запрос на разработку стандарта AES


В отличие от только что рассказанной истории с WEP, шифру DES все же свойственны внут-
ренние пороки. Хотя сам алгоритм достаточно безопасен, но размер ключа в нем составляет
всего 56 бит. Возможно, в те времена, когда DES проектировался, этого хватало, но с 1974 года
мощности вычислительных устройств неизмеримо выросли. Интересно, что проектировщи-
ки DES, вероятно, предвидели такое развитие событий и с самого начала предложили ключ
длиной 128 бит. Но Агентство национальной безопасности отвергло это предложение по
причинам, которые не вполне ясны (а может быть, наоборот, совершенно очевидны) истин-
ному поборнику безопасности, так что в стандарте остался DES с 56-битовым ключом. В ию-
ле 1998 года был создан фонд Electronic Frontier Foundation (EFF, http://www.eff.org), ко-
торый профинансировал проект создания машины для взлома DES стоимостью меньше
250 тыс. долл., а на сайте http://www.distributed.net стартовал проект создания массив-
но-параллельного программного обеспечения для взлома DES методом полного перебора.
19 января было сообщено о взломе DES за 56 ч, при этом проверялось 88 млрд ключей в
секунду. На этом был завершен конкурс по взлому DES, спонсированный компанией RSA
Labs. На повестку дня был поставлен вопрос о новом улучшенном стандарте.
Не дожидаясь, пока DES будет взломан, 2 января 1997 года Национальный институт стан-
дартов и технологий (NIST, http://www.nist.gov/) объявил о начале разработки стандарта
AES и опубликовал формальное предложение подавать заявки до 12 сентября 1997 года.
В условиях было сказано, что AES должен быть несекретным, опубликованным в печати ал-
горитмом шифрования, доступным без лицензионных отчислений во всем мире. Кроме
того, алгоритм должен реализовывать блочный симметричный шифр и поддерживать бло-
ки размером 128 бит, а ключи длиной 128,192 и 256 бит. Состязание началось. 20 августа
1998 года на Первой конференции кандидатов AES (AES1) NIST назвал 15 кандидатов на
звание шифра AES, а именно: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI 197,
MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpend и Twofish. После Второй конференции канди-
датов AES (AES2), проходившей 22 и 23 марта 1999 года в Риме, осталось только пять кан-
дидатов: MARS, RC6, Rijndael, Serpend и Twofish. Эти финалисты были признаны одинаково
безопасными, но еще надо было представить эффективную, быструю и нетребовательную
к ресурсам реализацию. Наконец, 2 октября 2000 года NIST объявил, что в качестве стан-
дарта AES выбран шифр Rijndael.
Ниже мы кратко оценим всех финалистов конкурса, а также шифры Blowfish, IDEA и
3DES, предоставив вам возможность выбрать для своего хоста, сети или программного обес-
печения наиболее подходящий вариант. Делая выбор, следует учитывать производитель-
ность, способ реализации, лицензионные ограничения, а также безопасность шифра.
2 4 6 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

Для фирмы, занимающей консалтингом в области сетевой безопасности (например, Arhont,


http://www.arhont.com), любое ухудшение качества сети может означать разрыв контрак-
та и утрату репутации. Руководители, которые приглашают внешних консультантов, не
понимают разницы между DES, 3DES и AES. Но зато они прекрасно знают, что делать, когда
в кабинет врывается толпа пользователей с криками: «Эти ребята тут нахимичили, и сеть
стала работать безумно медленно!». Попробуйте угадать, что за этим последует.
Имеет смысл составить список тех свойств выбранного шифра, которые могут повлиять
на качество обслуживания:
о шифрование данных занимает канал, уменьшают пропускную способность и мо-
жет стать причиной увеличения числа потерянных пакетов. Вопрос в том, какой
уровень потерь считать допустимым и как минимизировать побочные эффекты
повышенной безопасности за счет правильного выбора криптосистемы для дан-
ной сети. Хотя беспроводные сети и становятся все быстрее, но полоса пропус-
кания и пропускная способность у них все же ниже, чем у проводных аналогов.
Кроме того, в них используется разделяемый физический носитель. Таким обра-
зом, выбирая VPN в качестве механизма обеспечения безопасности беспроводной
сети, надо трижды подумать;
о увеличение числа шагов в итерации хотя и повышает безопасность, но потребляет
больше ресурсов процессора. Сможет ли процессор на шлюзе в беспроводную сеть
справиться с повышенной нагрузкой?
о команда умножения не является «родной» для процессоров ниже Pentium II и ориги-
нальных (не ULTRA) Sparc. Маловероятно, что она будет реализована аппаратно на
многих КПК. В процессорах Intel Itanium нет команды циклического сдвига на пере-
менное число позиций, а умножение выполняется в устройстве FPU (с плавающей
арифметикой), а не IU (с целочисленной арифметикой). Шифры, в которых применя-
ются операции умножения, на таких процессорах будут работать медленно. В случае с
Itanium не стоит выбирать шифры, использующие циклический сдвиг. Интересно от-
метить, что даже в тех случаях, когда у процессора есть команда циклического сдвига,
не все компиляторы ею пользуются, что вносит дополнительные сложности;
о если при шифровании приходится манипулировать очень большими числами, то у
тех процессоров, которые реализуют высокопроизводительные вычисления с целы-
ми числами, будет преимущество перед процессорами, где оптимизированы вычис-
ления с плавающей точкой;
о все описываемые шифры были протестированы с 8-, 32- и 64-разрядными процессо-
рами. Производительность, конечно, менялась, так что шифр, хорошо работающий
на 32-разрядном ЦП, совсем необязательно будет так же хорошо работать на 8- или
64-разрядном;
о скорости шифрования и дешифрирования тоже необязательно совпадают. Часто,
хотя и не всегда, дешифрирование работает медленнее. Имейте это в виду, когда
выбираете платформу для размещения служб шифрования и дешифрирования;
о производительность различных шифров может меняться в зависимости от режима
работы. Шифр, достаточно быстро работающий в режиме ЕСВ, может никуда не го-
диться в режиме OFB, и наоборот;
о скорость и эффективность шифра обычно оказываются выше, если он реализован на
языке ассемблера, а не на С. При реализации на языках еще более высокого уровня
быстродействие также падает. Хотя по традиции принято считать, что аппаратные
ЗАПРОС НА РАЗРАБОТКУ СТАНДАРТА AES 2 4 7

реализации шифрования самые быстрые, но на практике это зависит как от шифра,


так и от оборудования;
о генерация и хранение больших подключен негативно сказываются на объеме по-
требляемой памяти. Особенно важно это для устройств с ограниченным объемом
памяти, например смарт-карт;
о S-блоки - это либо таблицы, как в случае DES, либо реализуются алгебраически.
Большие табличные S-блоки также могут занимать недопустимо много памяти на
устройствах, где ее объем ограничен. Алгебраические S-блоки считаются менее бе-
зопасными.
С точки зрения безопасности все пять кандидатов на звание AES, а равно шифры
3DES и Blowfish, одинаково стойки. Поэтому основными критериями выбора шифра ста-
новятся доступность, легкость реализации и производительность. Стоит обратить вни-
мание на такой критерий, как порог безопасности (security margin). Так называется
число шагов в итерации, при превышении которого невозможна эффективная атака на
алгоритм, в результате чего приходится прибегать к полному перебору всех возмож-
ных ключей.
Еще один довольно любопытный момент - это устойчивость шифров к атакам, связан-
ным с энергопотреблением и с хронометражем. Эти атаки по природе своей имеют физи-
ческий, а не математический характер. Атаки с хронометражем основаны на анализе
того, сколько времени тратится на исполнение команд, когда устройству или программе,
реализующей шифр, подаются на вход разные аргументы. В атаках, связанных с энерго-
потреблением, анализируется, какое количество энергии потребляет устройство в зави-
симости от аргументов. Общая линия защиты от атак с хронометражем - одновременное
шифрование и дешифрирование. Защита от атак, связанных с энергопотреблением, бо-
лее сложна, возможно, придется задействовать программную балансировку, например
замаскировать истинное энергопотребление путем одновременной обработки всех про-
межуточных данных итерации и использования одних и тех же базовых команд. В усло-
виях, требующих максимальной безопасности, придется выбирать шифры, в которых ус-
тойчивость к описанным атакам обеспечивается самой природой выполняемых команд.
Так, поиск в таблице, применяемый в реализации S-блоков в DES, операции сдвига и цик-
лического сдвига на фиксированное число позиций, а также булевские операции NOT,
OR, AND и XOR неуязвимы для атак с хронометражем, а защитить их от атак, связанных с
энергопотреблением, можно программной балансировкой. Защитить операции сложения
и умножения труднее, а операции деления, возведения в квадрат и сдвига на переменное
число позиций - очень трудно.
Теперь, узнав кое-что о производительности и ресурсопотреблении в прикладной крип-
тографии, мы можем двинуться дальше и оценить пригодность известных симметричных
блочных шифров с точки зрения построения нашей сети.

AES (Rijndael)

Начнем с официального стандарта AES или шифра Rijndael который предложили бельгийские
математики Винсент Риджмен (Vincent Rijmen) и Джоан Димен (Joan Daemen). Материалы кон-
ференции FIPS197, на которой был анонсирован и детально описан алгоритм AES, находятся на
сайте NIST (http://csrc.nist.gov/publications/ fipsl97/fips-197.pdf). Адрес персонального сайта
авторов шифра Rijndael - http://www.esat.lmleuven.ac.be/~rijmen/rijndael/. AES поддерживает
248л ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

следующие длины ключей и блоков открытого текста: 128,192и256 бит. Одна из уникаль-
ных особенностей шифра Rijndael - зависимость числа шагов от длины ключа: R = К/32 + 6,
то есть для ключей длиной 128,192 и 256 бит будет выполнено соответственно 10,12 и
14 шагов. В шифре Rijndael используются четыре операции:
о подстановка байтов, это частный случай нелинейной перестановки, реализуемый с
помощью одного табличного S-блока;
о сдвиг строки, то есть циклический сдвиг;
о операция перемешивания столбца, это линейное преобразование;
о добавление шагового ключа.
Длина шагового ключа равна длине шифруемого блока. Шифруемый блок представля-
ется в виде прямоугольного массива из четырех строк. Каждый байт массива объединяется
посредством XOR с соответствующим байтом подключа, тоже представленного в виде мат-
рицы. На последнем шаге AES операция перемешивания столбца опускается.
Функция развертки ключа включает расширение ключа и выбор шагового ключа. Об-
щее требуемое число битов ключа равно N(R + 1), где N - длина блока, a R - число
шагов. Для ключей длиной больше и меньше 192 бит применяются разные функции
расширения.
Снова приходят на помощь изображения структуры шифра с сайта Джона Саварда, на
этот раз на них представлены схемы, иллюстрирующие как работу, так и изящество шифра
Rijndael (рис. 11.2 и 11.3).
Шифр Rijndael хорошо работает на 8-, 32- и 64-разрядных процессорах. Из всех про-
тестированных архитектур наиболее эффективной оказался процессор Itanium. Шифр
Rijndael показал наилучшую производительность на устройствах с ограниченной па-
мятью и вычислительной мощностью - вдвое быстрее конкурентов - и для его реали-
зации потребовалось гораздо меньше места в ПЗУ и ЗУПВ. Он также не имел равных во
всех режимах с обратной связью, а в режимах ЕСВ/СВС занял второе место. Его порог
безопасности равен 7, при том, что минимальное число шагов в реализации составляет
120 (для ключа длиной 128 бит). Разница в производительности шифрования и дешиф-
рирования несущественна. Увеличение длины ключа со 128 до 192 и со 192 до 256 байт
ведет к падению производительности соответственно на 20 и 40% за счет увеличения
ЗАПРОС НА РАЗРАБОТКУ СТАНДАРТА AES 2 4 9

числа шагов. При аппаратной реализации шифр Rijndael продемонстрировал очень вы-
сокую производительность, сопоставимую только с Serpent (в режиме ЕСВ). Поскольку в
Rijndael используются лишь операции сдвига и циклического сдвига на фиксированное
ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

число позиций, булевские операции и поиск в таблице, то он достаточно устойчив к


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

Шифр MARS
Еще один кандидат на роль стандарта AES - шифр MARS, предложенный компанией IBM, из-
вестен своей относительной сложностей и большим числом шагов. Создатели шифра MARS
утверждают, что его гетерогенная структура сознательно выбрана для противостояния еще
неизвестным атакам.
Размер блока в шифре MARS составляет 128 бит, а длина ключа может меняться от 128 до
448 бит. Открытый текст представляется в виде четырех блоков по 32 бит. Итерация в шифре
MARS состоит из четырех фаз.
На фазе 1 п 32-байтовых слов ключа (4 < п < 14) расширяются до 40 32-байтовых слов
подключей с помощью функции расширения. Затем блоки данных объединяются посредством
XOR со словами ключа, вслед за чем выполняется 8 шагов, в которых ключ вообще не исполь-
зуется. Для этого служат два фиксированных S-блока.
Фаза 2 - это основной гарант безопасности шифра MARS, она состоит из 16 шагов преоб-
разований с использованием функции расширения Е (рис. 11.4).
Функция Е принимает на входе слово ключа и складывает его со словом данных, вырабо-
танным на фазе 1. Затем результат умножается на второе слово ключа, которое должно быть
нечетным. После этого данные ищутся в фиксированном S-блоке (см. предыдущую фазу),
объединяются посредством XOR с произведением слова ключа на слово данных и подверга-
ются двум циклическим сдвигам в зависимости от младших пяти битов вышеупомянутого
произведения. Результат функции Е имеет длину 32 х 4 = 128 бит. Шаг, показанный на схеме,
это один из восьми прямых шагов; за ним следуют 8 обратных (с точки зрения направления
циклического сдвига) шагов.
Наконец, на фазе 3 выполняется 8 обратных шагов перемешивания без участия ключа, то
есть по существу это обращение фазы 1. Итого получается 8 x 2 + 32= 48 шагов, впечатляю-
щая цифра! Вопреки видимости, шифр MARS не слишком сложен для программной реализа-
ции, по крайней мере с точки зрения числа строк кода. Если учесть все шаги, кроме тех, в
которых ключ не участвует, то порог безопасности MARS окажется равен 21, что на целых
11 шагов больше необходимого.
Однако гетерогенность шифра MARS плохо сказывается на производительности и потреб-
лении ресурсов. Скорость и пропускная способность программной реализации сильно зави-
сят от того, как конкретная комбинация процессора и компилятора умеет справляться с опе-
рациями умножения и циклического сдвига на переменное (зависящее от данных) число
позиций. У процессоров РП/РШ это не вызывает сложностей, но в один прекрасный день вы
можете перейти на Itanium, UltraSPARC или иную архитектуру, в которой такие операции
поддерживаются хуже. Не исключено, что в этом случае шифрование и дешифрирование по
алгоритму MARS (их скорости почти одинаковы) станут узким местом. С другой стороны, про-
изводительность MARS, похоже, не зависит от длины ключа, так что можно без опаски сразу
задействовать максимальную длину 448 бит. При аппаратной реализации и пропускная спо-
собность, и эффективность шифра MARS оказываются ниже среднего. Кроме того, он не очень
пригоден для устройств с ограниченной памятью, например, смарт-карт: даже само количе-
ство подключей говорит о том, что требования к объему ПЗУ и ЗУПВ должны быть высоки.
ЗАПРОС НА РАЗРАБОТКУ СТАНДАРТА AES 2 5 1

Рис. 11.4. Принципиальная схема работы шифра MARS

Шифр RC6
Еще один финалист конкурса на звание AES, в котором используются операции умножения
и много 32-битовых подключен, - это шифр RC6, предложенный компанией RSA Labs. У не-
го есть лицензионные ограничения: при подаче на конкурс было оговорено, что в случае
победы шифр станет нелицензируемым (так как по условиям конкурса это было обязатель-
но для AES), в противном случае останется лицензируемым. Число шагов в шифре RC6 и
размеры блоков переменны, а длина ключа может составлять до 2040 бит (что очень много
для симметричного блочного шифра). Но для конкурса на звание AES были выбраны
32-разрядные слова, 16 шагов и ключи длиной 128, 192 и 256 бит.
Шифр RC6 базируется на патентованном шифре RC5, для которого в настоящее время
разрабатывается атака (http://www.distribute.net).
Как и большинство симметричных блочных шифров, пришедших на смену DES, RC6 ос-
нован на шагах Фейстеля. Но вместо того чтобы разбивать блок на две части (левую и
правую) и выполнять операции над ними, RC6 разбивает каждую половину еще на два сло-
ва (отсюда и 32-битовые слова) и на каждом шаге манипулирует половинками половин.
В шифре RC6 генерируется 44 подключа длиной 32 бит каждый. Блок открытого текста раз-
бивается на четыре 32-битовых слова, обозначаемых А, В, С и D. При шифровании данных
предполагается порядок little endian: младший байт шифруется первым. На первом шаге
выполняется XOR между В и первым подключом, а также между D и вторым подключом.
2 5 2 ^ ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

На следующем шаге берутся третий и четвертый подключи и т.д. Всего шагов 20. После
завершающего шага выполняется XOR между А и 42-м подключом, а также между С и 43-м.
Что происходит на одном шаге? Главная функция проста: f(x) = х*(2х + 1). Полученный
результат циклически сдвигается влево на 5 бит, затем выполняется XOR между ним и дру-
гим словом. Функция f(x) оперирует только словами В и D. Поскольку в версии RC6, пред-
ставленной на конкурс, было 16 шагов, а умножению подвергаются два слова из четырех,
то всего получается 16 х 2 = 32 операций умножения. Результаты вычисления f(B) и f(D)
после циклического сдвига влево объединяются посредством XOR с А и С соответственно.
Младшие 5 бит полученных значений определяют, на сколько позиций будут в дальней-
шем циклически сдвинуты влево слова А и С. Таким образом, мы получаем 1 6 x 2 = 32 опе-
раций циклического сдвига на переменное число позиций. Наконец, между парой подклю-
чей, используемых на одном шаге, и словами А и С выполняется XOR, а затем все четыре
четвертинки меняются местами: А становится D, В - А, С - В, a D - С.
Подключи для всех шагов вырабатываются функцией развертки, которая дополняет ключ
нулями, чтобы его длина стала равна целому числу слов. Всего генерируется 2 х число ша-
гов + 4 ключа, что для варианта, представленного на конкурс, составляет 2 х 20 + 4 = 44.
Дополненный ключ загружается в массив L в порядке little endian. Для дополнительного
перемешивания используются два сдвига влево: один на 3 позиции и еще один на пе-
ременное число позиций. Размер выходного массива S регулируется двумя константами
Р и Q: S [0] = Р; for i = 1 to 2 х число_шагов + 3 do S [i] = S [j - 1] + Q, где i и j - номера
двух подключей в массиве. Для любопытных скажем, что Р = е - 2, где е - основание натураль-
ных логарифмов, Q - отношение золотого сечения [\[5 + 1)/2] - 1. На случай, если где-нибудь
в баре вас спросят, чему эти числа равны, запомните: Р = 0хЬ7е15162 и Q = 0х9е3779Ь9.
Для шифра RC6 порог безопасности составляет 16 шагов (из 20). Дешифрирование, по-
хоже, выполняется чуть быстрее шифрования. Будучи реализован аппаратно, RC6 показы-
вает вполне приемлемую производительность. Зато в случае программной реализации
производительность существенно зависит от поддержки процессором команд умножения
и циклического сдвига на переменное число позиций (соображения, высказанные выше по
поводу производительности шифра MARS, относятся и к RC6). Кроме того, из-за наличия
этих операций RC6 (как и MARS) трудно защитить от атак, связанных с энергопотреблени-
ем и хронометражем. Следует отметить, что RC6 работает очень быстро на подходящей
аппаратной архитектуре, например на процессорах РП и РШ, а будучи реализован на язы-
ке С, превосходит всех остальных кандидатов на звание AES (см. отчет о производительно-
сти AES на странице http://fp.gladman.plus.com/cryptography_technology/aes/). Однако
его производительность на 8- и 64-разрядных процессорах уже не так впечатляет. Выби-
рая RC6, вы должны задуматься о масштабируемости, в частности о возможном переходе
на 64-разрядные процессоры или архитектуры типа UltraSPARC и Itanium, в которых нет
аппаратной поддержки для умножения и сдвига на переменное число позиций. Шифр RC6
потребляет не очень много постоянной памяти, так как в нем нет больших таблиц. Но низ-
кая производительность на 8-разрядных процессорах - это минус при попытке использо-
вать его в дешевых устройствах. Кроме того, подключи RC6 следует предварительно вы-
числить и сохранить в памяти, поэтому требуемый объем оперативной памяти для RC6
выше, чем для остальных кандидатов. Таким образом, RC6 нельзя назвать идеальным крип-
тографическим решением для устройств с ограниченными ресурсами и объемом памяти.
В режимах ЕСВ и СВС шифр RC6 работает лучше, от длины ключа его производительность
почти не зависит.
ЗАПРОС НА РАЗРАБОТКУ СТАНДАРТА AES 253

Шифр Twofish
Если шифр RC6 может похвастаться простотой, то шифр Twofish, изобретенный Брюсом Шней-
ером (Bruce Schneier), напротив, известен своей сложностью, хотя, на взгляд авторов, это пред-
ставление не совсем верно. Так или иначе, Twofish существует уже довольно давно, он был под-
вергнут серьезному криптоанализу и применяется во многих программных продуктах. Полный
список программ, в которых используется Twofish, можно найти на странице автора http://
www.counterpane.com/twofish-products.html. В этом списке не упомянута (во время работы над
книгой) программа Nessus (http://www.nessus.org). Если вы каким-то боком причастны к сете-
вой безопасности, то знаете, что она делает, и наверняка не раз ею пользовались. Все данные,
которыми обмениваются клиент и сервер Nessus, зашифрованы Twofish. Причина популярнос-
ти шифра Twofish и его предшественника Blowfish в том, что и сам алгоритм, и реализующий
его исходный код свободны от каких-либо лицензионных ограничений.
В шифре Twofish используется 16 шагов, блоки размером 128 бит и ключ длиной 256 бит
(хотя длина ключа может быть и меньше), из которого порождается сорок 32-битовых
подключей. Как и в случае RC6, блок открытого текста разбивается на четыре подблока по
32 бит в формате little-endian. Обозначим эти подблоки (или слова) Q0 - Q3. До передачи
этих слов на первый шаг и по завершении последнего шага производится операция так назы-
ваемого обеления (whitening), чтобы повысить уровень перемешивания шифра. Ее смысл со-
стоит в выполнении XOR между словами и подключами до и после всех шагов, причем подклю-
чи, использованные для обеления, больше уже в шифре не задействуются. Таким образом
удается скрыть данные, подаваемые на вход итерации и возвращаемые в качестве ее выхода.
Шаг шифра Twofish начинается с циклического сдвига слова Q3 на 1 бит влево. Затем
Q0 и Q1 циклически сдвигаются влево на 8 бит. После этого данные пропускаются через
четыре 8-битовых зависящих от ключа S-блока. Результат умножается на так называемую
MDS-матрицу. Вот как она выглядит:

Результат перемножения матриц подается на вход перемешивающего псевдоадамарова


преобразования (Pseudo-Hadamard Transform - РНТ). Если обозначить входные данные как
а и Ь, то 32-битовое преобразование РНТ определяется так:

Далее первый подключ прибавляется к значению, полученному из Q0, и результат объе-


диняется посредством XOR с Q2. Второй для этого шага подключ прибавляется к значе-
нию, полученному из Q1, и результат объединяется посредством X0R с Q3. После этого Q2
циклически сдвигается на 1 бит вправо, и две половины блока переставляются местами (Q0
с Q2, a Q1 с Q3). Все операции шага, начиная с начала и кончая РНТ-перемешиванием, со-
ставляют гарантию его безопасности и в литературе называются функцией д.
На рис. 11.5 проиллюстрирована схема работы шифра Twofish.
Как вырабатываются подключи? Функция развертки начинает свою работу с генерации
трех векторов ключей, каждый длиной в половину исходного ключа. Первые два получают-
ся путем разбиения ключа на 32-битовые фрагменты. Третий образуется путем разбиения
254 ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

ключа на 64-битовые блоки и генерирования одной 32-битовой части вектора ключей по-
средством умножения 64-битового блока на матрицу RS:
01 А4 55 87 5А 58 DB 9E
А4 56 82 F 3 IE Сб 68 Е5
02 A l FC C1 47 АЕ 3D 19
А4 55 87 5А 58 DB 9E 03

32-разрядные слова, получающиеся после перемножения, помещаются в обратном порядке


в вектор ключей S. Этот вектор применяется для генерирования зависящих от ключа S-блоков
для функции д. Например, если длина ключа равна 128 бит, то структура S-блока будет такой:
ЗАПРОС НА РАЗРАБОТКУ СТАНДАРТА AES 255

Еще одна функция h участвует в генерировании подключен одновременно с «обогаще-


нием» S-блоков ключевым материалом. Она выполняет XOR между 32-битовыми словами
открытого текста и векторами ключей, а затем объединяет полученные результаты с мат-
рицей MDS. После этого подключи генерируются путем сложения выработанных функци-
ей h данных и сдвигов влево на 8 или 9 позиций.
Ключи генерируются на лету, а пространство ключей используется для двух параллель-
ных процессов «перетасовывания» ключа и открытого текста ~ это уникальные особен-
ности алгоритма Twofish. В сочетании с обелением они обеспечивают высокий уровень пере-
мешивания и являются одной из причин высокого порога безопасности шифра: 6 из 16 шагов.
Однако процедура подготовки подключей работает медленно, и по мере увеличения длины
ключа производительность шифра Twofish падает. Кроме того, из-за наличия операции
сложения Twofish уязвим для атак, связанных с энергопотреблением и хронометражем,
хотя и в меньшей степени, чем MARS и RC6. Скорость шифрования и дешифрирования прак-
тически одинаковы. Поскольку в шифре Twofish нет никаких нетипичных конструкций и
он был изначально спроектирован для реализации на 8-, 32- и 64-разрядных платформах,
то и работал он одинаково хорошо на всех протестированных архитектурах, за исключе-
нием процессоров ARM, где Twofish оказался довольно медленным (поэтому не стоит при-
менять его на большинстве современных КПК, в частности на HP iPAQ). Производитель-
ность аппаратной реализации TWofish получила оценку «средняя». Так как в Twofish нет
больших S-блоков, а ключи могут генерироваться по мере выполнения итерации без пред-
варительных вычислений и сохранения в памяти, то для устройств с ограниченными ре-
сурсами этот шифр подходит.

Шифр Serpent
Последний из финалистов конкурса на звание AES - шифр Serpent - скорее громоздок, чем
сложен. По существу, Serpent очень похож на DES. Быть может, ради простоты сравнения
его надо было бы рассмотреть первым. Но, несмотря на его схожесть с DES, утверждается,
что Serpent более безопасен, чем тройной DES (мы рассмотрим этот шифр чуть ниже), хотя
его быстродействие лишь немногим ниже, чем у DES. Разработали Serpent Росс Андерсон
(Ross Anderson, Кембриджский университет), Эли Бихам (Eli Biham, Технион, Хайфа) и Ларе
Кнудсен (Lars Knudsen, университет Бергена, Норвегия). Две заявки на патентование Serpent
были поданы в Великобритании.
Как и рассмотренные выше шифры, Serpent принимает на вход 128-битовые блоки от-
крытого текста и разбивает их на 32-битовые слова. Максимальная длина ключа в Serpent
составляет 256 бит, а если ключ короче, то он дополняется до 128 бит путем добавления 1
к старшему биту и заполнения оставшихся битов нулями. Итерация Serpent состоит из
32 шагов, в которых применяется поиск в таблице, циклический сдвиг на фиксированное
число позиций и обычный сдвиг. Используются также начальная и конечная перестанов-
ки, как в DES. Они предназначены исключительно для повышения эффективности реализа-
ции на компьютере, а на общую стойкость шифра влияния не оказывают.
Каждый шаг начинается с выполнения XOR между соответствующим подключом
(128 бит) и блоком открытого текста (тоже 128 бит). Затем результат подается на вход од-
ного из S-блоков. В шифре Serpent есть восемь S-блоков, каждый из которых используется
четыре раза, так что всего получается 32 шага: блок SO применяется на шагах 1, 9,17 и 25;
S1 - на шагах 2, 10, 18 и 26 и т.д. Выход, полученный от S-блока, разбивается на четыре
2 5 6 ^ ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

32-битовых слова QO, Ql, Q2 и Q3; каждое из них подвергается сдвигам и циклическим
сдвигам в следующем порядке:
о Q0 циклически сдвигается на 13 бит влево, a Q2 - на 3 бита влево;
о Q1 модифицируется путем выполнения XOR с Q0 и Q2. Между Q3 и Q0 (сдвинутым
влево на 3 бита) выполняется XOR, a Q2 остается без изменения;
о затем Q1 сдвигается на 1 бит влево, a Q3 - на 7 бит влево;
о Q0 модифицируется путем выполнения XOR с Q1 и Q3. Между Q2 и Q1 (сдвинутым
влево на 7 бит) выполняется XOR, a Q3 остается без изменения;
о Q0 циклически сдвигается на 5 бит влево, a Q3 - на 22 бит влево.
Итак, нужное перемещение битов достигнуто, а результат применения S-блока оказался
хорошо перетасованным.
На последнем шаге операции перемешивания не производятся, зато выполняется ко-
нечная перестановка. Хотя назначение «перетасовки» поначалу понять нелегко, она
обретает смысл, если посмотреть на схему одного шага (рис. 11.6, кружками обозначены
операции XOR).
МЕЖДУ DES И AES: ШИФРЫ, РАСПРОСТРАНЕННЫЕ В ПЕРЕХОДНЫЙ ПЕРИОД 2 5 7

Глядя на эту схему, вы легко можете представить себе, какой высокий уровень переме-
шивания и рассеивания достигается после 32 шагов.
На идею организации S-блоков в шифре Serpent оказала влияние структура RC4. Блоки
представляют собой матрицы, содержащие шестнадцать 4-битовых значений. В ходе ите-
рации порождается 32 копии каждого S-блока; они параллельно передаются на каждый
шаг. Внутреннее устройство S-блоков в Serpent такое же, как в DES. Проектировщики ре-
шили сохранить блоки из DES, сочтя, что применение хорошо опробованной методики
вызовет доверие у общественности.
Что касается функции развертки ключа, то после дополнения (при необходимости)
256-битовый ключ разбивается на восемь 32-битовых слов. Затем из них формируются
132 32-битовых слова по следующему алгоритму:

Word(n) = (Word(n-8) XOR Word(n-5) XOR Word(n-3) XOR Word(n-l)


XOR '0x9E3779B9' XOR n) <« 11
где константа 0х9Е3779В9 - это уже знакомое нам золотое сечение, а символом <« обо-
значается сдвиг влево. К полученным таким образом 132 словам применяются S-блоки DES
для порождения 132 слов подключей ко_131. Эти слова объединяются в группы по четыре, и
мы получаем то, что нам нужно: 33 128-битовых подключа для 32 шагов итерации.
У шифра Serpent довольно простая структура, что облегчает проведение криптоанализа.
Его порог безопасности 9 шагов из 32 - самый высокий среди всех кандидатов. Поскольку в
шифре применяются лишь операции XOR, поиск в таблице, сдвиги и циклические сдвиги на
фиксированное число позиций, то вряд ли он уязвим для атак, связанных с энергопотребле-
нием и хронометражем. Но за все это приходится платить производительностью: из всех
кандидатов на звание AES шифр Serpent самый медленный. Любопытно, однако, что скорость
работы одинакова для реализаций на С и языке ассемблера. Кроме того, взглянув на структу-
ру Serpent, вы обнаружите четыре «конвейера» из 32 S-блоков. Если реализовать Serpent с
помощью аппаратуры, поддерживающей четыре параллельно работающих конвейера (напри-
мер, Itanium), то можно добиться очень высокого быстродействия. Да и вообще его аппарат-
ные реализации работают неплохо. В режимах без обратной связи он демонстрирует самую
высокую производительность из всех пяти кандидатов, а в режимах CFB/OFB уступает только
шифру Rijndael. Такое расхождение между программными и аппаратными реализациями
объясняется простотой используемых в алгоритме команд. По той же причине Serpent хоро-
шо приспособлен для работы в условиях ограниченной памяти, несмотря на большое число
S-блоков. Вопрос о зависимости производительности от длины ключа не стоит, так как ключ
в любом случае дополняется до 256 бит. Возможно, именно из-за очень высокой стойкости и
хорошей работы аппаратных реализаций шифр Serpent, так похожий на старомодный DES, и
оказался вторым после Rijndael при подведении итогов голосования: Rijndael получил
86 голосов, Serpent - 59, Twofish - 31, RC6 - 23, a MARS - 13.

Между DES и AES: шифры,


распространенные в переходный период
Что можно сказать о том периоде времени, когда слабость DES уже стала очевидной, а победи-
тель в конкурсе на звание AES еще не был объявлен? Что, каналы связи оказались незащищен-
ными? Конечно же, нет. Предпринимались многочисленные попытки улучшить DES; в частности,
258А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

компания RSA Data Security предложила шифр DESX (в нем использовалось обеление помимо
обычных для DES шагов и IP/FP), в некоторых версиях UNIX для свертывания паролей начали
применять одностороннюю функцию хэширования CRYPT(3) - эту тему мы рассмотрим ниже -
был предложен шифр RDES (с обменом блоков в зависимости от ключа) и т.д. Самой знамени-
той из реализованных попыток улучшить DES стал шифр тройной DES, или 3DES.

Шифр 3DES
Напомним, что причина слабости DES - это ограниченный размер пространства ключей и
функция развертки, которая не использует это пространство в полном объеме. Если объе-
динить в одном процессе три итерации DES с разными ключами, то длина ключа утраивает-
ся: 56 бит хЗ = 164 бит. Если обозначить через ек(х) результат шифрования 64-битового
блока данных ключом К, а через dk(x) - результат дешифрирования того же блока, то
Кс - e k3 (d k2 (e kl (x))), а для дешифрирования надо действовать так: х = d kl (e k2 (d k3 (c))).
Многие эксперты считают 3DES самым стойким 64-битовым блочным шифром. Однако
троекратный прогон DES - это очень медленный и требующий много ресурсов процесс, по
крайней мере, если его реализовывать программно. В аппаратуре 3DES можно реализовать
достаточно эффективно, поскольку в нем используются лишь простые операции (см. выше
обсуждение шифра Serpent). Можно пойти на компромисс и реализовать 2DES: из преды-
дущих формул видно, что кг может совпадать с к3, тогда мы получаем ключ длиной 112 бит.
Помимо 3DES появилось и много других шифров с 64-битовым блоком, пока мир не пе-
решел на блоки размером 128 бит. Самыми интересными из алгоритмов этой группы, на-
верное, были IDEA и Blowfish.

Шифр Blowfish
Шифр Blowfish предложил Брюс Шнейер в 1993 году, он свободен от лицензионных огра-
ничений и отчислений за использование. Этот шифр используется в проекте OpenSSH, им
шифруются пароли в OpenBSD. Список бесплатных и коммерческих приложений, где на-
шел применение шифр Blowfish, приведен на странице http://www.counterpane.com/
products.htrnl. Напротив, шифр IDEA запатентован. Его известность связана с применени-
ем в первоначальной версии программы PGP.
Шифр Blowfish состоит из 16 шагов, а длина ключа варьируется от 32 до 448 бит. На
32-разрядных процессорах он быстрее DES и для его работы достаточно 5 Кб памяти.
Однако, алгоритму необходимо много подключей, которые следует вычислить перед нача-
лом процедуры шифрования и дешифрирования. В отличие от DES, в шифре Blowfish функ-
ция F применяется к левой части блока, а полученный результат объединяется посредством
XOR с правой частью. Так происходит и в более современных шифрах, в том числе тех, что
были поданы на конкурс, поэтому можно сказать, что Blowfish опередил свое время.
На каждом шаге Blowfish сначала выполняется XOR между левой половиной блока и
соответствующим шагу подключом. Затем к левой половине блока применяется функция
f, а правая половина посредством XOR объединяется с результатом ее работы. Наконец, в
конце каждого шага, кроме последнего, половины блока меняются местами. Для каждого
шага нужен только один подключ; для функции F не требуются подключи, зато она
пользуется S-блоками, которые зависят от ключа (см. обсуждение шифра Twofish, кото-
рый пришел на смену Blowfish).
МЕЖДУ DES И AES: ШИФРЫ, РАСПРОСТРАНЕННЫЕ В ПЕРЕХОДНЫЙ ПЕРИОД 2 5 9

После последнего шага выполняется XOR между правой половиной блока и подключом
номер 17, а также между левой половиной и подключом 18. Можно считать это разновид-
ностью обеления (поскольку всего шагов 16, то эти подключи больше нигде не использу-
ются, как и должно быть в случае обеления).
Для читателей с математическим складом ума:

2. Выполнить XOR между Р1 и первыми 32 бит ключа, затем XOR между Р2 и следую-
щими 32 бит ключа и т.д. для всех битов ключа (возможно, вплоть до Р14). Повтор-
но использовать биты ключа, пока между всеми элементами массива Р и битами клю-
ча не будет выполнена операция XOR. (Для каждого короткого ключа существует по
меньшей мере один эквивалентный более длинный ключ, например если А - 64-би-
товый ключ, то АА, ААА и т.д. - эквивалентные ключи.)
3. Зашифровать строку, состоящую из одних нулей, алгоритмом Blowfish, используя
подключи, порожденные на шагах 1 и 2.
4. Заменить Р1 и Р2 результатом шага 3.
5. Зашифровать полученный на шаге 3 результат алгоритмом Blowfish с модифициро-
ванными подключами.
6. Заменить РЗ и Р4 результатом шага 5.
7. Продолжить эту процедуру, заменяя все элементы массива Р, а затем все четыре S-бло-
ка результатами работы алгоритма Blowfish с постоянно изменяющимися ключами.
В общей сложности для генерирования всех необходимых подключей потребуется 521
итерация. Приложение может сохранить подключи, а не выполнять процедуру их генери-
рования многократно. В одном случае мы расходуем память, в другом - процессорное вре-
мя. Поскольку в функции F есть операции сложения, то шифр Blowfish в какой-то мере
уязвим для атак, связанных с энергопотреблением и хронометражем.
2 6 0 ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

Шифр IDEA
Международный алгоритм шифрования данных (International Data Encryption Algorithm -
IDEA) предложили Ксуя Лай (Xuejia Lai) и Джеймс Месси (James Massey) из Швейцарского
технологического института. В шифре IDEA используется ключ длиной 128 бит, из которо-
го порождаются 52 16-битовых подключа. По два подключа нужно на каждом шаге, а еще
четыре используются в самом начале и в самом конце. В алгоритме IDEA 8 шагов.
Блок открытого текста разбивается на четыре равных части (XI - Х4) длиной 16 бит каж-
дая. В IDEA применяются три операции для объединения двух 16-битовых значений в один
16-битовый результат: сложение, XOR и умножение. Самое лучшее краткое изложение IDEA,
которое нам довелось встречать в литературе, - это глава 13 книги Шнейера «Applied
Cryprography», Second Edition (Прикладная криптография. Вып. 2 - вышла в издательстве
John Wiley & Sons, 1996, ISBN 0471117099). Ниже показаны действия, выполняемые на одном
шаге, на рис. 11.7 представлено описание шага, а на рис. 11.8 - последовательность шагов.

Генерирование подключен в IDEA выполняется просто: исходный 128-битовый ключ


напрямую порождает первые восемь подключей: от К (1) до К ( 8 ) . Следующие восемь под-
ключей получаются точно так же, но после циклического сдвига на 25 позиций влево. Эти
действия повторяются, пока не будут получены все 52 подключа.
Посчитаем, сколько всего выполняется операций сложения и умножения на одной ите-
рации:
о 4 умножения на каждом шаге х 8 шагов + 2 в завершающем преобразовании = 34 ум-
ножения (в литературе часто упоминают 32, забывая о двух операциях в завершаю-
щем преобразовании);
о 4 сложения на каждом шаге х 8 шагов + 2 в завершающем преобразовании = 34 сло-
жения.
ВЫБОР СИММЕТРИЧНОГО ШИФРА ДЛЯ ИСПОЛЬЗОВАНИЯ В СВОЕЙ СЕТИ ИЛИ ПРОГРАММЕ 263

Легко понять, почему программно реализованный шифр IDEA стоит по производитель-


ности на втором месте с конца перед 3DES. Аппаратура же для исполнения IDEA должна
быть весьма специфичной.
Хотя все академические атаки на шифр IDEA пока не принесли успеха и шифр продол-
жает считаться очень стойким, но нам кажется, что защитить его от атак, связанных с энер-
гопотреблением и хронометражем, было бы крайне затруднительно.

Выбор симметричного шифра для


использования в своей сети или программе
Чтобы подвести итог, мы сравним рассмотренные выше шифры с точки зрения практикующего
системного или сетевого администратора либо разработчика программного обеспечения.
Если не считать DES, то все описанные шифры считаются стойкими. Шифры, работаю-
щие с 64-битовыми блоками, несколько устарели после того, как появились алгоритмы для
работы с блоками длиной 128 бит, но до сих пор не было сообщений об эффективных ата-
ках против IDEA, 3DES или Blowfish, если, конечно, они реализованы в полном объеме (на-
пример, не уменьшено число шагов).
Шифр 3DES демонстрирует приемлемую производительность только при аппаратной реа-
лизации; поэтому использовать его стоит, если имеется туннель между двумя или более та-
кими (унаследованными?) устройствами, например, IPSec-туннель между двумя маршрути-
заторами Cisco 1700, оборудованными модулями M0D1700-VPN с поддержкой 3DES (новые
модули шифрования AIM-VPN/Enhanced Performance [EPII] и AIM-VPN/High Performance
[НРП] поддерживают AES). В противном случае не удивляйтесь, если VPN, защищенная про-
граммно реализованным шифром 3DES, поставит вашу беспроводную сеть на грань умира-
ния из-за того, что сетевые хосты будут лишены процессорного времени.
Вторым после 3DES по медлительности, наверное, идет шифр IDEA. Хотя в первоначальной
версии PGP по умолчанию использовался именно этот шифр, но последняя версия (а мы вооб-
ще рекомендуем пользоваться GnuPG) поддерживает достаточно много симметричных шифров,
так что есть из чего выбирать. Учитывая, что шифр IDEA лицензируется, мы не видим особых
причин останавливаться именно на нем, разве что речь идет о корпоративной политике.
Шифр Blowfish не разрабатывался для работы в условиях частой смены ключей (как то
нередко имеет место при шифровании в сетях с коммутацией пакетов). Он не очень хоро-
шо приспособлен для устройств с ограниченным объемом памяти, скажем, смарт-карт или
мобильных телефонов. Зато для шифрования паролей пользователей (например, в OpenSSH,
в файле /etc/master.passwd в OpenBSD), которые меняются примерно раз в три месяца, он
прекрасно подходит. Пароль, зашифрованный Blowfish, начинается с символов $$ и
оказывается намного длиннее, чем МО5-свертки паролей или результат шифрования
DES/CRYPT(3). Такие инструменты для взлома, как John the Ripper, поддерживают атаки по
словарю или методом полного перебора на Blowfish, но процесс идет очень медленно. По-
этому при выборе длинных ключей шифр Blowfish оказывается весьма стойким.
Что касается финалистов конкурса на звание AES - шифров MARS, Twofish и (в особен-
ности) Serpent, то для них характерен очень высокий порог безопасности, тогда как для
шифров Rijndael и RC6 этот порог вполне достаточен. В шифре Rijndael минимально время
подготовки ключей, а шифр Twofish в этом отношении, наоборот, самый медленный
среди финалистов. Напомним, что предшественником Twofish является Blowfish, в котором
2 6 4 ^ ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

функция развертки сложна из-за двойного использования ключа. Остальные кандидаты с


точки зрения времени на подготовку ключей и потребления ресурсов располагаются
между Rijndael и Twofish. Поэтому Rijndael - это самый подходящий шифр для систем с гене-
рацией пакетных ключей, тогда как Twofish может в этих условиях привести к задержке в
доставке пакетов. При аппаратной реализации самыми лучшими следует признать шифры
Serpent и Rijndaet. При этом Rijndael превосходит Serpent по производительности в режимах
с обратной связью. С другой стороны, у Serpent больший порог безопасности, чем у Rijndael,
и он лучше работает в режиме ЕСВ. Этот шифр можно выбрать для эксплуатации, когда тре-
буется очень высокая степень безопасности и доступны специальные устройства для аппа-
ратного шифрования. Аппаратно реализованные RC6 и Twofish работают средненько, хотя в
режиме ЕСВ быстродействие RC6 достаточно высоко. Производительность MARS при аппа-
ратной реализации не впечатляет. Потенциал Rijndael в этом смысле наивысший, так как при
наличии специальной аппаратуры его исполнение может быть распараллелено. И Rijndael и
Serpent очень хорошо масштабируются на устройства с малым объемом памяти, Twofish в
таких условиях тоже ведет себя неплохо. RC6 не требуется много постоянной памяти, зато
оперативную он потребляет как сумасшедший. Для MARS нужно много постоянной памяти,
и на медленных процессорах его производительность оставляет желать лучшего. Следова-
тельно, ни MARS, ни RC6 нельзя рекомендовать для таких устройств, как смарт-карты.
Что касается программной реализации, то на нее могут влиять различные факторы. Реали-
зация шифров на языках низкого уровня всегда более эффективна, чем на языках высокого
уровня за возможным исключением Serpent (для него реализации на языке ассемблера и на С
показывают примерно одинаковое быстродействие). Для всех алгоритмов, в которых исполь-
зуются простые команды, производительность мало зависит от архитектуры процессора. Если
же в шифре применяются операции умножения, возведения в квадрат, сдвига и циклического
сдвига на переменное число позиций, то эффективность очень сильно зависит от того, реали-
зованы ли эти команды процессором и поддержаны ли компилятором. Вот перечень представ-
ляющих интерес команд для трех широко распространенных процессоров:
ВЫБОР СИММЕТРИЧНОГО ШИФРА ДЛЯ ИСПОЛЬЗОВАНИЯ В СВОЕЙ СЕТИ ИЛИ ПРОГРАММЕ 2 6 5

Прежде чем приступать к реализации криптографической системы, изучите особенности


своей аппаратуры! Посмотрите, какие поддерживаются арифметические и логические коман-
ды, а также команды сдвига и циклического сдвига. Обширный, хотя и несколько устаревший
список производителей процессоров приведен на странице http://einstein.et.tudelft.nl/
-offerman/ chiplist.long.html. На сайте http://www.sandpile.org/ приведена полезная инфор-
мация о процессорах х86. Практически все, что нужно знать о наборах команд процессоров
производства Intel приведено в PDF-файле по адресу http://www.intel.com/ design/intarcg/
techinfo/pentium/PDF/instsum.pdf. Сведения о наборах команд процессоров других про-
изводителей можно получить на странице http://www.xs4all.nl/~ganswijk/chipdir/iset/
index.htm, да и вообще на сайте http:// www.xs4all.nl/~ganswijk/chipdir много полезной
информации. Возможно, имеет смысл взглянуть на сам процессор, чтобы точнее выяснить
его модель, в этом случае поможет страница http://users.erols.com/chare/cpu_id.htm. Мож-
но также воспользоваться программами, которые подскажут, какой набор команд поддержи-
вает ваш процессор. Для платформы Windows к таким инструментам относятся CPUInfo
(http://www.Pcanalyzer.com/index.html) и CPU-Z (http://www.cpuid.com/cpuz.php). В про-
грамму CPU-Z встроена удобная база данных о наборах команд процессоров х86 с развитыми
средствами поиска. И CPUInfo, и CPU-Z бесплатны.
В общем и целом, шифр Rijndael самый быстрый при программной реализации на всех
платформах, a RC6 очень быстро работает на 32-разрядных процессорах с поддержкой ум-
ножения и сдвигов и циклических сдвигов на переменное число позиций (Pentium II и III).
Производительность шифра MARS средняя для всех наборов команд, а производительность
Twofish также не особенно высока и не зависит от платформы. Программные реализации
Serpent самые медленные.
Подводя итог всему вышесказанному, мы хотим сформулировать ряд предложений о том,
когда какой шифр применять.
В условиях, требующих повышенной секретности, где нужен высокий порог безопаснос-
ти плюс устойчивость к неизвестным атакам и при этом вы вынуждены пользоваться про-
граммно реализованным шифром (или самостоятельно писать программы, в которых приме-
няется шифрование), выбирайте Twofish - он хорошо масштабируется под любую платформу.
MARS пригоден только для 32-разрядных ЦП, поддерживающих сдвиги и циклические сдви-
ги на переменное число позиций, а также умножение. Если на первый план выступает про-
изводительность, то лучше остановиться на AES с ключом большой длины.
Если в тех же условиях доступна аппаратная реализация шифра, то имеет смысл выб-
рать Serpent.
Для быстрого и достаточно безопасного шифрования данных на Pentium II и III полезен
шифр RC6. Помните о масштабируемости, но не забывайте и о том, что шифр RC6 может
работать с очень стойкими ключами (длиной до 2400 бит), не теряя быстродействия (при
подходящей архитектуре ЦП). Для шифрования паролей пользователей (в режиме ЕСВ)
скорость обычно не очень важна, поэтому можно порекомендовать более стойкие Serpent,
MARS и Twofish, но и старый добрый Blowfish вполне годится для этой работы.
AES - это хороший универсальный шифр, очень удобный для шифрования в сетях VPN.
Поскольку AES - это стандарт, то многие производители, к примеру Cisco, выпускают
мощные аппаратные AES-шифраторы. AES особенно полезен в условиях повышенной сек-
ретности, когда нужно генерировать пакетные или сеансовые ключи. Защита беспровод-
ных сетей - это как раз пример такого рода ситуации. В этой связи понятно, почему в
окончательном варианте стандарта 802.Hi будет принят именно AES для обеспечения
2 6 6 А ВВЕДЕНИЕ В ПРИКЛАДНУЮ КРИПТОГРАФИЮ: СИММЕТРИЧНЫЕ ШИФРЫ

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

Резюме
Знание прикладной криптографии - это одно из ключевых условий, необходимых для обес-
печения безопасности беспроводных сетей. В этой главе мы постарались изложить ее ос-
новы на языке, понятном для профессионалов в области информационных технологий,
включив также примеры успехов и неудач криптографии в реальной жизни. Мы надеемся,
что после прочтения этой главы, вы уже никогда не станете выбирать защитный криптог-
рафический механизм наугад, не осмыслив сначала все за и против. Эти знания очень при-
годятся, когда вы будете проектировать свою виртуальную частную сеть (VPN) или писать
криптографическое приложение, которое должно обеспечить и качество обслуживания, и
высокую производительность. Не забывайте учитывать особенности конкретной аппарат-
ной платформы.
Еще один полезный итог этой главы - лучшее понимание тех мотивов, которыми руко-
водствовались разработчики стандартов, когда решали, какой шифр следует использовать
при переходе от WEP к 802.Hi. Вместо того чтобы просто описать структуру и работу шиф-
ра AES, мы выбрали диалектический подход, решив объяснить, как и почему в стандарте
802.Hi предпочтение было отдано именно этому шифру в режиме ССМ. Конечно, криптог-
рафия не ограничивается только симметричными шифрами. В следующей главе мы про-
должим наш рассказ и опишем, какие решения применяются для защиты целостности дан-
ных, для аутентификации пользователей и для безопасного обмена ключами. Все эти
механизмы очень важны в беспроводных сетях, поэтому их следует хорошо понимать, что-
бы суметь эффективно защитить свою сеть.
Это означает, что нет утечки истинной информации.
Чао Чао

Традиционное применение симметричной криптографии очень хорошо соответствует


теоретической модели систем безопасности Белла-ЛаПадулы (Bell-LaPaluda). Эта мо-
дель предназначена для описания защиты секретов в многоуровневой системе с пользо-
вателями, которые имеют разный уровень доступа к данным с различными уровнями
секретности. В основе модели Белла-ЛаПадулы лежат два правила: правило простой
безопасности и правило владения. Правило простой безопасности гласит, что субъект
с данным уровнем доступа не может читать данные с более высоким уровнем секрет-
ности (запрет на ознакомление). Правило владения запрещает распространять инфор-
мацию на более низкие уровни секретности (запрет на разглашение). Например, если
у пользователя нет ключа для доступа к VPN, то он не может ознакомиться с циркули-
рующим в сети трафиком, а пользователи, работающие внутри VPN, не могут посылать
незашифрованные данные, поскольку их хосты сконфигурированы так, что все данные
посылаются только по безопасным каналам, и любая попытка изменить конфигурацию
немедленно привлечет внимание администратора. Но модель Белла-ЛаПадулы была
предложена для военных систем, где секретность стоит на первом месте. В электрон-
ной коммерции не менее важны целостность и доступность данных. Эти вопросы в
модели Белла-ЛаПадулы не отражены. Поэтому на свет родилась модель Биба (Biba).
В ней требуется, чтобы и данные, и субъект были защищены от искажения за счет дан-
ных, поступающих с менее защищенных уровней и каналов. Как и в предыдущем слу-
чае, модель Биба базируется на двух постулатах: правиле целостности и правиле вла-
дения. Правило целостности запрещает модификацию данных на более высоких уровнях
секретности пользователями, не имеющими достаточных прав. Правило владения зап-
рещает пользователям, имеющимими достаточные права, искажать данные, пользуясь
источниками информации с сомнительной достоверностью и, возможно, скомпромети-
рованной целостностью.
268 КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ДАННЫХ

Криптографические функции хэширования


Можно ли с помощью симметричной криптографии удовлетворить требованиям модели Биба,
которые предполагают контроль целостности данных и надлежащую аутентификацию.
Да, но очень неэффективно. Напомним практический пример из ОС UNIX (точнее, Linux),
связанный с некорректной аутентификацией из-за ошибки шифрования паролей методом
DES в режиме ЕСВ (глава 11). Конечно, можно было бы воспользоваться любым режимом с
обратной связью или каким-нибудь 128-битовым блочным шифром вместо DES, но произ-
водительность при этом пострадала бы. Однако метод MD5 в этом примере масштабируется
прекрасно. Эта часть главы посвящена шифрам, подобным MD5, которые называются крип-
тографическими функциями хэширования. Криптографическая функция хэширования -
это алгоритм, который принимает на входе сообщение произвольной длины и возвращает
сообщение фиксированной длины, которое называется цифровым отпечатком или дайд-
жестом исходного сообщения. Криптографические функция хэширования называют еще
односторонними функциями, поскольку они устроены так, что получить исходный откры-
тый текст почти невозможно из-за нехватки вычислительных мощностей (по крайней мере,
в теории).
Хороший пример применения односторонней функции на практике - это сохранение це-
лостности пакета. Традиционно небезопасная контрольная сумма пакета или фрейма вычис-
ляется как длина блока данных протокола (PDU) в битах, поделенная на простое число. Про-
тивник может модифицировать данные пакета и без труда пересчитать контрольную сумму,
чтобы она соответствовала новому содержимому. Если вместо контрольной суммы пользо-
ваться криптографической функцией хэширования, то такая задача становится непосильной
при условии, что функция стойка и корректно реализована. Очень много пакетов пролетит,
пока взломщик, наконец, справится, но к тому времени протокол пакета, скорее всего, уже
устареет. Примером такого усовершенствования может служить код Michael (MIC) в прото-
коле TKIP, который заменил старый вектор контроля целостности (ICV), основанный на вы-
числении CRC-32, который применялся в WEP. Michael - это не совсем односторонняя функ-
ция, она ближе к вычисляемым на базе хэширования кодам аутентификации сообщения
(Hash-based Message Authentication Code - HMAC),, которые мы рассмотрим ниже.
Стойкая криптографическая функция проектируется с учетом размера данных на ее
выходе (чем больше, тем лучше, но работать с огромными цифровыми отпечатками неудоб-
но) и избежания коллизий. Коллизия - это ситуация, при которой две разных исходных
строки (сообщения) преобразуются функцией хэширования в одну: х !=х', но hash(x) - hash(x').
Если коллизия возможна, то х можно с успехом заменить на х', так что становится реальностью
целый класс атак на такую функцию, основанных на парадоксе «дней рождений». Своим
названием такие атаки обязаны известной задаче из теории вероятностей. В комнате дол-
жно быть по крайней мере 253 человека, чтобы с вероятностью больше 50% хотя бы у од-
ного из них день рождения совпал с вашим. Но достаточно всего 23 человек, чтобы с веро-
ятностью больше 50% по крайней мере два из них родились в один день. Связано этом с
тем, что хотя в комнате всего 23 человека, но число пар составляет 253!
Как вскрыть функцию хэширования методом полного перебора? Надо взять разные дан-
ные (обычно из словаря) и хэшировать их той же самой функцией, пока не получится ис-
комый результат. Если необходимо проверить 2х сообщений, но задача состоит в том, что-
бы найти два сообщения, для которых цифровые отпечатки совпадают, то остается всего
2Х/2 сообщений - огромная разница!
ПРИМЕР СТАНДАРТНОЙ ОДНОСТОРОННЕЙ ФУНКЦИИ ХЭШИРОВАНИЯ 2 6 9

Пример стандартной односторонней


функции хэширования
Как можно шифровать сообщения разной длины и при этом всегда получать результат
одной и той же длины х бит, даже не используя никакого ключа? Для решения первой
задачи достаточно выполнить операцию XOR между данными и фиксированным началь-
ным значением длиной х бит. Ответ на вторую часть вопроса таков: ключом становятся
сами хэшируемые данные; из них и порождаются подключи для каждого шага. Проил-
люстрируем, как эта схема может работать на примере алгоритма безопасного хэширо-
вания (Secure Hashing Algorithm (SHA)), предложенного АНБ. Полное описание стан-
дарта SHA можно найти на сайте NIST по адресу http://www.itl.nist.gov/fipspubs/
fipl80-l.htm. На самом деле существует четыре стандарта SHA: SHA-1 (хэш длиной
160 бит), SHA-256, SHA-384 и SHA-512; число в названии соответствует длине резуль-
тата. В главе 14 мы будем постоянно обращаться к стандарту SHA для защиты беспро-
водного трафика с сети VPN. А сейчас попытаемся объяснить итерации SHA в терми-
нах, понятных не только математикам.
По существу, SHA-1 - это блочный шифр, который шифрует 160-битовый блок (началь-
ную константу) ключом (хэшируемыми данными) переменной длины (меньшей 264 бит),
используя 80 32-битовых подключей за 80 шагов.
Работа как SHA-1, так и SHA-2 начинается с преобразования входа в уникальную стро-
ку, длина которой кратна 512 бит, при этом сохраняя исходную длину входных данных в
битах. Для этого к входному сообщению дописывается единица. Затем добавляется столько
нулей, сколько необходимо для достижения нужной длины, которая должна быть на 64 бит
меньше, чем следующее кратное 512. А в зарезервированные 64 бит записывается длина
исходного сообщения в битах.
Расширим каждый 512-битовый блок, используя его как источник 80 32-битовых под-
ключей, причем сам блок даст первые 16 подключей. Оставшиеся генерируются следую-
щим образом: подключ N - это результат применения XOR к подключам N-3, N-8, N-14 и
N-16 и циклического сдвига на одну позицию.
Начальная 160-битовая константа равна 67452301 EFCDAB89 98BADCFE 10325476
C3D2E1F0 (возможно, в коде ASCII это кличка кота автора SHA). Именно она служит вхо-
дом для обработки 512-битовых блоков модифицированного входного сообщения.
Для каждого блока сообщения зашифруем это начальное значение с помощью 80 подклю-
чей, полученных из текущего блока. Сложим каждый из 32-битовых фрагментов результата
шифрования с начальным значением по модулю 232 и сделаем то, что получилось, начальным
значением для следующего блока сообщения. Результат, получившийся после обработки
последнего блока, и есть значение функции хэширования, его длина равна 160 бит.
Поскольку входом для каждого шага SHA является 160-битовое значение, то все блоки
разбиваются не на две (как в DES), а на пять частей. Для четырех из них прогоняется функ-
ция F, хотя фактически это результат XOR между функцией от трех из пяти частей и ре-
зультатом циклического сдвига влево четвертой части, который затем объединен по-
средством XOR еще с одной частью. Эта часть модифицируется путем выполнения XOR
с подключом для текущего шага и константой. В каждой группе из 20 шагов использу-
ется одна и та же константа. Один из оставшихся блоков также изменяется путем вы-
полнения циклического сдвига влево, а затем (160-битовые) блоки ротируются.
270А КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ДАННЫХ

Функция F, так же как и константа, изменяется после каждых 20 шагов. Если обозначить
пять шагов входного блока как а, Ь, с, d и е, то шаги шифра SHA можно описать следующим
образом:
о изменить а путем сложения с текущей константой;
о значения констант таковы:
- для шагов 1-20: 5А827999;
- для шагов 21-40: 6ED9EBA1;
- для шагов 41-60: 8F1BBCDC;
- для шагов 61-80: CA62C1D6;
о изменить а путем сложения с подключом для текущего шага;
о изменить а путем сложения с е, циклически сдвинутым влево на 5 позиций;
о изменить а путем сложения с результатом функции F от Ь, с и d. Функция F вычис-
ляется следующим образом:
- для шагов 1-20 она равна (Ь && с) II ( (! =b) && d) ;
л л
- для шагов 21-40 она равна b = с = d;
- для шагов 41-60 она равна (Ь && с) II (b && d) II (с && d) ;
- для шагов 61-80 она снова равна b Л= с^= d;
ФУНКЦИИ ХЭШИРОВАНИЯ, ИХ ПРОИЗВОДИТЕЛЬНОСТЬ ИКОДЫНМАС

о изменить d, циклически сдвинув его на 2 позиции;


о переставить местами части, сдвинув каждую из них на место предшествующей,
а часть а - на место е.
Одна иллюстрация заменяет тысячу слов, поэтому на рис. 12.1 представлена схема ра-
боты одного шага алгоритма SHA.
Работа алгоритмов SHA-256, SHA-384 и SHA-512 похожа на работу SHA-1. Конечно, раз-
меры сверток будут другими, a SHA-384 и SHA-512 оперируют 64-, а не 32-битовыми бло-
ками. Значения начальных констант и констант для разных шагов во всех разновидностях
алгоритма SHA совершенно различны.

Функции хэширования,
их производительность и коды НМАС
Среди других функций хэширования следует прежде всего назвать MD5, предложенную
компанией RSA Data Security, Inc. Она работает очень быстро и реализована повсемест-
но. Традиционно именно MD5 используется в Linux для шифрования паролей пользова-
телей (такие свертки паролей начинаются со строки $1$), аутентификации в таких
протоколах маршрутизации, как RIPv2 и OSPF, создания контрольных сумм двоичных
дистрибутивных пакетов в формате RPM и проверки целостности файлов в Free/OpenBSD.
Спецификация MD5 приведена в RFC 1321. Такие инструменты обнаружения вторжений,
как Tripwire (http://www.tripwire.com) применяют MD5 для снятия цифровых отпечатков
с системных файлов и сохранения их в базе данных (зашифрованной) с целью выявле-
ния факта модификации файлов взломщиком. Слабенькой заменой Tripwire может слу-
жить команда md5sum, имеющаяся во многих UNIX-подобных системах. Алгоритм MD4,
предшествовавший MD5, работал очень быстро, но был взломан в октябре 1995 года.
К сожалению, протокол MS-CHAP все еще пользуется свертками MD4 даже во второй вер-
сии, следовательно, протоколы, базирующиеся на MS-CHAP, например 802.lx EAP-LEAP,
уязвимы для атак против MD4. С 1995 года появились серьезные сомнения относи-
тельно стойкости MD5 и других 128-битовых функций хэширования, поэтому реко-
мендуется, чтобы длина свертки составляла не менее 160 бит. Проверить стойкость
своих МБ5-сверток можно с помощью инструмента MD5Crack, который доступен на странице
http://www.checksum.org/download/MD5Crack (это версия, собранная для Windows;
исходный текст для UNIX можно найти на сайте http://www.packetstormsecurity.org).
Помимо SHA-1 и выше имеется немало других криптографически стойких функций хэ-
ширования, в том числе HAVAL (свертки переменной длины), RIPEMD и Tiger. Функция
RIPEMD из проекта ЕС Race Integrity Primitives Evaluation (RIPE) состоит из двух параллель-
ных процессов вычисления MD5, каждый из которых выполняет 5 шагов, так что в резуль-
тате получается 160-битовая свертка. Считается, что RIPEMD не менее стойка, чем SHA-1,
поэтому она используется в программе Nessus наряду с шифром Twofish. Функция Tiger
была предложена группой, разработавшей шифр Serpent, и оптимизирована для работы на
64-разрядных процессорах, где она примерно в 2,8 раз быстрее RIPEMD и в 2,5 раз быстрее
SHA-1. Tiger вырабатывает 192-битовую свертку, хотя существуют и менее стойкие вариан-
ты этого алгоритма со свертками длиной 128 и 160 бит.
272А КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ДАННЫХ

Обычные блочные симметричные шифры тоже пригодны в качестве односторонних фун-


кций хэширования, за немногими исключениями (например, Blowflsh). На самом деле воз-
можность использовать симметричный шифр как криптографическую функцию хэширова-
ния было одним из условий, предъявляемых к кандидату на звание AES. Зная принцип работы
функций хэширования, легко понять, что ничего сверхъестественного в таком применении
блочного симметричного шифра нет: задайте начальную константу, воспользуйтесь входны-
ми данными для генерации подключей - и вперед. Однако нет никаких причин, по которым
AES или MARS должны выступать в этой роли, если существуют хорошо продуманные алгорит-
мы, предназначенные специально для одностороннего хэширования, например SHA.
Криптографические функции хэширования спроектированы так, чтобы быстро обраба-
тывать большие объемы данных, например, для хэширования данных и добавления свер-
ток в заголовок пакета на лету. Скорость работы таких функций в мегабитах в секунду
обычно сравнима со скоростью работы потоковых шифров типа RC4 и в 1,5-2 раза выше
скорости работы AES. Очевидно, что за создание более объемных и стойких сверток при-
ходится платить, поэтому пропускная способность MD5 выше, чем у Tiger (на 32-разряд-
ных процессорах) или SHA-1.
Криптографические функции хэширования прекрасно подходят для контроля це-
лостности данных (с помощью снятия цифровых отпечатков) и для идентификации пользо-
вателей по базе данных свернутых паролей. Однако сами по себе они не способны
аутентифицировать данные; противник может изменить исходные данные еще до вы-
полнения хэширования. Одно из возможных решений этой проблемы дают коды НМАС,
которые иногда называют ключевым дайджестом сообщения. НМАС - это не что иное
как сочетание криптографической свертки и разделяемого секретного ключа. Иными
словами, данные сначала шифруются, а потом хэшируются, так что противнику при-
дется раздобыть ключ симметричного шифра после восстановления исходного сообще-
ния по свертке или перед выполнением хэширования. Примером кода аутентификации
сообщений, специально разработанного для повышения безопасности беспроводных
сетей, служит Michael (MIC).

М/С; слабее, но быстрее


Основная проблема, которую нужно было решить при проектировании кода MIC, заключа-
лась в создании такого НМАС, который мог бы работать на унаследованном оборудовании
без заметного снижения пропускной способности и увеличения задержек в сети. Можно
было бы возложить вычисление НМАС на клиентский хост, если в этом качестве выступает
достаточно мощный ноутбук или даже КПК, но и это нежелательно! Что если некоторая ком-
пания решит выпустить крошечный мобильный телефон с поддержкой 802.11? Кроме того,
далеко не все точки доступа могут похвастаться большой вычислительной мощностью.
А ведь точка доступа и беспроводной мост должны быть в состоянии проверить целост-
ность и аутентичность проходящих через них пакетов. Вспомните, что алгоритм SHA со-
стоит из 80 шагов, и представьте себе, что такую свертку нужно вычислять для каждого
пакета, посылаемого в беспроводную сеть. Сможет ли типичная точка доступа или КПК
выполнить эту процедуру, не задействуя большого объема ресурсов? Вряд ли.
Поэтому Нильс Фергюсон (Niels Ferguson) спроектировал совершенно новый алгоритм
под названием MIC, предназначенный для контроля целостности пакетов и обнаружения
подлога в беспроводных сетях с протоколом TKIP. Удачной оказалась третья попытка,
ФУНКЦИИ ХЭШИРОВАНИЯ, ИХ ПРОИЗВОДИТЕЛЬНОСТЬ И КОДЫ НМАС 2 7 3

предыдущие две получили название Mickey и Michelle. MIC - это компромисс между бе-
зопасностью, ресурсоемкостъю и простотой реализации. Он может работать на старых
точках доступа и клиентском беспроводном оборудовании без заметного снижения про-
изводительности, но его уровень стойкости всего 20 бит. Вы уже понимаете, что с точки
зрения современной криптографии это не слишком много.
Прежде чем обсуждать смысл компромисса и его практические последствия, имеет смысл
ознакомиться с алгоритмом работы MIC. Секретный ключ в MIC имеет длину 64 бит и пред-
ставляется в виде последовательности из 8 байт ko...k7. Эта последовательность преобра-
зуется в два 32-битовых слова Ко и Ка в формате little-endian. В MIC повсюду предполагает-
ся именно такой формат при преобразованиях между байтами и словами, так как этот
алгоритм предназначался для работы на процессорах с таким порядком хранения байтов.
Собственно говоря, в большинстве современных точек доступа применяются старые про-
цессоры Intel типа 1386 или i486.
MIC манипулирует полем данных, а также полями, содержащими адреса отправителя и
получателя. Целостность IV не защищается, а поле данных не интерпретируется. Перед
началом работы шифра в конец фрейма дописывается один байт (0x5а), за которым сле-
дует от 4 до 7 нулевых байтов. Число нулевых байтов выбирается так, чтобы общая длина
дополненного фрейма в байтах была кратна четырем. Дополнительные байты вместе с
фреймом не передаются, они служат только для упрощения вычислений над последним
блоком. После дополнения фрейм преобразуется в последовательность 32-битовых слов
М о ... М„_а, где N = [(п + 5)/4]. По построению MN_: = 0, a MN_2 != 0.
При вычислении значения MIC сначала берется значение ключа, а затем к каждому сло-
ву сообщения применяется блочная функция Ь. Цикл шифра исполняется всего N раз (счет-
чик i изменяется от 0 до N-1), где N - число 32-битовых слов в дополненном фрейме. Ал-
горитм вырабатывает два слова (1 , г ) , которые преобразуются в последовательность из
восьми октетов в формате little-endian. Это и есть результат работы MIC.
274 КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ДАННЫХ

Как видите, шифр нельзя назвать ни сложным, ни стойким. Было подсчитано, что у про-
тивника есть один шанс на миллион внедрить фрейм, содержащий скомпрометированные
данные, но правильное значение MIC. Можно возразить, что даже один модифицирован-
ный фрейм, вставленный после миллиона посланных, может нанести значительный ущерб.
Однако от старого метода контроля WEPICV (на базе CRC-32) тоже никто не отказывается,
так что вдобавок к MIC придется подделать и его. Такую атаку трудно реализовать, а веро-
ятность ее успеха слишком мала. Тем не менее, чтобы еще уменьшить шансы противника,
были введены так называемые контрмеры в TKIP. Если в течение одной секунды обнару-
живается более одной попытки подлога, то хост удаляет групповой или парный ключ (в
зависимости от того, был ли подделан фрейм, предназначенный для группы или одного
получателя), отсоединяется и ждет одну минуту перед попыткой повторного присоедине-
ния. Следовательно, у противника нет шансов остаться незамеченным, пожелай он послать
несколько миллионов модифицированных фреймов, чтобы хотя бы парочка проскочила.
Однако отчаявшийся противник может начать посылать подложные фреймы, чтобы сра-
ботали контрмеры, и тем самым организовать DoS-атаку, воспользовавшись не слабостью
данного метода, а его функциональностью. Возможность такой DoS-атаки широко обсужда-
лась. Самый лучший пример дискуссии на эту тему можно найти в списке рассылки, посвя-
щенном криптографии (http://www.mail-archive.com/ cryptography@wasabisystems.com/
msgO3O7O.html- это первое сообщение). В этой дискуссии Нильс Фергюсон, создатель MIC,
отвечает на вопросы, касающиеся DoS-атаки на контрмеры в TKIP. Несмотря на все выкрики
по поводу вероятности такой атаки и несовершенства контрмер, реально организовать ее не
так просто, как многим кажется. Напомним, что TSC отбрасывает все пакеты с неправильны-
ми порядковыми номерами, поэтому противнику пришлось бы отправить фрейм с «будущим»,
еще не использовавшимся IV. Однако IV активно используется функцией генерирования па-
кетных ключей в TKIP. Если IV изменен, то фрейм не удастся корректно дешифрировать. Но
контроль CRC-32 никто не отменял, поэтому он даст неверное значение, так что подложный
фрейм будет отброшен. Следовательно, противник должен будет выделить из трафика кор-
ректные фреймы, удалить их, чтобы они не достигли получателя, исказить MIC, заново вы-
числить код CRC-32, чтобы он соответствовал измененному MIC и только потом отправить
подложный фрейм (желательно каждые 59 с). Это возможно, но отнюдь не легко.
Поскольку аппаратура, совместимая с окончательной версией стандарта 802.Hi, будет
оптимизирована для исполнения AES, то реализация СВС-МАС НМАС на основе AES в каче-
стве односторонней функции хэширования станет более практичной, нежели применение
MIC или иного хорошо известного алгоритма вычисления дайджеста сообщения, например
SHA. Кроме того, будут устранены все только что обсуждавшиеся проблемы, свойственные
MIC. Поэтому в некоторых специальных случаях использование блочного симметричного
шифра для сохранения целостности данных, а равно для шифрования и аутентификации
сообщений может оказаться предпочтительным.
АСИММЕТРИЧНАЯ КРИПТОГРАФИЯ: ЧТО-ТО НОВЕНЬКОЕ 2 7 5

Асимметричная криптография:
что-то новенькое
Аутентификация сообщений с помощью НМАС работает прекрасно, но как мы собираемся
раздавать ключи симметричного шифра пользователям? Можно, конечно, записывать их на
дискеты или на зашифрованный раздел flash-диска, подключаемого к USB-шине, но что
если пользователей окажется слишком много? А если для физического распределения клю-
чей нужно много времени, а сами ключи должны меняться часто? Именно так обстоит дело
в случае традиционного протокола WEP, где ключи ротируются каждые несколько минут.
Было предложено использовать ключи для шифрования ключей (КЕК - Key-encrypting
Keys). Предполагалось, что они станут применяться только для шифрования других клю-
чей симметричного шифра перед их раздачей. Следовательно, распределять КЕК-ключи
придется только один раз. Но все равно - как это сделать безопасно? Не поставит ли эта
процедура безопасность всей организации под угрозу? Модель, основанная на физическом
распределении КЕК-ключей, слишком уязвима для атак методами социальной инженерии,
а мы знаем, что такие атаки способны создать больший хаос, чем все инструменты для взло-
ма вместе взятые (см. книгу Митника «Искусство обмана» (John Wiley & Sons, 2002, ISBN
0471237124)). Кроме того, с точки зрения руководства, не даст ли такая система слишком
много власти и ответственности небольшой группе людей, а возможно, даже всего одному
человеку?
Решение проблемы дают асимметричные шифры, которые совершенно не похожи ни на
что, обсуждавшееся до сих пор. Мы уже видели, что односторонние функции хэширова-
ния - это не более чем симметричные шифры, принимающие в качестве открытого текста
константу необходимой длины и рассматривающие данные как очень большой «ключ». При
этом выполняется много сложных шагов алгоритма, чтобы дешифрирование стало невоз-
можным. Можно сказать, что симметричный шифр - это всего лишь безмерно усложнен-
ная современная роторная машина типа Enigma. Замените роторы и шестеренки регистра-
ми ЦП и подходящими командами, заставьте их работать по точно известным законам и
принципам (Шеннон, Фейстель и др.) - вот и вся премудрость.
Напротив, работа асимметричных шифров основана на решении неких математических
задач в применении к большим числам. Представьте себе уравнение, которое невозможно
решить, не зная некоторой переменной. Эта переменная хранится в секрете и называется
закрытым ключом. Остальные переменные можно сообщить кому угодно, они называются
открытым ключом. Алгоритм решения уравнения необязательно хранить в секрете, а
шифрование и дешифрирование зависят от того, удастся ли это уравнение решить. Чтобы
еще лучше понять суть проблемы, представьте себе криптографическую функцию хэширо-
вания, которую относительно легко вычислить, но практически невозможно обратить, если
неизвестно некоторое значение. Это значение (а чаще несколько значений) называется
люком (trapdoor). Математическое уравнение, связывающее люк (лежащий в основе зак-
рытого ключа) и переменные, известные всем желающим (основа открытого ключа), очень
трудно разрешить, поэтому получить закрытый ключ, зная открытый, на современных ком-
пьютерах практически невозможно. Такие задачи называются трудными.
Если говорить о практической реализации этой математической идеи, то человечество
выявило три трудных задачи, имеющих отношение к безопасности: разложение больших
чисел на простые множители, вычисление дискретных логарифмов в конечном поле и
276А КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ДАННЫХ

вариация на эту тему - вычисление дискретных логарифмов для эллиптической кривой.


У всех этих задач есть одна общая особенность: хотя концептуально они несложны, но для
решения их на практике при современном уровне развития вычислительных средств по-
требуется больше времени, чем необходимо нашей вселенной, чтобы расшириться до точ-
ки коллапса, за которым последует очередной Большой Взрыв.
Уитфилд Диффи (Whitfield Diffie) и Мартин Хеллман (Martin Hellman) предложили идею
асимметричной криптографии в 1976 году. Их метод был основан на вычислении дискрет-
ных логарифмов в конечном поле. Хотя для человека, незнакомого с математикой, этот
метод может показаться сложным, в действительности система Диффи-Хеллмана исклю-
чительно проста и изящна.

Примеры асимметричных шифров: Эль Гамаля, RSA


и эллиптические кривые
Познакомимся сначала с арифметикой по модулю. Она отличается от привычной тем,
что оперирует лишь с числами от 0 до некоторого п, которое называется модулем. Если
в результате некоторой операции получается число, большее или равное модулю, то
результатом операции объявляется остаток от деления этого числа на модуль. Если в
результате получается отрицательное число, то к нему последовательно прибавляется
модуль, пока не будет получено число, попадающее в диапазон от 0 до значения моду-
ля. Например, 5 + 5 mod 8 = 2, а 3 - 5 mod 7 = 5. В арифметике по модулю операцию
возведения в степень можно считать односторонней функцией. Хотя вычислить у = дх
mod n легко, но найти х, зная остальные элементы уравнения гораздо сложнее, особен-
но если эти числа достаточно велики. Именно это и называется задачей дискретного
логарифмирования в конечном поле (от 0 до п), поскольку х есть логарифм у по осно-
ванию g по модулю п, а все числа конечные и целые. Мы можем взять два дискретных
логарифмических уравнения, скажем, уа = gxa mod p и yb = gxb mod p, где р - простое
число (не имеющее иных делителей, кроме 1 и себя самого). В этих уравнениях ха и
xb - закрытые ключи, а уа и yb - соответствующие им открытые ключи. А теперь обме-
няем открытые ключи, держа закрытые в секрете, и воспользуемся этими открытыми
ключами вместо q для генерирования ключа К:
АСИММЕТРИЧНАЯ КРИПТОГРАФИЯ: ЧТО-ТО НОВЕНЬКОЕ 2 7 7

о проверим, как работает генератор разделяемых ключей. К = g xa[xb] mod p = 5 2 * 3


mod 11 - 5б mod 11 = 15625 mod 11 - 1420; 1420 х 11 - 15620; 15625 - 15620 = 5,
то есть мы снова получаем тот же разделяемый ключ.
Вернемся к трудной задаче: попробуйте без калькулятора найти оба закрытых ключа, зная,
что р = 11, g = 5, а открытые ключи равны 3 и 4. Или, что еще лучше, выберите для р, g и
обоих открытых ключей уа и yb значения побольше. Решая эту задачу, имейте в виду, что в
практических реализациях системы Диффи-Хеллмана (и тесно связанной с ней системе Эль
Гамаля) длина закрытых ключей составляет по меньшей мере 1024 бит! На самом деле, мини-
мальная длина закрытого ключа, рекомендуемая для правительственного стандарта США
Digital Signature Algorithm (алгоритм цифровой подписи - DSA), в котором используется
шифр Эль Гамаля (El Gamal), составляет 2048 бит. Теперь вы начинаете понимать, что к чему.
Распространена также асимметричная криптосистема RSA, которую изобрели Райвест,
Шамир и Адльман. RSA был первым асимметричным методом шифрования, примененным на
практике. В его основе лежит трудная задача разложения больших чисел на множители по
модулю п. Возьмем два больших простых числа р и q. В качестве модуля выберем п = р х q.
Вычислим количество целых чисел, меньших п и н е делящихся на п: f(n) = (р - l)(q - 1)
(f называется функцией ср Эйлера). Выберем случайное число Ь, которое не делится на
f(n) - говорят, что оно взаимно просто с f(n); кстати, f(n) взаимно просто с п. Наконец
вычислим а = b - 1 mod f(n). Сохраним а, р и q в секрете. Объявим п и b открытым ключом.
Посмотрим, как все это выглядит на небольших числах. Пусть р = 3, п = 5:
о п = 3 х 5 = 15;
О f(n) = (3 - 1) х (5 - 1) = 2 х 4 = 8;
о возьмем в качестве b число 11, а = 11 - 1 mod 8 = 10 mod 8 = 2.
Зная числа 15 и 7, сможете ли вы легко вывести 2, 3 и 5? Ну а если речь идет о числах
длиной 2048 бит?
И наконец, в асимметричных криптосистемах на основе эллиптических кривых в каче-
стве трудной выступает задача определения координат точек на эллиптической кривой.
В качестве закрытого ключа выступает уравнение кривой, а в качестве открытого - коор-
динаты одной из точек. По существу, система на основе эллиптических кривых - это вари-
ация на тему задачи о дискретном логарифме, но в качестве универсума выступает не пря-
мая линия, а двумерная кривая. Рассмотрим эллиптическую кривую в поле по простому
модулю р, показанную на рис. 12.2.
Чтобы узнать, расположена ли некоторая точка на кривой, надо проверить, удовлетворя-
ют ли ее координаты (х,у) уравнению, описывающему эту кривую: у2 = х3 + ах3 + b (mod p).
Можно определить операции сложения и вычитания точек на эллиптической кривой:
если точки Р и Q принадлежат кривой, T O P + Q H P - Q - тоже точки на этой же кривой,
координаты которых можно вычислить. Теперь зафиксируем простой модуль р и кривую E(Fq).
Выберем точку Р и другую точку 0, кратную Р: Q = кР. Тогда задача дискретного логарифмиро-
вания заключается в том, чтобы найти к (закрытый ключ), зная координаты точки Q (открытый
ключ). Практическая трудность этой задачи такова, что ключ длиной всего 224 бит считается
таким же безопасным, как ключ длиной 2048 бит в шифре RSA. Это позволяет сэкономить па-
мять (что важно для устройств с ограниченными ресурсами) и время генерирования ключа
(важно, когда ключи часто меняются, например создаются для каждого сеанса).
278 КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ДАННЫХ

Рис. 12.2. Эллиптическая кривая

Практическое применение асимметричной криптографии:


распределение ключей, аутентификация и цифровые подписи
Основное применение асимметричной криптографии - это распределение открытых клю-
чей при том, что закрытые ключи хранятся в секрете. Открытым ключом, принадлежащим
некоторому человеку, шифруются посылаемые ему данные. Эта схема называется безопас-
ным форматом сообщения. Распределять открытые ключи можно иерархически (с помо-
щью сертификатов Х.509) или по схеме «братства кольца», когда организуется кольцо
пользователей, каждый из которых знает открытые ключи всех остальных. Последняя схе-
ма применяется в бесплатных программах, предназначенных для защиты конфиденциаль-
ности, например, PGP или GnuPG. Можно развернуть инфраструктуру открытых ключей
(Public Key Infrastructure - PKI), так что любой желающий сможет загрузить открытые клю-
чи с центрального сервера, а не просить владельцев прислать их. Такой сервер может быть
публичным (например, blackhole.pca.fdn.de и horowitz.sufrnet.nl) или частным, работаю-
щим в рамках одной компании либо организации.
Хотя безопасный формат сообщения и решает проблему конфиденциальности дан-
ных, но он не обеспечивает аутентификации. В результате возникает хорошо извест-
ная уязвимость к атакам «человек посередине», когда противник, находящийся между
сторонами, подменяет оба открытых ключа своим открытым ключом. Теперь против-
ник может дешифрировать данные, поступающие с обоих концов, с помощью своего
закрытого ключа и отправлять их, скажем, некоему Биллу. Одновременно противник
может зашифровать расшифрованные данные открытыми ключами жертв и отправить
их по месту назначения. Таким образом, атака остается незаметной, и жертвы даже не
подозревают, что их сообщения читаются посторонним лицом. Чтобы не дать Биллу
АСИММЕТРИЧНАЯ КРИПТОГРАФИЯ: ЧТО-ТО НОВЕНЬКОЕ 2 7 9

прочитать вашу секретную почту, необходима какая-то форма аутентификации. Этого


можно добиться, если обратить процедуру, то есть шифровать данные своим закрытым
ключом. В таком случае всякий, располагающий вашим открытым ключом, сможет рас-
шифровать и прочесть данные и быть уверенным, что они поступили именно от вас и
ни от кого другого. Эта схема называется открытым форматом сообщения (Open
Format Message). Она обеспечивает неотрицаемость: отправитель привязан к паре клю-
чей и не может отрицать, что именно он отправил данные. Отправитель может лишь
заявить, что данные были модифицированы на пути к получателю. Однако мы знаем,
как доказать (или опровергнуть) такое заявление: с помощью односторонней свертки.
Следовательно, мы можем вычислить одностороннюю свертку данных и зашифровать
ее открытым ключом перед отправкой. Именно в этом состоит принцип работы цифро-
вых подписей, которые гарантируют как неотрицаемость, так и целостность данных.
С юридической точки зрения цифровые подписи так же законны, как и обычные, если
не больше, хотя законодательство в вашей стране по этому вопросу может быть иным.
Обычные подписи подделать гораздо легче. Чтобы подделать цифровую подпись, мошен-
ник должен иметь административный доступ к серверу, на котором хранятся закрытые
ключи организации. Поэтому такие серверы должны работать под управлением стабиль-
ной безопасной ОС и проходить регулярные аудиторские проверки. В некоторых опера-
ционных системах существуют команды, которые делают файл неизменяемым и неуда-
ляемым (например, c h a t t r +i в Linux). Если применить такую команду к файлам с
закрытыми ключами, а затем удалить ее из системы, то это может вызвать замешатель-
ство у некоторых взломщиков, получивших доступ к системе. Имеет смысл поместить
машину, на которой хранятся закрытые ключи, в отдельную подсеть и реализовать очень
жесткие правила на маршрутизаторе, разрешающие доступ к серверу только тем, кому
это нужно. Если требования к безопасности очень высоки, то закрытые ключи можно
хранить на КПК или ноутбуке, который не подключен к сети и находится в надежном
сейфе. Доставать такой компьютер можно только тогда, когда возникает необходимость
зашифровать данные или подписать документ, Можно, конечно, не выделять для закры-
тых ключей целую машину, а хранить их на съемном жестком диске, zip- или компакт-
диске, предназначенном только для чтения. Способ защиты выбирать вам. Не забывайте,
что самое слабое звено - это человек, поэтому доступ к закрытым ключам должен быть
только у сотрудников, которым вы абсолютно доверяете. Остальные даже не должны
знать, как и где хранятся ключи.
Существует два основных алгоритма цифровой подписи: Digital Signature Algorithm
(DSA) и RSA Signature Scheme. Последний основан на асимметричной криптосистеме
RSA и для генерирования односторонней свертки в нем используется функция MD5 или
SHA-1. Это был стандарт де факто для создания и проверки цифровой подписи, пока
правительство США не объявило о DSA. Алгоритм DSA основан на асимметричной крип-
тосистеме Эль Гамаля, в нем используется функция SHA-1. Более безопасный вариант
DSA называется Elliptic Curve DSA (ECDSA). Хотя и DSA, и RSA обеспечивают достаточ-
ный уровень безопасности (при условии, что длина ключа составляет не менее 2048
бит), но скорость их работы различна. RSA работает гораздо быстрее, когда в операци-
ях участвует закрытый ключ, для DSA все обстоит наоборот. Поэтому DSA эффектив-
нее, если нужно сгенерировать цифровую подпись (на стороне сервера), a RSA - когда
ее нужно проверить (на стороне клиента).
2 8 0 ^ КРИПТОГРАФИЧЕСКАЯ ЗАЩИТА ДАННЫХ

Как вы, возможно, уже поняли, цифровые подписи обеспечивают неотрицаемость и це-
лостность данных, но не их конфиденциальность. Решением этой проблемы является безо-
пасный подписанный формат:
1. Сгенерировать дайджест сообщения.
2. Зашифровать данные и дайджест закрытым ключом.
3. Зашифровать результат открытым ключом получателя.
Должны соблюдаться следующие условия:
о ключи достаточно длинные, выбраны случайно и берутся из всего пространства клю-
чей;
о хранение и передача ключей организованы безопасно;
о время жизни ключа соответствует степени секретности данных.
Создание безопасной резервной копии ключей - это и трудная задача, и непростое уп-
равленческое решение. Мы оставляем его вам. Имейте в виду, что, с одной стороны, нали-
чие резервной копии - это страховка от случайной утраты ключей, но, с другой стороны,
это дополнительная мишень для жадных до ключей взломщиков.
Зададимся вопросом: если существует безопасный подписанный асимметричный крип-
тографический формат, то почему мы все еще продолжаем пользоваться симметричными
шифрами?
Ответа два: производительность и длина ключа. Если производительность симметрич-
ных шифров оценивается в мегабитах в секунду, то для асимметричных речь может идти
только о килобитах в секунду. Шифр RSA (с ключом длиной 1024 бит) работает примерно
в 1500 раз медленнее, чем любой из финалистов конкурса на звание AES. Это может приве-
сти к неприемлемым задержкам в работе хоста и сети, когда речь заходит о беспроводных
сетях. К тому же, хранение даже самого короткого ключа (1024 бит) для асимметричного
шифра может стать проблемой для таких устройств, как смарт-карты или мобильные теле-
фоны. Поэтому необходимо найти компромисс между безопасным обменом ключей и нео-
трицаемостью, которые обеспечивает асимметричная криптография, и производительнос-
тью симметричных шифров. Такой компромисс существует и называется гибридным
шифрованием, или цифровым конвертом:
о для распределения симметричных ключей применяются асимметричные ключи;
о для массового шифрования данных применяются симметричные ключи.
Эта модель лежит в основе работы криптографических систем с открытыми ключами, ис-
пользуемых в таких программах, как PGP или GnuPG. Для генерирования асимметричных
ключей они могут задействовать любой из алгоритмов RSA или DSA. В портале беспровод-
ной аутентификации NoCat реализация GnuPG используется для подписания сообщений, что
позволяет избежать подлога, столь распространенного в беспроводных сетях. Когда для раз-
личных сетевых операций нужно реализовать обмен ключами, то обычно применяется ори-
гинальная схема Диффи-Хеллмана (DH), основанная на вычислении дискретного логарифма
в конечном поле. Стандарт DH описан в выпущенных NIST документах FIPS PUB 186-1 и FIPS
186-2. Для DH типичны ключи длиной 768,1024 и 2048 бит. Для аутентификации в схеме
DH применяются цифровые подписи, сводящие на нет попытки атак «человек посереди-
не». Этот подход весьма надежен, но работает медленно. Аутентифицированные DH под-
писи можно реализовать при эксплуатации протокола IPSec. Чтобы решить некоторые
проблемы, свойственные криптосистеме DH, была предложена схема обмена ключами
РЕЗЮМЕ 281
mlllllj . L А,л

Elliptic Curve DH. Она явно эффективнее оригинальной реализации DH по производитель-


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

Резюме
Незащищенные данные, циркулирующие в беспроводной сети, можно легко модифициро-
вать, а взломщик для достижения своих неблаговидных целей может притвориться закон-
ным пользователем. В этой главе мы рассмотрели криптографические механизмы защиты,
с помощью которых такие атаки можно отразить. К числу контрмер относится код защиты
целостности сообщений MIC, применяемый в протоколе TKIP, а также различные односто-
ронние функции хэширования, используемые в протоколе IPSec и нескольких вариантах
протокола 802.1х ЕАР для защиты целостности данных и аутентификации пользователей.
Описанные выше методы асимметричной криптографии применяются для генерирования
цифровых подписей, которыми подписываются сертификаты, употребляемые в большин-
стве вариантов ЕАР, и для обмена секретными ключами в таких широко распространенных
протоколах, как IPSec, SSH, SSL и PGP. Изучение криптографических блоков, из которых
построены эти протоколы, поможет вам осознанно заниматься проектированием и обеспе-
чением безопасности беспроводной сети.
Если чувство признательности и доверия не
утвердится в людских умах с самого начала, то
уже не появится никогда.
Ванъ Хи (Wang Xi)

R A D I U S

В этом разделе мы постараемся описать основные принципы модели ААА, которая счита-
ется краеугольным камнем службы удаленной аутентификации пользователей (Remote
Authentication Dial-In User Service - RADIUS). Кроме того, мы вкратце изложим функции
и принципы работы протокола RADIUS. В середине раздела мы покажем, как инсталли-
ровать, конфигурировать, сопровождать и вести мониторинг работы RADIUS-сервера.
В заключение мы рассмотрим практические реализации протокола RADIUS в применении
к аутентификации пользователей в беспроводных сетях, а также упомянем о некоторых
полезных программах, которые упростят повседневную эксплуатацию и администриро-
вание RADIUS-сервера.

Модель ААА
Модель ААА (Authentication, Authorization, Accounting - аутентификация, авторизация
и учет) предназначена для управления доступом к компьютерным ресурсам, проведения
определенных политик, анализа использования ресурсов и предоставления информации,
необходимой для взимания платы за пользование ими. Все эти процедуры считаются
жизненно важными для эффективного и рационального управления сетью и обеспече-
ния безопасности.
Несмотря на то что протокол RADIUS был разработан еще до оформления модели ААА,
он может служить хорошим примером ее практической реализации. Ниже описываются три
понятия, лежащие в основе модели ААА, - аутентификация, авторизация и учет.
RADIUS 283

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

Авторизация
За аутентификацией следует авторизация, то есть принятие решения о том, разрешено ли
пользователю выполнять определенные задачи и пользоваться теми или иными сетевыми
ресурсами. Обычно авторизация производится одновременно с аутентификацией; если
разрешение получено, то пользователь будет иметь доступ к ресурсам. Таким образом, ав-
торизация - необходимая составная часть разумной политики администрирования.

Учет
Последняя составляющая модели ААА - это учет. Проще всего описать ее как процесс изме-
рения и протоколирования используемых сетевых ресурсов. Сюда включается мониторинг и
фиксация событий для различных целей, в том числе биллинга, анализа трендов, учета по-
требления ресурсов, планирования вычислительных мощностей и текущего сопровождения.

Обзор протокола RADIUS


Протокол RADIUS широко применяется во многих сетях. Его можно определить как прото-
кол безопасности, в котором для аутентификации удаленных пользователей используется
модель клиент-сервер. Реализуется он в виде серии запросов и ответов, которые клиент
передает от сервера доступа к сети (Network Access Server - NAS) конечному пользовате-
лю. Протокол RADIUS был разработан в ответ на настоятельную необходимость иметь не-
кий метод аутентификации, авторизации и учета действий пользователей, которым необ-
ходим доступ к разнородным вычислительным ресурсам.
К сожалению, тема этой книги не допускает подробного рассказа о протоколе RADIUS,
но мы намерены осветить те его аспекты, которые позволят читателю оценить, как он мо-
жет быть применен для аутентификации в беспроводных сетях. При необходимости вы
можете найти полные описания протокола и процедур учета в RFC 2138 и 2139, которые
можно скачать соответственно со страниц http://www.ietf.org/rfc/rfc2138.txt и http://
www.ietf.org/rfc/rfc2139.txt.

Особенности протокола RADIUS


В документе RFC 2138 зафиксированы следующие основные особенности протокола RADIUS:
о модель клиент-сервер. Сервер NAS выступает в роли клиента RADIUS. Этот клиент
отвечает за доставку информации о пользователе RADIUS-серверу и выполнении тех
или иных действий в зависимости от полученного ответа. RADIUS-серверы отвеча-
ют за прием запросов на установление соединения, аутентификацию пользователей
2 8 4 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

и возврат всех деталей конфигурации клиенту, который будет предоставлять пользо-


вателю определенные сервисы. Кроме того, RADIUS-сервер может выступать в виде
proxy-клиента для других RADIUS-серверов или иных серверов аутентификации;
о сетевая безопасность. Во время аутентификации пользователя обмен данными меж-
ду клиентом и сервером шифруется с помощью разделяемого секрета, который ни-
когда не передается по сети в открытом виде. Пароли пользователей клиент переда-
ет RADIUS-серверу также в зашифрованном виде, чтобы исключить возможность
прослушивания;
о гибкие механизмы аутентификации. RADIUS-сервер допускает различные методы
аутентификации пользователей. Получив имя пользователя и его пароль, он может
аутентифицировать его по протоколу РАР или CHAP, выполнить стандартную проце-
дуру входа в ОС UNIX или поискать информацию в иных хранилищах, например РАМ,
LDAP, SQL и т.д.;
о расширяемый протокол. Все данные передаются в виде троек переменной длины:
атрибут-длина-значение (Attribute-Length-Value - ALV). Можно добавлять новые зна-
чения атрибутов, не нарушая корректность работы существующей реализации, за счет
чего протокол становится более гибким и динамичным, способным к расширению.

Форматы пакетов
Пакеты протокола RADIUS инкапсулированы в поток данных протокола UDP без состоя-
ния. Для этого протокола зарезервированы порты 1812, 1813 и 1814, предназначенные
соответственно для доступа, учета и организации proxy. Ради совместимости и по истори-
ческим причинам некоторые серверы продолжают работать через порты 1645 и 1646. Так
повелось еще со времен ранних этапов разработки RADIUS, а теперь вступает в противоре-
чие со службой «метрик данных».
В RFC специфицирована структура пакета протокола RADIUS (рис. 13.1).

Рис. 13.1. Структура пакета протокола RADIUS

Ниже описаны отдельные элементы этого пакета:


о код. Поле кода длиной в один октет определяет тип пакета. Получив пакет с некор-
ректным значением кода, сервер игнорирует его без каких-либо уведомлений. До-
пустимые типы пакетов рассматриваются в следующем разделе;
о идентификатор. Это поле длиной также в один октет позволяет клиенту RADIUS
сопоставить полученный от сервера ответ с ранее посланным запросом;
о длина. Это поле занимает два октета. В нем хранится длина сообщения, то есть сум-
ма длин полей кода, идентификатора, длины, аутентификатора и атрибутов;
о аутентификатор. Длина поля равна 16 октетам, оно используется для аутентифи-
кации и верификации ответа от RADIUS-сервера, а также как механизм сокрытия
паролей. В поле могут передаваться значения двух типов: запрос (Request) и ответ
RADIUS 285

(Response). Поле запроса может встречаться в пакетах типа Access (Доступ) и


Accounting Request (Запрос учетной информации), его значение должно быть слу-
чайно и уникально. Поле ответа встречается в пакетах типа Access-Accept (Доступ
разрешен), Access-Reject (Доступ запрещен) и Access-Challenge (Запрос). Оно долж-
но содержать одностороннюю МБ5-свертку, вычисленную по значениям полей кода,
идентификатора, длины, аутентификатора, атрибутов и по разделяемому секрету;
о атрибуты. В этом поле передаются различные характеристики службы, обычно для
анонсирования конкретных предлагаемых или запрашиваемых возможностей. Шесть
атрибутов и их допустимые значения представлены в табл. 13.1.

Таблица 13.1. Типы атрибутов в протоколе RADIUS

ТИПЫ пакетов
RADIUS-сервер идентифицирует типы сообщений по значению поля кода. Возможные коды
описаны в табл. 13.2. Мы не будем вдаваться в подробности, поскольку считаем, что назва-
ния понятны без пояснений. Но, если хотите, можете прочитать раздел «Packet Types»
(Типы пакетов) в RFC 2138.
286 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

11 Access-Challenge (Запрос)
12 Status-Server (Состояние сервера) - экспериментальный
13 Status-Client (Состояние клиента) - экспериментальный
255 Зарезервирован

Инсталляция FreeRADIUS
Мы уже обсудили модель ААА, лежащую в основе протокола RADIUS, а также структуру
протокола, допустимые типы и значения полей. Теперь займемся более практическим воп-
росом - инсталляцией сервера FreeRADIUS. На официальном сайте проекта FreeRADIUS
(http://www.freeradius.org) читаем: «Проект FreeRADIUS - это попытка создать высокопро-
изводительный и конфигурируемый в широких пределах RADIUS-сервер, распространяе-
мый по лицензии GPL. Сервер аналогичен продукту Livingston 2.O. FreeRADIUS - это вари-
ант сервера Cistron RADIUS, но общего у них мало. FreeRADIUS имеет гораздо больше
возможностей, чем Cistron или Livingston, и при этом намного лучше конфигурируется».
Для промышленной эксплуатации мы рекомендуем устанавливать стабильную версию
продукта, в момент работы над книгой это была версия FreeRADIUS 0.8.1. Но, возможно, вы
сочтете, что последняя версия в CVS-хранилище лучше отвечает вашим потребностям, по-
скольку поддерживает больше функций. И стабильную, и CVS-версию можно скачать со
страницы http://www.freeradius.org/getting.html. Далее мы будем говорить о версии, взя-
той из CVS-хранилища 26 мая 2003 года. Процедура инсталляции последней стабильной
версии не должна сильно отличаться.
Для того чтобы начать процедуру сборки и инсталляции из исходных текстов, скачайте
и разверните дистрибутив FreeRADIUS:
arhontus:~$ wget -с ftp://ftp.freeradius.org/pub/radius/CVS-snapshots/
freeradius-snapshot-20030526.tar.gz
Чтобы настроитьtar
arhontus:~$ FreeRADIUS под свои нужды, вы, возможно, захотите отредактировать
-xvzf freeradius-snapshot-20030526.tar.gz
arhontus:~$
файл Makefile или cd freeradius-snapshot-20030526
указать дополнительные флаги сценарию configure. Подробно об имею-
Чтобы
щихся настроить FreeRADIUS
возможностях под набрав
можно узнать, свои нужды, вы, возможно, захотите отредактировать
команду
файл Makefile или указать дополнительные флаги сценарию configure. Подробно об имею-
щихся возможностях можно узнать, набрав команду
Затем выполните
arhontus:$ конфигурирование
./configure --help и запустите компиляцию:
Затем выполните конфигурирование и запустите компиляцию:
arhontus:$ ./configure
arhontus:$ make
Для инсталляции FreeRADIUS вам потребуются привилегии пользователя root. Выпол-
ните команды:
arhontus:$ su
arhontus:# make i n s t a l l
ИНСТАЛЛЯЦИЯ FREERADIUS 287

Чтобы инсталлировать двоичный пакет в Debian Linux, выполните команду


arhontus:# dpkg -i radiusd-freeradius_O.8.I_i386.deb
или
arhontus:# dpkg -i radiusd-freeradius_O.8.1+0.9pre20030526-l_i386.deb
в зависимости от того, хотите вы установить стабильную или CVS-версию. Кроме того, мож-
но установить различные дополнительные модули к серверу, реализующие такие схемы
аутентификации, как Kerberos V, SQL или LDAP.
По завершении инсталляции переходите к следующему разделу, в котором описывают-
ся процедуры конфигурирования RADIUS-сервера.

Конфигурирование
Во время работы над этой книгой конфигурационные файлы для стабильной версии на-
ходились в каталоге /etc/raddb, а для CVS-версии - в каталоге /etc/freeradius, так что,
возможно, ваши действия будут слегка отличаться от описанных ниже. Предлагаем вам
сразу познакомиться со структурой каталогов и наиболее важными конфигурационны-
ми файлами.
288А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

clients, conf
Информация, хранящаяся в этом файле, более приоритетна, чем та, что находится в файлах
clients или naslist. Конфигурация включает все данные из этих двух файлов, а также до-
полнительные возможности. Чтобы сконфигурировать сервер с учетом особенностей ва-
шей сети, редактируйте именно файл clients.conf. Вот пример одной записи:

Настоятельно рекомендуем в качестве разделяемого секрета выбирать строки, отсут-


ствующие в словаре, и употреблять в них символы разных типов: буквы, цифры, знаки
препинания и др. Если вы не измените принятые по умолчанию значения, то поставите
безопасность сети под угрозу!

naslist
Далее отредактируйте файл /etc/freeradius/naslist, указав в нем канонические названия,
сокращенные названия и типы всех NAS-серверов, которые будут обращаться к данному
RADIUS-серверу. Полный перечень поддерживаемых видов NAS-серверов можно узнать на
странице руководства или из самого файла naslist. Ниже приведен пример:

Файл /etc/freeradius/radiusd.conf - это сердце RADIUS-сервера. Именно в нем прописыва-


ется большая часть параметров и директив. Ниже для иллюстрации приведен небольшой
фрагмент этого файла. Его необходимо отредактировать в соответствии с вашими требова-
ниями. Можете также посмотреть наш пример файла radiusd.conf, в котором прописаны
многие возможности FreeRADIUS, в том числе аутентификация посредством LDAP, EAP-TLS
или паролей UNIX.
realms
Файл /etc/freeradius/realms будет полезен, если вы захотите развернуть несколько RADIUS-
серверов и потребовать, чтобы мобильные пользователи переходили с одного на другой.
В последних версиях FreeRADIUS этот файл уже не используется и заменен файлом proxy.conf,
в котором хранятся настройки для организации proxy.

users
В этом файле описываются методы и процедуры аутентификации пользователей. Мы по-
местим сюда разных пользователей вместе с указанием тех сервисов, к которым у них есть
доступ, а также применяемых по умолчанию механизмов аутентификации. Более подроб-
ную информацию об этом файле можно найти на странице руководства man 5 users. Ниже
приведен пример:
arhontus:~# /etc/init.d/freeradius start
Если сервер запустился успешно, то, выполнив показанную ниже команду, вы увидите
что-то типа:

Если это не так, запустите FreeRADIUS в режиме отладки, чтобы из диагностических


сообщений понять, в чем причина ошибки:

Успешно запустив FreeRADIUS-сервер, вы сможете протестировать аутентификацию


пользователя, причем несколькими разными способами. Первый способ - воспользо-
ваться утилитой radtest, которая пытается установить соединение с сервером, отпра-
вив ему указанные «верительные грамоты», и выводит полученный от сервера ответ.
Вот пример:

В протоколе сервера должна появиться запись об авторизации такого вида:

Если вы работаете на платформе Microsoft Windows, то можете скачать утилиту NTRadPing


для тестирования RADIUS-сервера со страницы http://www.mastersoft-group.com/download/.
Окно утилиты показано на рис. 13.2.
Успешно завершив тестирование сервера, можете переходить к следующему разделу,
в котором речь идет об основах мониторинга и учета в RADIUS. Это важно знать для по-
вседневного администрирования, а также на случай, если все-таки произойдет вторже-
ние в сеть.
УЧЕ Г РАБОТЫ ПОЛЬЗОВАТЕЛЕЙ 2 9 1

Учет работы пользователей


В документе RFC 2139 перечислены основные возможности службы учета RADIUS
Accounting:
о модель клиент-сервер. NAS-сервер работает как клиент учетного RADIUS-сервера.
Клиент передает учетную информацию о пользователе учетному серверу. Учетный
сервер принимает запрос и возвращает клиенту отве г о том, что запрос получен. Учет-
ный сервер может выступать в роли proxy-клиента ^ля других учетных серверов;
о сетевая безопасность. Транзакции между клиенток и сервером аутентифицируют-
ся с помощью разделяемого секрета, который никогда не передается по сети;
о расширяемый протокол. В ходе любой транзакции [передается тройка атрибут-дли-
на-значение переменной длины. Новые значения! атрибутов можно добавлять, не
нарушая работу существующей реализации протокола.
Любой вид оборудования, входящий в состав сервера доступа к сети (NAS), должен под-
держивать учетные функции RADIUS. Должна быть возможность сконфигурировать его так,
чтобы протоколировалась информация о типичных для Пользователя способах доступа в
сеть. Ниже приведен пример учетной информации о сеансе с точки доступа Orinoco, но
ясно, что в реальности картина будет зависеть от вида обррудования NAS и способа учета,
заданного администратором.
2 9 2 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Прочитать об утилитах для анализа учетных данных и формирования отчетов на их


основе можно ниже в разделе «Инструменты, относящиеся к RADIUS».

Уязвимости RADIUS
Известен целый ряд слабостей RADIUS, причиной которых является как сам протокол, так
и неудачная реализация клиентов. Сам по себе протокол UDP, не имеющий состояния, по-
зволяет подделывать пакеты. Уязвимости, о которых пойдет речь в этом разделе, не исчер-
пывают весь список проблем протокола, а призваны лишь продемонстрировать несколько
способов обойти аутентификацию пользователя. Атаки можно отнести к следующим кате-
гориям:
о подбор «верительных грамот» пользователя методом полного перебора;
о DoS-атака;
о повтор сеанса;
о внедрение поддельных пакетов.

Атака на аутентификатор ответа


Аутентификатор ответа (Response Authenticator) - это, по существу, МО5-свертка. Если
противник сумел перехватить корректную последовательность пакетов типа Access-Request,
Access-Accept или Access-Reject, то он может, уже не находясь в сети, попробовать вскрыть
разделяемый секрет путем полного перебора. Противник может вычислить МО5-свертку
от комбинации полей кода+идентификатора+длины+аутентификатора+атрибутов, посколь-
ку большая часть составных частей аутентификатора известны, а затем повторять эту свер-
тку при каждой попытке угадать разделяемый секрет.

Атака на разделяемый секрет на основе атрибута Password


Мандат, содержащий пару имя-пароль, является защищенным, но противник может полу-
чить информацию о разделяемом секрете, если будет следить за попытками аутентифика-
ции. Если взломщик предпримет попытку аутентифицироваться с известным паролем, а
затем перехватит отправляемый в результате пакет Accept-Request, то он сможет выпол-
нить XOR между защищенной частью атрибута U s e r - P a s sword с паролем, который он
сообщил клиенту ранее. Поскольку аутентификатор ответа известен (его можно увидеть в
пакете Accept-Request), то противник получает возможность провести атаку методом пол-
ного перебора на разделяемый секрет, уже не находясь в сети.
ИНСТРУМЕНТЫ, ОТНОСЯЩИЕСЯ К RADIUS 2 9 3

Атака на пароль пользователя


Она аналогична предыдущей: зная разделяемый секрет, противник может пробовать раз-
личные пароли путем модификации и воспроизведения пакетов типа Access-Request. Если
сервер не ограничивает число безуспешных попыток аутентификации одного пользовате-
ля, то атакующий сумеет выполнить полный перебор всех паролей, пока не отыщет пра-
вильный. Не забывайте, что применение стойкой схемы аутентификации в пакете Access-
Request сделает такую атаку почти невозможной.

Атаки на аутентификатор запроса


Безопасность пакета в протоколе RADIUS зависит от содержимого поля аутентификатора зап-
роса (Request Authenticator). Оно должно быть уникальным и непредсказуемым. Однако в
спецификациях протокола важности способа генерирования этого поля не уделено долж-
ного внимания, поэтому существует много реализаций, в которых алгоритм оставляет же-
лать лучшего. Если клиент пользуется генератором псевдослучайных чисел с коротким
периодом, то желаемый уровень безопасности протокола не будет достигнут. Вспомните,
что говорилось в главах о прикладной криптографии по поводу работы и тестирования
генераторов псевдослучайных чисел.

Повтор ответов сервера


Противник может создать базу данных с аутентификаторами запросов, идентификатора-
ми и соответствующими им ответами сервера, если будет периодически прослушивать и
перехватывать трафик между клиентом и сервером. Увидев запрос с уже встречавшимся
ранее аутентификатором, противник замаскирует себя под сервер и повторит наблюдав-
шийся ранее ответ. Кроме того, противник может воспроизвести похожий на правду от-
вет сервера типа Access-Accept и тем самым аутентифицироваться, не представив кор-
ректных «верительных грамот».

Проблемы, связанные с разделяемым секретом


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

Инструменты, относящиеся к RADIUS


Ниже перечислен ряд альтернативных RADIUS-серверов, а также несколько утилит для
администрирования и мониторинга работы пользователей:
о Cistron. Этот бесплатный сервер, написанный Мигелем ван Смуренбургом (Miquel
van Smoorenburg) на базе исходных текстов сервера Livingston, нашел широкое
2 9 4 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

применение. На посвященной ему странице http://www.radius.cistron.nl можно най-


ти более подробную информацию;
о ICRADIUS. Это вариант Cistron с поддержкой MySQL и интерфейсом для Web. Страни-
ца проекта размещена по адресу http://radius.innercite.com;
о XtRADIUS. Еще один вариант Cistron с расширениями для запуска внешних программ
аутентификации и учета. Детали см. на странице http://www.xtradius.com;
о OpenRADIUS. Совершенно новая реализация сервера, управляемая подключаемыми
модулями. Страница проекта размещена по адресу http://www.openradius.net;
о GNU-radius. Еще один вариант Cistron. Значительная часть кода переписана. Подроб-
ности на странице http://www.gnu.org/software/radius/radius.html;
о YARD RADIUS. Основан на открытых исходных текстах сервера Livingston Radius
Server 2.1. Имеет альтернативную схему конфигурирования и много дополнитель-
ных возможностей. Дистрибутив можно скачать со страницы http://sourceforge.net/
projects/yardradius;
о Accounting logparser. Это написанный на Perl сценарий для анализа учетного прото-
кола RADIUS. Он включает средства формирования различных отчетов. Подробнее
см. на странице http://www.shenton.org/~chris/nasa-hq/dialup/radius;
о RadiusReport. Это тоже утилита для анализа протоколов, написанная на Perl. Она
позволяет генерировать разнообразные отчеты на основе одного или нескольких
файлов протоколов RADIUS. Подробнее о реализации см. http://www.pgregg.com/
projects/radiusreport;
о RadiusSplit. Этот сценарий предназначен для сортировки учетных файлов RADIUS,
чтобы их затем можно было обработать с помощью RadiusReport. В результате на-
много сокращается время, необходимое для анализа. Скачать программу можно со
страницы http://www.pgregg.com/projects/radiussplit;
о RadiusContext. Это набор утилит для быстрого и эффективного анализа протоко-
лов. Утверждается, что они работают намного быстрее и потребляют существен-
но меньше памяти, чем сценарий RadiusReport. Программы написаны на языке
Python и доступны для скачивания на странице http://www.tummy.com/Software/
radiuscontext.

802.1х: на страже беспроводной крепости


802.1х - это стандарт, в котором определена безопасность на уровне портов для гетеро-
генных сетей. Первоначально он был разработан для проводных сетей, а теперь адаптиро-
ван и для беспроводных и стал частью стандарта 802.Hi. Необходимость адаптации была
вызвана, главным образом, желанием авторизовать законных пользователей и ограничить
всем остальным доступ к принципиально небезопасной беспроводной среде. Стандарт
802.11 и протокол ЕАР стали очень популярны по мере роста числа беспроводных сетей,
так что все большее число компаний принимают на вооружение эту комбинацию. Тому есть
следующие причины:
о ее сравнительно легко реализовать, поскольку для аутентификации и инфраструктуры
безопасности в целом применяются уже давно известные средства, к примеру RADIUS;
о она обеспечивает высокую степень безопасности;
802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 295

о в схеме аутентификации применяются сеансовые и пакетные ключи, в том числе


основанные на инфраструктуре PKI;
о имеется поддержка для одноразовых паролей и смарт-карт;
о она легко масштабируется по мере роста сети.
В этом разделе мы продемонстрируем методику внедрения схемы безопасного доступа к бес-
проводной сети на базе стандарта 802.1х и протокола стойкой аутентификации на уровне 2,
например, EAP-TLS. Кроме того, мы покажем, как на практике сочетание 802.1х и EAP-TLS
можно применить в различных сценариях на базе модели клиент-сервер в Windows и UNIX.

Основы EAP-TLS
В документе RFC 2284 протокол ЕАР описан следующим образом: «Расширяемый протокол
аутентификации (ЕАР) - это общий протокол для аутентификации поверх протокола РРР, ко-
торый поддерживает несколько механизмов аутентификации. ЕАР не выбирает конкретный
механизм аутентификации на этапе управления каналом, а откладывает выбор до этапа аутен-
тификации. Это позволяет аутентификатору запросить больше информации еще до выбора
конкретного механизма. Это также открывает возможность для применения поддерживающе-
го сервера, который и реализует различные механизмы, тогда как аутентификатор на уровне
РРР просто пропускает через себя все необходимые для аутентификации сообщения».
После того как канал установлен, аутентификация по протоколу ЕАР выполняется в сле-
дующем порядке:
о первоначально аутентификатор посылает запросы для аутентификации претенден-
та. В запросе есть поле типа, показывающее, что именно запрашивается. Вот не-
сколько примеров запросов разных типов: идентификация, МБ5-запрос, одноразовый
пароль, некая карта с записанной на ней информацией и т.д. Аутентификатор посы-
лает начальный запрос идентификации (Identity Request), за которым следует один
или несколько запросов о предоставлении информации для аутентификации;
о затем претендент посылает ответ на каждый запрос. В пакете, содержащем ответ,
также есть поле типа, соответствующее полю типа в запросе;
о аутентификатор завершает процесс аутентификации отправкой пакета об успехе
или неудаче аутентификации.
На рис. 13.3 показан процесс аутентификации по протоколу EAP-TLS.
2 9 6 А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

У протокола ЕАР много достоинств, в том числе поддержка различных методов аутенти-
фикации без необходимости фиксировать какой-то механизм на этапе управления кана-
лом. Кроме, того, оборудование NAS-сервера не обязано понимать все типы запросов и
может просто работать как агент, переадресующий запросы RADIUS-серверу. Следователь-
но, само устройство должно лишь отслеживать ответы сервера об успешной или неудач-
ной аутентификации, чтобы знать, каков был результат.

Формат пакета
Согласно RFC 2284, «один пакет РРР ЕАР инкапсулируется в поле Information фрейма
канального уровня РРР, причем поле протокола должно содержать шестнадцатеричное
значение С227 (РРР ЕАР)». На рис. 13.4 представлена структура пакета протокола ЕАР.

Структура сообщения ЕАР аналогична структуре пакета RADIUS, которая рассматрива-


лась в первой части этой главы, поэтому здесь мы ее подробно обсуждать не будем. Де-
тальная информация о типах пакетов ЕАР приведена в RFC 2284.
Ознакомившись с основными идеями аутентификации на базе стандарта 802.1х с про-
токолом ЕАР, мы можем перейти к следующей части, где будет приведен практический
пример того, как интегрировать описанную схему в работающую домашнюю или корпо-
ративную беспроводную сеть. Мы будем предполагать, что имеется операционная систе-
ма Debian Linux с сервером FreeRADIUS и точкой доступа Orinoco AP-2000, выступающей
в роли NAS-сервера для аутентификации клиентов на платформах Linux и Windows. Нам
понадобятся еще некоторые утилиты и сценарии, с которыми мы ознакомимся по ходу
изложения.

Создание сертификатов
Для построения механизма аутентификации пользователей на базе архитектуры PKI нуж-
но выпустить сертификаты для клиентов и сервера, для чего понадобится развернуть удо-
стоверяющий центр (СА - Certification Authority).
С этой целью мы воспользуемся набором сценариев, взятых из написанного Раймондом
Мак-Кеем (Raymond McKay) документа EAP/TLS H0WT0 и слегка подправленных. Сценарии
называются CA.root, CA.server и CA.client. Еще нам понадобится файл xpextensions. Прежде
чем пользоваться ими, убедитесь, что установлен пакет OpenSSH, и измените в тексте сце-
нариев путь к каталогу SSL в соответствии со своим сервером, если, конечно, в вашем ди-
стрибутиве Debian Linux они уже не подправлены. Кроме того, рекомендуется изменить
повсюду пароль в запросе с testinglll на что-нибудь более подходящее.
802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 2 9 7

Для начала сгенерируем корневой удостоверяющий центр, запустив сценарий CA.root и


ответив на вопросы об организации: местоположение, название, организационная едини-
ца и т.д. В результате будут созданы следующие файлы:

После создания удостоверяющего центра можно выпустить сертификат для сервера, за-
пустив сценарий CA.server и указав в качестве параметра имя сервера, например:
arhontus:-# ./CA.server radius.core.arhont.com
В результате будет создан набор файлов с сертификатом сервера, которые позже нужно
будет интегрировать с RADIUS-сервером. Вот эти файлы:

Последний шаг - создание сертификатов для каждого пользователя с помощью сцена-


рия CA.client, которому передается имя пользователя без пробелов в том виде, в котором
оно представлено в файле users RADIUS-сервера:

В результате для каждого клиента будут созданы такие файлы:

Создав все необходимые сертификаты, скопируйте файлы root.der и <usemame>.pl2 на


каждый из клиентских компьютеров и установите их для всех клиентов на платформе
Windows. Процедура установки сертификатов рассматривается ниже в разделе «Претенден-
ты». Кроме того, файлы root.pem и <servemame>.pem понадобятся для настройки
FreeRADIUS-сервера, о которой будет рассказано в следующем разделе. Из соображений
совместимости мы рекомендуем также поместить копию сгенерированных сертификатов в
каталог OpenSSL, указанный в файле openssl.cnf (обычно /etc/ssl).

Как практически все в мире UNIX, процедура конфигурирования сервера FreeRADIUS в ОС


Linux проста, изящна и логична. В предыдущем разделе вы уже познакомились с протоко-
лом RADIUS и, надеемся, установили и сконфигурировали сервер. Здесь мы расскажем, как
2 9 8 ^ ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

активизировать поддержку протокола EAP-TLS, чтобы мобильные пользователи смогли ав-


торизоваться в вашей беспроводной сети по технологии PKI.
В этом примере мы предполагаем, что вы создали каталог /etc/lx с правами, разре-
шающими читать его FreeRADIUS-серверу. Поместите в этот каталог файлы root.pem и
<servername.pem> и тоже разрешите серверу их читать. Поскольку вы уже отредакти-
ровали файл clients.conf и разрешили оборудованию доступа к сети соединяться с сер-
вером, то осталось лишь изменить файлы users и radiusd.conf, после чего интеграция
802.1x/EAP/RADIUS будет завершена.

Файл radiusd.conf
Найдите раздел, посвященный конфигурации ЕАР. Он начинается с таких строк:
# Extensible Authentication Protocol
#
# For all ЕАР related authentications
eap {
802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 2 9 9

Затем отредактируйте раздел Authentication и раскомментарьте все ссылки на ЕАР. Прежде


чем приступать к редактированию файла users, нужно будет создать два файла со случайными
данными и сделать их доступными для чтения процессу FreeRADIUS. В файле radiusd.conf пути
к этим файлам являются значениями переменных dh_f Н е й random_f i I e. Например, мож-
но создать их следующим образом:

arhontus:~# dd if=/dev/urandom of=/etc/lx/DH bs=lK count=2048


arhontus:~# dd if=/dev/urandom of=/etc/lx/randomH bs=lK count=2048

Файл users
Для каждого пользователя, который будет проходить аутентификацию по протоколу ЕАР-
TLS, добавьте в файл users следующую строку (в ней < c l i e n t n a m e > должно в точности
совпадать со значением поля Common Name, указанным при создании клиентского серти-
фиката):
"<clientname>" Auth-Type := ЕАР
Теперь можно перезапустить FreeRADIUS-сервер. Далее мы опишем процедуры конфи-
гурирования аутентификации клиентов.

Претенденты
До сих пор мы имели дело, главным образом, с серверной стороной процедуры аутентифика-
ции, теперь перейдем к клиентской. Сначала опишем конфигурацию клиента на платформе
Linux с помощью приложения XSupplicant, а затем утомительную последовательность щелч-
ков мышью, необходимую для конфигурирования Windows-клиентов. Ладно, я и без вас знаю,
что справедливость искать бесполезно! Вам не только приходится платить за этот «стабиль-
ный, дружественный и работающий софт», но еще и тратить драгоценное время, пробиваясь
сквозь дебри его настроек, аки обезьяна! Но в конце-то концов разве администратору платят
не за это? Не станем ввязываться в споры о том, что лучше - Windows или Linux.

Linux
Приводимые ниже инструкции должны работать в любом дистрибутиве Linux. Сначала нужно
скачать с сайта http://www.openlx.org и установить программу Xsupplicant. Во время работы
над книгой последней стабильной версией была 0.6, но можно взять версию и из CVS-хранили-
ща, которая обычно работает не хуже, зато имеет больше возможностей. Скачав дистрибутив,
выполните следующие команды, чтобы развернуть архив, собрать и установить пакет:
arhontus:~$ tar zxvf xsupplicant-0.б.tar. gz
arhontus:~$ cd xsupplicant
arhontus:~$ ./configure
arhontus:~$ make
arhontus:~$ make install
Успешно завершив установку, скопируйте файл ./etc/lx.conf в каталог /etc/lx и отре-
дактируйте его, как показано ниже, заменив < c l i e n t n a m e > точно той строкой, которая
была указана в качестве значения поля Common Name при создании сертификата.
300 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ
802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 3 0 1

параметры сетевого интерфейса. На этом процедура Инсталляции клиента Xsupplicant в


Linux завершена.

Windows 2000 и Windows XP


В этом разделе обсуждается процедура установки сертификата, а также настройка сетево-
го соединения, для которого аутентификация будет производиться по протоколу 802.1х/
EAP-TLS. К счастью, в Windows XP имеется встроенная поддержка для аутентификации по
протоколу 802.1х, так что скачивать из сети дополнительные программы не понадобится.
Пользователи же Windows 2000 должны будут поставить патч, который дает возмож-
ность аутентифицироваться по протоколу 802.1х. Загрузить его можно с сайта Microsoft
(http://www.microsoft.com/Windows2000/downloads/recommended/q313664/download.asp).
После установки и перезапуска компьютера можно будет активизировать этот сервис, от-
крыв Панель управления (Control Panel), выбрав пункты Administrative Tasks => Services
(Административные задачи => Сервисы) и установив для сервиса Wireless Configuration ав-
томатический режим запуска (Automatic). Затем этот сервис надо будет запустить.
Следующие инструкции должны работать и в Windows 2000, и в Windows XP. Активизи-
ровав сервис Wireless Configuration Service, вы сможете импортировать сертификаты root.der
и <clientname>.pl2, выполнив следующие действия: дважды щелкните мышью по файлу
root.der и следуйте инструкции для его установки в папку Trusted Root Certificate Authrities
(Доверенные корневые удостоверяющие центры) - рис. 13.5 и 13.6.
Покончив с этим, вы должны будете установить закрытый ключ, дважды щелкнув по
файлу <clientname>.p!2 и выполнив инструкции Мастера (рис. 13.7 и 13.8).
302 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

После установки сертификата вы должны будете разрешить использовать на данном се-


тевом соединении протокол 802.1х/ЕАР. Для этого откройте Панель управления, выберите
пункт Network Connections (Сетевые соединения), щелкните правой кнопкой мыши по
802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 3 0 3

беспроводному соединению (представленному, например, иконкой Local Area Connection


(Локальное соединение)), выберите из контекстного меню пункт Properties (Свойства), пе-
рейдите на вкладку Authentication (Аутентификация) и отметьте флажки, как показано
на рис. 13.9 и 13.10.
3 0 4 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

После выполнения всех этих инструкций ваш сертификат должен автоматически аутен-
тифицироватъся RADIUS-сервером. Если возникнут сложности, запустите сервер FreeRADIUS
в режиме отладки, например с флагами -X -А, и исправьте все ошибки, о которых говорится
в диагностических сообщениях. Если это не получается, обратитесь к группе пользователей
FreeRADIUS (http://www.freeradius.org/list/users.html) и попросите у них совета.

Пример конфигурирования точки доступа Orinoco AP-2000


Порядок включения аутентификации по протоколу 802.1х/ЕАР на оборудовании для дос-
тупа в сеть должен быть одним и тем же вне зависимости от производителя. В качестве
примера опишем процедуры настройки точки доступа Orinoco AP-2000, которая была лю-
безно предоставлена компании Arhont для тестирования фирмой Proxim.
Зайдите на точку доступа, выберите в меню пункт Configure и щелкните по элементу
RADIUS. Введите параметры вашего FreeRADIUS-сервера, в том числе разделяемый секрет,
который был задан в файле clients.conf. Необходимо также включить учетный протокол
RADIUS. Окно должно выглядеть примерно так, как показано на рис. 13.11 и 13.12.

Теперь перейдите на вкладку Security (Безопасность) и в списке 802.IX Security Mode


(Режим безопасности для 802.1х) выберите элемент Mixed Mode (Смешанный режим), ко-
торый обеспечивает совместимость с существующими пользователями WEP и клиентами с
поддержкой 802.1х. Если вы вообще не хотите использовать WEP, оставьте только прото-
кол 802.1х, а шифрование по протоколу WEP отключите вовсе.
Чтобы новые параметры вступили в силу, точку доступа придется перезагрузить (рис. 13.13
и 13.14). Все, можете наслаждаться аутентификацией по протоколу EAP-TLS.
802.1Х: НА СТРАЖЕ БЕСПРОВОДНОЙ КРЕПОСТИ 305
3 0 6 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Служба каталогов LDAP

Обзор

Что такое служба каталогов


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

Что такое LDAP


Аббревиатура LDAP означает Lightweight Directory Access Protocol (Облегченный протокол
службы каталогов). Информационная модель в LDAP состоит из ряда отдельных записей
(Entries), имеющих глобально уникальные различимые имена (Distinguished Name - DN),
в каждой из которых хранится набор атрибутов. У каждого атрибута в записи есть тип и
одно или несколько значений. Типы обычно представляют собой строки, например, u i d
СЛУЖБА КАТАЛОГОВ LDAP 3 0 7

(идентификатор пользователя), сп (полное имя), sn (фамилия) или m a i l (адрес элект-


ронной почты). Например, значением атрибута сп может быть строка Gordon C o l l i n s ,
а атрибут m a i l может иметь значение g o r d o n @ a r h o n t . com.
В модели LDAP записи каталога организованы в виде иерархического дерева. На рис. 13.15
показан пример структуры каталога. По традиции структура отражает географические или
организационные границы. Записи, относящиеся к странам, находятся на вершине дерева, а
ниже них - записи, представляющие национальные организации. Далее могут располагать-
ся записи, описывающие организационные единицы, людей, принтеры, документы, да и во-
обще все что угодно. Можно предложить и иную структуру, основанную на доменных име-
нах; она приобретает все большую популярность. Как видно из рис. 13.15, структура каталога
для нашей компании Arhont базируется на доменном имени (то есть dc=arhont, dc=com),
а не на географическом делении (o=arhont, c=UK).

Рис. 13.15. Структура каталога LDAP

Запись каталога идентифицируется своим различимым именем DN, которое составлено


из имени самой записи и всех ее предков. Так, запись, описывающая человека по имени
Gordon Collins из предыдущего примера, адресуется следующим образом:

Как работает LDAP


Служба каталогов LDAP основана на модели клиент-сервер. На одном или нескольких LDAP-
серверах хранятся данные, составляющие информационное дерево каталога. Клиент соеди-
няется с LDAP-сервером и запрашивает конкретную информацию. Сервер обращается к базе
308 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

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

Установка OpenLDAP
В этом разделе мы опишем процедуру установки LDAP-сервера. В этой книге рассматрива-
ется только сервер OpenLDAP, хотя вы можете выбрать любую другую реализацию по сво-
ему усмотрению. Во время работы над этой книгой последней версией OpenLDAP была
2.1.20, а последней стабильной - 2.1.17. Мы рекомендуем пользоваться стабильной верси-
ей пакета, хотя в более поздних могут быть реализованы и дополнительные возможности.
Ознакомиться с информацией об этом проекте и скачать дистрибутив можно на сайте
http://www.openldap.org/.

Зависимости
Пакет OpenLDAP зависит от ряда других программных пакетов. Возможно, вам придется
установить и дополнительные инструменты. В этом разделе мы расскажем о наиболее рас-
пространенных пакетах, которые приходится устанавливать и конфигурировать для сбор-
ки OpenLDAP. У некоторых из них могут быть и дополнительные зависимости, которые тоже
придется учесть.
Transport Layer Security (TLS). Для клиентов и серверов OpenLDAP требуется установить
библиотеки OpenSSL TLS, предоставляющие сервисы безопасности транспортного уровня
(TLS). Эти библиотеки входят в состав пакета OpenSSL, который можно скачать с сайта
http://www.openssl.org.
Сервисы аутентификации Kerberos. В OpenLDAP имеется поддержка сервисов аутенти-
фикации на базе Kerberos. В частности, OpenLDAP поддерживает механизм аутентифика-
ции SASL/GSSAPI с помощью пакетов Heimdal или MIT KerberosV. Если вы собираетесь ис-
пользовать механизм SASL/GSSAPI, то потребуется установить хотя бы один из этих пакетов.
Пакет Heimdal Kerberos можно скачать с сайта http://www.pdc.kth.se/heimdal/, а пакет MIT
Kerberos - с сайта http://web.mit.edu/kerberos/www/.
Simple Authentication and Security Layer (Слой простой аутентификации и обеспечения
безопасности - SASL). Чтобы OpenLDAP предоставлял сервис SASL, необходимо установить
библиотеки Cyrus SASL. В некоторых операционных системах они входят в состав базового
дистрибутива, в других требуют отдельной инсталляции. Скачать пакет можно со страни-
цы http://asg.web.cmu.edu/sasl/sasl-library.html.
Базы данных. Сервер OpenLDAP, который мы в дальнейшем будем называть просто slapd,
в качестве основного хранилища использует базу данных Sleepycat Software Berkeley DB
версии 4. Этот пакет может входить в базовый дистрибутив операционной системы или
включаться в качестве необязательного компонента. Если это не так, то придется собрать
его самостоятельно. Скачать пакет можно с сайта компании Sleepycat Software по адресу
http://www.sleepycat.com/download.html.
TCP Wrappers. Slapd поддерживает технологию обертывания TCP (фильтры управления досту-
пом на уровне IP), если этот пакет заранее установлен. Для промышленных серверов рекоменду-
ется пользоваться либо TCP Wrappers, либо другими фильтрами на уровне IP (например, Netfilter).
СЛУЖБА КАТАЛОГОВ LDAP 3 0 9

Проверив все зависимости, вы можете приступать к сборке серверной и клиентской


частей OpenLDAP. Первым делом нужно выполнить следующую команду:
arhontus:~$ tar -xvzf openldap-stable-20030410.tgz
а затем
arhontus:~$ cd openldap-2.1.17
Настоятельно рекомендуем ознакомиться с нестандартными флагами конфигурации, с
помощью которых можно включить или отключить те или иные возможности. Для этого
выполните команду:
arhontus:~$ ./configure --help
Затем запустите сценарий configure для подготовки пакета к сборке и создания файлов
makefile:
arhontus:~$ ./configure
Сгенерируйте список зависимостей:
arhontus:~$ make depend
Наконец запустите компиляцию и сборку (на медленной машине это может занять не-
мало времени):
arhontus:~$ make
Можно еще проверить работоспособность собранного пакета, выполнив команду:
arhontus:~$ make t e s t
После завершения сборки выполните инсталляцию от имени пользователя root:
arhontus:~$ make i n s t a l l
В дистрибутиве Debian Linux серверная и клиентская части OpenLDAP уже имеются в
виде готового пакета. Их можно скачать из Internet и установить на свою машину следую-
щим образом:
arhontus:~$ apt-get install slapd Iibldap2 ldap-utils
Если нужна только клиентская часть, выполните такую команду:
arhontus:~$ apt-get install Iibldap2 ldap-utils
Вы увидите сценарий начальной настройки slapd, предлагающий ввести некоторые па-
раметры вашего OpenLDAP-сервера. По завершении настройки можете приступать к де-
тальному конфигурированию серверной и клиентской частей.

Конфигурирование OpenLDAP
После сборки и установки пакета нужно для начала ознакомиться со структурой конфигу-
рационных файлов и теми параметрами, которые можно изменять для оптимизации про-
изводительности и удобства работы. Сначала взглянем на конфигурационные файлы
ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

OpenLDAP. Если вы собирали пакет из исходных текстов, то по умолчанию эти файлы будут
находиться в каталоге /us^ocal/etc/openldap. Если же вы устанавливали готовый пакет
для дистрибутива Debian, то они попадут в каталог /etc/openldap. Перечень файлов в ката-
логе может быть таким:

Файл Idap.conf предназначен для клиентов и вообще любых программ, которые намере-
ваются обращаться к LDAP-серверу. Более подробную информацию о его структуре можно
найти на странице руководства man 5 Idap.conf. Ниже приведен небольшой фрагмент это-
го файла:
СЛУЖБА КАТАЛОГОВ LDAP 3 1 1

Как видите, файл slapd.conf начинается с глобальных директив, которые применимы ко


всем хранилищам и базам данных, если только не переопределены для конкретного хра-
нилища или базы данных. Далее определяется тип хранилища и основная информация о
структуре базы данных. LDAP поддерживает различные хранилища (табл. 13.3).
J L

3 1 2 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Хотя по умолчанию хранилищем для каталога LDAP служит транзакционная база дан-
ных Berkeley DB, вы можете пользоваться любым другим (из числа поддерживаемых), к
которому больше привыкли.
Далее следует информация о самой базе данных, в том числе ее суффикс, местоположе-
ние файлов базы на диске, инструкции о том, какие объекты индексировать, и прочие па-
раметры. В примере выше определен суффикс базы данных d c = a r h o n t , dc=com, файлы
находятся в каталоге /var/lib/ldap, а индексироваться должен атрибут o b j e c t C l a s s .
Рекомендуется включать параметры r o o t d n и rootpw, которые позволяют обращать-
ся к демону slapd пользователям, не имеющим привилегий root. Это может пригодиться для
создания начальной записи в базе данных, например, об администраторе с полными пра-
вами на запись. После того как запись о пользователе с правами администратора создана,
строки r o o t d n / r o o t p w можно спокойно удалить. Для того чтобы сгенерировать свертку
пароля в записи rootpw, нужно воспользоваться командой s l a p p a s s w d :
arhontus:~# slappasswd -h {SSHA} -s testingl23
В результате создается свертка пароля t e s t i n g 123, которую и следует вписать в файл
slapd.conf. Можно не задавать флаг -s, тогда программа попросит ввести пароль. Пере-
чень поддерживаемых методов хэширования паролей с описаниями имеется на странице
руководства man slappasswd.
Вслед за секцией, касающейся конфигурации базы данных, идет секция (последняя в
файле), содержащая списки контроля доступа (ACL). Они сообщают серверу, кому и как
разрешено обращаться к конкретным объектам базы данных. Например, в первом ACL го-
ворится, что только аутентифицированный пользователь и администратор базы данных
(cn=admin, d c = a r h o n t , dc=com) имеют право перезаписать атрибут u s e r P a s s w o r d .
Иными словами, мы разрешаем аутентифицированному пользователю изменить свой па-
роль, а администратору - изменить любой пароль. Во втором ACL описывается принятый
по умолчанию доступ ко всем остальным записям базы данных (синтаксис a c c e s s to * ) .
Этот список предоставляет полный доступ администратору, доступ на запись - владельцу
и никакого доступа всем остальным.
Подготовив списки контроля доступа, мы можем запустить демон slapd. Выполните сле-
дующую команду от имени пользователя root:
arhontus:~# /etc/init.d/slapd start
Если все пройдет нормально, то служба slapd будет ожидать соединений с портами 389
и/или 636. В противном случае запустите slapd в режиме отладки и посмотрите, что будет
написано в диагностических сообщениях. После того как сервер успешно стартует, нужно
поместить в базу данных описание верхнего уровня организационной структуры и учет-
ной записи администратора. Для этого необходимо создать файл с начальными данными в
СЛУЖБА КАТАЛОГОВ LDAP 313

Тестирование LDAP
Эта утилита принадлежит к числу наших любимых инструментов, поскольку позволяет
быстро производить поиск во всей базе данных. Выходной файл совместим с форматом LDIF,
так что его можно подать на вход утилиты Idapadd, чтобы добавить записи в базу данных.
Следующий инструмент, который тоже выполняет поиск и очень полезен для визуали-
зации, просмотра и редактирования базы данных, называется GQ. Можно считать, что это
графический интерфейс ко многим утилитам, поставляемым в составе пакета OpenLDAP.
Официальная домашняя страница проекта GQ находится по адресу http://biot.com/gq/, а
скачать его можно также со страницы http://sourceforge.net/projects/gqclient/. Процедура
инсталляции очень проста:
arhontus:$ ./configure
arhontus:$ make
arhontus:$ make i n s t a l l
Программа интуитивно понятна, как и большинство графических приложений. Задав
параметры своего сервера, вы можете просматривать структуру каталога LDAP, модифици-
ровать существующие и добавлять новые записи. На рис. 13.16 показан внешний вид окна
клиента GQ.
Во время работы над этой книгой в стабильной версии gq-О.б.О были некоторые про-
блемы, связанные с модификацией и добавлением записей в базу данных. Если вы с ними
столкнетесь, рекомендуем установить последнюю бета-версию.
Разобравшись с начальным тестированием демона LDAP, мы можем рассмотреть различ-
ные способы добавления в базу данных информации о пользователях, а также других за-
писей, специфичных для вашей сети.

Заполнение базы данных LDAP


Оглянемся назад и посмотрим, что же мы уже сделали с OpenLDAP и что еще предстоит
сделать, чтобы получить функционирующую службу каталогов LDAP, отвечающую целям
вашей организации и снимающую с администратора груз обязанностей по сопровождению.
Служба каталогов может быть очень полезна для самых разных целей, начиная от хране-
ния в одном месте записей адресной книги и профилей всех пользователей и до централи-
зованной аутентификации пользователей.
Пока что мы успели установить демон OpenLDAP и клиентские утилиты, сконфигури-
ровать серверную и клиентскую части, а также добавить в базу данных учетную запись
администратора и запись верхнего уровня со сведениями об организации. Теперь можно
СЛУЖБА КАТАЛОГОВ LDAP 315

добавлять записи о пользователях, группах, почтовых псевдонимах и т.д. Существует не-


сколько инструментов, упрощающих эту процедуру. Самое простое - воспользоваться ком-
плектом программ MigrationTools, написанных группой PADL. Скачать его можно с сайта
http://www.padl.com. Никто не мешает также прибегнуть к помощи стандартных утилит
Idapadd, Idapmodify, Idapcompare, Idapdelete, Idapmodrdn и т.д.
Для работы с инструментами, поставляемыми в составе OpenLDAP, рекомендуется со-
здать файл в формате LDIF, содержащий ту информацию, которую вы хотите добавить в базу
данных или удалить из нее. Формат LDIF предназначен для представления записей катало-
га в текстовом виде. Такие утилиты, как Idapadd или Idapsearch, могут читать LDIF-файлы и
выводить информацию в этом формате. Значения в LDIF-файле можно вводить в кодировке
UTF-8 или base64. Можно также указать URI, по которому хранится значение атрибута. Вот
пример структуры LDIF-файла:

Дополнительную информацию о формате LDIF можно прочитать на странице руковод-


ства man 5 Idif или в документе RFC 2849.
316А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

А теперь рассмотрим более подробно утилиты PADL MigrationTools. Скачав файл


http://www.padl.com/download/MigrationTools.tgz и распаковав его, вы должны буде-
те изменить некоторые переменные в файле migrate_common.ph, а именно:
$DEFAULT_MAIL_DOMAIN
$DEFAULT_MAIL_HOST
fDEFAULT_BASE

Закончив редактировать этот файл, можете запустить специальную утилиту для конвер-
тирования всех файлов базы данных в каталоге /etc в формат LDIF. Вместо этого можно
воспользоваться сценарием m i g r a t e _ a l l _ o n l i n e . sh, чтобы добавить все нужные за-
писи из файлов в каталоге /etc в базу данных в онлайновом режиме, или сценарием
m i g r a t e _ a l l _ o f f l i n e . sh - для заполнения базы данных в автономном режиме. Сце-
нарий задаст несколько вопросов о структуре вашего LDAP-каталога, а потом начнет им-
портировать записи. В табл. 13.4 перечислены возможности каждого из сценариев, постав-
ляемых в составе MigrateTools.
Таблица 13.4. Сценарии, входящие в комплект PADL MigrateTools

Если вы хотите импортировать только базу данных из конкретного плоского файла в


каталог LDAP, то нужно использовать другие сценарии. Например, для импорта базы дан-
ных о пользователях из файлов /etc/passwd и /etc/shadow запустите следующие команды,
указав в качестве значения флага -D параметры вашего сервера:
arhontus:~# perl migrate_passwd.pl /etc/passwd /tmp/passwd.Idif
arhontus:~# Idapadd -W -x -D cn=admin,dc=arhont,dc=com -f /tmp/
passwd.ldif
После заполнения базы данных всей имеющейся информацией можете приступать к
процедуре организации централизованной аутентификации. Она намного упростит управ-
ление, администрирование и мониторинг работы пользователей.

Централизованная аутентификация с помощью ШАР


Сначала обсудим централизованную аутентификацию UNIX-клиентов, а затем опишем биб-
лиотеку, которая позволяет Windows-клиентам аутентифицироваться в LDAP-сервере.
СЛУЖБА КАТАЛОГОВ LDAP 3 1 7

Мы снова возвращаемся к программному обеспечению, созданному группой PADL, а именно


к библиотекам pam_ldap и nss_ldap, которые можно загрузить со страниц ftp://ftp.padl.com/
pub/pam_ldap.tgz и ftp://ftp.padl.com/pub/nss_ldap.tgz. Библиотека pam_ldap обеспечивает
LDAP-аутентификацию для операционных систем с поддержкой встраиваемого модуля аутен-
тификации (Pluggable Authentication Module - РАМ), к каковым относятся некоторые дистри-
бутивы Linux, FreeBSD, HP-UX, Solaris и многие другие. Библиотека же nssjdap поддерживает
операционные системы, основанные на более старом интерфейсе Nameservice Switch (nss).
К ним относятся некоторые дистрибутивы Linux, AIX, HP-UX, Solaris и несколько вариантов си-
стем на базе ядра BSD.
Процедура инсталляции очень проста и сводится к следующим командам:
arhontus:$ ./configure
arhontus:$ make
arhontus:$ make i n s t a l l
Собрав и установив библиотеки, скопируйте файл Idap.conf в каталог /etc/openldap
или /usr/local/etc/openldap в зависимости от ваших настроек и отредактируйте его.
Кроме того, в случае модуля pam_ldap нужно будет скопировать файлы pam.d и pam.conf
в каталог /etc, сохранив резервную копию на случай, если что-то пойдет не так. Ана-
логично, файл nsswitch.ldap следует скопировать в /etc/nsswitch.conf, тоже сохранив
резервную копию. Это позволит обращаться к LDAP из ваших программ с поддержкой
nsswitch или РАМ. Конфигурационные файлы, поставляемые по умолчанию вместе с
pam_ldap или nss_ldap, должны работать, так что вы сумеете авторизоваться в центра-
лизованном каталоге LDAP. Однако мы столкнулись с некоторыми проблемами, касаю-
щимися конфигурационных файлов в каталоге pam.d в ОС FreeBSD ч.х и 5.x. После
инсталляции pam_ldap из репозитария Ports оказалось необходимо изменить во всех
pam-файлах местоположение библиотек, относящихся к безопасности. Вот, например,
как выглядит стандартный файл рат для sshd:
# %РАМ-1.0
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so
try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password sufficient /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so
use_first_pass
session required /lib/security/pam_unix_session.so

А вот как он должен выглядеть:


# $FreeBSD: src/etc/pam.d/sshd,v 1.9 2002/12/03 15:48:11 desc Exp $
#
# РАМ configuration for the "sshd" service
#
auth required pam__nologin.so no_warn
3 1 8 А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Полный набор работающих файлов для рат можно найти на сопроводительном сайте
книги. Следует отметить, что для реализации централизованной аутентификации с помо-
щью LDAP-каталога на каждом клиенте должны быть файлы nsswitch.conf, а также Idap.conf
или pam.conf вместе с каталогом pam.d, причем файл Idap.conf должен быть точно таким
же, как на стороне сервера. Подготовив клиентов, вы можете выполнить тестирование,
попробовав войти в систему:
о клиент:
СЛУЖБА КАТАЛОГОВ LDAP 319

Один из способов организовать централизованную аутентификацию через LDAP-cep-


вер на платформе Windows - воспользоваться библиотеками pGina, в которых реализова-
ны различные методы аутентификации. Библиотеки можно загрузить с сайта http://
pgina.xpasystems.com. В них применен модульный подход к аутентификации. Кроме того,
рекомендуем скачать подключаемую утилиту тестирования, а также подключаемый мо-
дуль для аутентификации с помощью LDAP. После инсталляции пакета запустите утили-
ту Configuration, которая позволяет настроить различные аспекты работы программы. На
рис. 13.17 показано окно этой утилиты.
Нужно будет задать параметры pGina и библиотеки ldapauth.dll примерно так, как пока-
зано на рис. 13.18 и 13.19, подставив собственные значения для суффикса домена, адми-
нистративных учетных записей и т.д.
320 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Рис. 13.18. Главное окно конфигурирования pGina, вкладка Logon Window

Прежде чем разворачивать эти библиотеки в масштабах всей организации, проверьте их


работоспособность, запустив утилиту pluging_tester.exe (рис. 13.20), которая позволяет про-
тестировать правильность задания параметров всех реализованных подключаемых модулей.
СЛУЖБА КАТАЛОГОВ LDAP 321

Если вы сумели успешно аутентифицироваться через LDAP-сервер, то можете приступать


к организации централизованной аутентификации для организации в целом. На рис. 13.21
показано главное окно аутентификации pGina.
3 2 2 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

ШАР и мобильные пользователи


Возможно, вы недоумеваете, какое отношение все это имеет к беспроводным сетям и
почему мы заставили вас тратить время на выполнение всяких настроек и отладки.
Ведь на коробке с вашим беспроводным оборудованием есть значок Plug and Play, зна-
чит, все это должно быть сделано автоматически (то есть аппаратура должна быть ра-
ботоспособна, устанавливаться быстро, без всяких настроек и при этом эффективно
обеспечивать безопасность). Отвечаем - ничего подобного! В компании Arhont мы
протестировали десятки беспроводных устройств и не встретили ни одного, которое
обеспечивало бы даже элементарные меры безопасности без дополнительного конфи-
гурирования. Даже самое дорогое оборудование, совместимое со всеми промышленны-
ми стандартами, с фабричными настройками не дает надлежащей защиты ни для бес-
проводной сети, ни для какой-либо иной. Как это ни печально, но для достижения
пристойного уровня защиты данных, циркулирующих в эфире, все-таки придется реа-
лизовывать меры сверх тех, что встроены в точки доступа и беспроводные карты. Речь
идет о протоколах RADIUS, 802.lx, LDAP и в некоторых случаях о развертывания VPN.
И не забывайте, что самым слабым звеном обычно является человек, так что нужно
сформулировать адекватную политику безопасности, внедрить ее и проинструктиро-
вать персонал о необходимости ее строгого соблюдения. Сочетание всех этих шагов
позволить свести до минимума риск несанкционированного проникновения в вашу
беспроводную сеть, а из нее и в проводную.
Если ваша организация хочет, чтобы мобильное оборудование использовалось только в
помещениях офиса, или, если быть точным, стремится ограничить зону покрытия, то аутен-
тификация через LDAP-сервер поможет добиться этого. Решение оказывается достаточно
простым и для проводных, и для беспроводных сетей, и состоит оно в развертывании сер-
веров аутентификации в проводной части сети. На стороне сервера процедура входа будет
защищена либо с помощью слоя TCP Wrappers, либо за счет межсетевого экрана. На сторо-
не клиента (ноутбука или КПК) администратор не должен создавать никаких учетных за-
писей пользователей, полагаясь вместо этого на то, что nsswitch или РАМ сумеют аутен-
тифицироваться через LDAP. Таким образом, клиент сможет войти в сеть с конкретного
устройства только в зоне действия сервера аутентификации LDAP. Эта схема будет рабо-
тать в пределах всей беспроводной сети и больше нигде. Такой подход может оказаться
необходимым для правительственных учреждений, а также в научно-исследовательских и
конструкторских лабораториях, работающих с секретной информацией. Если оборудова-
ние будет украдено или утеряно, то получить с его помощью доступ к сети окажется неиз-
меримо труднее, следовательно, на пути противника выстроен еще один барьер. Стало быть,
защитить беспроводную сеть от физической утраты клиентских устройств возможно и во
многих случаях не так уж трудно.

Инструменты, относящиеся к ШАР


Протокол LDAP применяется уже довольно давно и обрел популярность в сетевом сообще-
стве. Тому есть много причин, в том числе и расширяющаяся поддержка со стороны как
тружеников на ниве программ с открытым текстом, так и коммерческих организаций.
В этом разделе мы рассмотрим несколько бесплатных утилит, которые будут полезны
для повседневного администрирования серверов и клиентов LDAP.
СЛУЖБА КАТАЛОГОВ LDAP 323

Программа Directory Administrator


Эта утилита упрощает администрирование небольших LDAP-каталогов. Она показывает
информацию обо всех пользователях в базе данных и позволяет создавать, модифициро-
вать и удалять записи. Мы рекомендуем этот инструмент начинающим администраторам
LDAP-каталогов, поскольку он не требует ни полного понимания принципов работы LDAP,
ни наличия предварительного опыта. На рис. 13.22 показано, как выглядит окно програм-
мы. Ее официальная домашняя страница находится по адресу http://diradmin.open-it.org/,
на ней есть также общая информация о технологии LDAP.

Программа LdapExplorer
LdapExplorer - это Web-интерфейс, написанный на РНР, который предоставляет визуаль-
ные средства администрирования LDAP. Как и Directory Administrator, он упрощает работу
с небольшими и средними LDAP-каталогами. Но, в отличие от Directory Administrator, ко-
торая показывает лишь плоское представление, LdapExplorer выводит дерево каталога.
Если вы не хотите изучать синтаксис командных утилит, входящих в OpenLDAP, и от вас не
требуется администрировать средний по размерам каталог, то этот инструмент отлично по-
дойдет. Он работает с Apache и другими Web-серверами, в которых есть поддержка РНР. На
рис. 13.23 показано, как выглядит окно программы. Скачать LdapExplorer можно с FTP-cep-
вера по адресу ftp://igloo.its.unimelb.edu.au/pub/LdapExplorer/.
3 2 4 ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Программа YALA
Аббревиатура YALA расшифровывается как Yet Another LDAP Administration (еще один
администратор LDAP). Как и LdapExplorer, эта программа написана на РНР и представля-
ет древовидную структуру каталога. По функциональности и внешнему виду она мало
отличается от LdapExplorer, так что пригодна для администрирования каталогов неболь-
шого и среднего размера. YALA очень легко устанавливается и может работать практи-
чески на любом Web-сервере, поддерживающем РНР версии 4.0.5 или выше. Официаль-
ный сайт проекта расположен по адресу http://yala.sourceforge.net/, откуда можно скачать
последнюю стабильную версию. На рис. 13.24 показана программа YALA в действии.

Программа LDAP Tool


Достоинством этой программы является то, что она распространяется по лицензии BSD и
позволяет произвольно манипулировать исходными текстами. Работает она на многих
платформах, включая и Windows. Скачать ее можно с сайта httpv7ldaptool.sourceforge.net,
а для сборки понадобятся библиотеки wxWindows gtk, находящиеся по адресу http://
www.wxwindows.org/.
NOCAT: АЛЬТЕРНАТИВНЫЙ МЕТОД АУТЕНТИФИКАЦИИ БЕСПРОВОДНЫХ ПОЛЬЗОВАТЕЛЕЙ 3 2 5

NoCat: альтернативный метод


аутентификации
беспроводных пользователей
Кроме протоколов RADIUS и 802.1х, существует и совершенно другой метод управления
доступом. В основе схемы аутентификации NoCat лежит очень простая идея, которая по-
зволит отказаться от использования протокола WEP и закрытия ESSID в качестве (небе-
зопасных) способов защиты беспроводных сетей. Наибольшую пользу схема NoCat мо-
жет принести в публичных инфраструктурных службах доступа к Web, в частности в
беспроводных узлах, перечисленных на сайте consume.net. На самом деле первоначаль-
но проект NoCat разрабатывался в интересах отдельных сообществ и как любительская
схема аутентификации в беспроводных сетях, которая не потребляет столько времени и
ресурсов, как RADIUS-сервер с сопутствующей ему базой данных о пользователях. Ис-
ходные тексты NoCat, а также дополнительную информацию и техническую поддержку
3 2 6 А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

можно получить на сайте http://nocat.net, а также на сопроводительном сайте этой


книги.
Сеть с аутентификацией по методу NoCat должна состоять из:
о точки доступа с активизированной поддержкой мостов (требуется в основном для
организации роуминга и не является абсолютно необходимой);
о маршрутизатора или машины-шлюза на платформе Linux.
Именно маршрутизатор или шлюз отвечает за аренду по протоколу DHCP, управляет
использованием полосы пропускания, предоставляет доступ к другим сетям и реализует
иные виды контроля.
Ниже описана типичная процедура аутентификации по методу NoCat.

1. Перенаправление
Клиент присоединяется к точке доступа и сразу же получает от DHCP аренду. По умолча-
нию запрещен любой доступ, кроме соединения со службой аутентификации. Как только
пользователь пытается выйти в Web, его переадресуют на маршрутизатор или шлюз, ко-
торый перенаправляет запрос на страницу регистрации, защищенную протоколом SSL.
Далее у пользователя имеется три варианта действий: войти, предоставив заранее под-
готовленные сведения о себе, щелкнуть по ссылке, чтобы получить дополнительную ин-
формацию, или пропустить процедуру регистрации.

2. Обратное соединение
Система аутентификации вновь соединяется с беспроводным шлюзом и извещает его о
выборе пользователя. Затем шлюз решает, предоставить ли доступ. Если пользователь
успешно зарегистрировался или пропустил эту процедуру, то система создает сообще-
ние о результате, подписывает его по схеме PGP и отправляет назад беспроводному
шлюзу.
На шлюзе хранится PGP-ключ службы аутентификации, так что он в состоянии прове-
рить аутентичность сообщения. В ответ включена также случайная строка, которую шлюз
в самом начале отправил клиенту, из-за этого обмануть шлюз посредством атаки с по-
втором сеанса будет очень нелегко. Цифровая подпись не позволяет другой машине взять
на себя функции аутентификации и посылать шлюзу подложные сообщения. Далее шлюз
модифицирует правила, прописанные в своем межсетевом экране, с целью разрешить
дальнейший доступ и переадресует пользователя на страницу, которую тот первоначаль-
но запросил.

3. Пропуск
Чтобы соединение оставалось открытым, на стороне клиента открывается небольшое
окно (с помощью JavaScript-сценария), которое каждые несколько минут обновляет
страницу регистрации. Как только пользователь покидает диапазон действия сети или
закрывает свой браузер, соединение сбрасывается, так что восстанавливать его при-
дется вручную.
NOCAT: АЛЬТЕРНАТИВНЫЙ МЕТОД АУТЕНТИФИКАЦИИ БЕСПРОВОДНЫХ ПОЛЬЗОВАТЕЛЕЙ 3 2 7

Установка и конфигурирование шлюза NoCat


Установка шлюза проста и понятна. После установки на машине образуется прозрачная
служба типа proxy, которая перенаправляет все запросы клиентов нужному получателю.
Прежде чем приступать к установке, проверьте, выполнены ли на вашей машине следую-
щие предварительные условия:
о Linux 2.4.x с модулем iptables;
о программа gpgv, поставляемая в составе пакета GnuPG для проверки PGP-подписей;
о необязательно (но рекомендуется) DHCP-сервер, чтобы сдавать ресурсы в аренду;
о необязательно (но рекомендуется) DNS-сервер с локальным кэшем.
Для установки шлюза NoCat выполните следующие команды:
arhontus:~# t a r -xzf NoCatAuth-x.xx.tar. gz
arhontus:~# cd NoCatAuth-x.xx
arhontus:~# make gateway
Перед запуском службы предстоит еще отредактировать конфигурационный файл в со-
ответствии с вашими потребностями:
arhontus:~# cd /usr/local/nocat
arhontus:~# vi nocat.conf
Для запуска шлюза NoCat выполните такую команду:
arhontus:~# /usr/local/nocat/bin/gateway &
Если сервер успешно стартовал, то в протоколе syslog появятся такие строки:
[2003-06-2 12:18:12] Resetting f i r e w a l l .
[2003-06-2 12:18:12] Binding l i s t e n e r socket to 0.0.0.0
Если все прошло нормально, то новый шлюз NoCat готов к работе - радуйтесь! Для по-
лучения дополнительной информации загляните в руководство, поставляемое вместе с
программой.

Установка и конфигурирование сервера аутентификации


Для установки сервера аутентификации NoCat придется приложить чуть больше усилий,
чем для установки шлюза, но дело того стоит. Установив службу NoCat AuthService, вы
получите полнофункциональный механизм аутентификации, который может обращаться
как к центральной базе данных, так и к локальным файлам типа passwd. Предварительно
убедитесь, что удовлетворены следующие зависимости:
о Web-сервер с поддержкой SSL, например Apache;
о Perl версии 5.6 или выше;
о Perl-модули Digest::MD5, DBI и DBD::MySQL;
о GnuPG версии 1.0.6 или выше;
о необязательно MySQL версии 3.23.4х или выше (для аутентификации с помощью
центральной базы данных).
3 2 8 А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ *

Для установки службы AuthService выполните следующие команды:


arhontus:~# t a r -xzf NoCatAuth-x.xx.tar.gz
arhontus:~# cd NoCatAuth-x.xx
arhontus:~# make authserv
Затем нужно будет сгенерировать набор ключей для шифрования всех сообщений, пе-
редаваемых между службой AuthService и шлюзами. Для этого выполните команду
arhontus:~# make pgpkey
На этом этапе не вводите пароль, иначе в процессе шифрования сообщений будут воз-
никать различные ошибки.
Теперь отредактируйте файл /us^ocal/nocat/nocat.conf, задав подходящие параметры.
Не забудьте включить такую строку:
DataSource: (В настоящее время либо DBI, либо Passwd. Укажите DBI, если
данные хранятся в базе MySQL, или Passwd - если в плоских локальных файлах)
Для простоты предположим, что указан параметр Passwd. О том, как конфигурировать
аутентификацию по базе данных MySQL, можете прочитать в документации, поставляемой
с NoCat. Для создания источников аутентификационных данных и добавления учетных
записей пользователей, запустите простую утилиту admintool, находящуюся в каталоге
/usr/local/nocat/bin.
NOCAT: АЛЬТЕРНАТИВНЫЙ МЕТОД АУТЕНТИФИКАЦИИ БЕСПРОВОДНЫХ ПОЛЬЗОВАТЕЛЕЙ 3 2 9

Убедитесь, что каталогом /usr/local/nocat/pgp и файлами рдр/* владеет тот пользова-


тель, от имени которого работает ваш Web-сервер (обычно это www или www-data или
nobody). Если это не так, произойдет ошибка из-за недостатка прав.
Подключите к конфигурационному файлу Apache httpd.conf файл /usr/local/nocat/etc/
authserv.conf, либо включив его содержимое напрямую, либо воспользовавшись директи-
вой I n c l u d e / u s r / l o c a l / n o c a t / e t c / a u t h s e r v . c o n f . He забудьте принудитель-
но установить для NoCat аутентификацию по протоколу HTTPS/SSL, в противном случае все
имена и пароли пользователей будут «летать в эфире» незашифрованными и открытыми
для прослушивания.
Кроме того, убедитесь, что Web-сервер обслуживает каталог /usryiocal/nocat/cgi-bin, и
скопируйте файл/us^ocal/nocat/tmsted-keys.gpg на все беспроводные шлюзы. Теперь по-
стучите по дереву и перезапустите Web-сервер. Если все прошло удачно, то служба аутен-
тификации NoCat готова к работе. Клиенты будут видеть при регистрации окна, показан-
ные на рис. 13.25 и 13.26.

Рис. 13.26. Окно, которое видит пользователь, аутентифицированный NoCat


Примите поздравления, только что вы установили простую и эффективную систему
аутентификации, которая не требует настройки RADIUS-сервера и базы данных о пользо-
вателях (в LDAP-каталоге или ином месте). Но имейте в виду, что NoCat обеспечивает толь-
ко аутентификацию и не поддерживает ни протокола WEP, ни ротации TKIP-ключей, как
это предусмотрено реализацией протокола 802.1х в стандарте 802.Hi.
330А ВОРОТА КРЕПОСТИ: АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ

Резюме
В этой главе мы рассказали о принципах работы и развертывании RADIUS-сервера, кото-
рый может использоваться вместе с протоколом 802.1х для аутентификации пользовате-
лей в беспроводных сетях. Для сервера еще требуется база данных о пользователях, поэто-
му мы рассмотрели также реализацию службы каталогов LDAP. Отметим, что развертывание
LDAP дает еще одно преимущество - страховку от последствий кражи физических беспро-
водных устройств. Наконец, мы описали альтернативную схему аутентификации в беспро-
водных сетях - службу NoCat, которую проще конфигурировать и администрировать. По-
скольку аутентификация пользователей еще не обеспечивает конфиденциальности данных,
а стандарт 802.Hi не всегда является удовлетворительным решением или просто не может
быть реализован в конкретных условиях, то следующую главу мы посвятим развертыва-
нию виртуальных частных беспроводных сетей и построению VPN-концентраторов.
Чтобы защита была непреодолимой, скрывайте
свою форму.
Чао Чао

Не иметь определенной формы - значит быть


таким неуловимым и скрытным, что никто не
сможет вас выследить.
Мэй Яочжень

Виртуальная частная сеть VPN - это метод, позволяющий воспользоваться телекоммуника-


ционной инфраструктурой общего пользования, например сетью Internet для предоставле-
ния удаленным офисам или отдельным пользователям безопасного доступа к сети организа-
ции. Поскольку беспроводные сети 802.11 работают в нелицензируемом диапазоне частот и
легко доступны для случайного или злонамеренного прослушивания, то именно в них раз-
вертывание и обслуживание VPN приобретает особую важность, если необходимо обеспе-
чить высокий уровень защиты информации. Защищать нужно как соединения между хоста-
ми в беспроводной локальной сети, так и двухточечные каналы между беспроводными
мостами. Конечно, когда стандарт 802.Hi будет окончательно принят и широко внедрен,
необходимость в развертывании VPN станет меньше, но полностью не отпадет. В главах, по-
священных атаке, мы уже отмечали, что еще до выхода окончательной редакции стандарта
802.Hi в его реализациях обнаружилось немало проблем, относящихся к безопасности. Мы
абсолютно уверены, что с течением времени будут разработаны новые атаки против этого
стандарта. Да и для обеспечения безопасности особо секретных данных нельзя полагаться
на какой-то один механизм или на защиту лишь одного уровня сети. Кроме того, всегда най-
дутся администраторы, всерьез озабоченные безопасностью сети, которые предпочитают
доверять таким хорошо протестированным и опробованным на практике решениям, как про-
токол IPSec. В случае двухточечных каналов проще и экономичнее развернуть VPN, покрываю-
щую две сети, чем реализовывать защиту на базе стандарта 802.1Н включающую RADIUS-сервер
3 3 2 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

и базу данных о пользователях. Пользоваться же реализацией стандарта на базе предвари-


тельно разделенных ключей (PSK) и протокола 802.1х при наличии высокоскоростного ка-
нала между сетями - не очень удачная идея. Так или иначе, виртуальные частные сети нику-
да не денутся и заслуживают освещения в этой книге.
VPN - это полная противоположность дорогостоящей системе собственных или арендован-
ных линий, которые могут использоваться только одной организацией. Задача VPN - предоста-
вить организации те же возможности, но за гораздо меньшие деньги. Сравните это с обеспече-
нием связи за счет двухточечных беспроводных каналов с мостами вместо дорогих выделенных
линий. VPN и беспроводные технологии не конкурируют, а дополняют друг друга.
VPN работает поверх разделяемых сетей общего пользования, обеспечивая в то же вре-
мя конфиденциальность за счет специальных мер безопасности и применения туннель-
ных протоколов, таких как туннельный протокол на уровне 2 (Layer Two Tunneling
Protocol - L2TP). Смысл их в том, что, осуществляя шифрование данных на отправляю-
щем конце и дешифрирование на принимающем, протокол организует «туннель», в кото-
рый не могут проникнуть данные, не зашифрованные должным образом. Дополнитель-
ную безопасность может обеспечить шифрование не только самих данных, но и сетевых
адресов отправителя и получателя. Беспроводную локальную сеть можно сравнить с
разделяемой сетью общего пользования, а в некоторых случаях (хотспоты, узлы, принад-
лежащие сообществам) она таковой и является.
Сейчас мы попытаемся объяснить, что означает каждое слово в выражении «виртуаль-
ная частная сеть», чтобы читатели, которые ранее не сталкивались с VPN, понимали, о чем
идет речь.
Слово «виртуальный» подразумевает мирное сосуществование в одном сегменте сети двух
различных сетей, не создающих помех друг другу, будь то сети IP, IPX и DDP в одной локаль-
ной сети или трафик IP, IPSec и L2TP в «облаке» Internet. Слово «частная» означает призна-
ние того факта, что весь обмен данными и вообще наличие какой-то сети понятны лишь кон-
цевым точкам канала, и никому больше. Позже мы увидим, что это равным образом относится
к секретности и аутентичности передаваемых данных. И наконец, слово «сеть» не требует
объяснения. Любое множество устройств, обладающих общим способом обмениваться меж-
ду собой информацией независимо от географического положения, образует сеть.
Распространено представление о том, что VPN обязательно должна шифровать все проходя-
щие через нее данные, но в общем случае это не так. Шворят, что VPN отвечает трем условиям:
конфиденциальность, целостность и доступность. Следует отметить, что никакая VPN не явля-
ется устойчивой к DoS- или DDoS-атакам и не может гарантировать доступность на физичес-
ком уровне просто в силу своей виртуальной природы и зависимости от нижележащих прото-
колов. Две наиболее важные особенности VPN, особенно в беспроводных средах, где имеется
лишь ограниченный контроль над распространением сигнала, - это целостность и, что еще
более существенно, конфиденциальность данных. Возьмем жизненную ситуацию, когда про-
тивнику удалось преодолеть шифрование по протоколу WEP и присоединиться к беспроводной
локальной сети. Если VPN отсутствует, то он сможет прослушивать данные и вмешиваться в
работу сети. Но если пакеты аутентифицированы, то атака «человек посередине» становится
практически невозможной, хотя перехватить данные по-прежнему легко. Включение в VPN
элемента шифрования уменьшает негативные последствия перехвата данных.
Поэтому на представляется, что VPN обеспечивает не столько полную изоляцию всех се-
тевых взаимодействий, сколько осуществление таких взаимодействий в более контроли-
руемых условиях с четко определенными группами допущенных участников.
ОБЗОР ТОПОЛОГИЙ VPN С ТОЧКИ ЗРЕНИЯ БЕСПРОВОДНОЙ СВЯЗИ 3 3 3

Зачем вам может понадобиться VPN


Для развертывания VPN могут быть самые разные мотивы: от стремления сократить расхо-
ды до желания обеспечить конфиденциальность. Общим для всех VPN является виртуали-
зация коммуникаций с помощью современных средств безопасной передачи данных.
Основное достоинство связи через VPN - это сокращение расходов на построение кана-
лов связи между удаленными точками. На данный момент альтернативой VPN служит по-
купка арендованной линии или внедрение сервера удаленного доступа (Remote Access
Server - RAS). Выделенные линии обычно организуются для критически важных приложе-
ний, которым требуется гарантированная пропускная способность, тогда как передача дан-
ных по сетям общего пользования представляется ненадежной, а их доступность в любой
момент времени не может быть гарантирована. Создание беспроводного двухточечного
канала - это еще одна недорогая альтернатива, но в свете атак, рассмотренных в первой
части книги, можно ли считать ее достаточно безопасной?
Для современных коммуникационных систем характерна высокая постоянная составляю-
щая (установка и обслуживание), тогда как переменная составляющая (например, плата за
полосу пропускания) может вносить гораздо меньшую долю в общую стоимость владения.
Правильно спроектированная и реализованная VPN может оказаться привлекательным реше-
нием, поскольку один «толстый канал», поверх которого работают разные VPN, будет обслужи-
вать все нужды организации. Таким каналом может стать широкополосный радиоканал.
С другой стороны, вторым важнейшим побудительным мотивом для развертывания VPN
является потребность в обеспечении конфиденциальности передачи данных. Все внутрен-
ние данные, передаваемые по внешним каналам, должны быть надежно защищены от на-
блюдателя за счет сильной криптографии и проверки аутентичности.
В применении к беспроводным сетям, по крайней мере после окончательного утвержде-
ния стандарта 802.Hi, основная причина развертывания VPN - это соотношение между
ценой и производительностью дополнительного уровня защиты уязвимой беспроводной
связи. Традиционные для сетей 802.Ha/b/g механизмы аутентификации и шифрования
сами по себе не в состоянии обеспечить необходимый уровень защиты от опытного взлом-
щика. Но если развертывание протокола 802.1х и RADIUS-сервера слишком дорого для
стандартной беспроводной сети SOHO, то большинство имеющихся на рынке сетевых уст-
ройств могут поддержать вполне приличную VPN, обеспечивающую примерно такой же
уровень защиты.

Обзор топологий VPN


с точки зрения беспроводной связи
Есть много способов классификации VPN, но основные три вида - это сеть-сеть, хост-сеть
и хост-хост.

ТОПОЛОГИЙ сеть-сеть

Этим термином иногда описывают VPN-туннель между двумя географически разнесенны-


ми частными сетями (рис. 14.1). VPN такого типа обычно применяются, когда нужно объе-
динить локальные сети с помощью сети общего пользования так, как будто они находятся
3 3 4 А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

внутри одного здания. Основное достоинство такой конфигурации состоит в том, что сети
выглядят как смежные, а работа VPN-шлюзов совершенно прозрачна для конечных пользо-
вателей. В этом случае важно также туннелирование, поскольку в частных сетях обычно
используются описанные в RFC 1918 зарезервированные адреса, которые не могут марш-
рутизироваться через Internet. Поэтому для успешного взаимодействия трафик необходи-
мо инкапсулировать в туннель. Типичным примером такой сети может быть соединение
двух филиалов одной организации по двухточечному беспроводному каналу. Хотя трафик
и не выходит за пределы внутренней инфраструктуры организации, но к ее беспроводной
части нужно относиться так же внимательно, как если бы трафик маршрутизировался че-
рез сеть общего пользования. Вы уже видели, что протокол WEP можно легко преодолеть и
даже TKIP иногда уязвим, поэтому мы настоятельно рекомендуем всюду, где возможно,
реализовывать дополнительное шифрование.

ТОПОЛОГИЙ хост-сеть
При такой конфигурации удаленные пользователи подключаются к корпоративной сети
через Internet (рис. 14.2). Сначала мобильный клиент устанавливает соединение с Internet,
а затем инициирует запрос на организацию зашифрованного туннеля с корпоративным
VPN-шлюзом. После успешной аутентификации создается туннель поверх сети общего
пользования и клиент становится просто еще одной машиной во внутренней сети. Все
более широкое распространение надомной работы стимулирует интерес к такому приме-
нению VPN. В отличие от VPN типа сеть-сеть, где число участников невелико и более или
менее предсказуемо, VPN типа хост-сеть легко может вырасти до необъятных размеров.
Поэтому системный администратор должен заранее продумать масштабируемый механизм
аутентификации клиентов и управления ключами.
ОБЗОР ТОПОЛОГИЙ VPN С ТОЧКИ ЗРЕНИЯ БЕСПРОВОДНОЙ СВЯЗИ 335

Механизмов безопасности на втором уровне может не хватить для защиты сетей на базе
каналов точка-многоточка. Кроме того, при эксплуатации в таких сетях публичных хотспотов
или устаревшего оборудования бывают проблемы из-за отсутствия совместимости и невоз-
можности совместной работы. Если организация развертывает беспроводную сеть в офисе
для доступа с ноутбуков или других беспроводных устройств сотрудников, то нужно при-
менять масштабируемые средства сильного шифрования, аутентификации и учета. Воз-
можно, придется установить центральный VPN-концентратор, способный осуществлять
контроль доступа и учет работы пользователей по оканчивающемуся на нем VPN-туннелю.
Такое решение может составить приемлемую альтернативу RADIUS-серверу, базе данных о
пользователях и всей инфраструктуре стандарта 802.1х. Топология хост-сеть предполага-
ет, что беспроводные хосты, которые могут соединяться с VPN, должны иметь выход и в
другие сети, например в Internet, через VPN-концентратор, но не могут обмениваться дан-
ными с другими беспроводными хостами в той же сети.

Топология хост-хост
Такая топология, по-видимому, встречается реже всего. Речь идет о двух хостах, обменива-
ющихся друг с другом шифрованными и нешифрованными данными (рис. 14.3). В такой
конфигурации туннель организуется между двумя хостами и весь трафик между ними ин-
капсулируется внутри VPN. У таких сетей не много практических применений, но в каче-
стве примера можно назвать географически удаленный сервер резервного хранения. Оба
хоста подключены к Internet, и данные с центрального сервера зеркально копируются на
резервный. Если говорить о беспроводных технологиях, то простые VPN типа хост-хост
можно использовать для защиты независимых (ad hoc) сетей.
3 3 6 А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Топология типа звезда


Число участников VPN ограничено особенностями сетевых технологий. Обсудив простые
топологии, давайте теперь рассмотрим более сложные случаи. Отметим, что топологии VPN
отражают физическое устройство невиртуальных сетей.
Самой распространенной из всех топологий VPN является звезда. Имеется VPN-концен-
тратор, который организует туннель с удаленным клиентом (рис. 14.4). Чтобы один хост
мог взаимодействовать с другим, данные от хоста А должны попасть на концентратор, а
затем уже на хост В. Имейте в виду, что масштабируемость такой сети ограничена пропус-
кной способностью VPN-концентратора, который должен быть в состоянии поддерживать
ОБЗОР ТОПОЛОГИЙ VPN С ТОЧКИ ЗРЕНИЯ БЕСПРОВОДНОЙ СВЯЗИ 3 3 7

достаточное число одновременных соединений. И общая производительность такой сети


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

Топология типа сетка


В случае сетчатой (mesh) топологии каждый узел напрямую соединен туннелем с любым
другим узлом сети. При этом образуется «переплетение» соединений (рис. 14.5). Хотя недо-
статки топологии типа звезда и устраняются, но существенно увеличиваются временные
затраты на обслуживание сети и становится трудно добавлять новые узлы. Заметим еще, что
оконечные клиенты должны быть достаточно мощными компьютерами, поскольку им прихо-
дится поддерживать более одного туннеля. Представьте себе, что нужно развернуть безо-
пасную специальную беспроводную сеть, допустим, в составе крупного проекта беспровод-
ной системы распределения (WDS). Тогда сетчатая топология, возможно, то, что вы ищете:
эффективно реализовать решение на базе стандарта 802.1х в такой сети нельзя без выделен-
ного аутентификатора (точки доступа). Поэтому механизмы аутентификации пользователей
и ротации ключей, определенные в стандарте 802.lit могут работать некорректно.
338л РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Распространенные туннельные протоколы


и VPN
Обсудим наиболее распространенные и широко применяемые в реальных VPN протоколы.
Рост числа пользователей, простота доступа и снижение стоимости подключения к Internet
обусловили потребность в дешевых и безопасных средствах коммуникации без покупки
арендованных линий. К решению этой проблемы приложили руку многие компании, и в
результате появились различные стандарты и протоколы VPN. Самые популярные из них
мы и рассмотрим ниже.

Протокол IPSec
IPSec - это наиболее широко признанный, поддерживаемый и стандартизованный из всех
протоколов VPN. Для обеспечения совместной работы он подходит лучше всех прочих.
IPSec лежит в основе открытых стандартов, в которых описан целый набор безопасных
протоколов, работающих поверх существующего стека IP. Он предоставляет службы аутен-
тификации и шифрования данных на третьем уровне модели 0SI и может быть реализован
на любом устройстве, которое работает по протоколу IP. В отличие от многих других схем
шифрования, которые защищают конкретный протокол верхнего уровня, IPSec, работаю-
щий на нижнем уровне, может защитить весь IP-трафик. Он применяется также в сочета-
нии с туннельными протоколами на уровне 2 для шифрования и аутентификации трафика,
передаваемого по протоколам, отличным от IP.
Протокол IPSec состоит из трех основных частей: заголовка аутентификации (Authen-
tication Header - АН), безопасно инкапсулированной полезной нагрузки (Encapsulating Security
Payload - ESP) и схемы обмена ключами через Internet (Internet Key Exchange - IKE).
Заголовок АН добавляется после заголовка IP и обеспечивает аутентификацию на уровне
пакета и целостность данных. Иными словами, гарантируется, что пакет не был изменен на
пути следования и поступил из ожидаемого источника. ESP обеспечивает конфиденциальность,
аутентификацию источника данных, целостность, опциональную защиту от атаки повторного
сеанса и до некоторой степени скрытность механизма управления потоком. Наконец, IKE обес-
печивает согласование настроек служб безопасности между сторонами-участниками.

Протокол РРТР
Двухточечный туннельный протокол (Point-to-Point Tunneling Protocol - РРТР) - это запа-
тентованная разработка компании Microsoft, он предназначен для организации взаимодей-
ствия по типу VPN. РРТР обеспечивает аутентификацию пользователей с помощью таких
протоколов, как MS-CHAP, CHAP, SPAP и РАР. Этому протоколу недостает гибкости, прису-
щей другим решениям, он не слишком хорошо приспособлен для совместной работы с дру-
гими протоколами VPN, зато прост и широко распространен во всем мире.
Протокол определяет следующие типы коммуникаций:
о РРТР-соединение, по которому клиент организует РРР-канал с провайдером;
о управляющее РРТР-соединение, которое клиент организует с VPN-сервером и по ко-
торому согласует характеристики туннеля;
о РРТР-туннель, по которому клиент и сервер обмениваются зашифрованными данными.
АЛЬТЕРНАТИВНЫЕ РЕАЛИЗАЦИИ VPN 339

Протокол РРТР обычно применяется для создания безопасных каналов связи между
многими Windows-машинами в сети Intranet. Сразу предупредим, что у этого протокола
длинный список уязвимостей и к тому же в нем используются довольно слабые шифры,
например MD4 или DES.

Протокол GRE
Протокол Generic Routing Encapsulation (GRE) разработан компанией Cisco и применяется
для туннелирования трафика между различными частными сетями. Сюда входит и трафик,
передаваемый не по протоколу IP, который нельзя пропустить по сети в неизменном виде.
Хотя сам по себе протокол не осуществляет шифрования, но зато позволяет эффективно
организовать туннель с низкими накладными расходами. GRE часто применяется в сочета-
нии с протоколами шифрования на сетевом уровне, в результате чего решаются обе зада-
чи: инкапсуляция не-IP трафика, реализуемая GRE, и шифрование, выполняемое каким-то
другим протоколом, например, IPSec.

Протокол L2TP
Этот протокол, совместно разработанный компаниями Cisco, Microsoft и 3Com, обещает заме-
нить РРТР в качестве основного туннельного протокола. По существу, L2TP представляет
собой комбинацию РРТР и созданного Cisco протокола Layer Two Forwarding (L2F). Протокол
L2TP применяется для туннелирования РРР-трафика поверх IP-сети общего пользования. Для
установления соединения по коммутируемой линии в нем используется РРР с аутентифика-
цией по протоколу РАР или CHAP, но, в отличие от РРТР, L2TP определяет свой собственный
туннельный протокол. Поскольку L2TP работает на уровне 2, то через туннель можно про-
пускать и не-IP трафик. Вместе с тем L2TP совместим с любым канальным протоколом, на-
пример ATM, Frame Relay или 802.11. Сам по себе протокол не содержит средств шифрова-
ния, но может быть использован в сочетании с другими протоколами или механизмами
шифрования на прикладном уровне.

Альтернативные реализации VPN


Помимо стандартных протоколов VPN существуют и специализированные варианты. Мы
дадим краткий обзор некоторых из хорошо известных решений с открытыми исходными
текстами, а именно: cIPe, OpenVPN и VTun.

Протокол cIPe
Разработчики утверждают, что cIPe обеспечивает почти такой же уровень безопасности, как
IPSec. Протокол работает на уровне IP и позволяет туннелировать протоколы более высоких
уровней (например, ICMP, TCP, UDP). Принцип работы напоминает РРР, но cIPe инкапсулирует
передаваемые IP-пакеты в UDP-датаграммы. При разработке cIPe была поставлена цель со-
здать облегченный протокол, в котором для шифрования данных применяются достаточно
стойкие криптографические алгоритмы Blowfish и IDEA, но при этом простой для установки
и обслуживания и в то же время несколько более производительный, чем IPSec. Из-за того
3 4 0 А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

что в cIPe используется единственный UDP-порт для организации туннеля, трафик без тру-
да проходит через NAT и межсетевой экран с запоминанием состояния. Поэтому он иде-
ально подходит для не слишком опытных пользователей VPN, которым нужно работать
совместно. Имеются бесплатные реализации cIPe как для UNIX, так и для Windows. К сожа-
лению, в 2003 году были выявлены многочисленные недостатки, допущенные при проек-
тировании cIPe, которые, вероятно, не будут исправлены до выхода следующей версии
протокола.

Пакет OpenVPN
OpenVPN - это еще одно открытое решение, по своей функциональности аналогичное cIPe.
Пакет легко инсталлируется и конфигурируется; известно, что он работает на большин-
стве UNIX-подобных систем, в которых есть драйверы виртуальной сети TUN/TAP. Посколь-
ку протокол работает в адресном пространстве пользователя, то модификаций ядра не
требуется. OpenVPN имеет модульную структуру; все криптографические функции реализо-
ваны посредством библиотеки OpenSSL, в том числе и самые современные шифры, к при-
меру AES с 256-битовым ключом. Следовательно, протокол в полной мере поддерживает
реализованные в OpenSSL механизм PKI для аутентификации сеансов, протокол TLS для
обмена ключами, не зависящий от шифра интерфейс EVP для шифрования данных и коды
НМАС для аутентификации данных (если эта терминология непонятна, вернитесь к главам,
посвященным прикладной криптографии). Как и в случае cIPe, использование единствен-
ного UDP-порта для инкапсуляции туннеля позволяет без труда пропускать трафик через
NAT и межсетевые экраны с запоминанием состояния. Во время работы над этой книгой
пакет еще не был перенесен на платформу Windows.

Пакет VTun
VTUn - это еще один пакет, который пользуется драйвером виртуальной сети TUN/TAP для
туннелирования IP-трафика. Он поддерживает все распространенные протоколы уровня 3,
в том числе IPX и AppleTalk, протоколы для работы по последовательным линиям связи РРР
и SLIP, а также все программы, работающие с конвейерами UNIX (UNIX pipes). Встроенный
механизм контроля трафика позволяет ограничивать входную и выходную скорость рабо-
ты туннеля, что отличает это решение от всех остальных. С точки J F ^ v лнфиденциаль-
ности VTun не претендует на звание самого безопасного протокола; основной упор сделан
на быстродействие, стабильность и удобство эксплуатации. Тем не менее он поддерживает
алгоритм Blowfish с 128-битовым ключом для шифрования данных и MD5 для генерирова-
ния 128-битовых сверток. Версии для Windows не существует, так что вы ограничены UNIX-
подобными ОС, которые поддерживают драйвер TUN/TAP.

Обзор протокола IPSec


Протокол IPSec был спроектирован специально созданной рабочей группой при IETF (Груп-
па по проблемам проектирования Internet). Перед ней была поставлена задача создать
единый стандарт, который обеспечивал бы высококачественное, гибкое и способное к со-
вместной работе решение для сетей IPv4 и IPv6. Разработка была начата по инициативе
ОБЗОР ПРОТОКОЛА IPSEC 341

организации Automotive Network Exchange (Сетевой обмен автомобилестроительной ин-


формацией - ANX), которой требовалась безопасная инфраструктура связи между произ-
водителями, поставщиками и клиентами.
Рабочая группа по протоколу безопасности IP (IP Security Protocol Working Group) разра-
батывает механизмы защиты IP-трафика путем определения структуры защищенных IP-па-
кетов и реализации параметров безопасности (security associations) для коммуникаций в
сетях VPN. Хотя в части управления ключами протокол еще не завершен, но протоколы для
аутентификации данных, обеспечения конфиденциальности и целостности уже определены.
Мы уже отмечали, что протокол IPSec состоит из трех основных частей, которые опре-
деляют два режима его работы (АН и ESP):
о АН (Authentication Header - заголовок аутентификации) обеспечивает аутентифи-
кацию источника данных, целостность и защиту от воспроизведения;
о ESP (Encapsulating Security Payload - безопасно инкапсулированная полезная на-
грузка) обеспечивает аутентификацию источника данных, целостность, защиту от
воспроизведения, конфиденциальность данных и до некоторой степени скрытность
управления потоком;
о IKE (Internet Key Exchange - схема обмена ключами через Internet) предоставляет
средства согласования криптографического алгоритма и отвечает за распределение
ключей, используемых в АН и ESP.

Параметры безопасности
Оба режима - АН и ESP - полагаются на механизм согласования сторонами параметров
безопасного соединения (security association - SA) по алгоритму IKE. В SA хранятся пара-
метры, о которых договорились оба участника обмена по сети VPN. К ним относятся крип-
тографические ключи и время их жизни, используемые криптографические алгоритмы и
режим работы протокола IPSec.
Для каждого режима работы нужно два SA: для входящего и исходящего трафика. Эти
два набора параметров, описывающих данные, отправляемые и получаемые хостом, назы-
ваются парой SA (SA bundle). Если одновременно используются оба режима работы (АН и
ESP), то нужно согласовать четыре SA. В каждом SA явно указывается протокол АН или ESP,
IP-адрес получателя для исходящего соединения или IP-адрес отправителя для входящего
соединения и 32-битовое целое число (SPI), служащее уникальным идентификатором. Еще
одна важная характеристика SA - время жизни. Этот параметр определяет интервал вре-
мени, по истечении которого следует провести повторное согласование или считать SA
недействительным. Время жизни задается либо как число обработанных байтов, либо как
временной интервал; по достижении любого из этих порогов начинается повторное со-
гласование SA. Существует два значения порога времени жизни SA: жесткий и мягкий.
Когда достигнут мягкий порог, SA согласуется заново, по достижении же жесткого порога
SA удаляется из памяти хоста.
Каждый хост-участник хранит SA в базе данных параметров безопасности (Security
Associations Database - SAD). На самом деле для правильной работы IPSec нужна еще и база
данных политик безопасности (Security Policy Database - SPD), в которой хранятся сведе-
ния о политиках, применяемых к трафику. SPD содержит набор правил, которые, в свою
очередь, состоят из селекторов, несущих информацию о типах выполняемых действий.
3 4 2 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Когда приходит пакет, по базе данных SPD определяется, что с ним делать: отбросить, про-
пустить дальше или передать для обработки протоколу IPSec. В отличие от SPD, база дан-
ных SAD лишь хранит необходимые параметры соединения.
Для принятия решения о том, что делать с пакетом, из заголовка извлекаются три поля,
которые сопоставляются с информацией, хранящейся в SAD (протокол IPSec, IP-адрес и
SPI). Если соответствие найдено, то далее параметры сравниваются с полями АН или ESP.
Если соответствие не найдено, пакет отбрасывается.

Протокол АН
АН - это один из протоколов, определенных в IPSec, он позволяет проверить аутентичность
данных и заголовка IP-пакета (рис. 14.6). АН не предоставляет механизма для шифрования
данных, но вычисляет свертку, которая дает возможность узнать, не был ли пакет изменен
по пути следования. Такое применение не нашло широкого распространения, все больше
людей предпочитают пользоваться протоколом ESP - самостоятельно или в сочетании с АН.

Протокол АН также отвечает за защиту от атак повтора сеанса, для этого в пакет вклю-
чается порядковый номер и на каждом узле IPSec реализуется скользящее окно. Как толь-
ко поступает IP-пакет, скользящее окно продвигается вперед, и все последующие пакеты с
номерами вне этого окна отбрасываются. То же относится к пакетам с повторяющимися по-
рядковыми номерами.
Аутентификацию пакета обеспечивает механизм НМАС (о том, как он работает, см. главу 12).
Если любая часть IP-заголовка или данных была изменена, то дайджест сообщения, вычисляе-
мый хостом-получателем, будет отличаться от исходной свертки. Таким образом, гарантирует-
ся целостность передаваемых данных.
ОБЗОР ПРОТОКОЛА IPSEC 343

Для вычисления кода НМАС протокол IPSec допускает использование различных одно-
сторонних функций хэширования, в том числе MD5, SHA-1/2 и RIPEMD-160. Подробнее ра-
бота односторонних функций описана в главе 12.
Протокол АН может работать в туннельном и транспортном режимах, а в RFC 2402 ему
присвоен тип протокола 51.

Протокол ESP
Этот протокол обеспечивает инкапсуляцию незащищенного IP-пакета, его шифрование и
аутентификацию (рис. 14.7).

Традиционно в IPSec использовался шифр DES или 3DES. Шифр DES считается слабым
и может быть вскрыт при необходимости за несколько дней или даже часов, поэтому
пользоваться им не рекомендуется. Шифр 3DES гораздо более стоек, но требует большо-
го объема вычислений и медленно работает на маломощных устройствах, таких как точ-
ки доступа, старые ПК и карманные компьютеры. Защита целостности данных обычно
обеспечивается вычислением свертки данных пакета по алгоритму MD5 или SHA-1. За-
щита от атак воспроизведением реализована так же, как в протоколе АН. Протоколу ESP
в RFC 2402 присвоен тип 50.
3 4 4 А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Существуют и другие реализации IPSec, в которых применяются намного более стойкие


шифры, к примеру Rijndael и другие финалисты конкурса на звание AES. Поддерживаются
также более стойкие криптографические функции хэширования, например SHA-2 и RIPEMD.

Сжатие IP
Добавление новых заголовков к IP-пакету после инкапсуляции ведет к увеличению разме-
ра пакета, то есть к накладным расходам на организацию туннеля. В случае протокола ESP
пакет может вырасти на целых 300 байт. Если же совместно с ESP применяется и протокол
АН, то цифра может и еще увеличиться. Это негативно сказывается на производительнос-
ти, так как реальная пропускная способность сети падает. По сравнению с современными
локальными сетями, у беспроводных сетей меньше полоса пропускания и пропускная способ-
ность, так что лишние накладные расходы нежелательны.
В протоколе IPSec предпринята попытка решить эту проблему за счет встроенного про-
токола сжатия IP-пакетов (IPComp), в котором обычно применяются алгоритмы DEFLATE
или LZS.DEFLATE. Сжатие выполняется до модификации в соответствии с IPSec и до фраг-
ментации. Часто бывает бесполезно сжимать случайные или уже сжатые данные (напри-
мер, файлы типа .трЗ или .гаг); более того, иногда применение избыточного сжатия при-
водит даже к увеличению размера IP-пакета. Кроме того, если IPSec-туннель строится
поверх протоколов РРР или SLIP, то сжатие уже могло быть произведено на более низком
уровне, так что если в этом случае включить протокол IPComp, то пострадает производи-
тельность сети в целом, поскольку данные будут подвергнуты сжатию дважды.
Применение протокола IPComp должно быть согласовано обеими сторонами с помощью
механизма IKE. Следует отметить, что IPComp достаточно гибок, он позволяет выборочно
применять сжатие только к конкретному протоколу транспортного уровня или лишь на
одном конце соединения.

Протокол обмена и управления ключами в IPSec


Протокол обмена и управления ключами в IPSec (IPSec Key Exchange and Management
Protocol - ISAKMP) входит в набор протоколов IPSec и определяет процедуры согласова-
ния, создания, модификации и удаления SA, а также форматы соответствующих пакетов.
Он спроектирован так, чтобы не зависеть ни от какого конкретного метода обмена ключа-
ми или генерации ключей, криптографического алгоритма или механизма аутентифика-
ции. ISAKMP описывает лишь общий каркас в довольно абстрактных терминах. Мы рассмот-
рим более подробно механизм IKE, основанный на каркасе ISAKMP.

Протокол IKE
Internet Key Exchange (IKE) - это протокол общего назначения, предназначенный для об-
мена информацией, относящейся к безопасности. Он предоставляет вспомогательный сер-
вис для аутентификации узлов в протоколе IPSec, согласования параметров безопасности
(SA) и ключей алгоритмов шифрования. Описание областей, в которых может применяться
протокол IKE, см. в RFC 2407.
IKE имеет два разных режима, которые работают на одном или двух этапах каркаса
ISAKMP. Этап 1 служит для установления безопасного канала, который позже используется
ОБЗОР ПРОТОКОЛА IPSEC 345

для защиты всех переговоров, происходящих на этапе 2. По существу, SA в каркасе ISAKMP


определяется после завершения всех переговоров между сторонами. На этапе 1 выполня-
ются следующие действия:
о аутентификация и защита IPSec-узлов;
о согласование политики для защиты обмена информацией по протоколу IKE;
о аутентифицированный обмен данными по протоколу Диффи-Хеллмана с целью вы-
работки разделяемого секретного ключа;
о организация туннеля для последующих переговоров на этапе 2 ЖЕ.
На этапе 2 согласуются SA, которые необходимы для организации IPSec-туннеля, защища-
ющего IP-трафик. Тот единственный SA, который был выработан на этапе 1, можно использо-
вать для согласования SA на этапе 2. На этапе 2 выполняются следующие действия:
о согласование параметров SA для протокола IPSec;
о выработка SA для протокола IPSec;
о периодическое проведение повторного согласования SA.
Чтобы стороны могли безопасно обменивать информацией, необходимо вначале успеш-
но провести взаимную аутентификацию. Типичная реализация IPSec использует для этой
цели следующие методы:
о предварительно разделенный ключ (Preshared Key - PSK). Этот метод аутентифика-
ции основан на доказательстве того факта, что обе стороны владеют общим секретом.
Скомпрометировать это решение может небезопасная процедура распределения PSK;
о алгоритм с открытым ключом. Этот метод аутентификации основан на генериро-
вании пары ключей (открытого и закрытого). Открытые ключи можно без опаски
передавать по небезопасным каналам связи, но возникает вопрос об истинном вла-
дельце ключа;
о цифровые сертификаты. Любая схема распределения открытых ключей требует на
каком-то этапе доверия. В таких сетях, как Internet где контроль сомнителен, а инфра-
структуре нельзя доверять, распределять ключи нелегко. То же относится и к беспровод-
ным сетям, которые к тому же уязвимы к атакам «человек посередине» на второй уро-
вень в стиле программы kracker_jack. В этом случае на сцену входит третья сторона -
признанный удостоверяющий центр (СА), который выпускает сертификаты, содержащие
идентификатор владельца, имя или IP-адрес машины, порядковый номер, срок действия
и открытый ключ. Стандартный формат цифрового сертификаты называется Х.509.

Режимы работы на этапе 1


Есть три способа провести согласование SA на этапе 1:
о основной режим. Он спроектирован так, чтобы отделить информацию об обмене клю-
чами от информации, касающейся идентификации и аутентификации, и защитить
идентификационную информацию ранее сгенерированным по протоколу Диффи-
Хеллмана разделяемым секретом. В этом режиме происходит обмен шестью UDP-да-
таграммами;
о агрессивный режим. В этом режиме разрешено передавать информацию, касающую-
ся обмена ключами, идентификации и аутентификации, вместе. Он часто применяет-
ся, когда защищать идентификационную информацию необязательно. Происходит
346А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

обмен тремя UDP-датаграммами. После получения первого сообщения с предложе-


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

Режим работы на этапе 2


На этапе 2 протокола IKE есть только один режим согласования - быстрый (Quick Mode).
Он начинается после того, как IKE успешно организовал безопасный туннель в режиме 1;
поэтому все данные, которыми обмениваются стороны, зашифрованы. Соединение может
быть запрошено любой стороной; один или более SA, необходимые для протокола IPSec,
передаются в трех сообщениях, которыми обмениваются хосты.

Идеальная секретность перенаправления


Еще одна особенность протокола IPSec, которая значительно повышает его безопасность, - это
«идеальная секретность перенаправления» (Perfect Forward Secrecy- PFS). Если эта функция
активизирована, то для каждого раунда переговоров в быстром режиме выполняется новый
обмен по протоколу Диффи-Хеллмана. Поэтому, даже если один из SA для ISAKMP скомпроме-
тирован, на остальные это не повлияет. Недостаток - повышенное потребление процессорно-
го времени, что может негативно повлиять на производительность системы.

Обнаружение неработающего хоста


В IPSec есть внутренний механизм, который позволяет посылать по протоколу IKE сообще-
ние с извещением об удалении, когда одна из сторон уничтожает SA. К сожалению, хост
обычно не посылает такое извещение, например, потому, что неожиданно остановился из-
за краха системы или сбоя электропитания. Такая ситуация часто встречается в беспро-
водных сетях, когда хост внезапно выходит из зоны покрытия. Для решения этой пробле-
мы предусмотрен механизм обнаружения неработающего хоста (Dead Peer Discovery - DPD).
Идея в том, что сообщение с извещением посылается раньше данных, если период неактив-
ности продлился дольше заранее установленного порогового значения. Если хост еще «жив»,
то на поступившее извещение он должен ответить своим собственным.

IPSec и перемещающиеся клиенты


Типичная ситуация возникает, когда клиент соединяется из удаленного пункта или по бес-
проводному каналу и получает новый IP-адрес от DHCP-сервера, который изменяется время
от времени. Поскольку один из IP-адресов динамический, его нельзя использовать для
идентификации данной стороны. Поэтому для аутентификации таких хостов приходится
применять другие методы (например, сертификаты Х.509).
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 4 7

Оппортунистическое шифрование
Идея оппортунистического шифрования состоит в том, чтобы дать сторонам возможность
безопасно обмениваться данными, заранее ничего не зная друг о друге. Прежде чем посы-
лать пакет, отправляющая сторона проверяет, можно ли установить безопасный канал с
принимающей. Если обе машины настроены так, что знают об оппортунистическом шиф-
ровании, то будет организован безопасный туннель. Этот метод основан на применении
DNS для распределения открытых RSA-ключей по запросу. Он годится для беспроводных
хотспотов, но уязвим для подделки DNS и различных атак «человек посередине», в том
числе и на канальный уровень, специфичных именно для беспроводных сетей (см. инстру-
мент krackerjack из комплекта Airjack).

Развертывание недорогой VPN


с помощью пакета FreeS/WAN
Наконец-то мы можем отложить теорию в сторону и приступить к делу. Стандартом де-факто
для защиты информации с помощью протокола IPSec на платформе Linux (с ядром 2.4)
является пакет FreeS/WAN (http://www.freeswan.org), разработку которого начал Джон Гил-
мор (John Gilmore) в 1996 году. Часть S/WAN в названии расшифровывается как Secure Wide
Area Network (Безопасная глобальная сеть), поскольку проект тестировался несколькими
компаниями, чтобы удостовериться в возможности совместной работы различных реали-
заций IPSec. Ну а слово Free означает, что программа распространяется на условиях ли-
цензии GPL. Этот пакет поддерживает большую часть функций, необходимых для повсед-
невной работы VPN. Существует несколько патчей, расширяющих функциональность FreeS/
WAN и делающих его более настраиваемым. Альтернативное и сильно модифицированное
решение называется Super FreeS/WAN (http://www.freeswan.ca). Описывая процедуру ин-
сталляции и конфигурирования, мы будем ориентироваться именно на Super FreeS/WAN.
Всюду, где в тексте упоминается FreeS/WAN, мы подразумеваем именно эту модифициро-
ванную версию.
Описать пакет FreeS/WAN проще всего, если считать, что он состоит из двух частей: KLIPS
и Pluto. Часть KLIPS (Kernel IP Security - безопасность IP на уровне ядра) интегрируется в
ядро Linux и может быть скомпилирована вместе с ним или в виде загружаемого модуля.
Она реализует протоколы АН, ESP и обработку пакетов внутри ядра. Часть Pluto отвечает
за реализацию IKE и используется для согласования параметров соединения с другими
системами.

Сборка FreeS/WAN
Мы предполагаем, что вы хорошо знаете, как собирать программы из исходных текстов.
Вообще-то FreeS/WAN существует и в виде готового бинарного пакета, но, скорее всего, в
него не войдут некоторые из последних возможностей, которые вам могут понадобиться.
348А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Прежде чем приступать к инсталляции FreeS/WAN, освойтесь с процедурой сборки ядра из


исходных текстов. Сами тексты можно скачать с сайта http://www.kernel.org. Во время рабо-
ты над этой книгой последняя стабильная версия имела номер 2.4.24. Убедитесь, что в ядро
включены все необходимые функции и что машина загружается и нормально работает.
Следующий шаг - получить исходные тексты FreeS/WAN. Текущая стабильная версия имеет
номер 2.00 и находится на сайте http://www.freeswan.org. Текущая модифицированная версия
Super FreeS/WAN имеет номер 1.99.7, ее можно скачать с сайта http://www.freeswan.ca. Решай-
те сами, какой вариант инсталлировать, но мы рекомендуем Super FreeS/WAN.
Скачайте последнюю версию Super FreeS/WAN в каталог /usrAocal/src и разверните tar-архив.

Если вы пользуетесь системой X Windows, наберите #make xgo, тогда вы увидите кра-
сивый графический интерфейс для выбора параметров ядра. Если вы не хотите или не мо-
жете пользоваться X Windows, наберите #make menugo или #make ogo (если вам нравит-
ся тратить долгие часы на задание каждого параметра ядра). Появляется стандартный
экран конфигурирования ядра (рис. 14.8 и 14.9). Обратимся к параметрам сети.
В нижней части окна находятся параметры, относящиеся к протоколу IPSec. Рассмотрим
каждый из них:
о IP Security Protocol (FreeS/WAN IPSEC). Поставьте этот флажок, если вы хотите,
чтобы протокол IPSec вообще работал; он выбирает часть KLIPS в ядре;
о IPSEC: IP-in-IP encapsulation (tunnel mode). Мы рекомендуем поставить этот фла-
жок, иначе никакого туннельного режима не будет;
о IPSEC: Authentication Header. Поставьте этот флажок, если вы хотите пользоваться
протоколом АН. Если вам нужен только протокол ESP без дополнительной аутенти-
фикации по протоколу АН, не отмечайте его;
о HMAC-MD5 authentication algorithm. Включите этот флажок, если вы хотите пользо-
ваться функцией хэширования MD5;
о HMAC-SHA1 authentication algorithm. Функция хэширования SHA1 криптографи-
чески сильнее, чем MD5. Мы рекомендуем поставить оба флажка, особенно если вас
волнует совместная работа с другими реализациями IPSec;
о IPSEC: Encapsulation Security Payload. Поставив этот флажок, вы сможете исполь-
зовать IPSec в режиме ESP. Сделайте это;
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 4 9

о 3DES encryption algorithm. Стандартный криптографический алгоритм, потребля-


ющий много процессорного времени. Имеет смысл поставить этот флажок ради воз-
можности совместной работы;
о IPSEC: Modular Extensions. Отметьте у, если вам нужны дополнительные возможно-
сти, реализованные в Super FreeS/WAN;
о HMAC-MD5 auth algorithm (modular alg). Выберите п;
о HMAC-SHA1 auth algorithm (modular alg). Снова выберите п;
о HMAC-SHA2 auth algorithm. Алгоритм SHA2 реализует криптографически более
сильную 256- или 512-битовую функцию хэширования, чем алгоритм SHA1 с 128 бит.
Мы рекомендуем пользоваться SHA2;
о 3DES encryption algorithm (modular alg). Выберите п;
о AES encryption algorithm. Шифр AES намного более стойкий, чем его предшествен-
ник DES. Мы рекомендуем именно его, так как, на наш взгляд, для него характерно
одно из лучших значений отношения производительность/криптографическая стой-
кость. На наших машинах AES с ключом длиной 256 бит шифровал и дешифрировал
в два раза быстрее, чем 3DES (реализованный программно);
3 5 0 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

о BLOWFISH encryption algorithm. Довольно старый, бесплатный и надежный алго-


ритм с длиной блока 64 бит. Предшественник алгоритма Twofish;
о SERPENT encryption algorithm. Еще один финалист конкурса на звание AES. На наш
взгляд, этот шифр с точки зрения математики самый стойкий из всех кандидатов.
Если вы не доверяете AES, то остановите свой выбор на SERPENT;
о CAST encryption algorithm. Алгоритм запатентован и был одним из претендентов в
первом туре конкурса на звание AES;
о NULL encryption algorithm. Отсутствие шифрования. Неразумно использовать про-
токол ESP без шифрования, разве что у вас какое-то извращенное чувство юмора.
Лучше уж в таком случае предпочесть АН;
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 5 1

о CRYPTOAPI ciphers support. Дополнительная поддержка для шифров, включенных


в патч cryptoapi к ядру;
о IDES **INSECURE** encryption algorithm. Включено только ради возможности
совместной работы с устаревшими реализациями IPSec;
о IPSEC: IP Compression. Можете поэкспериментировать со сжатием, чтобы нейтра-
лизовать негативное влияние накладных расходов на пропускную способность.
Имейте в виду, что эта возможность требует немало процессорного времени;
о IPSEC Debugging Option. Если этот флажок отмечен, то KLIPS будет выводить в
syslog отладочную информацию. Имеет смысл включить отладку, по крайней мере
на время настройки вашей первой VPN;
о IPSEC NAT-Traversal. Если вы планируете организовывать IPSec-туннель, когда один
из хостов находится за NAT, отметьте этот флажок.
Если вы сомневаетесь, какой криптографический алгоритм выбрать, обратитесь к главе 11,
где все они подробно рассмотрены. Понимание основ прикладной криптографии - ключ к
успешному развертыванию VPN.
Задав все параметры, сохраните их. FreeS/WAN сделает все остальное, откомпилирует
все утилиты и соберет ядро. По завершении процесса сборки наберите cd / u s r / s r c /
l i n u x ; inform m o d u l e s _ i n s t a l l для установки модулей.
Далее нужно скопировать только что откомпилированный образ ядра в загрузочный
каталог и уведомить об этом lilo (или тот загрузчик, которым вы пользуетесь). Выполните
такую команду:
arhontus:~#cp /usr/local/linux/arch/i386/boot/bzlmage \
/boot/vmlinuz-ipsec-'kernel version'
Затем откройте файл lilo.conf в своем любимом редакторе (мы предпочитаем vi):
arhontus:~#vi /etc/lilo.conf
Добавьте такие строки:
1
image = /boot/vmlinuz-ipsec-'kernel version
root = /dev/'boot-device'
label = Linux-sfswan
read-only
Сохраните файл, выйдите из редактора и перезапустите lilo:
arhontus:~#lilo
Если никаких ошибок не было, перезапустите машину и, когда появится меню загрузчи-
ка, выберите новое ядро. Сплюньте три раза через левое плечо, постучите по дереву, воз-
несите молитвы г-ну Торвальдсу и надейтесь, что вы сумеете загрузиться с первого раза.

Конфигурирование FreeS/WAN
Мы обсудили разные топологии сетей VPN, но из-за недостатка места подробно рассмот-
рим только два сценария: сеть-сеть и хост-сеть. Они пригодны для защиты беспроводных
сетей типа точка-точка и точка-многоточка. А зная, как конфигурировать такие сети, вы
уже без труда справитесь и с другими топологиями.
352А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Генерирование ключей
Прежде всего необходимо сгенерировать ключи, которые будут применяться для инициа-
лизации протокола IKE. Все ключи хранятся в файле /etc/ipsec.secrets. Проверьте, установ-
лены ли для этого файла права доступа 600, и, если это не так, выполните такую команду:
arhontus:~#chmod 600 /etc/ipsec.secrets
Генерирование симметричных ключей. В пакет Super FreeS/WAN включена команда для
генерирования симметричных ключей. Чтобы сгенерировать 64-битовый ключ, наберите:
arhontus:~#ipsec r a n b i t s --continouous 64 > /tmp/symm.key
В этом примере длина 64 бит взята только для экономии места; для реальной сети VPN
выбирайте ключи большей длины.
Команда генерирует псевдослучайное число и сохраняет его в файле /tmp/symm.key.
Далее включите содержимое файла symm.key в /etc/ipsec.secrets и добавьте строку PSK.
В результате файл будет выглядеть примерно так:
: PSK "0xe687f51034f33f07"
Оба хоста, участвующие в обмене данными, должны иметь одинаковые записи в файле
/etc/ipsec. secrets.
Генерирование ключей RSA. Пакет Super FreeS/WAN позволяет также сгенерировать
открытый и закрытый ключи для протокола RSA. В следующем примере показано, как сгене-
рировать 64-битовые ключи. На практике следует выбирать ключи гораздо большей длины.
Для генерирования пары ключей RSA наберите такую команду:
# ipsec rsasigkey -verbose 64 > /tmp/rsa.key
Чтобы созданные ключи можно было использовать в протоколе IPSec, записанный файл
необходимо несколько модифицировать. В начало файла добавьте строку : RSA{, а в ко-
нец - }, так чтобы содержимое файла выглядело следующим образом:
: RSA {
р е з у л ь т а т работы rsakeygen
}
Убедитесь, что в начале каждой строки стоит символ табуляции, иначе FreeS/WAN не
сможет разобрать файл. Содержимое отредактированного файла скопируйте в /etc/
ipsec.secrets. Теперь он будет содержать примерно такие данные:
: RSA {
# RSA 64 bits dyno Sat May 31 17:08:13 2003
# только для подписей, ДЛЯ ШИФРОВАНИЯ НЕБЕЗОПАСНО
#pubkey=0sAQNrYsldIB3h4w==
#IN KEY 0x4200 4 1 AQNrYsldIB3h4w==
# (0x4200 = auth-only host-level, 4 = IPSec, 1 = RSA)
Modulus: 0x6b62c95d201dele3
PublicExponent: 0x03
# все, что дальше, секретно
PrivateExponent: 0xlle5cc39f8be86f3
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 5 3

Primel: 0xa889727b
Prime2: 0xa31d45b9
Exponentl: 0x705bala7
Exponent2: 0x6cbe2e7b
Coefficient: 0x25a4fd62
}

В файле ipsec.secrets можно хранить несколько ключей, но тогда их нужно независимо


пронумеровать:
@vpnl.arhont.com: RSA {
rsasigkey output
}
@vpn2.arhont.com: RSA {
rsasigkey output
}

Еще предстоит извлечь свой открытый ключ и сделать его доступным для всех участни-
ков. Последовательность символов, идущая за строкой #pubkey=, - это и есть ваш откры-
тый ключ, который можно без опаски передавать кому угодно. Позже вы должны будете
включить его в файл ipsec.conf на машинах, участвующих в обмене данными. Не забудьте,
что в состав открытого ключа строка # p u b k e y = не входит.

Генерирование сертификата Х.509


Для создания сертификата Х.509 нужно, чтобы был установлен и нормально работал пакет
OpenSSL. Если вы не хотите посылать свои ключи на подпись доверенному удостоверяю-
щему центру (это стоит денег), то сначала следует создать свой собственный.
Tj\e находятся исполняемые файлы, входящие в пакет OpenSSL, зависит от дистрибутива.
В случае Slackware они находятся в каталоге /etc/ssl а в случае Debian - в каталоге /usr/lib/
ssl. В примере ниже мы будем предполагать, что работаем с дистрибутивом Slackware:
arhontus:~#cd /etc/ssl/misc
arhontus:#./CA.sh -newca
arhontus:#mv ./demoCA/cacert.pern ./demoCA/newca.pem
arhontus:#openssl x509 -in ./demoCA/newca.pem -days 1024 \
-out ./demoCA/cacert.pern -signkey ./demoCA/private/cakey.pem
arhontus:#rm ./demoCA/newca.pem
В ответ на предложение ввести имя файла просто нажмите клавишу Enter, а затем вве-
дите ту информацию, которую запрашивает программа. Пароль, который вы введете, будет
паролем вашего удостоверяющего центра (СА), не забывайте его. Продлим жизнь своего
СА на 1024 дня (в особо секретных случаях задавайте меньший срок жизни). По заверше-
нии процесса у вас будет закрытая (cakey. pem) и открытая ( c a c e r t . pem) части СА. Ско-
пируйте открытую часть в такое место, где ее сможет найти пакет Super FreeS/WAN:
arhontus:~#cp /etc/ssl/misc/demoCA/cacert.pem /etc/ipsec.d/cacerts/
После того как СА создан, необходимо выпустить два сертификата: по одному для каж-
дого конца VPN. У обоих сертификатов будут открытая и закрытая части.
3 5 4 ^ РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Процедура создания сертификатов выглядит так:


arhontus:~#cd /etc/ssl/misc
arhontus:#./CA.sh -newreq
Введите необходимую информацию в ответ на задаваемые вопросы и обязательно за-
помните пароль, поскольку именно он обеспечит доступа к сертификатам FreeS/WAN.
В ответ на вопросы о пароле-запросе и названии компании (необязательно для заполне-
ния) нажмите клавишу Enter (ничего не вводя).
Далее нужно подписать сертификат в удостоверяющем центре:
arhontus:#./CA.sh -sign
По требованию программы введите пароль, указанный при создании СА. Итак, вы выпусти-
ли и подписали новый сертификат. Его открытая часть находится в файле newcert.pem, а зак-
рытая - в файле newreq.pem. Переместите эти файлы туда, где их сможет найти FreeS/WAN:
arhontus:#mv ./newreq.pem /etc/ipsec.d/private/freeswan-priv.pem
arhontus:#mv ./newcert.pem /etc/ipsec.d/freeswan-cert.pern
Повторите эту процедуру для второй пары сертификатов, но придумайте для них дру-
гое имя.
Чтобы известить FreeS/WAN о выпущенных сертификатах, добавьте следующую строку
в файл /etc/ipsec.secrets:
: RSA freeswan-priv.pem "пароль сертификата"
Поскольку пароль хранится в открытом виде, а конфигурационные файлы IPSec счита-
ются закрытой информацией, убедитесь, что группе и всем остальным не разрешено их
читать. Введите такие команды:
arhontus:~#chmod 600 / e t c / i p s e c . s e c r e t s
arhontus:~#chmod 644 /etc/ipsec.conf
Далее необходимо создать пустой список отозванных сертификатов (Certificate Revocation
List - CRL). Для этого нужно поступить так:
arhontus:~#openssl ca -gencrl -out /etc/ipsec.d/crls/crl.pern
Наконец-то сертификаты готовы для использования!

Структура файла ipsec.conf


Прежде чем приступать к конфигурированию FreeS/WAN, будет полезно разобраться с тем,
как организован главный конфигурационный файл. Типичный файл ipsec.conf выглядит
следующим образом:
config setup
interfaces="ipsecO=ethO"
klipsdebug=none
plutodebug=none
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 5 5

plutoload=%search
plutostart=%search
uniqueids=yes

conn %default
keyingtries=O
auth=esp
authby=rsasig
esp = aesl28-sha2_256
pfsgroup=modpl53 6
ike = aes256-md5-modp4096
pfs=yes
compress=no

conn gatel-gate2
left=192.168.50.100
leftid=@vpnl.core.arhont.com
leftnexthop=192.168.50.251
leftsubnet=192.168.10.0/24
leftrsasigkey=0sAQNgvfFH2bGl...
right=192.168.100.150
rightid=@vpn2.core.arhont.com
rightnexthop=192.168.100.251
rightsubnet=192.168.15.0/24
rightrsasigkey=0sAQPFb2ffuPhn...
auto=start

Файл ipsec.conf состоит из двух частей: части c o n f ig, в которой заданы общие конфигу-
рационные параметры, и части conn, где определены детали соединения. В табл. 14.2 опи-
саны некоторые из наиболее важных параметров.
Таблица 14.2. Параметры FreeS/WAN
3 5 6 л РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Таблица 14.2. Параметры FreeS/WAN (окончание)

conn %def a u l t Раздел подразумеваемых конфигурационных параметров


keyingtries Определяет, сколько допустимо попыток при согласовании параметров
соединения или при замене старого
auth Указывает, следует ли проводить аутентификацию в составе протокола ESP
или отдельно по протоколу АН
authby Определяет, как должна проводиться взаимная аутентификация узлов

esp Указывает, что на этапе 2 ISAKMP нужно использовать алгоритм шифрования


и аутентификации ESP
pfsgroup Задает группу PFS, если режим PFS включен

ike Указывает, что на этапе 1 ISAKMP нужно использовать алгоритм шифрования


и аутентификации IKE
pfs Включает режим PFS. Рекомендуется включать его всегда

compress Указывает, нужно ли использовать протокол IPComp для сжатия


conn "name" Конфигурационные параметры конкретного соединения

left, right IP-адрес участника. Неважно, левый он или правый, поскольку параметры
обоих участников однотипны
leftsubnet Адреса частных подсетей за VPN-шлюзом, которым разрешено принимать
rightsubnet участие в коммуникациях через туннель
l e f tnexthop Задает адрес следующего шлюза для участника. Необходимо для правильной
rightnexthop маршрутизации из подсетей за VPN-шлюзом
l e ft i d , r i g h t i d Идентификаторы для аутентификации участников. Может быть либо IP-адрес,
либо полностью определенное доменное имя, которому предшествует символ @
lef trsasigkey Открытые ключи RSA для участников, используемые во время аутентификации
rightrsasigkey
auto Определяет, как соединение должно обрабатываться Pluto

Существует еще много параметров для тонкой настройки Super FreeS/WAN, но мы не


можем описать их все в этой главе. Более подробную информации вы можете найти в до-
кументации проекта.

Настройка топологии VPN сеть-сеть


Прежде всего нужно изменить некоторые параметры ядра. Чтобы разрешить перенаправ-
ление между интерфейсами, введите такую команду:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Затем нужно сгенерировать два набора ключей. Эта процедура была подробно рассмот-
рена выше, так что будем считать, что ключи уже есть. В следующем примере мы покажем,
как с помощью FreeS/WAN настроить туннель сеть-сеть. Ниже представлен файл ipsec.conf:
config setup
interfaces="ipsecO=ethO"
klipsdebug=none
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 5 7

plutodebug=none
plutoload=%search
plutostart=%search
uniqueids=yes
conn %default
keyingtries=O
auth=esp
authby=rsasig
esp = aesl28-sha2_256
pfsgroup=modpl53 6
ike=aes256-md5-modp4096
pfs=yes
compress=no

conn gatel-gate2
left=192.168.50.100
leftid=@vpnl.core.arhont.com
leftnexthop=192.168.50.251
leftsubnet=192.168.10.0/24
leftrsasigkey=0sAQNgvfFH2bGl...
right=192.168.100.150
rightid=@vpn2.core.arhont.com
rightnexthop=192.168.100.251
rightsubnet=192.168.15.0/24
rightrsasigkey=0sAQPFb2ffuPhn...
auto=start

Обратите внимание, что для шифрования туннеля задан алгоритм ESP с шифром AES со
128-битовым ключом (параметр e s p = a e s l 2 8 - s h a 2 _ 2 56). Если вам нравится другой
шифр, проверьте, поддерживает ли его Pluto:
arhontus:~#ipsec auto --status I grep alg.*ESP

Настройка топологии VPN хост-сеть


В этом случае мы скажем, что хост vpnl.core.arhont.com будет шлюзом, а беспроводные хосты
будут получать доступ во внутреннюю сеть через VPN. На этот раз для аутентификации приме-
ним сертификаты Х.509. Убедитесь, что на шлюзе в сеть разрешено перенаправление пакетов:

# echo 1 > /proc/sys/net/ipv4/ip_forward


Убедитесь также, что открытые части обоих сертификатов находятся в каталоге /etc/
ipsec.d/, а закрытая часть сертификата второго участника - в каталоге /etc/ipsec.d/private/ и
соответствующая запись есть в файле /etc/ipsec.secrets. Таким образом, файл /etc/
ipsec.conf должен выглядеть примерно так:
config setup
interfaces="ipsecO=ethO"
klipsdebug=none
plutodebug=none
plutoload=%search
3 5 8 ^ РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

plutostart=%search
uniqueids=yes
conn %default
keyingtries=O
auth=esp
authby=rsasig
esp = aesl28-sha2_256
pfsgroup=modpl536
ike=aes256-md5-modp4096
pfs=yes
compress=no

conn pingo-dyno
left=192.168.50.101
leftsubnet=0.0.0.0/0
leftnexthop=%direct
lef tcert=p'ingo-cert .pem
right=192.168.50.6
rightnexthop=%direct
rightcert=dyno-cert.pem
auto=start.

В этой конфигурации аутентификация выполняется с помощью сертификатов Х.509.


Строка l e f t s u b n e t = 0 . 0 . 0 . 0 / 0 говорит о том, что левая сторона является шлюзом по
умолчанию для всего трафика. Эта ситуация типична, когда в сети есть беспроводные хо-
сты, которые «хотят» не только общаться с остальной частью локальной сети, но и иметь
возможность прямого выхода в Internet.
Если число сертификатов велико или их имена часто изменяются, то можно и не зада-
вать точные имена сертификатов. Вместо этого можно ввести информацию о сертификате,
a FreeS/WAN просмотрит все имеющиеся данные в поисках соответствия. Простой пример
такой конфигурации показан ниже:
conn pingo-dyno
left=192.168.50.101
leftsubnet=0.0.0.0/0
leftnexthop=%direct
leftcert=pingo-cert.pem
right=192.168.50.6
rightid="C=UK / ST=Some-State, L=Bristol, 0=Arhont Ltd,
CN=pingo.core.arhont.com, E=info@arhont.com"
rightrsasigkey=%cert
rightnexthop=%direct
auto=start

Настройка клиента в ОС Windows 2000


К сожалению, не все из нас имеют удовольствие работать с операционной системой Linux,
поэтому для тех, кому не повезло, опишем порядок настройки Windows-машины для безо-
пасной связи с VPN-концентратором на базе FreeS/WAN. Готовьтесь щелкать мышкой.
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 5 9

Windows не понимает формата *.рет файлов, формируемых пакетом OpenSSL, поэтому


сертификаты придется конвертировать с помощью следующих команд:
arhontus:~#openssl pkcsl2 -export -in /etc/ipsec.d/client.pem \
-inkey /etc/ipsec.d/private/client.pem - c e r t f i l e \
/etc/ssl/misc/demoCA/cacert.pem -out /tmp/client.p!2
arhontus:~#openssl x509 -in /etc/ipsec.d/freeswan-cert.pem \
-out /tmp/freeswan-cert.pem
В ответ на вопрос о пароле введите пароль для конкретного сертификата. Далее вас
попросят ввести пароль экспорта. Запомните этот пароль, поскольку его придется ввести
еще раз при импорте сертификата в Windows 2000. Когда файлы будут сгенерированы,
перенесите их безопасным способом на машину с ОС Windows и не забудьте удалить из
каталога /tmp.
По умолчанию процедура инсталляции в Windows не поддерживает сильного шифрования,
и в вашем распоряжении имеется только шифр DES. Если вы не сделали этого раньше, скачайте
с сайта Microsoft пакет High Encryption Pack for Windows 2000 (http://www.microsoft.com/
WIND0WS2000/downloads/recommended/encryption/default.asp).
Установив этот пакет, вы должны будете импортировать сертификаты в Windows. Для это-
го нажмите кнопку Start (Пуск), выберите в меню пункт Run (Выполнить) и введите коман-
ду mmc. В появившемся окне выберите в меню Console (Консоль) пункт Add/Remove Snap-in
(Добавить/Удалить оснастку) - рис. 14.10.
В новом окне нажмите кнопку Add (Добавить) и затем выберите из списка пункт
Certificates, после чего снова нажмите кнопку Add (рис. 14.11).
Появится еще одно окно. Выберите вариант Computer Account (Учетная запись компь-
ютера) и нажмите кнопку Next (Далее) - рис. 14.12.
3 6 0 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Выберите вариант Local computer (Локальный компьютер) и нажмите кнопку Next.


Закройте окно Add Standalone Snap-In (Добавить автономную остнаску).
Теперь мы готовы импортировать наш удостоверяющий центр и клиентский сертифи-
кат. Дважды щелкните по строке Certificates, затем щелкните правой кнопкой по узлу
Personal выберите из контекстного меню пункт All Tasks (Все задачи), а затем пункт
Import (Импортировать) - рис. 14.13.
Появится окно Мастера импорта (Import Wizard) - рис. 14.14. Нажмите кнопку Next,
затем - Browse и выберите файл client.р12. Снова нажмите кнопку Next и введите па-
роль экспорта для СА.
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 6 1

Рис. 14.14. Мастер импорта сертификата


Еще раз нажмите кнопку Next, оставьте значения всех параметров без изменения
(рис. 14.15) и опять нажмите кнопку Next а затем - Finish (Завершить).
Появится сообщение об успешном импорте сертификата.
Теперь оба сертификата - клиентский и удостоверяющего центра - импортированы и
находятся в узле Personal но наш СА является доверенным корневым удостоверяющим
центром (Trusted Root Certificate Authorities), поэтому его надо переместить в соответству-
ющий узел. Укажите на наш СА, щелкните правой кнопкой мыши и выберите из меню пункт
Cut (Вырезать) - рис. 14.16.
3 6 2 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Теперь укажите на узел Trusted Root Certificate Authorities и выберите из меню пункт
Paste (Вставить) - рис. 14.17. На этом импорт сертификатов завершен.
Можете закрыть все окна и приступить к конфигурированию IPSec-клиента.
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 6 3

Конфигурирование IPSec-клиента в ОС windows 2000


Мы не станем создавать настоящее VPN-соединение, а модифицируем свойства ТСР/1Р-соеди-
нения, применив такие политики, что трафик всегда будет защищаться. Это самое простое
решение, когда нужно организовать обращения к локальной сети компании из беспровод-
ной сети. Кроме того, не придется платить за дополнительное программное обеспечение.
Как и большинство конфигурационных параметров в Windows, политики IPSec опреде-
ляются с помощью панели управления. Чтобы создать новую политику, перейдите на Па-
нель управления, дважды щелкните по пиктограмме Administrative Tools (Администрирова-
ние) и затем выберите пункт Local Security Settings (Локальные параметры безопасности).
Из меню Action (Действие) выберите пункт Create IP Security Policy (Создать политику
безопасности IP) - рис. 14.18.
Появится окно Мастера. Нажмите кнопку Next и в следующем окне введите произволь-
ное имя политики (при желании можете добавить еще и краткое описание). Снова нажми-
те кнопку Next и в следующем окне сбросьте флажок Activate the default response rule
(Активировать правило ответа по умолчанию), после чего нажмите кнопки Next и Finish.
Теперь надо создать два правила безопасности IP - однс для исходящего, а другое для
входящего трафика (рис. 14.19).
Убедитесь, что флажок Use Add Wizard (Воспользоваться мастером добавления) не от-
мечен, и добавьте правило, нажав кнопку Add. Появится окно New Rule Properties (Свой-
ства нового правила). Перейдите на вкладку IP Filter List (Список IP-фильтров) и нажмите
кнопку Add (рис. 14.20).
3 6 4 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

В новом окне нажмите кнопку Add, введите какое-нибудь осмысленное имя IP-фильтра,
отражающее природу туннеля, например, win2k_to_linux и нажмите кнопку Add для зада-
ния свойств фильтра (рис. 14.21).
В списке Destination Address (Адрес получателя) выберите пункт Any IP Address (Лю-
бой IP-адрес). В списке Source Address (Адрес отправителя) выберите Specific IP Address
(Конкретный IP-адрес) и введите IP-адрес VPN-шлюза в Linux (рис. 14.22). Флажок Mirrored
(Зеркально) должен быть сброшен. Нажмите кнопку ОК.
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 6 5

Теперь нужно создать еще один список IP-фильтров. Назовите его Unux_to_win2k, нажмите
кнопку Add и в окне Filter Properties (Свойства фильтра) введите информацию, противопо-
ложную введенной раньше. Иными словами, отправитель становится получателем, и наобо-
рот. Убедитесь, что флажок Mirrored сброшен, нажмите кнопку ОК, а затем - Close (Закрыть).
Убедитесь, что фильтр Iinux_to_win2k появился в списке IP-фильтров, перейдите на
вкладку Filter Action (Действие фильтра), выберите вариант Require Security (Обеспечить
безопасность) и нажмите кнопку Edit (Редактировать) - рис. 14.23.
3 6 6 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Теперь переупорядочите список Security Method (Метод обеспечения безопасности)


так, чтобы строки со значением 3DES в колонке ESP confidentiality и MD5 в колонке ESP
Integrity были первыми (рис. 14.24).
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 3 6 7

Закройте окно, нажав кнопку ОК перейдите на вкладку Connection Type (Тип соедине-
ния) и выберите Local area network (Локальная сеть). Перейдите на вкладку Tunnel
Setting (Параметры туннеля) и введите свой IP-адрес (рис. 14.25).
368А РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Перейдите на вкладку Authentication Methods (Методы аутентификации), укажите на


текущий вариант (Kerberos) и нажмите кнопку Edit (рис. 14.26).

Рис. 14.26. Выбор метода аутентификации


Установите переключатель в положение Use a certificate from this certificate authority
(CA) (Пользоваться сертификатом, выпущенным данным удостоверяющим центром) и выбери-
те тот сертификат, который вы перед этим импортировали в Windows. Затем три раза нажмите
кнопку 0К пока не окажетесь в окне Tunnel Properties (Свойства туннеля).
Можно вместо этого настроить систему так, чтобы она пользовалась разделяемым секретом
в виде PSK-ключа. Для этого выберите вариант Use the string to protect the key exchange
(preshared key) и введите разделяемый, секрет в расположенное ниже текстовое поле.
Не забудьте, что правила нужно задавать как для входящего, так и для исходящего трафика,
поэтому придется добавить еще одно правило безопасности IP. Процедура аналогична только
что описанной с тем отличием, что в окне Filter Properties нужно будет поменять роли отпра-
вителя и получателя, а в окне Tunnel Settings ввести IP стороны на другом конце VPN.
Наконец, в окне свойств туннеля перейдите на вкладку General (Общие) и нажмите
кнопку Advanced (Дополнительно) - рис. 14.27.
Отметьте флажок Master Key Perfect Forward Secrecy (Идеальная секретность перенап-
равления главного ключа), затем нажмите кнопку Methods и в списке Security Method for
IKE (Метод обеспечения безопасности для IKE) сделайте верхней строку со значением 3DES
в колонке Encryption и MD5 в колонке Integrity (рис. 14.28).
Вернитесь в окно Local Security Settings и щелкните правой кнопкой по только что создан-
ному туннелю. Выберите из меню пункт All Tasks, а затем Assign (Назначить) - рис. 14.29.
Затем в окне Administrative Tools выберите пункт Services, в списке сервисов найдите
IPSEC Policy Agent и перезапустите его (рис. 14.30).
Убедитесь также, что установлен режим автоматического запуска этого сервиса при заг-
рузке машины.
РАЗВЕРТЫВАНИЕ НЕДОРОГОЙ VPN С ПОМОЩЬЮ ПАКЕТА FREES/WAN 369

Рис. 14.28. Методы обеспечения безопасности обмена ключами


Чтобы активизировать протокол IPSec для конкретного интерфейса, перейдите на Панель
управления и дважды щелкните по пиктограмме Network and Dial-up Connections (Сетевые
соединения). Щелкните правой кнопкой по пиктограмме Local Area Connection, соответству-
ющей беспроводному каналу и выберите из меню пункт Properties (Свойства). В открывшемся
окне укажите на строку Internet Protocol (TCP/IP) и нажмите кнопку Properties. В окне
Properties нажмите кнопку Advanced. Перейдите на вкладку Options, выберите IP Security и
затем Properties (рис. 14.31).
Если все сделано правильно, то Windows сконфигурирована для работы по протоколу IPSec.
3 7 0 РАЗВЕРТЫВАНИЕ БЕСПРОВОДНЫХ VPN НА ВЕРХНИХ УРОВНЯХ СТЕКА ПРОТОКОЛОВ

Рис. 14.30. Перезапуск сервиса IPSEC


Конфигурация этого соединения на стороне FreeS/WAN показана ниже. Обратите вни-
мание, что мы указали режим использования разделяемого секрета, задав s e c r e t в каче-
стве значения параметра a u t h b y :
conn pingo-winda
left=192.168.77.6
leftnexthop=%direct
РЕЗЮМЕ 371

right=192.168.77.66
rightnexthop=%direct
esp=3des
ike=3des-sha
authby=secret
auto=start
В примере конфигурирования Windows мы выбрали симметричный блочный шифр 3DES,
поскольку это лучшее, что есть в реализации IPSec для Windows. Если вы хотите что-ни-
будь более безопасное, придется пожертвовать некоторой суммой и приобрести коммер-
ческую программу у третьей фирмы.

Резюме
По различным причинам беспроводные VPN останутся даже после того, как относительно бе-
зопасный стандарт 802.Hi повсеместно заменит WEP. В этой главе мы рассмотрели различные
протоколы VPN, а также варианты топологий и их реализации с точки зрения беспроводных
сетей. Поскольку мы говорим о механизмах защиты, которые не зависят от конкретного обору-
дования и развертываются выше второго уровня, то описанные здесь методики повышения
безопасности применимы к различным типам беспроводных сетей, в том числе инфракрасным,
не согласованным со стандартами 802.11, сетям 802.15,802.16 и прочим. Мы обращали внима-
ние, прежде всего, на протокол IPSec, поскольку это стандарт де-факто для сетей VPN, к тому
же распространяющийся и на протокол IPv6. В качестве практических примеров реализации
IPSec мы привели пакет FreeS/WAN для Linux и средства, имеющиеся по умолчанию в Windows
2000. Была рассмотрена методика защиты двухточечных беспроводных каналов и сетей точ-
ка-многоточка. Мы убеждены, что для многих читателей эта информация окажется весьма
полезной и они воспользуются ею для защиты собственных беспроводных сетей. Развертыва-
ние нормальной VPN может оказаться неплохой альтернативой стандарту 802.Hi или стать
дополнением к различным стандартам 802.11, касающимся безопасности, как часть продуман-
ной стратегии глубоко эшелонированной обороны.
Оцените состояние противника, следите за его
действиями, и вы сможете проникнуть в его пла-
ны и намерения.
Мень Ши (Meng Shi)

Системы обнаружения вторжения (Intrusion Detection System - IDS) делятся на две боль-
шие категории: на основе сигнатур и на основе базы знаний.
Сигнатурные IDS наиболее распространены и проще реализуются, но их легко обойти и
они не способны распознавать новые атаки. В таких системах события, происходящие в
сети, сравниваются с признаками известных атак, которые и называются сигнатурами. Если
инструмент взлома модифицировать с целью изменения какой-либо части сигнатуры ата-
ки, то, скорее всего, атака останется незамеченной. Кроме того, базы данных, содержащие
сигнатуры, необходимо надежно защищать и часто обновлять.
IDS на основе базы знаний следят за сетью, собирают статистику о ее поведении в нор-
мальных условиях, обнаруживают различные отклонения и помечают их как подозритель-
ные. Поэтому такие IDS еще называют основанными на поведении или статистическими.
Для эффективной работы статистической IDS необходимо иметь надежную информацию о
том, как ведет себя сеть в нормальных условиях, - точку отсчета. Хотя такую IDS обмануть
сложнее, но и у нее есть свои проблемы - ложные срабатывания и трудности при обнару-
жении некоторых видов коммуникаций по скрытому каналу. Ложные срабатывания осо-
бенно вероятны в беспроводных сетях из-за нестабильности передающей среды. Кроме
того, атаки, проведенные на ранних стадиях периода фиксации точки отсчета, могут иска-
зить процедуру обучения статистической IDS, поэтому ее развертывание в промышленной
сети - занятие рискованное. Как быть, если нормальное поведение сети уже изменено
взломщиком в момент развертывания?
Мы полагаем, что хорошая IDS для беспроводной сети должна быть одновременно сиг-
натурной и статистической. В этой главе будет показано, что некоторые инструменты для
проведения атак на беспроводные сети имеют четко выраженные сигнатуры. Если они
обнаруживаются в базе данных, то можно поднимать тревогу. С другой стороны, у многих
КЛАССИФИКАЦИЯ ПОДОЗРИТЕЛЬНЫХ СОБЫТИЙ В БЕСПРОВОДНОЙ СЕТИ 3 7 3

атак очевидных сигнатур нет, зато они вызывают отклонения от нормальной работы сети на
нижних уровнях стека протоколов. Отклонение может быть малозаметным, например несколь-
ко пришедших не по порядку фреймов, или бросающимся в глаза, скажем, выросшая в несколь-
ко раз нагрузка. Обнаружение таких аномалий - это непростая задача, поскольку не существу-
ет двух одинаковых беспроводных сетей. То же относится и к проводным локальным сетям, но
там хотя бы нет радиопомех, отражения, рефракции и рассеивания сигнала. В них нет мобиль-
ных пользователей и свисающих из окна кабелей типа САТ5, с помощью которых потенциаль-
ный противник может получить доступ. Поэтому эффективное применение IDS в беспровод-
ных сетях возможно только после длительного периода детального исследования сети.
Только собрав значительный объем статистических данных о работе конкретной сети,
можно решить, что является аномальным поведением, а что - нет, и идентифицировать
проблемы со связью, ошибки пользователей и атаки. Многократные запросы на аутенти-
фикацию по протоколу 802.1x/LEAP могут свидетельствовать о попытке атаки методом
полного перебора. Но это может объясняться и тем, что пользователь забыл свой пароль,
или работой плохо написанного клиентского приложения, которое продолжает попытки
войти в сеть, пока не будет введен правильный пароль. Увеличение числа фреймов-маяков
может быть признаком DoS-атаки или присутствия в сети фальшивой точки доступа, но не
исключено, что все дело в неисправной или неправильно сконфигурированной законной
точке доступа. События, фиксируемые IDS на верхних уровнях стека протоколов, напри-
мер большое число фрагментированных пакетов или запросов TCP SYN, может указывать
на сканирование портов или DoS-атаку, но, возможно, это просто результат плохой связи
на уровне 1. Запустите программу Ethereal или аналогичный анализатор протоколов на
беспроводном интерфейсе и подвергните сеть сильным радиопомехам - вы увидите самые
разные поврежденные и неполные пакеты, которые анализатор не сможет распознать.
Неудивительно, что такие пакеты могут случайно вызвать срабатывание IDS. В результате
расследования может оказаться, что «злобным хакером» оказалось устройство Bluetooth
или микроволновая печь, создающая помехи в зоне действия сети.

Классификация подозрительных событий


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

1. События на физическом уровне


о Наличие дополнительных передатчиков в зоне действия сети.
о Использование каналов, которые не должны быть задействованы в защищаемой сети.
о Перекрывающиеся каналы.
3 7 4 КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

о Внезапное изменение рабочего канала одним или несколькими устройствами, за


которыми ведется наблюдение.
о Ухудшение качества сигнала, высокий уровень шума или низкое значение отноше-
ния сигнал/шум.
Эти события могут свидетельствовать о наличии проблем со связью или с сетью, об ошиб-
ках, допущенных при конфигурировании сети, о появлении мошеннических устройств, о
преднамеренном глушении либо об атаках «человек посередине» на уровень 1 или 2.

2. События, связанные с административными


или управляющими фреймами
о Повышенная частота появления некоторых типов фреймов.
о Фреймы необычного размера.
о Фреймы неизвестных типов.
о Неполные, испорченные или неправильно сформированные фреймы.
о Затопление фреймами с запросами на отсоединение и прекращение сеанса.
о Частое появление фреймов с запросом на повторное присоединение в сетях, где не
включен роуминг.
о Фреймы с неправильными порядковыми номерами.
о Частое появление пробных фреймов.
о Фреймы, в которых ESSID отличается от ESSID данной сети.
о Фреймы с широковещательным ESSID (Any).
о Фреймы с часто изменяющимися или случайными ESSID.
о Фреймы со значениями в поле ESSID или других полях, типичными для некоторых
инструментов вторжения.
о Фреймы с МАС-адресами, отсутствующими в списке контроля доступа.
о Фреймы с дублирующимися МАС-адресами.
о Фреймы с часто изменяющимися или случайными МАС-адресами.
Эти события могут указывать на неправильную конфигурацию сети, проблемы со свя-
зью, сильные помехи, попытки применения инструментов активного сканирования сети,
подделку МАС-адресов, присутствие в сети посторонних клиентов, попытки угадать или
подобрать методом полного перебора закрытый ESSID или на более изощренные атаки
«человек посередине» на уровень 2, связанные с манипуляцией управляющими или адми-
нистративными фреймами.

3. События, связанные с фреймами протоколов 802.1х/ЕАР


о Неполные, испорченные или неправильно сформированные фреймы протокола
802.1х.
о Фреймы с такими типами протокола ЕАР, которые не реализованы в данной беспро-
водной сети.
о Многократные фреймы запроса и ответа процедуры аутентификации ЕАР.
о Многократные фреймы с извещением о неудачной аутентификации ЕАР.
о Затопление фреймами начала и завершения сеанса ЕАР.
КЛАССИФИКАЦИЯ ПОДОЗРИТЕЛЬНЫХ СОБЫТИЙ В БЕСПРОВОДНОЙ СЕТИ 3 7 5

о Фреймы ЕАР аномального размера.


о Фреймы ЕАР с некорректным значением длины.
о Фреймы ЕАР с неправильными «верительными грамотами».
о Большое число фреймов ЕАР с МБ5-запросами.
о Фреймы ЕАР, приходящие от неизвестных аутентификаторов (фальшивая точка доступа).
о Незавершенная процедура аутентификации по протоколу 802.1х/ЕАР.
Эти события могут указывать на попытки прорваться через процедуру аутентификации,
описанную в протоколе 802.1х, в том числе и путем размещения фальшивого устройства и
проникновения в сеть с помощью атаки методом полного перебора или проведения изощ-
ренной DoS-атаки, направленной на вывод из строя механизмов аутентификации. Разуме-
ется, неправильно сформированные фреймы могут возникать и в результате сильных ра-
диопомех или других проблем на уровне 1.

4. События, связанные с протоколом WEP


о Наличие незашифрованного беспроводного трафика.
о Наличие трафика, зашифрованного неизвестными WEP-ключами.
о Наличие трафика, зашифрованного WEP-ключами разной длины.
о Фреймы со слабыми IV.
о Идущие подряд фреймы с повторяющимися IV.
о Не изменяющиеся IV.
о Откат к WEP от более безопасного протокола, например TKIP.
о Ошибки при ротировании WEP-ключей.
Эти события могут указывать на серьезные ошибки при конфигурировании сети, на
применение небезопасного устаревшего оборудования или на использование инструмен-
тов внедрения трафика (WEPwedgie, reinj) опытным взломщиком.

5, События, связанные с общими проблемами связи


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

6, Прочие события
о Присоединившиеся, но не аутентифицированные хосты.
о Атаки на верхние уровни стека протоколов, вызывающие срабатывание «традицион-
ной» IDS.
3 7 6 А КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

о Посторонний административный трафик, адресованный точке доступа.


о Постоянное дублирование или повтор пакетов с данными.
о Пакеты с данными, в которых испорчены контрольные суммы или MIC, формируемые
на канальном уровне.
о Затопление многократными попытками одновременного присоединения к сети.
Эти события могут свидетельствовать об успешной или неудачной атаке, о наличии хо-
ста с неправильными настройками безопасности, о попытках получить контроль над точ-
кой доступа и изменить ее конфигурацию, о применении инструментов для внедрения
трафика, о DoS-атаке против хостов с включенным протоколом 802.Hi или о попытках пере-
полнить буферы точки доступа большим числом запросов на соединение со стороны про-
водной или беспроводной части сети. Но, как и раньше, искажение фрейма или пакета
может быть обусловлено проблемами на физическом уровне, например наличием помех
или слабым уровнем сигнала.
Мы надеемся, что, проштудировав главы, посвященные атаке, вы сможете без труда рас-
познать многие из перечисленных выше признаков известных атак. Например, наличие
фреймов с часто изменяющимися МАС-адресами или ESSID - свидетельство того, что кто-
то запустил программу FakeAP. Есть также способ подобрать закрытый ESSID методом пол-
ного перебора с помощью клиента, оснащенного двумя картами PCMCIA и программой
Wellenreiter. Мы не описывали этот способ, так как никогда им не пользовались, к тому же
применение essidjack или dinject намного эффективнее и позволит сэкономить ресурсы.
Но подобная атака методом полного перебора действительно генерирует фреймы с изме-
няющимися ESSID и МАС-адресами (таким образом Wellenreiter скрывает информацию о
производителе и адресе сетевой карты взломщика). Наличие частых пробных запросов
может указывать на применение программы Netstumbler или Ministumbler. А если хост
внезапно меняет рабочий канал, то уж не атака ли это «человек посередине»?
Многие из описанных выше событий могут быть результатом некорректной работы
пользователей, а не спланированной атаки. Пользователь может вставить неразрешенную
беспроводную карту или работать с устройствами, создающими помехи (Bluetooth, беспро-
водные камеры или телефоны). Или подключиться к точке доступа, не включив у себя про-
токол WEP или TKIP, если точка доступа это позволяет (грубая ошибка администратора).
Или не установить вовремя обновление программно-аппаратного обеспечения («и так ра-
ботает») и тем самым свести на нет все ваши усилия по развертыванию системы безопас-
ности на базе стандарта 802.Hi. Любой системный администратор знает, сколько хлопот
могут причинить несносные пользователи.

Примеры и анализ типичных сигнатур атак


на беспроводные сети
Вот мы и подошли к обсуждению сигнатур конкретных инструментов для проведения
атак. Чтобы разобраться в этом вопросе, проще всего воспользоваться тем или иным
инструментом и прослушать генерируемый им трафик. «Нападай, защищаясь, и защищай-
ся, нападая» (доктор Мадж). Лучший известный нам источник информации об обнаруже-
нии вторжений в беспроводные сети и о сигнатурах атак - это статьи Джошуа Райта «Layer
2 Analysis of WLAN Discovery Applications for Intrusion Detection» (Анализ приложений для
ПРИМЕРЫ И АНАЛИЗ ТИПИЧНЫХ СИГНАТУР АТАК НА БЕСПРОВОДНЫЕ СЕТИ 3 7 7

обнаружения вторжений в беспроводные сети на уровне 2) и «Detecting Wireless LAN MAC


Address Spoofing» (Обнаружение поддельных МАС-адресов в беспроводных сетях). Значи-
тельная часть материала этой главы основана на этих блестящих статьях и нашем опыте
анализа трафика во время проведения атак.
Программа для проведения атаки должна передавать какие-то данные, чтобы EDS могла выя-
вить сигнатуру. Как ни старайся обнаружить пассивный анализатор протоколов или попытку
взлома WE? не удастся. Напомним, что хотя карта, работающая в режиме RFMON, и может пере-
давать данные, но она не подтверждает принятые данные и, вообще говоря, не способна отвечать
на посылаемый ей трафик. Правда, карты Cisco Aironet все же посылают пробные запросы, на-
ходясь в режиме мониторинга, но, если уменьшить мощность передатчика до 1 мВт, то атакую-
щий останется незамеченным. Кроме того, новые драйверы Linux, поставляемые в составе пос-
ледних версий ядра, запрещают картам Cisco посылать пробные запросы в режиме RFMON.
Поэтому единственный надежный способ засечь пассивного противника - это застать на месте
преступления «парня с ноутбуком и антенной». А вот обнаружение активного сканирования
сети, DoS-атак, внедрения трафика и атак «человек посередине» - это совсем другое дело.
Самыми распространенными генераторами сигнатур можно считать программу NetStumbler
и ее младшего братишку MiniStumbler для карманных компьютеров. Они бесплатны, просты
для инсталляции и эксплуатации и написаны для самой популярной в мире операционной
системы. Есть несколько очевидных признаков того, что «NetStumbler в доме»:
о NetStumbler запрашивает у обнаруженной точки доступа дополнительную инфор-
мацию, обычно ту самую, которая присутствует в параметре system.sysName.O уп-
равляемого информационного блока (MIB) протокола SNMP. Для этого она посылает
точке доступа инкапсулированный в LLC (Logical Link Control - протокол управле-
ния логическим соединением) пробный фрейм;
о во фреймах, которые посылает программа NetStumbler, уникальный идентификатор
организации (0ID) равен 0x00601d, а идентификатор протокола (PID) - 0 x 0 0 0 1 ;
о длина полезной нагрузки в этих фреймах составляет 58 байт;
о некоторые версии NetStumbler добавляют еще к полезной нагрузке уникальную
строку в кодировке ASCII, а именно:
- NetStumbler 3.2.0: Flurble gronk bloopit, bnip Frundletrune;
- NetStumbler 3.2.3: All your 802.11b are belong to us;
- NetStumbler 3.3.0: intentionally blank 1;

о сообщалось, что NetStumbler передает пробные запросы чаще, чем это обычно дела-
ют другие инструменты активного сканирования. Но это сообщение требует допол-
нительной проверки.
Программа MiniStumbler не посылает пробных запросов обнаруженной точке доступа,
так что засечь ее труднее.
Программа Dstumbler, входящая в комплект BSD-airtools, тоже может вести активное
сканирование. Но мы не думаем, что разумный взломщик, вооруженный этим инструмен-
тарием, станет пользоваться такой возможностью на практике для обнаружения сети. Ведь
есть же режим RFM0N. Если все же активное сканирование с помощью Dstumbler ведется,
то у него есть следующие отличительные признаки:
о Dstumbler генерирует фреймы с пробными запросами (типа 0x0040), используя не-
большие порядковые номера по модулю 12;
378А КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

о во фреймах типа Authenticate, которые посыпает Dstumbler, указан повторяющийся


порядковый номер 11 (Oxlb);
о во фрейме с запросом на присоединение порядковый номер равен 12 (ОхОс);
о получив ответ на пробный запрос, Dstumbler пытается аутентифицироватъся и при-
соединиться к обнаруженной точке доступа. Наверное, это единственная причина,
по которой кто-то может захотеть воспользоваться Dstumbler для активного скани-
рования (желание сорвать низко висящий плод).
Еще один инструмент поиска беспроводных сетей с помощью активного сканирова-
ния, с которым легко может столкнуться администратор или консультант по безопас-
ности, - это сервис сканирования сетей в Windows XP. Так зачем нужна программа
NetStumbler, если Windows XP и без нее умеет это делать? Упомянутый сервис посылает
фреймы с пробными запросами, указывая в них широковещательный ESSID (ANY) и вто-
рое уникальное значение ESSID. Именно этот второй ESSID и выдает пользователей
Windows XP. В посылаемом пробном запросе Windows XP устанавливает специальное
значение в части фрейма, занимающей все отведенное под ESSID поле (32 байт). Это
значение состоит из случайных непечатаемых символов. В шестнадцатеричном виде
оно выглядит так:
0x14 0x09 0x03 0x11 0x04 0x11 0x09 ОхОе
0x0d 0х0а ОхОе 0x19 0x02 0x17 0x19 0x02
0x14 Oxlf 0x07 0x04 0x05 0x13 0x12 0x16
0x16 0х0а 0x01 ОхОа ОхОе Oxlf Oxlc 0x12
Неизвестно, то ли это ошибка в Windows XP, то ли так и задумано. С точки зрения IDS, ско-
рее, второе. Но имейте в виду, что неопытные пользователи Windows XP могут и не знать, что
их система сканирует беспроводные сети и даже пытается к ним присоединиться. Поэтому то,
что на первый взгляд представляется атакой, может быть просто пробелом в образовании. От-
метим попутно, что то же самое относится к Windows-машинам и инфракрасным каналам. Если
инфракрасный порт активирован, то система будет искать сети и хосты и пытаться подклю-
читься к обнаруженным каналам, если это возможно. Взломщик может воспользоваться этой
возможностью в своих интересах, превратив свой ноутбук в «инфракрасную ловушку» с целью
атаковать подключающиеся хосты, не привлекая внимания их владельцев.
А теперь обратимся к программе Wellenreiter и подделке МАС-адресов в беспроводных
сетях. Некоторые возможности реализованной в Wellenreiter атаки методом полного пе-
ребора на ESSID мы уже обсуждали. Вот фрагмент реального кода из старой версии
Wellenreiter 1.6, который генерирует поддельные ESSID и МАС-адреса:
system("$fromconf{iwpath} $fromconf{interface} essid
1
this_is_used_for_wellenreiter'");
system("$fromconf{ifconfig} $fromconf{interface} down");
my $brutessid = s h i f t (@g_wordlist) ;
my $mactouse = build_a_fakemac;
system("$fromconf{ifpath} $fromconf{interface} hw ether $mactouse");
p r i n t STDOUT "\nl t e s t now the essid: $brutessid";
system("$fromconf{iwpath} $fromconf{interface} essid $ b r u t e s s i d " ) ;
system("$fromconf{ifpath} $fromconf{interface} up");
return ($true);
ПРИМЕРЫ И АНАЛИЗ ТИПИЧНЫХ СИГНАТУР АТАК НА БЕСПРОВОДНЫЕ СЕТИ 379

Подпрограмма build_a_f akemac для создания поддельных МАС-адресов выглядит так:


sub build_a_fakemac
{
my $fakemac;
# Выполнить четыре итерации следующего цикла. Это ошибка, должно быть
# 5 итераций, чтобы сгенерировать 40-битовое значение. Эта процедура
# генерирует МАС-адреса, которые ifconfig будет дополнять значением
# hex 40.
for (my $i =0;$i < 4;$i + +)
{
# $temp содержит случайное шестнадцатеричное значение от 0 до 255
my $temp = sprintf "%х", int(rand(255));
if (length ($temp) = = 1)
{
# если получилась одна цифра, добавить в начало нуль
$temp = '0' . $temp;

# дописать хранящееся в $temp шестнадцатеричное значение к


# генерируемому МАС-адресу
$fakemac = $fakemac . $temp;
}
# добавить в начало сгенерированного МАС-адреса 00, чтобы избежать
# конфликта с зарезервированными или предназначенными для широкого
# либо группового вещания адресами
$fakemac = '00' . $fakemac;
return ($fakemac);
}
Как видите, в качестве первого ESSID задается строка this_is_used_f o r _ w e l l e n r e i t e r /
а потом начинается атака методом полного перебора (на самом деле атака по словарю, как сле-
дует из предложения my $ b r u t e s s i d = s h i f t (@g_wordlist) ; ) . Генерируемые МАС-ад-
реса начинаются с символов 00 во избежание появления адресов, предназначенных для
групповой рассылки. Программа Wellenreiter генерирует адреса с префиксами, не соответ-
ствующими списку выделенных 0UI, опубликованному в RFC 1700. Отслеживая такой тра-
фик и сравнивая 0UI с опубликованным списком, можно легко обнаружить атаку. Отметим,
что тот же принцип применим к любой атаке, в ходе которой генерируются случайные
МАС-адреса, если только применяемый инструмент не учитывает список 0UI. Примером
такого «интеллектуального» инструмента является программа FakeAP, созданная группой
Black Alchemy. Джошуа Райт написал на языке Perl сценарий maidwts.pl, который сравни-
вает 0UI в МАС-адресе со списком, опубликованным IEEE, и выдает сообщение, если пре-
фикс не соответствует никакому известному производителю.
arhontus:~# perl maidwts.pl -h
Usage:
maidwts [флаги]
- i , --интерфейс
-f, --имя файла
3 8 0 А КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

-с, --счетчик
-п, --непрозрачный режим (nonpromisc)
-t, --таймаут
-а, --режим мониторинга (rfmonwlan)
-z, --стандартный Ethernet (stdethernet)
-v, --выдавать диагностику
-h, --справка

е.х. "maidwts -с 500 -i ethl -а" Для перехвата в режиме 802.11 RFMON
е.х. "maidwts -с 500 -i ethl -z" Для перехвата стандартных фреймов
Ethernet
Такая функциональность может стать полезным дополнением к вашей системе IDS.
Что можно сказать по поводу обнаружения атак «человек посередине»? Драйвер AirJack
в качестве ESSID устанавливает по умолчанию строку " A i r J a c k " . Поскольку инструмент
fatajack для проведения DoS-атаки пользуется именно драйвером airjack_cs, то и прини-
маемый по умолчанию ESSID будет таким же (это относится и к инструментам essid_jack и
wlanjack). Атакуемый хост будет затоплен поддельными фреймами с запросом о прекра-
щении сеанса, что очень скоро приведет к потере связи между хостом и точкой доступа.
Однако лучшим способом обнаружения атак «человек посередине» на уровень 2 (как и лю-
бого подлога на уровне 2) является анализ порядковых номеров фреймов 802.11.
Порядковый номер фрейма 802.11 - это число, которое увеличивается на 1 для каждого
нефрагментированного фрейма. Нумерация начинается с 0 и заканчивается на 4096, после
чего счетчик сбрасывается в 0 и отсчет начинается заново. Подвох в том, что записать в
это поле произвольное значение нельзя, даже если пользоваться инструментом, который
самостоятельно конструирует фреймы (например, dinject из комплекта Wnet). Когда ата-
кующий вмешивается в передачу, порядковые номера отправляемых им фреймов не будут
соответствовать нумерации законных фреймов, циркулирующих в сети. Например, FakeAP
генерирует трафик, притворяясь точкой доступа. Если смотреть только на ESSID и МАС-
адреса, то отличить посылаемые FakeAP фреймы-маяки от настоящих невозможно. Но уве-
личение порядковых номеров на единицу выдает трафик FakeAP с головой. Если бы в сети
действительно было несколько точек доступа, то вы бы наблюдали несколько увеличиваю-
щихся счетчиков, а не один с постоянно изменяющимися МАС-адресами и ESSID.
В случае AirJack надо было бы сравнить с точкой отсчета порядковые номера фреймов,
которыми обменивается точка доступа, и тот хост, который подвергся атаке с целью заста-
вить его прекратить сеанс. В случае большой сети это непростая задача, особенно если в ней
есть мобильные хосты, но все же решить ее можно. Если для законного трафика между кли-
ентом и точкой доступа окно порядковых номеров простирается, скажем, от X до Z, то поряд-
ковые номера поддельных фреймов будут далеко выходить за его пределы. Посмотрите на
пример обнаружения такой атаки с помощью программы Ethereal приведенный Джошуа Рай-
том в статье «Detecting Wireless LAN MAC Address Spoofing». Конечно, если сначала взломщик
проведет DoS-атаку против беспроводного клиента или самой точки доступа, а затем притво-
рится выбитым из сети хостом, то цепочка порядковых номеров также будет нарушена. Поэто-
му получение эталонного образца цепочки порядковых номеров и последующий мониторинг
и анализ этой характеристики оказываются прекрасным способом обнаружения и пресече-
ния атак, связанных с подлогом. Но на практике некоторые беспроводные клиентские карты
ВКЛЮЧИТЬ РАДАРЫ! РАЗВЕРТЫВАНИЕ СИСТЕМЫ IDS В ВАШЕЙ БЕСПРОВОДНОЙ СЕТИ 38 1

работают не в соответствии со стандартом 802.11 в части генерирования порядковых номе-


ров. В частности, это относится к картам Lucent с версиями программно-аппаратного обес-
печения до 8.10 - вот вам и еще одна причина вовремя устанавливать обновления. Кроме
того, блуждающие хосты могут привести к ложным срабатываниям IDS, поскольку при пере-
ходе из соты в соту последовательность номеров нарушается. Следовательно, в сетях с боль-
шим числом мобильных пользователей анализ порядковых номеров фреймов становится
бесполезен, так что в системе IDS эта возможность должна быть отключаемой.
Анализируя имеющиеся примеры сигнатур различных атак, мы приходим к очевидному
выводу: взломщик может без труда модифицировать или вообще избавиться от сигнатуры
своего инструмента. Есть сообщения о пользователях программы NetStumbler, которые с
помощью шестнадцатеричного редактора удаляли строки, обычно присутствующие во
фреймах с пробным запросами. Значения ESSID, которые посылают такие инструменты, как
Wellenreiter или AirJack, также легко изменить. Например, в файле airjack.c (на момент
написания этой книги) посылаемый по умолчанию ESSID определен в строке 1694:
memcpy(ai->essid + 1, "AirJack", 7) ;
Следовательно, мы описали полный круг и вернулись к тому, с чего начали эту главу.
Хорошая система IDS для беспроводных сетей должна сочетать как анализ сигнатур, так и
обнаружение аномалий в работе сети.

Включить радары! Развертывание


системы IDS в вашей беспроводной сети
Сколько существует на рынке систем IDS, в которых реализованы только что обсуждавши-
еся рекомендации? Ни одной!
Есть много решений, которые отслеживают недопустимые МАС-адреса и ESSID. Некото-
рые из них даже реализованы в виде специальных аппаратных устройств. И хотя что-то
всегда лучше, чем ничего, но, наш взгляд, такие «решения» - это пустая трата времени и
денег. Они лишь вселяют ложное чувство защищенности. Давайте рассмотрим те из имею-
щихся систем IDS, которые могут быть полезны или хотя бы модифицируемы. Тогда их, по
крайней мере, можно будет переделать с учетом наших замечаний, чтобы они собирали
дополнительные данные о работе сети.

Коммерческие системы IDS для беспроводных сетей


Из коммерческих решений хорошо известны программы AirDefense Guard (http://www.
airdefense.net/products/airdefense_ids.shtm) и Isomair Wireless Sentry (http://www.
isomair.com/products.html). Они основаны на размещении сенсоров на территории защи-
щаемой сети и передаче всей собираемой ими информации на центральный сервер или
консоль. Сервер может представлять собой специализированное устройство с безопасным
Web-интерфейсом или Linux-машину, к которой подключена консоль управления на плат-
форме Windows. Некоторые из упомянутых программ могут анализировать беспроводной
трафик, отличный от стандарта 802.11, и даже радиопомехи в наблюдаемой полосе частот,
что часто бывает полезно.
3 8 2 КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

Надо сказать, что в зависимости от размера сети и зоны покрытия расстановка сенсоров
системы IDS может иметь решающее значение. Чтобы мониторинг сети был эффективен, сен-
соры должны покрывать всю территорию, из которой возможен беспроводной доступ. Чем
выше приемная чувствительность сенсоров (в единицах dBm), тем лучше. Как минимум, сен-
соры должны быть не менее чувствительны, чем трансиверы точки доступа (но даже это не
гарантирует надежного обнаружения атак против хостов, находящихся на достаточном уда-
лении от точки доступа). Серьезный недостаток всех коммерческих сенсоров, которые мы
видели, - это невозможность подключить внешнюю антенну. Из-за этого увеличить даль-
ность действия и чувствительность сенсоров становится весьма затруднительно. Ясно, что
компании придется покупать больше низкочувствительных сенсоров с малым радиусом дей-
ствия, чтобы покрыть всю сеть. Казалось бы, можно запросить большую цену за более мощ-
ный сенсор с подходящей антенной. Но почему-то рынок тяготеет к первому варианту. Ко-
нечно, можно переделать купленный сенсор, припаяв к нему антенну (и потерять право на
гарантийный ремонт). Но, быть может, лучше смастерить собственный сенсор из старого ПК,
ноутбука или даже КПК, мы еще вернемся к этой мысли ниже.
WiSentry (http://www.wimetrics.com/products/download_wisentry.php) - это коммерчес-
кое чисто программное решение, обеспечивающее мониторинг беспроводной сети и обна-
ружение вторжений без специальных аппаратных сенсоров. WiSentry создает отдельный
профиль для каждого беспроводного хоста. Профиль хранится в базе данных WiSentry и
используется для того, чтобы отличить устройства, которым можно доверять, от всех про-
чих. В этой программе есть конфигурируемая база данных тревожных событий, она под-
держивает сети стандартов 802.11а, b и д.
Еще один коммерческий продукт, который сочетает в себе средства для аудита безопаснос-
ти и некоторые функции IDS, - это программа AirMagnet от компании Global Secure Systems
(http://www.gsec.co.uk/products/_wireless_security.htm). Существуют ее версии для КПК, но-
утбука (с картой Cisco Aironet) и комбинированные. Отличительной особенностью AirMagnet
является наличие анализатора радиочастот в основном диапазоне ISM, что позволяет ей обна-
руживать перекрытие каналов 802.11b/g в области приема, а также выявлять возможные по-
мехи. AirMagnet может помечать зашифрованные по протоколу WEP пакеты со слабыми IV, а в
последних версиях - также обнаруживать использование VPN в сканируемой сети.
Коммерческие анализаторы протоколов 802.11, например NAI Sniffer Wireless и WildPacket
AiroPeek, также реализуют некоторые возможности IDS. AiroPeek даже поддерживает удален-
ные сенсоры RFGrabber, что делает ее похожей на распределенные системы типа AirDefense/
Isomair. В полной комплектации AiroPeek включает также набор инструментов для разработ-
ки собственных фильтров на языках Visual Basic или C++. Следовательно, этот анализатор в
какой-то мере поддается переделке, несмотря на закрытость исходных текстов.

Настройка и конфигурирование IDS для беспроводных сетей


с открытыми исходными текстами
В оставшейся части этой главы мы будем говорить о системах IDS с открытым исходным текстом,
которые можно подстроить под собственные нужды. Первым делом мы рассмотрим инструмент
WIDZ, написанный Марком Осборном (Mark Osborne, псевдоним Loud Fat Bloke). Во время рабо-
ты над этой книгой текущей была версия 1.5, которая поддерживала следующие функции:
о обнаружение фальшивых точек доступа;
о обнаружение атак с применением Air Jack;
ВКЛЮЧИТЬ РАДАРЫ! РАЗВЕРТЫВАНИЕ СИСТЕМЫ IDS В ВАШЕЙ БЕСПРОВОДНОЙ СЕТИ 3 8 3

о обнаружение пробных запросов;


о обнаружение фреймов с широковещательным ESSID ("ANY");
о помещение подозрительных МАС-адресов в список блокированных;
о помещение подозрительных ESSID в список блокированных;
о обнаружение атак путем затопления фреймами с запросом на присоединение.
WIDZ 1.5 пользуется драйвером HostAP. Продукт состоит из двух программ: widz_apmon,
которая обнаруживает точки доступа, не указанные в списке (в файле widz_ap.config), и
widz_probemon, которая ведет мониторинг сети, пытаясь обнаружить подозрительный тра-
фик. В текущей версии сигнал тревоги возникает в следующих ситуациях:
о alertl. Срабатывает, если поле ESSID пусто. В этом случае вызывается сценарий
Alert, который записывает в протокол следующие 100 пакетов из подозрительного
источника;
о alert2. Срабатывает, если в течение заданного промежутка времени происходит
слишком много попыток присоединения;
о alert3. Срабатывает, если МАС-адрес находится в файле badmac, который представ-
ляет собой простой список адресов в шестнадцатеричном виде;
о alert4. Срабатывает, если ESSID находится в файле badsids.
Разумеется, этот перечень тревог слишком мал, но его можно легко расширить самостоятель-
но. Чтобы воспользоваться программой widz_apmon, сначала поднимите беспроводной интер-
фейс с помощью ifconfig, а затем выполните команду widz_apmon <sleep_time> wlanO,
которая будет оповещать о фальшивых точках доступа в сети. Параметр sleep__time задает
число секунд между сканированиями. Пользоваться программой widz_probemon столь же лег-
ко. Сначала отредактируйте файлы probemon.conf, badmacs и badsids. Затем поднимите беспро-
водной интерфейс, переведите его в режим RFM0N и запустите widz_probemon:
arhontus:~# ifconfig wlanO up && iwpriv wlanO monitor 2 &&
widz_probemon wlanO > l o g f i l e &
Сценарий Alert поставляемый в составе IDS, автоматически вызывается, как только будет об-
наружена фальшивая точка доступа или подозрительный трафик. По умолчанию сценарий по-
сылает сообщения syslog-серверу с помощью команды logger -p s e c u r i t y . n o t i c e $1 и вы-
водит тревожное сообщение на консоль. Можно вместо этого заставить его посылать
сообщение по электронной почте, возбуждать SNMP-событие, добавлять недопустимый
МАС-адрес в список контроля доступа и т.д. - дайте простор воображению.
Есть открытая IDS и с более развитыми функциями; это программа wIDS, написанная Ми
Кели (Mi Keli). Она не зависит от конкретной клиентской карты или драйвера, нужно лишь,
чтобы беспроводной интерфейс работал в режиме RFM0N. В программу включен автома-
тический дешифратор WEP (не забудьте только поместить WEP-ключ в файл Keys.1st) и
средства для организации беспроводных приманок (к сожалению, пока использование WEP
в приманке не поддерживается). Важнее, однако, что wIDS умеет делать следующее:
о анализировать интервалы между маяками для каждой обнаруженной точки доступа;
о анализировать порядковые номера фреймов 802.11;
о обнаруживать пробные запросы, являющиеся признаком активного сканирования;
о обнаруживать затопление запросами на присоединение;
о обнаруживать затопление запросами на аутентификацию;
о обнаруживать частые запросы на повторное присоединение;
3 8 4 КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

о протоколировать трафик приманки в рсар-файл;


о перенаправлять беспроводной трафик на проводной интерфейс.
Последняя возможность очень интересна, поскольку позволяет перенаправить беспро-
водной трафик на уровень 3 и использовать средства IDS более высокого уровня, например
Snort для последующего анализа. Порядок запуска wIDS таков:
arhontus:~# wIDS
usage : ./wIDS [-s] -i device [-1 l o g f i l e -h honeypot] [-o device]
флаги :
-s :использовать syslog (LOG_ALERT)
-i device :прослушиваемый интерфейс
(ethO, wlanO...)
(должен быть установлен прозрачный режим)
-1 l o g f i l e :файл, в который сбрасываются пакеты, адресованные
приманке
-h honeypot :извещать о трафике, адресованном приманке
(МАС-адрес точки доступа)
-о device :устройство, на которое отправляется расшифрованный
трафик для анализа системой IDS
примечание : рекомендуется задавать флаг " - s " .
пример : ./wIDS -s -i e t h l -о ethO
./wIDS -s -i wlanO -1 ./wIDS.tcpdump -h 00:02:2d:4b:7e:Oa
Наконец, существует недавно появившаяся и многообещающая IDS для беспроводных сетей
AirlDS. Она поддерживает карты с наборами микросхем Prism и Cisco Aironet, и для нее имеется
графический интерфейс, написанный с использованием GTK+. Пока что инструмент находится
на стадии бета-версии, но начиная с версии 0.3.1 будет поддерживать очень гибкое задание
правил, внедрение трафика для пресечения взлома WEP и активную защиту. Для реализации
заявленных функций AirlDS версии 0.3.1 и выше будет пользоваться сильно модифицирован-
ными или полностью переписанными драйверами Prism (возможно, в духе AirJack) вместо
«обычных» модулей prism_cs/airo_cs, которые применяются сейчас. Следите за ходом разра-
ботки AirlDS на сайте http://www.intemetcomealive.com/clients/airids/general.php.
Говоря о системах IDS, часто забывают очень мощную программу Kismet. Она прошла
долгий путь развития от инструмента искателя сетей до полнофункциональной клиент-
серверной системы IDS. В последних версиях Kismet реализованы рекомендации, сформу-
лированные в статьях Джошуа Райта, на которые мы ссылались выше. Посмотрите в файле
Changelog, какие функции IDS включены в имеющуюся у вас версию Kismet. He забывайте,
что между стабильной и разрабатываемой версиями имеются существенные различия; не
исключено, что в разрабатываемой версии реализованы те самые функции, которые вам
особенно необходимы. Во время подготовки этой книги в последнюю разрабатываемую
версию были включены следующие возможности:
о обнаружение затоплений запросами на прекращение сеанса и отсоединение;
о анализ порядковых номеров фреймов 802.11;
о выявление тех, кто пользуется инструментом AirJack в наблюдаемой области;
ВКЛЮЧИТЬ РАДАРЫ! РАЗВЕРТЫВАНИЕ СИСТЕМЫ IDS В ВАШЕЙ БЕСПРОВОДНОЙ СЕТИ 3 8 5

о обнаружение пробных запросов, посылаемых программой NetStumbter, и номера ее


версии;
о обнаружение атак по словарю на ESSID, проводимых с помощью Wellenreiter;
о код Packetcracker для предупреждения о наличии протокола WEP, уязвимого для ата-
ки FMS;
о обнаружение клиентов, которые только посылают пробные запросы, но не присое-
диняются к сети (MiniStumbler, Dstumbler и просто потерявшиеся или неправильно
сконфигурированные хосты);
о различение сетей 802.11 DSSS и FHSS;
о запись фреймов с данными в именованный FIFO-канал для анализа внешней IDS,
например Snort;
о дешифрирование WEP на лету;
о обнаружение повышенного уровня шума в канале;
о обнаружение беспроводных сетей Lucent Outdoor Router/Turbocell/Karlnet, постро-
енных не на базе стандарта 802.11.
Наличие этих функций вкупе с архитектурой клиент-сервер, простой системой опове-
щений (достаточо нажать клавишу W, чтобы открылось отдельное окно, в котором можно
просмотреть поступившие предупреждения), великолепным механизмом структурирован-
ного протоколирования данных, а также возможностью интеграции с удаленными сенсо-
рами (например, Neutrino Distributed 802.11b Sensor - см. главу 5 о деталях конфигуриро-
вания) делают Kismet очень привлекательной системой IDS. Дополнительную ценность ей
придает возможность поддержки нескольких клиентских карт и расщепление диапазона
сканируемых частот между этими картами.

Несколько рекомендаций по конструированию


самодельного сенсора для беспроводной IDS
Можно самостоятельно сделать удаленный беспроводной сенсор на базе программы
Kismet. Хотя старый ПК с ОС Linux или BSD выглядит и не так привлекательно, как тоню-
сенькое устройство фирмы Network Chemistry или какой-нибудь другой (правда, всегда
можно взять за основу КПК Zaurus или iPAQ!), но у самодельного сенсора масса достоинств.
Прежде всего, он дешев: затраты могут свестись к приобретению адаптера PCMCIA-PCI и
дополнительной клиентской карты. Кроме того, нам никогда не нравились всенаправлен-
ные антенны с малым коэффициентом усиления, которыми оснащаются готовые сенсоры.
А что вы скажете о самодельном сенсоре, подключенном к всенаправленной антенне с
коэффициентом 14,5 dBi, которую можно приобрести на сайте http://www.fab-corp.com по
очень умеренной цене? А всегда ли нужна именно всенаправленная антенна, если принять
во внимание форму вашей сети? Может быть, лучше взять остронаправленную с большим
коэффициентом усиления, если речь идет о протяженном двухточечном беспроводном
мосте? Или вы хотите обнаруживать противника только рядом с концевыми точками мос-
та, а не на всем протяжении канала? А повысить приемную чувствительность сенсора на
10-20 dBm не желаете?
Еще одна интересная и полезная вещь - это интеграция системы IDS на уровне 2 с сис-
темами на более высоких уровнях (Snort, IpLog, PortSentry) в одном устройстве. Можно ис-
пользовать wIDS с флагом -о, именованные каналы, предоставляемые Kismet, или просто
3 8 6 А КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

запускать из Kismet сценарии, управляющие IDS более высокого уровня, точно так же, как
Kismet запускает программы play и festival для звуковой индикации событий в беспроводной
сети. Snort не станет работать на беспроводном интерфейсе - проверьте сами. Но проблему
легко решить с помощью Kismet. Мы предполагаем, что вы уже знакомы с программой Snort
и внимательно изучили части книги, посвященные инсталляции, конфигурированию и рабо-
те Kismet. Прежде всего, нужно изменить одну строку в файле kismet.conf. Найдите строку
#f if o=/tmp/kismet_dump, раскомментарьте ее, сохраните файл и запустите коман-
ду ki s m e t _ s e r v e r . После запуска Kismet заблокирует файл /tmp/kismet_dump до тех пор,
пока им не займется Snort. Теперь запустим Snort. Сконфигурируйте ее по своему усмотре-
нию, но при запуске укажите флаг - г / tmp / ki sme t_dump, чтобы данные читались из FIFO-
канала, в который пишет Kismet. Можете еще установить и запустить программу ACID, если
хотите видеть разукрашенный всеми цветами радуги протокол IDS. Вот и все! Наслаждай-
тесь своей системой IDS для проводных и беспроводных сетей, которая во многих отношени-
ях намного превосходит дорогостоящие коммерческие аналоги. Посудите сами, много ли вы
знаете клиент-серверных гибко интегрируемых коммерческих IDS, поддерживающих одно-
временно проводные и беспроводные сети?
Разумеется, для анализа рсар-файлов, формируемых Kismet, можно воспользоваться до-
полнительными средствами. Самый очевидный способ - взять программу Ethereal и при-
менить фильтры для выбора сигнатур типичных атак. Так, фильтры для Ethereal, предназ-
наченные для поиска сигнатур инструментов активного сканирования, описаны в статье
Джошуа Райта «Layer 2 Analysis of WLAN Discovery Applications for Intrusion Detection». Мы
их проверили и приводим здесь:
о Netstumbler:
(wlan.fc.type_subtype eq 32 and l l c . o u i eq 0x00601d and l l c . p i d eq
0x0001) and (data[4:4] eq 41:6c:6c:20 or data[4:4] eq
6c:46:72:75 or data[4:4] eq 20:20:20:20)
о Dstumbler (активное сканирование):
(wlan.seq eq 11 and wlan. fc.subtype eq 11) or (wlan.seq eq 12 and
wlan.fc.subtype eq 00)
о пробные запросы, посылаемые Windows XP:
wlan. fс eq 0x0040 and wlan_mgt .tag.number eq 0 and
wlan_mgt.tag.length eq 32 and wlan_mgt.tag.interpretation[0:4]
eq 0c:15:0f:03
о пробные запросы, посылаемые Wellenreiter (при подборе ESSID методом полного
перебора):
wlan. f с eq 0x0040 and wlan_mgt . t a g . number eq 0 and
wlan_mgt.tag.length eq 29 and wlan_mgt.tag.interpretation eq
"this_is_used_for_Wellenreiter"
Конечно, есть еще много программ, посылающих фреймы 802.11, и для них тоже надо
написать фильтры (мы занимаемся этим и приглашаем всех желающих присылать сигнату-
ры новых атак на адрес wifoo@arhont.com). К таким программам относятся последние
версии AirJack, Wepwedgie, Wnet dinj и reinj, Fake АР и ее модификации, а также voidll.
ВКЛЮЧИТЬ РАДАРЫ! РАЗВЕРТЫВАНИЕ СИСТЕМЫ IDS В ВАШЕЙ БЕСПРОВОДНОЙ СЕТИ 3 8 7

Фильтры Ethereal для поиска сигнатур атак полезны и при изучении проблем безопаснос-
ти, и для обнаружения вторжений. Еще большую помощь они смогут оказать в процедуре
расследования инцидента, если вторжение все-таки произойдет (но помните, что нужно
заранее позаботиться о безопасном хранении и контроле целостности рсар-файлов). На-
конец, если вы любите приключения, попробуйте воспользоваться ими в сочетании с вы-
ходными данными Kismet, чтобы организовать активную защиту и автоматически атако-
вать или, по крайней мере, озадачить противника. Например, если в наблюдаемой области
замечена программа NetStumbler, то при обнаружении фильтром соответствующего паке-
та в протоколе Kismet можно запустить FakeAP с заранее заданным ESSID или МАС-адре-
сом, игнорируемым Kismet (чтобы избежать возможного переполнения протоколов).
Если по той или иной причине комбинация Kismet + Snort вам не по душе, можете поинте-
ресоваться проектом Snort-Wireless. Это модифицированная версия Snort, которая «понимает»
фреймы 802.11 и отправляет тревожные оповещения при обнаружении аномалий на уровне 2.
В настоящее время Snort-Wireless обнаруживает трафик NetStumbler с помощью компо-
нента AntiStumbler Preprocessor. Отредактируйте файл snort.conf, добавив директиву
p r e p r o c e s s o r a n t i s t u m b l e r : p r o b e _ r e q s [num] , p r o b e _ p e r i o d [num] ,
e x p i r e _ t i m e o u t [num], где:
о p r o b e _ r e q s - после какого числа пробных запросов поднимать тревогу;
о p r o b e _ p e r i o d - время (в секундах), в течение которого сохраняется счетчик
пробных запросов с нулевым SSID;
о e x p i r e _ t i m e o u t - сколько должно пройти времени (в секундах), прежде чем об-
наруженный противник будет удален из списка пользователей NetStumbler.
Помимо этого, с помощью переменных CHANNELS и ACCESS_POINTS, также определяе-
мых в файле snort.conf, поддерживается обнаружение фальшивых точек доступа и незави-
симых (ad hoc) сетей. Сейчас многие возможности, реализуемые комбинацией Kismet + Snort,
еще не включены в Snort-Wireless, но благодаря гибкости и возможности создавать правила,
ориентированные на сети 802.11, точно так же, как и стандартные правила Snort, потенциал
этого проекта весьма велик.
Не забывайте, что во многих сенсорах IDS для беспроводных сетей, объявленных про-
мышленным стандартом, для удаленного администрирования и передачи перехваченного
трафика все еще используется telnet и протокол SMNPvl, не обеспечивающие ни шифрова-
ния, ни контроля целостности данных. А про SNMP-сообщества, выбираемые по умолча-
нию, помните? Нам встречались коммерческие сенсоры, в которых для удаленного управ-
ления использовалось сообщество public/private, разрешающее чтение и запись! К сожалению,
даже системные администраторы часто не меняют настройки сетевых устройств, выстав-
ленные по умолчанию. Думается, что пройдет еще немало времени прежде, чем эти уст-
ройства начнут поддерживать протокол SSHv2, не говоря уже об IPSec. С другой стороны,
в самодельных сенсорах можно воспользоваться любыми способами защиты трафика и
контроля доступа. Например, можно построить сеть из таких сенсоров, подключенных к
центральному серверу IDS no VPN с топологией хост-сеть. Выше мы уже подробно расска-
зывали, как развернуть такую сеть.
Аппаратных платформ для конструирования сенсора много. Например, можно взять
подходящую плату Soekris (http://www.soekris.com). Поскольку эти платы поддерживают
аппаратное шифрование, то для описанных выше целей они вполне годятся. Соберите не-
сколько беспроводных сенсоров на базе плат Soekris, оснастите их подходящими антеннами
3 8 8 А КОНТРРАЗВЕДКА: СИСТЕМЫ ОБНАРУЖЕНИЯ ВТОРЖЕНИЯ В БЕСПРОВОДНЫЕ СЕТИ

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


данных на центральный сервер IDS по IPSec-туннелям, зашифрованным AES, поставьте на
этот сервер программы Kismet Snort и другие инструменты анализа и протоколирования
трафика - и вы получите распределенную и не слишком дорогую систему IDS, о которой
можно только мечтать! Платы Soekris проектировались для работы под Free/Net/OpenBSD
или Linux. Почитайте, что сказано на сайте компании Soekris о различных версиях этих
плат и их возможностях.
Еще одна интересная платформа для создания сенсоров IDS - это старый КПК iPAQ с
подставкой для двух клиентских карт PCMCIA. В одном разъеме будет находиться карта
Ethernet для подключения к проводной сети, а в другом - беспроводная карта (мы реко-
мендуем Cisco Aironet 350 с двумя разъемами ММСХ, чтобы не возникало необходимости
программно реализовывать перебор каналов и можно было использовать подходящую ан-
тенну). На iPAQ можно поставить дистрибутив Familiar Linux или аналогичный, инсталлиро-
вать пакет Kismet .ipkg и организовать связь с центральным сервером IDS по протоколу SSH
или через VPN. Такой сенсор будет обладать уникальной возможностью «локального» про-
смотра на экране событий в сети. Представьте себе компанию, в штаб-квартире которой
стоит центральный сервер IDS, а региональные офисы могут вести мониторинг удаленных
участков беспроводной сети. Вооружившись сенсором на основе iPAQ, системный адми-
нистратор в региональном офисе может следить за работой сети локально, а главный ад-
министратор, имеющий доступ к центральному серверу IDS, - наблюдать за событиями во
всей сети и обсуждать их с региональными администраторами. Чтобы облегчить пользо-
вание такими сенсорами менее опытным сотрудникам на местах, можно установить на
клиентский компьютер или на сам сенсор графический интерфейс для Kismet (WireKismet).
В таком случае надо бы позаботиться о дополнительных мерах безопасности для защиты
сенсора.
К сожалению, для КПК Sharp Zaurus еще не выпускаются подставки для двух клиентских
карт. Но можно попробовать задействовать гнезда для CF- и SD-карт. Компании SanDisk и
Socket производят клиентские SD-карты, которые можно использовать в сенсоре на базе
Zaurus. А соединить сенсор с центральным сервером IDS можно с помощью CF-карты Ethernet.
Мы не испытывали эти SD-карты и не знаем, какова их реальная приемная чувствитель-
ность и можно ли соединить их с внешней антенной. Любая информация от тех, кто обла-
дает таким опытом, приветствуется; посылайте ее на адрес wifoo@arhont.com.
Наконец, собранный вами шлюз или точка доступа тоже может содержать встроенный
сенсор или даже сервер IDS. На самом деле на такой точке доступа можно даже разместить
несколько сенсоров (например, один для диапазона ISM, а другой - для UNn). Единственное
ограничение - это количество PCI-разъемов на материнской плате и доступность беспровод-
ных клиентских устройств. Можно опять-таки воспользоваться платами Soekris для развер-
тывания эффективного и не слишком дорогого шлюза в беспроводную сеть, поддерживаю-
щего VPN и дополнительно реализующего мониторинг сети и обнаружение вторжений.
Возможности для экспериментов по созданию комбинаций из сенсоров для сетей 802.11
или Bluetooth, точек доступа и шлюзов на базе программного обеспечения с открытыми
исходными текстами поистине безграничны. Нужно только помнить о том, что для беспро-
водных сетей еще не создано идеальной системы IDS. Поэтому не так важно, насколько
хороша развернутая IDS; ничто не сможет заменить знаний и хорошего анализатора бес-
проводных протоколов в случае, если подозрительные события все-таки обнаружатся.
ПОСЛЕСЛОВИЕ 389
ц1гомю.1ТПП111,ц|(ЦМШХ_1р-^лицииАг:

Резюме
Хотя обнаружить и проследить источник атаки на беспроводную сеть обычно сложнее, чем
на проводную, но разработка специализированных IDS продвигается семимильными шага-
ми; это очень быстро растущий сегмент рынка средств обеспечения безопасности. IDS для
беспроводных сетей должны анализировать и извещать о подозрительных событиях, про-
исходящих на первом и втором уровнях модели 0SI, а также интегрироваться с «традици-
онными» IDS, размещаемыми на более высоких уровнях. Из-за особенностей беспровод-
ных сетей хорошая IDS должна быть одновременно и сигнатурной, и статистической. Чтобы
обеспечить наблюдение за всем периметром сети, может понадобиться разместить беспро-
водные сенсоры IDS. В этой главе мы рассмотрели различные подозрительные события в
сетях, а также известные сигнатуры многих атак и хакерских инструментов. Эта информа-
ция может оказаться полезной не только системным администраторам и консультантам по
информационной безопасности, но и разработчикам аппаратного и программного обеспе-
чения для беспроводных IDS. В настоящее время еще не существует идеальной IDS, кото-
рая распознавала бы все признаки вторжения, описанные в этой главе. Мы кратко рассмот-
рели несколько имеющихся коммерческих систем, но наибольшее внимание уделили
применению программ с открытыми исходными текстами и развертыванию самодельных
сенсоров IDS. Сборка, модификация и эксплуатация таких устройств открывает небывалый
простор вашему воображению.

Послесловие
Мы надеемся, что после прочтения этой книги ваши знания о реальном состоянии безопас-
ности в сетях 802.11 расширились и теперь вы сможете лицом к лицу противостоять тем
угрозам, которым подвержены современные беспроводные сети. Возможно, вы даже захо-
тите сами создать какие-нибудь инструменты для обеспечения безопасности, выявить и
залатать новые уязвимости или развернуть самостоятельно собранные шлюзы, точки дос-
тупа или сенсоры IDS для сетей 802.Ha/b/g. Если так, то мы достигли своей цели и не зря
поработали - ведь в эфире носится столько интересных пакетов.
1. Утилита iwconfig
Имя: iwconfig.
Конфигурирует интерфейс беспроводной карты.
Порядок вызова:
iwconfig [interface]
iwconfig interface [essid X] [nwid N] [freq F] [channel C]
[sens S] [mode M] [ap A] [nick NN]
[rate R] [rts RT] [frag FT] [txpower T]
[enc E] [key K] [power P] [retry R]
[commit]
iwconfig --help ? • .'
iwconfig --version
Описание: Утилита iwconfig аналогична ifconfig(8), но ориентирована на интерфей-
сы беспроводных сетевых карт. Применяется для задания параметров сетевого интерфей-
са, специфичных именно для работы в беспроводной сети (например, частоты). Iwconfig
позволяет также выводить как сами эти параметры, так и статистику (получая ее из файла
/proc/net/wireless).
Все параметры и статистика зависят от устройства. Драйвер предоставляет только ту
информацию, которую можно получить от аппаратуры. Подробности см. на странице ру-
ководства для конкретных видов оборудования.

Параметры

essid
Задает ESSID (или сетевое имя, в некоторых продуктах называется также Domain ID). ESSID
применяется для идентификации сот, являющихся частью одной и той же виртуальной
сети. В отличие от идентификатора NWID, который описывает единственную соту, ESSID
определяет группу связанных репитерами или инфраструктурой сот, между которыми
4 0 4 ПРИЛОЖЕНИЕ D
JL
пользователь может осуществлять роуминг. Некоторые карты позволяют отключать про-
верку ESSID с помощью параметра off или any (и включать, задавая параметр on).
Примеры:
iwconfig ethO essid any
iwconfig ethO essid "My Network"

nwid/domain
Задает идентификатор сети (Network ID, в некоторых продуктах называется также
DomainID). Во всех соседних беспроводных сетях используется одна и та же передающая
среда, а этот параметр позволяет отличить одну сеть от другой (создавать логически со-
вмещенные сети) и идентифицировать узлы, принадлежащие одной и той же соте. Некото-
рые карты позволяют отключать проверку NWID с помощью параметра of f (и включать,
задавая параметр on).
Примеры:
iwconfig ethO nwid AB34
iwconfig ethO nwid off

freq/channel
Задает рабочую частоту или канал. Если значение меньше 1000, то оно интерпретируется
как номер канала, в противном случае - как частота в герцах. Необходимо либо указать
суффикс к, М или G (например, 2 .46G означает частоту 2,46 Щ ) , либо ввести нужное
число нулей. Нумерация каналов обычно начинается с 1, а чтобы узнать точное число ка-
налов и соответствующие им частоты, воспользуйтесь командой iwpr iv (8). В зависимо-
сти от местного законодательства некоторые частоты или каналы могут быть недоступны.
Примеры:
iwconfig ethO freq 2.422G
iwconfig ethO channel 3

sens
Задает порог чувствительности. Это наименьший уровень сигнала, при котором карта еще
пытается принимать пакеты; более слабые сигналы игнорируются. Применяется для отсе-
чения шума, поэтому в качестве значения следует задавать средний уровень шума в дан-
ной местности. Если значение положительно, то оно интерпретируется как передаваемое
непосредственно аппаратуре или как процент; если отрицательно - то это величина уров-
ня сигнала в единицах dBm.
Для некоторых карт этот параметр управляет также порогом занятости (наименьшее
значение уровня сигнала, при котором канал считается занятым) и порогом перехода (наи-
меньшее значение уровня сигнала, при котором клиент остается присоединенным к дан-
ной точке доступа).
Пример:
iwconfig ethO sens -80
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 4 0 5

mode
Задает рабочий режим устройства, зависящий от топологии сети. Возможны значения Ad-
hoc (сеть состоит только из одной соты и не имеет точки доступа), Managed (узел соеди-
няется с сетью, состоящей из нескольких точек доступа, с разрешенным роумингом),
M a s t e r (узел берет на себя синхронизацию или выступает в роли точки доступа),
R e p e a t e r (узел перенаправляет пакеты между другими узлами), Secondary (узел выс-
тупает в роли резервного хозяина (Master) или репитера), Monitor (узел занимается
пассивным мониторингом и только принимает пакеты) или Auto.
Примеры:
iwconfig ethO mode Managed
iwconfig ethO mode Ad-Hoc

ap
Заставляет карту присоединиться к точке доступа с указанным адресом, если это воз-
можно. Когда качество соединения становится слишком плохим, драйвер может вер-
нуться в автоматический режим (карта ищет наилучшую точку доступа в данном час-
тотном диапазоне). Можно также задать в качестве значения o f f для возврата в
автоматический режим без изменения текущей точки доступа или any либо a u t o для
того, чтобы заставить карту присоединиться к наилучшей из имеющихся в данный мо-
мент точек доступа.
Примеры:
iwconfig ethO ар 00:60:1D:O1:23:45
iwconfig ethO ap any
iwconfig ethO ap off

nick[name]
Задает имя станции. В большинстве продуктов стандарта 802.11 имя определяется, но не
используется ни в каких протоколах (MAC, IP, TCP), поэтому с точки зрения конфигуриро-
вания оно несущественно. Какое-то применение имя находит лишь в некоторых диагно-
стических программах.
Примеры:
iwconfig ethO nickname "My Linux Node"

rate/bit[rate]
Для карт, поддерживающих различные скорости передачи, задает скорость в битах в се-
кунду. С точки зрения пользователя, канал работает медленнее, чем определено этим па-
раметром, из-за разделения среды и накладных расходов.
Необходимо либо указать суффикс к (Ю3), м (106) или G (109), либо дописать нужное
число нулей. Значения, меньшие 1000, специфичны для конкретной карты (обычно это
индекс в таблице скоростей передачи). Для автоматического выбора скорости задайте
406А ПРИЛОЖЕНИЕ D

параметр a u t o (на зашумленных каналах это приводит к понижению скорости), именно


этот режим является подразумеваемым для большинства карт. Чтобы вернуться к фикси-
рованной скоростил задайте параметр f i x e d . Если вы укажете конкретное значение ско-
рости передачи и добавите еще и a u t o , то драйвер будет пробовать только те скорости,
которые не превышают заданного значения.
Примеры:
iwconfig ethO rate 11M
iwconfig ethO rate auto
iwconfig ethO rate 5. 5M auto

rts[Jhreshold]
В соответствии с протоколом RTS/CTS перед передачей каждого пакета выполняется про-
цедура квитирования с целью убедиться, что канал свободен. Это дополнительные наклад-
ные расходы, но при наличии скрытых узлов или большого числа активных узлов произво-
дительность может даже повыситься. Значением параметра является наименьший размер
пакета, при котором узел посылает фрейм RTS. Если задать в качестве значения максималь-
но возможный размер пакета, то процедура квитирования отменяется. Параметр может
также принимать значения a u t o , f i x e d и off.
Примеры:
iwconfig ethO r t s 250
iwconfig ethO r t s off

fragmentation threshold]
Фрагментация - это расщепление IP-пакета на несколько фрагментов меньшего размера,
которые затем и передаются в сеть. В большинстве случаев это лишь вводит лишние на-
кладные расходы, но в очень зашумленных каналах может уменьшить расходы на обработ-
ку ошибок. Значением параметра является максимальный размер фрагмента. Если задать в
качестве значения максимально возможный размер пакета, то фрагментация не произво-
дится. Параметр может также принимать значения a u t o , f i x e d и of f.
Примеры:
iwconfig ethO frag 512
iwcqnfig, ethO frag off .,

key/enc[ryption]
Применяется для задания ключей и режима шифрования. Чтобы задать текущий ключ, вве-
дите его в виде последовательности шестнадцатеричных цифр в формате ХХХХ-ХХХХ-
хххх-хххх или хххххххх. Чтобы задать ключ, отличный от текущего, укажите его ин-
декс в квадратных скобках до или после значения. Можно также ввести ключ в виде
ASCII-строки, если добавить префикс s : . Парольные фразы пока не поддерживаются. Что-
бы изменить индекс активного ключа, введите просто новое значение в виде [индекс],
не вводя значение самого ключа. Параметры of f и on соответственно отключают и вновь
включают шифрование, параметр open переводит систему в открытый режим (принимаются
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 4 0 7

незашифрованные пакеты), а параметр r e s t r i c t e d говорит, что незашифрованные па-


кеты нужно отбрасывать. Если надо задать несколько ключей или задать ключ и одновре-
менно изменить индекс активного ключа, то укажите несколько директив key. Аргументы
можно перечислять в любом порядке, действует последний указанный аргумент.
Примеры:
iwconfig ethO key 0123-4567-89
iwconfig ethO key s:password [2]
iwconfig ethO key [2] open
iwconfig ethO key off
iwconfig ethO key r e s t r i c t e d [3] 0123456789
iwconfig ethO key 01-23 key 45-67 [4] key [4]

power
Применяется для задания режима и параметров управления энергопотреблением. Чтобы за-
дать время между пробуждениями, введите p e r i o d ' значение•. Для задания того, сколько
времени карта может быть неактивной, прежде чем перейдет в спящий режим, введите
timeout ' значение'. Можно также добавить модификаторы min или max. По умолчанию
все значения выражены в секундах. При наличии суффикса m или и предполагаются соответ-
ственно миллисекунды или микросекунды. Иногда значение не подразумевает никакой еди-
ницы измерения. Значения on и of f включают и выключают режим управления энергопот-
реблением. Наконец, можно задать значение a l l (принимать все пакеты), u n i c a s t
(принимать только пакеты, адресованные исключительно данному узлу, и отбрасывать пакеты,
адресованные группе узлов или всем узлам), и mul t i c a s t (принимать только пакеты, адресо-
ванные группе узлов или всем узлам, отбрасывая те, что адресованы данному узлу).
Примеры:
iwconfig ethO power period 2
iwconfig ethO power 500m unicast
iwconfig ethO power timeout 300u a l l
iwconfig ethO power off
iwconfig ethO power min period 2 power max period 4

txpower
Для карт, поддерживающих несколько уровней мощности передатчика, с помощью этого
параметра устанавливается мощность в dBm. Если W - мощность в ваттах, то в dBm она
переводится по формуле Р - 30 + 10log(W). Если значение содержит суффикс mw, то оно
будет автоматически пересчитано в dBm. Значения on и of f соответственно включают и
выключают передатчик, a a u t o и f i x e d включают и выключают режим управления мощ-
ностью (если аппаратура поддерживает).
Примеры:
iwconfig ethO txpower 15
iwconfig ethO txpower 30mW
iwconfig ethO txpower auto
iwconfig ethO txpower off
408 ПРИЛОЖЕНИЕ D

retry
Большинство карт поддерживают повторную передачу MAC, а некоторые позволяют настроить
механизм повтора. Чтобы задать максимальное число повторов, введите l i m i t ! значение'.
Это абсолютная величина (без единиц измерения). Чтобы задать максимальную продолжитель-
ность времени, в течение которого MAC нужно пытаться передать повторно, введите 1 i f et ime
1
значение'. По умолчанию время измеряется в секундах. При наличии суффикса m или и
предполагаются соответственно миллисекунды или микросекунды.
Можно также добавить модификаторы min или max. Если карта поддерживает автома-
тический режим, то они ограничивают значение l i f e t i m e . Для некоторых карт значе-
ние зависит от размера пакета, например в случае стандарта 802.11 min ограничивает
число попыток для коротких пакетов (не RTS/CTS).
Примеры:
iwconfig ethO retry 16
iwconfig ethO retry lifetime 300m
iwconfig ethO min limit 8

commit
Для некоторых карт изменения параметров, проделанные с помощью программы Wireless
Extensions, не вступают в силу немедленно (карта накапливает изменения или применяет
их, только когда интерфейс поднимается с помощью ifconfig). В таких случаях команда
commit (если она поддержана аппаратурой) заставляет карту применить все ожидающие
изменения. Обычно в этом нет необходимости, так как рано или поздно карта все сделает
сама, но для отладки бывает полезно.

Вывод значений параметров


Для каждого устройства, поддерживаемого Wireless Extensions, iwconfig может выводить
название используемого протокола MAC (имя устройства для патентованных протоколов),
ESSID (имя сети), NWID, рабочую частоту (или номер канала), чувствительность, режим
работы, адрес точки доступа, скорость передачи в битах, порог применения RTS, порог,
фрагментации, ключ шифрования и настройки режима управления энергопотреблением,
если он реализован (см. выше, что означают эти параметры).
Если за словом b i t - r a t e следует знак ' = ', то скорость передачи фиксирована, если
же знак ' : ' - то это всего лишь текущее значение скорости (устройство работает в ав-
томатическом режиме). Если существует файл /proc/net/wireless, то iwconfig будет выво-
дить также и его содержимое.
Link q u a l i t y - качество канала или модуляции (каков уровень конкуренции или
помех либо насколько хорош принимаемый сигнал).
S i g n a l l e v e l - уровень принимаемого сигнала.
N o i s e l e v e l - уровень шума (при отсутствии передаваемых пакетов).
i n v a l i d nwid - число принятых пакетов с посторонним NWID. Служит для выявления
неправильной конфигурации или наличия соседних сетей.
i n v a l i d c r y p t - число пакетов, которые аппаратуре не удалось дешифрировать.
i n v a l i d misc - число пакетов, потерянных по иным причинам.
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 4 0 9

Автор: Жан Туриль (jt@hpl.hp.com).


Файлы: /proc/net/wireless.
См. также: ifconfig(8), iwspy(8), iwlist(8), iwpriv(8), wavelan(4), wavelan_cs(4),
wvlan_cs(4), netwave_cs(4).

2. Утилита iwpriv
Имя: iwpriv.
Конфигурирует дополнительные (специальные) параметры интерфейса беспроводной карты.
Порядок вызова:
iwpriv [interface]
iwpriv interface private-command [private-parameters]
iwpriv interface private-command [I] [private-parameters]
iwpriv interface --all
iwpriv interface roam {on,off}
iwpriv interface port {ad-hoc,managed,N}
Описание: iwpriv - это программа, дополнительная к iwconfig(8). Она предназначена
для задания параметров, специфичных для конкретного драйвера (в противоположность
iwconfig, которая имеет дело с общими для всех драйверов параметрами). Если не задано
никаких аргументов, то iwpriv выводит список команд, применимых к каждому из суще-
ствующих интерфейсов, и их параметры. Располагая этой информацией, пользователь
сможет выполнить команды, поддерживаемые тем или иным интерфейсом. Предполага-
ется, что в документации по драйверам устройств эти команды и их действие описаны
более подробно.

Параметры

private-command [private-parameters]
Выполняет заданную специальную команду (private-command) для указанного интер-
фейса. У команды могут быть обязательные или необязательные аргументы, она может вы-
водить какую-то информацию. Подробности, по идее, должна предоставлять команда
iwpriv, вызванная без аргументов. Но точные сведения о том, как правильно пользовать-
ся командами, ищите в документации, поставляемой вместе с драйвером устройства.

private-command [I] [private-parameters]


То же, с тем отличием что команде передается опознавательный индекс (token index) I
(целое число). Лишь некоторые команды используют этот индекс (как правило, он игно-
рируется), в документации по драйверу должно быть написано, когда он нужен.

Выполнить и вывести все специальные команды, которые не требуют аргументов.


410 ПРИЛОЖЕНИЕ D

roam
Включить или выключить роуминг, если он поддерживается. Вызывает специальную ко-
манду s e t _ r o a m . Имеется в драйвере wavelan_cs.

port
Прочитать или сконфигурировать тип порта. Вызывает специальные команды
g p o r t _ t y p e , s p o r t _ t y p e , get__port или s e t _ p o r t , имеющиеся в драйверах
wavelan2_cs и wvlan_cs.

Вывод значений параметров


Для каждого устройства, поддерживающего специальные команды, iwpriv выводит их спи-
сок. В нем отражены имя команды, число и типы аргументов, которые можно задать, а так-
же число и типы параметров, которые можно вывести. Например, может быть выведена
следующая информация:
ethO Available private ioctl:
setqualthr (89F0) : set 1 byte & get 0
gethisto (89F7) : set 0 & get 16 int
Отсюда видно, что можно задать порог качества и вывести гистограмму, содержащую до
16 значений. Для этого служат такие команды:
iwpriv ethO setqualthr 20
iwpriv ethO gethisto

Автор: Жан Туриль (jt@hpl.hp.com).


Файлы: /ргос/net/wireless.
См. также: ifconfig(8), iwconfig(8), iwlist(8), iwspy(8), wavelan(4), wave- lan_cs(4),
wvlan__cs(4), netwave_cs(4).

3. Утилита iwlist
Имя: iwlist.
Получает статистику работы указанных узлов беспроводной сети.
Порядок вызова:
iwlist interface freq
iwlist interface ар
iwlist interface scan
iwlist interface rate
iwlist interface key
iwlist interface power
iwlist interface txpower
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 411

iwlist interface retry


iwlist --help
:
iwlist --version •
Описание: iwlist служит для вывода большого объема информации от интерфейса бес-
проводной карты, которая не выдается утилитой iwconfig.

Параметры

freq/channel
Выводит список доступных устройству частот и число определенных каналов. Обратите
внимание, что обычно драйвер возвращает общее число каналов, но'толъко те частоты,
которые доступны в данной местности, поэтому между частотами и каналами может не
быть взаимно однозначного соответствия. ..= .-. >
••
•, i ! i ж : ц • q v r
ap/accesspoint

Выводит список точек доступа в частотном диапазоне и, возможно, информацию о качестве


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

scan[ning]
Выводит список точек доступа и независимых сот в частотном диапазоне и, возможно,
различную дополнительную информацию о каждой из них (ESSID, качество, частота, ре-
жим работы и т.д.). Состав возвращаемой информации зависит от конкретной карты.
Запуск сканирования - это привилегированная операция, разрешенная только супер-
пользователю root, все прочие могут лишь прочитать данные, полученные в результате
предыдущего сканирования. По умолчанию способ выполнения сканирования (на какую
область распространяется) зависит от текущих настроек драйвера. Предполагается, что
команда будет принимать и дополнительные аргументы, управляющие сканированием,
но пока это не реализовано.

rate/bit[rate]
Выводит перечень скоростей передачи в битах, поддерживаемых данным устройством.

key/encryption]
Выводит поддерживаемые длины ключей шифрования, а также все ключи, хранящиеся в
устройстве.

power
Выводит параметры режима управления энергопотреблением.
412 ПРИЛОЖЕНИЕ D
- д Г
А, I.IJ.IJ..I....!....I.

t x p o w e r

Выводит параметры режима управления мощностью передатчика.

retry
Выводит пороговые значения и время жизни для управления повторной передачей.

—version
Выводит номер версии программы, а также номер рекомендуемой и текущей версии
Wireless Extensions для данного инструмента и различных беспроводных карт.
Файлы: /proc/net/wireless.
См. также: iwconfig(8)/ ifconfig(8), iwspy(8), iwpriv(8).

4. Утилита wicontrol
Имя: wicontrol.
Конфигурирует устройства WaveLAN/IEEE.
Порядок вызова:
wicontrol -i iface [-о]
wicontrol -i iface -t tx_rate
wicontrol -i iface -n network_name
wicontrol -i iface -s station_name
wicontrol -i iface -c 0 I 1
wicontrol -i iface -q SSID
wicontrol -i iface -p port_type
wicontrol -i iface -a access_point_density
wicontrol -i iface -m mac_address
wicontrol -i iface -d max_data_length
wicontrol -i iface -e 0 I 1
wicontrol -i iface -k key [-v 1 I 2 I 3 I 4]
wicontrol -i iface -T 1 I 2 I 3 I 4
wicontrol -i iface -r RTS_threshold
wicontrol -i iface -f frequency
wicontrol -i iface -P 0 I 1
wicontrol -i iface -S max_sleep_duration
wicontrol -i iface -Z (zero signal cache)
wicontrol -i iface -C (display signal cache)
Описание: Управляет работой беспроводных сетевых устройств WaveLAN/IEEE посред-
ством драйвера wi(4). Большинство подлежащих изменению параметров относятся к стан-
дарту IEEE 802.11, реализованному в WaveLAN. Это, в частности, имя станции, которая мо-
жет работать как в независимом (ad-hoc) режиме, так и в режиме BSS, а также сетевое имя
соты (IBSS), к которой нужно присоединяться, если активизирован режим BSS. Команду
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ АЛ 3

w i c o n t r o l можно использовать также для вывода текущих значений параметров и ста-


тистических счетчиков, накапливаемых картой.
Аргумент if асе - это логическое имя интерфейса, присвоенное устройству WaveLAN/
IEEE (wiO, wil и т.д.). Если этот аргумент опущен, предполагается wiO.

Параметры

-/ if асе [-о]
Выводит текущие параметры заданного интерфейсв WaveLAN/IEEE, получая от драйвера
текущие настройки карты. Если задан необязательный флаг -о, то wicontrol будет выво-
дить не настройки карты, а значения статистических счетчиков. Ключи шифрования выво-
дятся, только если команда запущена от имени суперпользователя root.

-/ if асе -t txjrate
Устанавливает скорость передачи для указанного интерфейса. Допустимые значения за-
висят от того, ассоциирован ли интерфейс со стандартным устройством WaveLAN/IEEE или
адаптером WaveLAN/IEEE Turbo. Стандартная сетевая карта поддерживает скорость переда-
чи не выше 2 Мбит/с, а карта с Turbo-режимом - до 6 Мбит/с. В табл. D1 перечислены зна-
чения параметра и соответствующие им скорости передачи.

Таблица D 1 . Соответствие значения параметра и скорости передачи

Стандартные сетевые карты поддерживают только значения от 1 до 3, а карты с Turbo-


режимом - все перечисленные значения. По умолчанию драйвер выставляет скорость пе-
редачи 3 (автоматический выбор).

-I if асе -л networkjiame
Задает имя соты (IBSS), к которой должна подключаться данная станция. Сетевое имя
network_name может быть произвольной строкой длиной до 30 символов. По умолча-
нию предполагается имя ANY, в этом случае станции разрешено подключаться в первой же
обнаруженной точке доступа. Интерфейс должен быть предварительно переведен в режим
BSS с помощью флага -р.
4 1 4 ПРИЛОЖЕНИЕ D
мяАщштишщщц

-/ if асе -s station _name


Задает имя станции для указанного интерфейса. Строка s t a t i o n _ n a m e используется
только для целей диагностики. Программа Lucent WaveMANAGER может запрашивать име-
на удаленных станций.

-iiface-cO\ 1
Позволяет станции создавать соту (IBSS). Допустимые значения: 0 (не создавать IBSS) и 1
(создать IBSS). По умолчанию 0.
Этот параметр введен в экспериментальных целях - создание IBSS на хосте, похоже, в
действительности не работает.

-i iface-q SSID
Задает имя соты IBSS (SSID) для указанного интерфейса. SSID может быть произвольной
строкой длиной до 30 символов.
Этот параметр введен в экспериментальных целях - создание IBSS на хосте, похоже, в
действительности не работает.

-/ iface -р portjype
Задает тип порта для указанного интерфейса. Допустимые значения: 1 (режим BSS) и 3
(независимый режим). В независимом режиме станция может напрямую общаться с други-
ми станциями в пределах прямой радиовидимости (при условии, что остальные станции
также работают в независимом режиме). В режиме BSS станция может общаться только в
пределах соты, контролируемой точкой доступа, которая пересылает трафик между око-
нечными станциями. По умолчанию 3 (независимый режим).

-/ iface -a accessjpointjdensity
Задает плотность точки доступа для указанного интерфейса. Допустимые значения: 1 (низ-
кая), 2 (средняя) и 3 (высокая). Этот параметр влияет на некоторые пороговые значения
радиомодема.

-/ iface -/л macjaddress


Задает адрес станции для указанного интерфейса. МАС-адрес представляет собой последо-
вательность из шести шестнадцатеричных значений, разделенных двоеточиями (например,
0 0 : 6 0 : l d : 1 2 : 3 4 : 5 6 ) . Тем самым программируется новый адрес карты и обновляются
параметры интерфейса.

-/ iface -d maxjdatajength
Задает максимальные размеры принимаемых и передаваемых фреймов для указанного ин-
терфейса. Значение m a x _ d a t a _ l e n g t h может быть от 350 до 2304. По умолчанию 2304.
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 4 1 5

-/ if асе -е О I 1
Разрешает или запрещает шифрование по протоколу WEP. Допустимые значения: 0 (запре-
тить шифрование) и 1 (разрешить шифрование). По умолчанию шифрование отключено.

-iiface-kkey[-v1\2\3\4]
Задает ключи шифрования по протоколу WEP. Можно задать до четырех ключей. Конкрет-
ный ключ выбирается флагом -v. Если этот флаг опущен, то задается первый ключ. Ключ
шифрования можно задавать либо в виде обычного текста (например, h e l l o ) , либо в виде
последовательности шеетнадцатеричных цифр (например, 0x1234512345). Для карт
WaveLAN Turbo Silver длина ключа составляет 40 бит, поэтому ключ должен быть или стро-
кой из 5 символов, или последовательностью из десяти шеетнадцатеричных цифр. Для карт
WaveLAN Turbo Gold допустимы также ключи длиной 104 бит, так что можно указывать тдк-
же строки из 13 символов или последовательности из 26 цифр.

-iiface-T1 \2\3\4
Определяет, какой из четырех WEP-ключей будет применяться для шифрования передава-
емых пакетов.

-I if асе -г RTSJhreshold
Задает порог применения протокола RTS/CTS для указанного интерфейса, то есть опреде-
ляет, какова должна быть минимальная длина пакета, чтобы ему предшествовал обмен
фреймами RTS/CTS. Значение RTS__threshold может, быть от 0 до 2347. По умолчанию
2347.

-/ if асе -f frequency
Задает частоту для указанного интерфейса. Значение должно представлять собой номер
канала из приведенного ниже списка. Перечень.доступных частот зависит от местного
законодательства. Распознаются законодательные органы следующих стран: FCC (США),
ETSI (Европа), Франция и Япония. Частоты в табл. D2 приведены в мегагерцах.
416 ПРИЛОЖЕНИЕ D
,,,,,,.*, ихи-жщ i..и

Если указан недопустимый канал, карта установит канал по умолчанию. Для карт, продава-
емых в США и Европе, по умолчанию выбирается канал 3, во Франции - канал 11, в Японии -
канал 14, и это единственно доступный канал для карт со скоростью до 11 Мбит/с. Отметим,
что карты могут обмениваться данными, только если работают на одном канале.

-iiface-PO\ 1
Включает или выключает режим управления энергопотреблением для указанного интерфей-
са. При включенном режиме устройство периодически засыпает и пробуждается для эконо-
мии заряда батарей портативного компьютера, правда, за это приходится платить некоторым
увеличением задержки при приеме пакетов. По умолчанию режим выключен. Отметим, что
режим управления энергопотреблением работает только в кооперации с точкой доступа, в
независимом режиме управлять энергопотреблением невозможно. Кроме того, управление
энергопотреблением реализовано только в карте Lucent WavePOINT с версией программно-
аппаратного обеспечения не ниже 2.03, и в PCMCIA-карте Lucent WaveLAN с версией про-
граммно-аппаратного обеспечения не ниже 2.00. Для более ранних версий этот параметр
игнорируется. Допустимые значения параметра: 0 (выключить) и 1 (включить).

-I if асе -S maxjsleepjnterval
Задает время спящего режима в режиме управления энергопотреблением. Величина
m a x _ s l e e p _ i n t e r v a l выражена в миллисекундах. По умолчанию 100.

-/ if асе -Z
Очищает кэш, в котором хранятся величины уровня сигнала. Этот кэш организован внутри
драйвера wi(4).

-/ if асе -С
Выводит содержимое кэша уровней сигнала, организованного внутри драйвера wi(4).
Драйвер сохраняет информацию об уровнях сигнала и шума для пакетов, полученных от
различных хостов. Эти величины измеряются в dBm. Качество сигнала - это разность меж-
ду уровнем сигнала и уровнем шума (то есть чем меньше шум и чем сильнее сигнал, тем
выше качество).
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 4 1 7

См. также: wi(4), ifconfig(8).


История: Команда wicontrol впервые появилась в версии FreeBSD 3.0.
Автор: Билл Пол (Bill Paul) - wpaul@ctr.edu.

5. Утилита ancontrol
Имя: ancontrol.
Конфигурирует устройства Aironet 4500/4800.
Порядок вызова:

Описание: Управляет работой беспроводных сетевых устройств Aironet посредством


драйвера ап(4). Большинство подлежащих изменению параметров относятся к стандарту
IEEE 802.11, реализованному в Aironet. Это, в частности, имя станции, которая может рабо-
тать как в независимом (ad-hoc) режиме, так и в режиме BSS, а также сетевое имя соты
(IBSS), к которой нужно присоединяться, если активизирован режим BSS. Команду
a n c o n t r o l можно использовать также для вывода текущего состояния карты, ее парамет-
ров и статистических счетчиков, накапливаемых картой.
Аргумент i f a c e - это логическое имя интерфейса, присвоенное устройству Aironet
(anO, anl и т.д.). Если этот аргумент опущен, предполагается апО.
Команда a n c o n t r o l не поддерживает указания в одном вызове аргументов, описанных
в разных строках раздела «Порядок вызова». Задавать такие комбинации не рекомендуется.
418 ПРИЛОЖЕНИЕ D

Параметры

-i if асе -A
Выводит список предпочтительных точек доступа. Этот список можно использовать для
указания МАС-адресов тех точек доступа, к которым станция хотела бы присоединиться.
Если список точек доступа не задан (по умолчанию так и есть), то станция присоединится
к первой же обнаруженной точке доступа, которая обслуживает соту, входящую в список
SSID. Изменить список точек доступа позволяет флаг -а.

-/ if асе -N
Выводит список SSID. Это список сот (сетевых имен), к которым станция готова присоеди-
ниться. В списке может быть до трех SSID: станция будет просматривать список в порядке
возрастания и присоединится к первой же подходящей соте.

-# if асе -S
Выводит информацию о состоянии сетевой карты, а именно: текущий рабочий режим,
текущие BSSID, SSID, канал, период между отправкой маяков и точка доступа, к кото-
рой присоединилась станция. Рабочий режим включает состояние карты, статус MAC и
статус приема. Если в выводе присутствует слово synced, то карта успешно присое-
динилась к точке доступа, к главной станции в независимом режиме или сама стала
главной станцией. Период между отправкой маяков может изменяться от 20 до 976 мс.
По умолчанию 100.

-iiface-l
Выводит информацию о возможностях сетевой карты, а именно: тип устройства, способ-
ность регулировать частоту, скорость и энергопотребление, а также версию программно-
аппаратного обеспечения.

-i if асе -Г
Выводит внутренние статистические счетчики, накапливаемые картой.

-/ if асе -С
Выводит текущую конфигурацию карты, а именно: текущий режим работы, режим приема,
МАС-адрес, параметры режима энергопотребления, различные временные параметры, вы-
бор канала, разнесенность, мощность передатчика и скорость передачи.

-iiface-tO \ 1 \2\3\4
Задает скорость передачи (табл. D3).
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ АЛ 9

Таблица D3. Допустимые значения скорости передачи

Отметим, что скорости 5,5 и 11 Мбит/с поддерживаются только картами серии 4800; для
карт серии 4500 скорость передачи ограничена 2 Мбит/с.

-iiface-stO \ 1 \ 2 \ 3
Задает режим управления энергопотреблением (табл. D4).

Отметим, что в независимом режиме поддерживается только режим PSP и лишь если
окно ATIM ненулевое.

-iiface[-v1 \2\3\4]-aAP
Задает предпочтительные точки доступа. Указывается МАС-адрес точки доступа, состоящий
из шести шестнадцатеричных чисел, разделенных двоеточиями. По умолчанию флаг -а
определяет только первую точку доступа в списке. Для задания точного индекса нужной
точки доступа можно добавить модификатор -v.

-/ if асе -b beaconjperiod
Задает промежуток времени между отправкой маяков в независимом режиме. Величина
b e a c o n _ p e r i o d измеряется в миллисекундах. По умолчанию 100 мс.

-iiface[-vO\ 1]-dO\ 1 \2\ 3


Задает разнесенность антенн. Карты Aironet допускают наличие двух антенн, в этом слу-
чае можно настроить разнесенность приема и передачи (табл. D5).
420 ПРИЛОЖЕНИЕ D

Разнесенность приема и передачи можно устанавливать независимо. С помощью флага -v


указывается, какую именно разнесенность нужно модифицировать: 0 означает разнесенность
приема, а 1 - передачи.

-iiface-eO 2\3
Задает, какой WEP-ключ использовать для шифрования передаваемых данных. Если эта
команда не была выполнена, то устройство будет пользоваться последним из запрограм-
мированных ключей. Ключи хранятся в энергонезависимой памяти. Какой ключ является
текущим, можно узнать с помощью флага -С.

iiface [-vO \ 1 \ 2 \ 3 \ 4 \ 5 \ 6 \ 7] -к key


Задает WEP-ключ. Для задания 40-битового ключа введите десять шестнадцатеричных цифр
с префиксом Ох. Для задания 128-битового ключа введите 26 шестнадцатеричных цифр с
префиксом Ох. Для стирания ключа введите в качестве значения пустую строку " " . Поддер-
живается до четырех ключей; четные номера предназначены для постоянных ключей, не-
четные - для временных. Например, - v 1 задает первый временный ключ. (Постоянные клю-
чи хранятся в энергонезависимой памяти, временные - не хранятся.) Отметим, что по
умолчанию карта пользуется последним запрограммированным ключом. Узнать о наборе
текущих ключей можно с помощью флага -С, при этом выводятся только длины ключей.

-iiface-КО \ 1 \2
Задает тип авторизации. О - отсутствие авторизации, 1 - открытая, 2 - е разделяемым ключом.

-iiface -WO \ 1 \2
Режим использования протокола WEP. О - WEP отключен, 1 - включен полный протокол
WEP, 2 - для смешанных сот.

-/ if асе -j netjoinJimeout
Задает таймаут при присоединении к независимой сети. Когда станция в первый раз вклю-
чается в независимом режиме, она начинает искать главную станцию с нужным SSID и
присоединяется к ней. Если по истечении определенного времени, найти станцию с таким
же SSID не удается, то станция сама становится главной, так что к ней смогут присоеди-
няться другие станции. По умолчанию таймаут равен 10000 мс (10 с), флаг - j позволяет
задать другое значение. Значение следует задавать в миллисекундах.
СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 4 2 1

-# if асе -/ station name


Задает имя станции для внутренних нужд карты. Параметр s t a t i o n _ n a m e может быть
произвольной текстовой строкой длиной до 16 символов. По умолчанию драйвер устанав-
ливает имя FreeBSD.

-/ if асе -т macjaddress
Задает адрес станции для указанного интерфейса. МАС-адрес представляет собой последо-
вательность из шести шестнадцатеричных значений, разделенных двоеточиями (например,
0 0 : 6 0 : l d : 1 2 : 3 4 : 5 6 ) . Тем самым программируется новый адрес карты и обновляются
параметры интерфейса.

-iiface[-v1 \2\3]-nSSID
Задает SSID (сетевое имя). Всего есть три SSID, что позволяет карте работать с разными
точками доступа без переконфигурации. Карта последовательно проверяет все заданные
SSID. Указать, какой именно SSID изменять, можно с помощью модификатора -v. Если флаг
-v опущен, изменяется первый SSID в списке.

-/ if асе -о О | У
Устанавливает режим работы карты Aironet. Допустимые значения: 0 - независимый ре-
жим, 1 - инфраструктурный режим. По умолчанию драйвер выбирает инфраструктурный
режим.

-/ if асе -р txjpower
Задает мощность передатчика в милливаттах. Допустимые значения зависят от конкрет-
ной модели, просмотреть их можно, выведя возможности карты с помощью флага - I . Ти-
пичные значения: 1,5,20,50 и 100 мВт. Задание значения 0 выбирает заводскую установку
по умолчанию.

-/ if асе -с frequency
Задает частоту для указанного интерфейса (табл. D6). Значение должно представлять со-
бой номер канала из приведенного ниже списка. Перечень доступных частот зависит от
местного законодательства. Распознаются законодательные органы следующих стран: FCC
(США), ETSI (Европа), Франция и Япония.
422 ПРИЛОЖЕНИЕ D

Если указан недопустимый канал, карта установит канал по умолчанию. Для карт, продава-
емых в США и Европе, по умолчанию выбирается канал 3, во Франции - канал 11, в Японии -
канал 14, и это единственно доступный канал для карт со скоростью до 11 Мбит/с. Отметим,
что карты могут обмениваться данными, только если работают на одном канале.

-/ if асе -f fragmentationJhreshold
Задает порог фрагментации в байтах, то есть размер, после которого исходящие пакеты
начинают расщепляться на более мелкие фрагменты. Если не удастся успешно доставить
один фрагмент, то придется повторно передать только его, а не весь пакет. Порог фрагмен-
тации может принимать значения от 64 до 2312. По умолчанию 2312.

-/ if асе -г RTSJhreshold
Задает порог протокола RTS/CTS для указанного интерфейса, то есть какой должна быть
минимальная длина пакета, чтобы ему предшествовал обмен фреймами. Величина
R T S _ t h r e s h o l d может быть любым числом от 0 до 2312. По умолчанию 2312.

-I if асе -М 0-15
Задает режим мониторинга с помощью битовой маски (табл. D7).

Таблица D7. Значения битов


СТРАНИЦЫ РУКОВОДСТВА ДЛЯ НЕКОТОРЫХ УТИЛИТ 4 2 3


Выдача справочной информации с примерами использования.

Замечания о безопасности
Протокол WEP основан на алгоритме RC4, в котором используется 24-битовый вектор ини-
циализации.
Считается, что RC4 уязвим к некоторым атакам с известным открытым текстом, особен-
но при использовании 40-битовых ключей. Поэтому безопасность WEP зависит от того, как
много передается известного открытого текста.
Таким образом, хотя это интуитивно неочевидно, аутентификация с разделяемым клю-
чом (при этом посылается известный открытый текст) менее безопасна, чем открытая
аутентификация, если протокол WEP включен.
При передаче пакетов устройство может ротировать все сконфигурированные WEP-клю-
чи. Поэтому необходимо, чтобы ключи на всех станциях были согласованы.
Примеры:
ancontrol -i anO -v 0 -k 0x12345678901234567890123456
ancontrol -i anO -K 2
ancontrol -i anO -W 1
ancontrol -i anc -e 0
Устанавливает WEP-ключ с индексом 0, разрешает аутентификацию с разделяемым клю-
чом, включает полный протокол WEP и использует для шифрования ключ 0.
См. также: an(4), ifconfig(8).
История: Команда a n c o n t r o l впервые появилась в версии FreeBSD 4.O.
Ошибки: Похоже, что в статистических счетчиках не увеличивается число переданных
и принятых фреймом. Вероятно, это связано с тем, что в драйвере ап(4) используется ре-
жим немодифицированных пакетов, тогда как надо было бы позволить карте выполнять
инкапсуляцию 802.ll/Ethernet самостоятельно. Задание номера канала, кажется, не при-
водит ни к какому эффекту.
Автор: Билл Пол (wpaul@ee.edu).
426 ПРИЛОЖЕНИЕ F

Предлагаемые новые значки


Arhont Ltd. Отчет о результатах аудита
стабильности и безопасности
беспроводной сети
4 2 8 ПРИЛОЖЕНИЕ G
jxi.i.i.-AUi.ijujmji.ij..i.u,i..i..i..Ttr.
ФОРМА ОТЧЕТА О РЕЗУЛЬТАТАХ ТЕСТИРОВАНИЯ 4 2 9
801.11 - самый первый из стандартов IEEE, в котором определяется порядок дос-
тупа к передающей среде и приводятся спецификации физического уровня для
беспроводных локальных сетей со скоростью до 2 Мбит/с. Стандарт 802.11 рас-
пространяется на высокочастотные радиоканалы DSSS и FHSS, а также на инфра-
красные каналы.
802.11а - редакция стандарта 802.11 IEEE, в которой рассматриваются сети, рабо-
тающие в диапазоне UNII со скоростями до 54 Мбит/с по технологии DSSS.
802.11b - редакция стандарта 802.11 IEEE, в которой рассматриваются сети, рабо-
тающие в среднем диапазоне ISM со скоростями до 11 Мбит/с по технологии DSSS.
802.1 lg - редакция стандарта 802.11 IEEE, в которой рассматриваются сети, рабо-
тающие в среднем диапазоне ISM со скоростями до 54 Мбит/с по технологии DSSS,
обратно совместимые со стандартом 802.11b.
802.1 li - стандарт IEEE, относящийся к безопасности беспроводных сетей. В нем
объединены протоколы 802.1х и TKIP/CCMP с целью обеспечить аутентификацию
пользователей, конфиденциальность и целостность данных в беспроводных ло-
кальных сетях.
802.15 - спецификация IEEE, описывающая беспроводные персональные сети
(WPAN), которая была одобрена в начале 2002 года.
802.1х - стандарт IEEE аутентификации и контроля доступа на уровне 2.
Authentication Header (АН) - один из протоколов IPSec, который проверяет
аутентичность IP-пакетов, но не обеспечивает конфиденциальности данных.
Banyan VINES - набор протоколов для организации виртуальной сетевой системы,
основанной на идеологии UNIX. В наше время встречается нечасто. Интерес представ-
ляет система именования Banyan VINES StreetTalk.
Big-Endian - метод хранения данных, когда наиболее значимый бит хранится
первым.
4 4 2 WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Bluetooth - часть спецификации 802.15 для беспроводных персональных сетей,


разработанная и поддерживаемая группой Bluetooth SIG, которая была основана
компаниями Ericsson, Nokia, IBM, Intel и Toshiba. Радиоустройства Bluetooth - это
маломощные FHSS-трансиверы, работающие в среднем диапазоне ISM.
ССМР (Counter Mode with CBC-MAC) - основанный на алгоритме AES протокол
шифрования, который должен заменить WEP и TKIP, когда выйдет окончательная
версия стандарта 802.Hi. Будет считаться обязательным в спецификации WPA
версии 2.
Clear To Send (CTS) (Готов к передаче) - управляющий фрейм в стандарте
802.11, применяемый для обнаружения виртуальной несущей. Фрейм CTS посыла-
ется в ответ на фрейм RTS. Он разрешает запрашивающему хосту передавать дан-
ные в течение времени, указанного в поле Network Allocation Vector.
CSMA/CA (Carrier Sense Multiple Access/Collision Avoidance) - протокол второ-
го уровня, применяемый для устранения коллизий в сетях 802.11, а также в соста-
ве протокола LocalTalk в сетях AppleTalk. Чтобы избежать коллизий, CSMA/CA по-
сылает положительную квитанцию (АСК) на переданные фреймы.
dBi - децибелы, отнесенные к идеальной изотропной антенне.
dBm - 0 dBm равно выходной мощности 1 мВт при частоте 1 кЩ и импедансе 600 0м.
DECnet - набор сетевых протоколов коммуникации, разработанный и поддерживае-
мый компанией Digital Equipment Corporation.
DSSS (Direct Sequence Spread Spectrum - прямая последовательность измене-
ния спектра) - один из двух подходов к передаче радиосигналов с изменяемым
спектром. При использовании технологии DSSS поток передаваемых данных раз-
бивается на небольшие кусочки, каждому из которых выделяется широкополос-
ный канал. На передающем конце информационный сигнал комбинируется с пос-
ледовательностью битов, передаваемых с более высокой скоростью, которая
разделяет данные в соответствии с коэффициентом изменения.
ЕАР (Extensible Authentication Protocol - расширяемый протокол аутентифи-
кации) - гибкий протокол аутентификации, первоначально спроектированный
для аутентификации в протоколе РРР, а позже включенный в стандарт 802.1х.
Протокол ЕАР определен в RFC 2284.
EAPOL (ЕАР over LAN - ЕАР поверх локальной сети) - инкапсуляции фреймов
протокола ЕАР в проводных локальных сетях. Определяется отдельно для Ethernet
и Token Ring.
EIRP (Эффективная изотропно излучаемая мощность) - реальная выходная мощ-
ность, излучаемая антенной, рассчитываемая по формуле IR + коэффициент усиления
антенны.
ГЛОССАРИЙ 443

ESSID (Extended Service Set ID) - имя, идентифицирующее сеть 802.11. Чтобы
присоединиться к беспроводной локальной сети, нужно знать ее ESSID.
ETSI (European Telecommunications Standards Institute - Европейский инсти-
тут стандартов телекоммуникаций) - некоммерческая организация, выпускаю-
щая стандарты и правила в области телекоммуникаций для всей Европы.
FHSS (Frequency Hopping Spread Spectrum) - изменение спектра скачкообраз-
ной перестройкой частоты). Один из двух подходов к передаче радиосигнала с из-
меняемым спектром. Характеризуется тем, что несущая частота псевдослучайным
образом «скачет» в пределах определенного диапазона.
Integrity Check Value (ICV - код контроля целостности) - простая контрольная
сумма, вычисляемая для фрейма 802.11 перед началом шифрования по протоколу
WEP.
Internet Key Exchange (IKE - обмен ключами через Internet) - стандартный
протокол управления ключами, обычно применяемый в IPSec.
IR (Intentional Radiator) - радиопередающее устройство с кабелями и разъе-
мами, но без антенн. Определено FCC для реализации ограничений в части излу-
чаемой мощности.
IrDA (Infrared Data Association - Ассоциация передачи данных с помощью ин-
фракрасного оборудования) - некоммерческая ассоциация, предлагающая стан-
дарты в области обеспечения качества и совместной работы оборудования для се-
тей на основе инфракрасных лучей.
ISM (Industrial, Scientific, Medical) - диапазоны частот, разрешенные FCC для
применения в промышленных, научных и медицинских целях без получения ли-
цензии. К этим диапазонам относятся 902-928 МГц, 2,4-2,5 ГГц и 5,725-5,875 ГГц.
Lightweight Directory Access Protocol (LDAP - облегченный протокол службы
каталогов) - протокол, предоставляющий интерфейс для управления и поиска в
каталогах стандарта Х.500.
Little-Endian - метод хранения данных, когда наименее значимый бит хранится
первым.
Management Information Base (MIB - управляемый информационный
блок) - спецификация параметров устройства, записанная с помощью абстракт-
ной синтаксической нотации (Abstract Syntax Notation- ASN). Используется в
протоколе SNMP для мониторинга и оповещения о статусе устройства, а также для
удаленного управления.
MS-CHAP (Microsoft Challenge Handshake Authentication Protocol) - протокол
аутентификации с предварительным согласованием вызова.
4 4 4 Wl-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Point-to-Point Tunneling Protocol (PPTP - двухточечный туннельный прото-


кол) - очень широко распространенный туннельный протокол, запатентованный
Microsoft.
Remote Access Dial-In User Service (RADIUS - служба удаленной аутентифи-
кации пользователей) - многофункциональный протокол и служба аутентифи-
кации, являющиеся стандартом де-факто и имеющие множество реализаций.
TKIP (Temporal Key Integrity Protocol - протокол целостности временных
ключей) - основанный на алгоритме RC4 протокол шифрования, который избав-
лен от многих слабостей оригинального статического протокола WEP. Протокол
TKIP - это необязательная часть стандарта 802.Hi. Он обратно совместим с WEP и
не требует замены оборудования.
Traffic Indication Map (TIM - карта индикации трафика) - поле во фреймах-
маяках стандарта 802.11, используемое для того, чтобы сообщить клиентам в спя-
щем режиме о том, что для них поступили данные.
UNII (Unlicensed National Information Infrastructure - нелицензируемый диа-
пазон для национальной информационной инфраструктуры) - набор частот-
ных диапазонов, одобренный FCC для нелицензируемого использования: 5,15- 5,25,
5,25- 5,35 и 5,725-5,825 ГГц.
WEP (Wired Equivalent Privacy) - в стандарте 802.11 необязательный механизм
обеспечения безопасности, в котором для шифрования трафика в беспроводной
сети применяется алгоритм RC4. Опубликованы и широко известны некоторые
слабости протокола WER
WIDS (IDS для беспроводных сетей) - система обнаружения вторжений, способ-
ная выявлять угрозы безопасности на первом и втором уровнях беспроводной сети.
Wi-Fi (Wireless Fidelity) - процедура сертификации, разработанная организа-
цией Wi-Fi Alliance, которая гарантирует возможность совместной работы раз-
личных продуктов, реализующих стандарт 802.11.
Wi-Fi Alliance - организация, которая сертифицирует пригодность устройств
802.11 для совместной работы и продвигает Wi-FiTM в качестве глобального стан-
дарта совместимости беспроводных сетей.
Активное сканирование - метод, с помощью которого клиентское устройство
обнаруживает беспроводные сети. Состоит в посылке фрейма с пробным запро-
сом и ожидании ответа на этот фрейм, в котором содержатся параметры отвечаю-
щей сети.
Анализатор беспроводных протоколов - анализатор протоколов, способный
вести мониторинг трафика в беспроводной сети (например, с помощью режима
RFM0N) и распознавать протоколы, применяемые на уровне 2 такой сети.
ГЛОССАРИЙ 4 4 5
u
iu__m
j mn-jmm
i A.n
i
Антенна - устройство для передачи и приема радиосигналов. Антенны проекти-
руются для конкретных частотных диапазонов и сильно различаются по форме.
В этой книге рассматриваются главным образом антенны, работающие в диапазо-
нах ISM и UNII.
Атака методом полного перебора - атака путем подбора комбинации имени и
пароля пользователя, основанная на предложении случайных неповторяющихся
строк до тех пор, пока не будут угаданы правильные значения.
Атака на беспроводную сеть путем внедрения трафика - атака на защищен-
ную протоколом WEP беспроводную сеть, основанная на дублировании проходя-
щего трафика и повторной вставке его в сеть или на получении правильных час-
тей гаммы и последующей передачи корректных данных без знания ключа.
Атака на механизм маршрутизации - класс DoS-атак или атак путем перенап-
равления трафика, основанных на модификации маршрутных таблиц на хосте-
жертве. Может быть реализована посредством подделки обновлений, посылаемых
по протоколу маршрутизации, а также с помощью пакетов ICMP типа 5, 9 и 10.
Атака по словарю - атака, имеющая целью подбор имени и пароля пользователя
путем сравнения со словами, взятыми из словаря.
Атака повтора сеанса - атака, основанная на повторном воспроизведении пере-
хваченного ранее сетевого трафика. Отражается за счет правильно реализован-
ных порядковых номеров пакетов.
Атака типа «отказ в обслуживании» (DoS-атака) ~ в этой книге любой вид ата-
ки, которая может привести к останову или зависанию машины либо прекраще-
нию нормальной работы службы, хоста или всей сети.
Атака типа «человек посередине» - активная атака, в ходе которой против-
ник перехватывает и избирательно модифицирует передаваемые данные, пред-
ставляясь одной из общающихся сторон.
Атака типа «человек посередине» на беспроводную сеть - атака путем вклю-
чения мошеннического беспроводного устройства, эксплуатирующего уязвимос-
ти на уровнях 1 и 2.
Аутентификатор - в протоколе 802.1х посредник между сервером аутентифи-
кации, например RADIUS, и претендентом. В беспроводных сетях обычно разме-
щается на точке доступа; в проводных сетях эту функцию могут выполнять вы-
сококлассные коммутаторы.
Аутентификация на основе разделенных ключей - вид аутентификации в
стандарте 802.11, основанный на механизм запрос-ответ с использованием пред-
варительно разделенного WEP-ключа. Не обеспечивает безопасности и в конце
концов будет заменен стандартом 802.1х.
446л Wl-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Базовый набор служб (Basic Service Set - BSS) - базовая сота в сети 802.11, со-
стоящая из одной точки доступа и присоединившихся к ней клиентов.
Беспроводная локальная сеть (WLAN) - в этой книге так называются в основ-
ном сети стандарта 802.11. Конечно, употребление этого термина в таком смысле
правильно лишь отчасти, поскольку существуют и другие беспроводные локаль-
ные сети, но они значительно менее распространены.
Беспроводная распределенная система (WDS) - элемент беспроводной систе-
мы, состоящий из взаимосвязанных базовых наборов служб, которые образуют
расширенный набор служб.
Беспроводной мост - устройство, работающее на канальном уровне и соединяю-
щее проводные локальные сети с помощью беспроводной среды.
Беспроводной шлюз - связное устройство между проводной и беспроводной се-
тями, которое может поддерживать различные функции, в том числе межсетевой
экран, маршрутизатор, качество обслуживания, VPN-концентратор и сервер аутен-
тификации. Можно сказать, что это обогащенная точка доступа.
Вектор инициализации (IV) - дополнительные несекретные двоичные дан-
ные для шифрования известного или предсказуемого открытого текста с це-
лью введения добавочной криптографической изменчивости. Кроме того, век-
торы инициализации используются для синхронизации криптографического
оборудования.
Взломщик - человек, пытающийся преодолеть механизмы защиты сети, хоста или
программы для получения незаконных привилегий.
Виртуальная локальная сеть - способ разделения широковещательных доменов
на канальном уровне с помощью стандарта 802.lq или предложенной компанией
Cisco технологии тегированных ISL-фреймов. Для соединения двух виртуальных
сетей необходим маршрутизатор.
Глубоко эшелонированная оборона - в этой книге подход к обеспечению безо-
пасности сети, основанный на создании защитных механизмов на нескольких
уровнях, не полагаясь на какую-то одну контрмеру, протокол или устройство.
Глушение - преднамеренное внесение помех в беспроводной канал передачи
данных. DoS-атака на уровне 1 против беспроводных сетей.
Демилитаризованная зона (DMZ) - в архитектуре межсетевых экранов область,
отделяющая безопасную внутреннюю локальную сеть от хостов, доступных из
сети общего пользования.
Децибел (дБ) - единица измерения отношения мощностей, применяемая к уси-
лению или ослаблению сигнала.
ГЛОССАРИЙ 447

Закрытый системный ESSID - сокрытие ESSID путем удаления содержащей его


строки из фреймов-маяков и пробных запросов. Как и фильтрация МАС-адресов,
легко обходится решительным противником.
Запрос на передачу (Request to Send - RTS) - тип управляющего фрейма в стан-
дарте 802.11, применяется в механизме обнаружения виртуальной несущей. Если
такой механизм используется в сети 802.11, то станция, желающая отправить дан-
ные, должна предварительно послать фрейм RTS.
Затухание в свободном пространстве - уменьшение амплитуды радиосигнала
из-за рассеивания.
Зона Френеля - упрощенно можно сказать, что это эллиптическая область вок-
руг линии прямой видимости между двумя беспроводными передатчиками. Чтобы
качество сигнала оставалось приемлемым, зона Френеля не должна перекрывать-
ся препятствиями более чем на 20%.
Идентификатор базового набора служб (BSSID) - на практике МАС-адрес бес-
проводной точки доступа. Не путать с ESSID.
Код целостности сообщения (Message Integrity Check - MIC) - алгоритм вычис-
ления НМАС, используемого в стандарте 802.Hi для обеспечения аутентификации
и целостности пакетов.
Код циклической избыточности (Cyclic Redundancy Check - CRC) - основной
математический алгоритм вычисления контрольной суммы для проверки целост-
ности передаваемых данных. Часто вычисляется путем деления длины фрейма на
простое число, легко может быть подделан противником.
Комплект искателя сетей - обычно состоит из ноутбука, антенны, GPS-приемни-
ка и необходимых кабелей и разъемов.
Лепестки - электрические поля, излучаемые антенной.
Методы ЕАР - конкретные механизмы аутентификации, применяемые в протоколе
EAR Наиболее распространены EAP-MD5, EAP-TLS, EAP-TTLS, ЕАР-РЕАР и EAP-LEAP.
Независимая сеть - называется также ad-hoc-сетью или независимым базовым
набором служб (IBSS- Independent Basic Service Set). Это беспроводная сеть, в
которой нет точки доступа, а есть только беспроводные станции.
Обнаружение виртуальной несущей - метод обнаружения несущей, основан-
ный на использовании поля NAV (Network Allocation Vector - вектор выделения
сети) во фреймах 802.11 в качестве таймера для передачи данных. Таймер управ-
ляется по протоколу RTS/CTS.
Обнаружение физической несущей - в этой книге проверка уровня сигнала в
беспроводной сети.
4 4 8 А Wl-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Ортогональное мультиплексирование деления частоты (Orthogonal Frequency


Division Multiplexing - OFDM) - метод кодирования на физическом уровне, заклю-
чающийся в том, что несколько медленных подканалов передачи данных объединя-
ются в один быстрый. Применяется в сетях стандартов 802.11а и 802.llg.
Ослабление - уменьшение амплитуды радиосигнала из-за сопротивления кабе-
лей и разъемов, потерь в свободном пространстве, помех или препятствий на пути
распространения сигнала.
Осмотр места развертывания сети - осмотр местности с целью определения пе-
риметра и свойств зоны радиопокрытия.
Отношение сигнал/шум - сила принятого сигнала за вычетом фонового шума.
Отрицание - ситуация, в которой отправляющая сторона отказывается от факта
отправки сообщения или принимающая - от факта его получения.
Пассивное сканирование - метод, с помощью которого клиентские устройства
обнаруживают беспроводные сети. Заключается в том, что устройство анализиру-
ет трафик в поисках фреймов-маяков.
Переполнение САМ-таблиц - атака, основанная на попытке переполнить САМ-
таблицы коммутатора многочисленными поддельными МАС-адресами с целью за-
ставить коммутатор вести себя как мультиплексор (hub).
Подлог ARP - маскировка под другую машину на уровне 2 путем внедрения в сеть
подложных ARP-пакетов.
Подлог DNS - атака, имеющая целью перенаправить трафик на другую машину,
якобы имеющую запрошенное доменное имя. Достигается путем порчи кэша служ-
бы имен на машине-жертве или компрометации сервера доменных имен (подмена
записи, описывающей доменное имя).
Поляризация - в этой книге физическая ориентация антенны относительно зем-
ли. Может быть горизонтальной или вертикальной.
Пометки на стенах - оставление мелом или краской пометок о присутствии
и характеристиках беспроводных сетей в виде заранее оговоренных, широко
известных пиктограмм. Необязательная альтруистическая помощь искателю
сетей.
Претендент - в протоколе 802.1х клиентское устройство, нуждающееся в аутен-
тификации.
Принцип минимальной осведомленности - общий принцип обеспечения
безопасности, заключающийся в том, что пользователи должны иметь доступ
только к тем ресурсам и данным, которые необходимы для выполнения их фун-
кций в организации.
ГЛОССАРИЙ 449

Проблема «близко/далеко» - проблема, возникающая в беспроводных сетях из-


за того, что хосты, находящиеся близко к точке доступа, забивают своим излуче-
нием удаленные узлы, тем самым отсекая их от сети. Может быть результатом ата-
ки «человек посередине» на уровень 1.
Программная точка доступа - функциональность точки доступа, реализованная
на клиентском оборудовании с помощью средств, включенных в его драйвер.
Протокол RTS/CTS - практическая реализация механизма обнаружения виртуаль-
ной несущей в сетях 802.11. Используется четырехсторонняя процедура квитиро-
вания RTS => CTS => Данные => АСК. Часто протокол RTS/CTS применяется для ре-
шения проблемы скрытого узла.
Протокол доступа к подсетям (Subnetwork Access Protocol - SNAP) - формат
фрейма 802.3, придуманный для обеспечения обратной совместимости с сетями
DIX Ethernet Version II и допускающий применение стандарта Ethertype.
Протокол остовного дерева (Spanning Tree Protocol - STP) - определенный в
стандарте 802.Id протокол уровня 2, позволяющий избежать зацикливания в се-
тях с несколькими коммутаторами и избыточными соединениями.
Разнесенность антенны - применение нескольких антенн с одним приемником
для повышения качества приема сигнала и преодоления некоторых радиофизи-
ческих проблем, например распространения сигнала по нескольким путям.
Разъем типа pigtail - разъем, с помощью которого специфичные для производи-
теля гнезда на беспроводном оборудовании соединяются со стандартными высо-
кочастотными разъемами. Основной источник проблем и сбоев при подготовке
мобильного оборудования к работе.
Рассеивание спектра - метод модуляции, заключающийся в том, чтобы «разма-
зать» мощность сигнала на более широкий, чем необходимо, частотный диапазон
для передачи полезных данных.
Расширенный набор служб (Extended Service Set - ESS) - сеть, состоящая из
взаимосвязанных базовых наборов служб, объединенных общим SSID.
Режим RFM0N - также называется режимом мониторинга. Режим работы клиен-
тского устройства 802.11, в котором можно перехватывать и анализировать фрей-
мы. Используется при атаках на беспроводные сети для пассивного обнаружения
и прослушивания сети. Необходим также для отладки, мониторинга и обнаруже-
ния вторжений в сеть.
Режим с предварительным распределением ключей (Pre-Shared Key - PSK) -
описанный в спецификации WPA режим обеспечения безопасности, основанный
на предварительном размещении ключей на всех хостах, имеющих доступ к бес-
проводной локальной сети. Применяется в тех случаях, когда распределение клю-
чей по протоколу 802.1х невозможно.
4 5 0 А WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Режим экономии энергии (PSM) - режим работы клиентского устройства


802.11, при котором питание на короткие промежутки времени отключается и
устройство пассивно анализирует трафик в поисках фреймов-маяков (в режиме BSS)
или ATIM-фреймов (в режиме IBSS). Если обнаружен маяк с непустым полем TIM или
АТШ-фрейм, то клиент выходит из спящего режима и запрашивает данные. Когда
все ожидающие пакеты получены, клиент снова входит в спящий режим.
Сеть-приманка (honeynet) - реальная или виртуальная сеть, состоящая из хос-
тов-приманок.
Система открытой аутентификации - принятый по умолчанию в стандарте
802.11 метод, согласно которому аутентификационные фреймы должны содержать
один и тот же ESSID. Не обеспечивает безопасности, так как ESSID передается в
открытом виде.
Скриптописатель, или 1337 h4x0r - неквалифицированный хакер, который
пользуется инструментами (часто уже заранее откомпилированными), не пони-
мая, для чего они были написаны и как работают. Часто обладает непомерным
самомнением.
Скрытый узел - беспроводной клиент, который может общаться с точкой досту-
па, но не с другими беспроводными клиентами в той же сети. Из-за наличия скры-
тых узлов возникают многочисленные коллизии и повторные передачи.
Совмещение (co-location) - установка в одной сети нескольких точек доступа с
неперекрывающимися частотными диапазонами. Применяется для увеличения
пропускной способности в беспроводных сетях.
Спектральный анализатор - приемник, способный измерять амплитуды сигна-
лов в выбранных частотных диапазонах. Полезен для обнаружения помех или
глушения в беспроводных сетях.
Список контроля доступа (ACL) - в этой книге механизм управления входящим
и исходящим сетевым трафиком.
Тестирование возможности проникновения - процедура оценки устойчивости
сети к попыткам проникновения извне.
Точка доступа - устройство, обеспечивающее связь на уровне 2, которое предназ-
начено для организации интерфейса между проводной и беспроводной сетью и
управления параметрами беспроводной сети.
Усиление - увеличение амплитуды радиосигнала.
Усилитель - устройство, подающее дополнительный постоянный ток в высокоча-
стотный кабель для повышения коэффициента усиления. Может быть одно- или
двунаправленным с постоянным или переменным усилением.
ГЛОССАРИЙ 451

Фальшивое беспроводное устройство - незаконный передатчик. Часто незакон-


но размещается точка доступа или беспроводной мост, но фальшивым может быть
также скрытое клиентское устройство (например, подключенное к порту USB).
Федеральная комиссия по связи (Federal Communications Commission - FCC) -
независимое правительственное агентство США, подотчетное непосредственно
Конгрессу. FCC регулирует все виды национальной и международной связи.
Федеральный стандарт обработки информации (Federal Information
Processing Standard - FIPS) - стандарты и инструкции, разрабатываемые Нацио-
нальным институтом стандартов и технологий (NIST) для использования прави-
тельственными учреждениями США.
Хакер - в этой книге человек, обожающий программировать и/или разбираться в
сетях, часто проявляющий интерес к информационной безопасности. Устремления
хакера вовсе необязательно направлены на причинение вреда.
Хост-приманка (honeypot) - хост, специально настроенный для того, чтобы его
атаковали взломщики. Основная причина организации хостов-приманок - понять
поведение взломщика, его методы и применяемые им инструменты. Их также при-
меняют для того, чтобы замедлить атаку и отвлечь внимание и силы взломщика.
Часто в приманках оставляют известные бреши в системе безопасности. Обяза-
тельное условие - полная изоляция приманок от внутренней сети.
Хотспот - область, покрытая беспроводной сетью общего пользования. Обычно раз-
мещаются в аэропортах, отелях, кофейнях и аналогичных общественных местах.
Широковещательный SSID - пустое значение в поле идентификатора базового
набора служб в управляющих фреймах 802.11. На практике то же самое, что и
значение Any в поле ESSID. Означает, что к беспроводной сети может присоеди-
ниться любой клиент.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 4 5 3

Аутентификатор В
запроса 293
ответа 292 Взлом WEP
Аутентификация 278, 283 инструменты внедрения трафика
анализ протоколов 184 для ускорения 117, 157
атака с помощью неправильно методом полного перебора 151
сформированных фреймов 179 практические наблюдения 157
атаки на 168 Виртуальные локальные сети и
заполнение буферов 180 безопасность 210
Аутентификация Виртуальные частные сети. См. VPN
пользователей. См. RADIUS Внедрение трафика,
инструменты 117, 129, 157
Вскрытие шифров, инструменты 110
Безопасность 202. См. также атака на системы аутентификации
Криптография 802.1х 118
RADIUS 284, 291 взлом протокола WEP 111
аудит 205 внедрение трафика для ускорения
закрытые ESSID 208 взлома WEP 117, 144
и виртуальные локальные сети 210 извлечение ключей, хранящихся
контрмеры 204 на клиентских хостах 116
модель
Белла-ЛаПадулы 267
Биба 267
Генераторы псевдослучайных чисел,
мониторинг сети и реакция на
PRNG 243
происшествия 205
Гибридное шифрование 280
обновления и регистрация 202
Глобальные сети 20
обучение и прививание
Глушение 178
ответственности пользователям 203
патентованные д
усовершенствования 219
перенаправление портов по Диффи-Хеллмана, система 276
протоколу SSH 208 Достижимость 146
размещение точек доступа 204 Драйверы 53
стандарт 802.1 li 26, 221
физического уровня 204, 205
фильтрация МАС-адресов 208 Закон о полномочиях следствия 28
шлюза 214 Затопление
Безопасность шлюза 214 канала, инструменты 163
Безопасный формат сообщения 278 фреймами с запросом на
Белла-ЛаПадулы, модель систем отсоединение 149, 179
безопасности 267 фреймами с запросом на
Беспроводные мосты для тестирования прекращение сеанса 179
возможности проникновения 161 Затухание в свободном
Биба, модель систем безопасности 267 пространстве 106
4 5 4 WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

И между DES и AES 257


односторонние функции
Инструменты хэширования 268
для взлома WEP потоковые шифры 243
AirSnort 111 структура и режимы работы
Dweputils 113 шифров 233
W e p j o o l s 114, 151 Криптология 229
WepAttack 115
Wepcrack 112 л
для внедрения зашифрованного
Лавинный эффект 235
трафика 130
Люк 275
для генерирования фреймов
AirJack 121 м
FakeAP 126
Мимикрия 231
File2Air 123
Модель ААА 282
Libwlan 124
Модель клиент-сервер
Wnet 129
LDAP 307
К RADIUS 283, 291

Кабели 50 н
Каналы 66
Наборы микросхем 53
затопление 163
выбор 38
Карманные персональные компьютеры,
Национальный институт стандартов
КПК 36
и технологий, NIST 245
Каталоги
Ноутбуки 36
LDAP 306
назначение 306 о
Керчкоффа шифр 237
Клиентские карты Обнаружение сетей
Linux и NetBSD 54 Airfart 92
конфигурирование 71 Airtraf 90
Ключи для шифрования BSD-airtools 102
ключей (КЕК) 275 Gtkscan 92
Коллизия 268 iwlist scan 68
Компиляция ядра 55 Kismet 80
Конструирование сенсоров 385 Mognet 93
Конфигурирование точки доступа на Wellenreiter 89
примере Orinoco AP-2000 304 WifiScanner 94
Криптоанализ 229 активное сканирование 77
Криптография 229 инструменты мониторинга уровня
AES 245 сигнала 106
асимметричная 275 различные сценарии и утилиты 96
введение 228 Обновления маршрута, вставка 198
выбор шифра 263 Одноразовый блокнот 231
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 455

Односторонние функции Протоколы


хэширования 268 маршрутизации, анализ 187
Осмотр места обеспечения живучести шлюзов,
развертывания 76, 107, 140 анализ 187
Открытые исходные тексты 52
Открытый формат сообщения 279
р
Охотники за каналом 31 Радиофизика
п антенны 47
глушение 178
Пакеты инструменты мониторинга уровня
ЕАР 296 сигнала 107
RADIUS кабели и разъемы 50
типы 285 расчет мощности 45
форматы 284 усилители 50
Параметры безопасности 341 Размещение точек доступа
Пароли 204 безопасность 204
Передача данных, анализ открытого фальшивых 160
текста 184
Разъемы 50
Персональная сеть, PAN 22
Распределение ключей 278
Планирование атаки
Расчет мощности 45
выбор времени 142
Режим
изучение онлайновых источников 139
с обратной связью по выходу,
осмотр места развертывания 140
OFB 242
оснащение 137
с обратной связью по шифртексту,
последовательность проведения 144
CFB 242
скрытность 144
экономия заряда аккумуляторов 142 сцепления блоков шифртекста,
Подделка DNS 198 СВС 241, 242
Пометки на стенах 140 счетчика, ССМ 242
Потоковые шифры 243 электронной кодовой книги, ЕСВ 240
Правила фильтрации, проверка 199
Правило
с
владения 267 Самосинхронизация 244
простой безопасности 267 Сервер доступа к сети, NAS 283
целостности 267 Сертификаты, создание 296
Предварительно разделенный ключ, Сетевой трафик, анализ 183
PSK 158, 345 Сжатие IP 344
Претенденты Сигнатуры атак 372, 376
Linux 299 Симметричный блочный шифр 234
Windows 2000 и Windows XP 301 Синхронный потоковый шифр 244
Приманки 28, 147 Системы обнаружения вторжений
Присоединение к точке доступа, анализ 188
заполнение буферов 180 классификация подозрительных
Проводные сети, атаки 195 событий 373
J L

4 5 6 WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

коммерческие для беспроводных Фреймы


сетей 381 анализ 184
конструирование сенсоров 385 с запросом на отсоединение,
на основе базы знаний 372 затопление 149, 179
настройка и конфигурирование 382 с запросом на прекращение сеанса,
сигнатурные 372 затопление 179
сигнатуры атак 372, 376 Функция
Сканирование портов 193 перемешивания пакетного
Сохранение целостности пакета 268 ключа 238
Спам 231 хэширования 268
Стеганография 2 3 1 , 232 X
т Хосты
Таблицы истинности 232 идентификация 191
Тестирование возможности подделка имен 198
проникновения 34 сканирование и эксплуатация
уязвимостей 193
изготовление мостов 161
оснащение 137 ц
скрытность 144
форма отчета 427 Цифровой отпечаток, снятие 191
Трудная задача 275, 277 Цифровые подписи 279
Туннельные протоколы 338 Цифровые сертификаты 345

у ч
Уровень сигнала Черные ходы 231
ограничение 206 ш
средства мониторинга 106
Усилители 50 Шифр Цезаря 229
Утилиты для управления точкой Шифры. См. Криптография
доступа 134 асимметричные 276
Учет 282 выбор 263
структура и режимы работы 233
Ф
э
Фейстеля шифр 237
Физический уровень Эквивалентная изотропно излучаемая
атаки 165, 178 мощность 45
безопасность 203, 205 Эллиптические кривые 277, 279
Фильтрация
МАС-адресов 378
полезность 208
А
преодоление 148
протоколов, Accounting logparser 294
преодоление 150 ADM8211, набор микросхем 43, 53
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 4 5 7

ADMTek, Inc. 43 В
AES 245
MARS 250, 263-265 Banyan Vines 32
RC6 251, 263-265 Berkeley Varitronics Systems 38
Rijndael 247, 263, 265 birthday.pl 199
Serpent 255, 263-265 BKtspidbc 195
Twofish 253, 263-265 Blowfish 258, 263, 272
Agere/Proxim WEPPIus 220 Bluetooth 23
Airconf 136 Broadcom AirForce 44
AirDefense Guard 381 BSD 37, 52
Airfart 92 инструменты обнаружения сетей и
AirlDS 384 протоколирования трафика 102
AirJack 121, 162, 177, 380, 381 как заставить работать клиентскую
AirMagnet карту 54
анализатор протоколов на Java 37 конфигурирование беспроводных
утилита мониторинга 107, 382 клиентских карт 74
Aironet,набормикросхем41, 46, 53, 71 список поддерживаемых карт 59
AiroPeek 53, 108, 382
airosniff 102
с
Airscanner Mobile Sniffer 37 ССМР 225
Airsnarf 167 Certicom and Funk Software 224
AirSnort 111 CHAP 223
Airtraf 90 cIPe 339
AlephOne 172 Cisco, Inc.
ancontrol 54, 74, 417 Centralized Key Management,
Anger 172 CCKM 221
Angst 195 EAP-LEAP 118-120, 168, 224
anwrap.pl 120 Key Integrity Protocol, CKIP 221
AOL Instant Messenger 184 Layer Two Tunneling Protocol,
AP Hopper 187 L2TP 332
ap-mrtg 135 Message Integrity Check, CMIC 221
Ap-trapd 135 SAFE 220
APD 188 Virtual Router Resilience Protocol,
Aphunter 105, 186 VRRP 187
Apple AirPort 136 коммутаторы Catalyst 211, 222
AppleTalk 32 набор микросхем Aironet 4 1 , 46, 53, 71
Apradar 105, 187 Cistron 293
arpmim 195 Compact Flash, CF, карты 36
arpspoof 195 Compaq iPAQ 37
Asleap-imp 119, 168 Cookie 186
Atheros, набор микросхем 42, 53
D
Atmel, набор микросхем 44
attrition.org 197 DachbOden Labs 102, 154, 190
Authentication Header, АН 338, 341 Dead Peer Discovery, DPD 346
4 5 8 WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

DECNet 32 ЕАР-РЕАР 168, 224


DES, Data Encryption Standard EAP-SIM 225
3DES 258, 263 EAP-TLS 168, 224
описание 234 активация 298
Digital Signature Algorithm, DSA 279 основы 295
dinject 129, 179 формат пакета 296
dinject-deauth 148 EAP-TTLS 168, 224
dinject-disas 149 EAPOL 170
Directory Administrator 323 EIGRP 187
disco 192 EIRP 206
dnshijacker 199 Electronic Frontier Foundation, EFF 245
dnsspoof 198 EIGamal 279
DoS-атаки Encapsulating Security Payload,
заполнением буферов точки ESP 338, 3 4 1 , 343
доступа 180 ESSID 24
затоплением фреймами с запросами преодоление закрытых 148
на прекращение сеанса 179 смысл закрытия 208
на физический уровень, глушение 178 Ethereal 82
основанные на особенностях Ettercap 147, 164,188, 193, 195, 197
настройки сети 181
против ЕАР 169 F
против реализаций FakeAP 126
стандарта 8 0 2 . H i 182 fata j a c k 179, 196
путем удаления фреймов 181 F!le2air 123, 149, 179, 182
с помощью поддельных фреймов FMS-атака 112, 152
аутентификации 179 FreeBSD 54, 59
driftnet 185 FreeRADIUS
DriverLoader 44 инсталляция и конфигурирование 286
Dsniff 150 интеграция с 297
webspy 185 FreeS/WAN
DSstumbler 79, 102, 377, 386 (безопасная глобальная сеть) 347
Dwepcrack 114 генерирование
Dwepdump 113 ключей 352
Dwepkeygen 113 сертификата Х.509 353
Dweputils 113 конфигурирование 351
параметры 355, 356
Е сборка 347
ЕАР FTP 184
DoS-атаки 169 FWScrape 200
атаки на системы
G
аутентификации 168
обмен фреймами 223 Generic Routing Encapsulation, GRE 339
ЕАР-АКА 225 Ghost Port Scan 193
EAP-LEAP 118-120, 168, 224 Global Secure Systems 382
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 4 5 9

GNU-radius 294 Intersil, Inc. 38


Google 139 iPAQ 37, 388
GPE Palmtop Environment 37 IPSec Key Exchange and Management
GpsDrive 82, 86 Protocol, ISAKMP 344
GQ Client 314 IPSec, протокол 173
Gtkskan 92 Authentication Header, AH 338, 341
Dead Peer Discovery, DPD 346
H Encapsulating Security Payload,
Hlkari 154 ESP 338, 341
HAVAL 271 FreeS/WAN 347
Hermes, набор микросхем 4 1 , 53, 61 Internet Key Exchange,
HermesAP 165 IKE 338, 341, 344
HMAC 272 Perfect Forward Secrecy, PFS 346
HostAP, драйверы 62, 64, 215, 217 VPN 354
установка и настройка 163 Windows 2000 358
Hot Standby Router Protocol, HSRP 187 атака против 173
HTTP 184 оппортунистическое
Hunt 195, 198 шифрование 347
Hydra 195 основные части 338
параметры безопасности 341
I разработка 340
режимы работы 345
IBM
сжатие IP 344
MARS 250
IPX 32
ПО для тестирования безопасности
IRC 184
сетей 802.11 37
irdaping 22
ICMP 187
IRPAS 187, 196
атаки с перенаправлением 196
Isomair Wireless Sentry 381
ICQ 184
ISS 29
ICRADIUS 294
iwconfig 62, 403
IDEA, International Data Encryption
iwevent 66
Algorithm 260, 263
iwgetid 66
IDS. См. Системы обнаружения
iwlist 66, 67, 410
вторжений IGRP 187
инструменты, в которых применяется
Ike-scan 173
команда scan 106
IKECrack 177
iwpriv 63, 64, 409
IKEProber.pl 173
Iwspy 66
IMAP 184
Immunix 219 J
Infrared Data Association, IrDA,
персональные сети 22 Java Development Kit, JDK 93
InProcomm IPN2220 44 John the Ripper 186, 263
Intel PRO/Wireless (Centrino) 44
Internet Key Exchange,
к
IKE 338, 341, 344 Kerberos, сервисы аутентификации 308
анализаторы пакетов 173 killmon 190
4 6 0 А WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

Kismet 80, 186, 384, 385 Madwifi, драйверы 43, 58


krackerjack 177 MARS, шифр 250, 263-265
MD5 187, 271
L
Mdcrack 186, 187
Layer Two Tunneling Protocol, Microsoft Corp.
L2TP 332, 339 Layer Two Tunneling Protocol, L2TP 339
LDAP, Lightweight Directory Access Protocol MS-CHAP 172
дополнительные инструменты 322 Point-to-Point Tunneling Protocol,
и мобильные пользователи 322 PPTP 172
инструменты миграции 315 MigrationTools 316
конфигурирование OpenLDAP 309 MiniStumbler 77, 377
модель клиентсервер 307 Mognet 93
определение 306 monkeyjack 162
структура каталога 307 MS-CHAP 172
тестирование 313
N
установка OpenLDAP 308
централизованная NAI Sniffer Wireless 53, 108, 382
аутентификация 316 NdisWrapper 44
LDAP Tool 324 Nemesis 187, 198
LdapExplorer 323 Nessus 29, 195, 253
Idapsearch 313 netsed 197
Leap 119 Netstumbler 53, 77, 377, 3 8 1 , 386
Leapcrack 120 Neutrino Distributed 802.11 b Sensor 81
Libradiate 149, 163 NFS, прослушивание трафика 186
Libwlan 124, 149 nmap 193
LIDS 28, 219 NoCat 166, 167, 325
Linux 37, 38, 52 NTP, трафик 188
как заставить карту работать под 54
претенденты 299 О
Linux Wireless Extensions 54, 62, 66 Omen 150
linux-wlan-ng 54 omerta 149, 163
утилиты 68 Open Palmtop Integrated Environment,
Linuxant DriverLoader 44 OPIE 37
LM/NTLMvl, свертки аутентификации OpenBSD 54, 59
в Windows 186 OpenLDAP
Lucent Technologies конфигурирование 309
Orinoco Client Manager 116 установка 308
набор микросхем Hermes 41 OpenRADIUS 294
утилита Reg Crypto 116 OpenVPN 340
Orinoco AP-2000, точка доступа
M
пример конфигурирования 304
macfld.pl 180 Orinoco Gold 220
macof 195 OSPF 187
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 461

р типы пакетов 285, 286


учет 291
pOf 192 уязвимости 292
Packetstorm Security 119 форматы пакетов 284
Packetyzer/Ethereal 53 RadiusContext 294
PADL, Migration Tools 315 RadiusReport 294
passifist 192 RadiusSplit 294
PC-2, функция 237
RC4 237, 244
pcmcia-cs, конфигурирование 55
RC6 251, 263-265
PCMCIA-карты 29
Realtek RTL8180L 44
подставки для 37
Redfang 23
PDAIert 37
reinj 117, 129
pdump 185, 192, 198
Perfect Forward Secrecy, PFS 346 Remote Access Server, RAS 333
Perlskan 101 RFGrabber 81
pGina 319 RFMON, режим мониторинга 54, 55, 65
Pluggable Authentication Module, Rijndael 247, 263
РАМ 317 RIPEMD 271
PocketWarrior 37 RIPv2 187
Point-to-Point Tunneling Protocol, ROT13 229
PPTP 172, 338 RSA, метод шифрования 277
POP 184 RSA Data Security, Inc. 237, 244, 251, 271
Prism, набор микросхем 38, 46, 53, 62 RSA Signature Scheme 279
Prism2ctl 102 RTS/CTS 181, 184
Prism2dump 103
Prismdump 96 s
Prismsnort 96 SAFE220
Satan/San
i t/Sara29
Q
Scanchan98
Q A C a f e 170 Secure Digital, SD, карты 37
Secure Hashing Algorithm, SHA 269
R
SELinux 219
RADIUS, Remote Athentication Senao Long Range 46
Dial-In User Service 169, 222 Sentinel 188
FreeRADIUS Serpent 255, 263-265
интеграция с 297 Sharp Zaurus 37, 82, 388
инсталляция Shmoo Group 4 1 , 111
и конфигурирование 286 Simple Authentication
дополнительные инструменты 293 and Security Layer, SASL 308
модель ААА 282 Sing 196
обзор 282 siphon 192
особенности 283 slapd 308
типы атрибутов 285 Sleepycat Software Berkeley DBv4 308
4 6 2 WI-ФУ: «БОЕВЫЕ» ПРИЕМЫ ВЗЛОМА И ЗАЩИТЫ БЕСПРОВОДНЫХ СЕТЕЙ

smbproxy 197 VPN


Sniffdet 188 cIPe 339
SNMP 184 OpenVPN 340
snmpget 184 VTun 340
snmpset 184 атаки против 172
snmpwalk 184 и туннельные протоколы 338
Soekris, платы 387 назначение 331
Sourceforge 55, 115 причины для развертывания 333
SSH 150 сеть-сеть 333, 356
перенаправление портов 208 типа звезда 336
sshmitm 150, 186 типа сетка 337
sshow 150 топологии 333, 356
SSHvl 186 хост-сеть 334
Ssidsniff 98 хост-хост 335
ST-divine 192
stegtunnel 232 w
Super Sniffer 186 Wavemon 107
sw_mitm 195 Wavesec 123
Symbol, набор микросхем 42 Wavestumbler 98
SYN ACK Labs 232 Web-сайты
Syslog 188 для расчета мощности 45
т для сбора информации о сети 139
Webmitm 150
Taranis195 webspy 185
TCPWrappers308 Wellenreiter 89, 378, 3 8 1 , 386
TexasInstruments, WEP 22, 23
наборы микросхем 44 длина ключа 115
THCrut 191 патентованные
Tiger 271 усовершенствования 219
TIM, Traffic Indication Map, фреймы, средства для извлечения ключей
подделка 181 с клиентских хостов 116
TKIP, Temporal Key Integrity W e p j o o l s 114, 151
Protocol 158, 225 WepAttack 115
Transport Layer Security, TLS, Wepcrack 112
nOpenLDAP 308 Wepwedgie 130
Tripwire 271 Wi-Fi Alliance 222
Twofish 253, 263, 264, 265, 271 wicontrol 54, 74, 412
wIDS 383
V
WIDZ 382
Virtual Router Resilience Protocol, WifiScanner 95
VRRP 187 Windows 2000
Voice over IP, VOIP 186 конфигурирование IPSec-клиента 363
Void 11 149, 163, 179 настройка клиента 358
vomit 186 претенденты 301
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 463

Windows XP
претенденты 301
пробные запросы 386
сервис сканирования сетей 378
Windows, инструменты
на платформе 53, 162
Wireless Access Point Utilities for UNIX 134
Wireless Network Meter 107
Wireless Power Meter для Linux (wpm) 107
Wireless Protected Access, WPA 222
WiSentry 382
Wistumbler 104
wlan-scan 99
wlanjack 179, 196
wlancfg 68
wlanctl-ng 68
WlanFE 71
wlanmeter 107
wlansniff 64
Wnet 129

Xtops 37
XtRADIUS 294
xwconfig 63

YALA 324
YARD RADIUS 294
YellowJacket и YellowJacket Plus 38

ZcomaxXI-325HP 46
ZoomAir Access Point 162

Вам также может понравиться