Шрифт:
Интервал:
Закладка:
Илл. 8.44. Генерация сеансового ключа «рукопожатием» в 802.11i
В последних двух сообщениях AP выдает клиенту общий ключ KG, и клиент подтверждает его получение. Это позволяет AP удостовериться, что у клиента есть верные ключи сеанса, а клиенту — что они есть у AP. Общий ключ используется для передачи трафика по 802.11 LAN. Поскольку в результате «рукопожатия» оказывается, что у каждого клиента есть свои ключи шифрования, ни один из этих ключей не может быть использован AP для передачи пакетов всем клиентам беспроводной сети. Можно было бы отправить отдельную копию со своим ключом каждому клиенту. Вместо этого используется общий ключ, так что широковещательный трафик может быть передан один раз и получен всеми клиентами. Этот ключ должен обновляться по мере того, как клиенты уходят из сети и присоединяются к ней.
Наконец, мы подходим к той части, где ключи действительно применяются для обеспечения безопасности. Чтобы добиться конфиденциальности, целостности и аутентификации, в 802.11i могут использоваться два протокола. Один из них, протокол целостности временного ключа (Temporary Key Integrity Protocol, TKIP) был временным решением (как и WPA). Он был разработан для повышения безопасности старых и медленных карт 802.11, это была хоть какая-то защита (лучше, чем WEP), доступная после обновления прошивки. Однако TKIP тоже был взломан, поэтому сегодня рекомендуется использовать протокол CCMP. Эта аббревиатура означает «Counter mode with Cipher block chaining message authentification code protocol» — «режим счетчика с протоколом аутентификации в режиме сцепления обратной связи». Мы будем использовать сокращение CCMP, а вы называйте его как угодно.
Принцип действия CCMP достаточно прост. Он использует шифрование AES с помощью ключа и блоков размером 128 бит. Ключ выводится из ключа сеанса. Чтобы обеспечить конфиденциальность, сообщения зашифровываются с помощью AES в режиме счетчика. Режимы шифров (см. раздел 8.2.3) предотвращают шифрование одних и тех же сообщений в одинаковые наборы битов. Режим счетчика внедряет счетчик в процесс шифрования сообщения. Чтобы обеспечить целостность, сообщение (включая поля заголовков) кодируется шифром в режиме обратной связи, и последний блок из 128 бит сохраняется как MIC. Затем и сообщение (закодированное в режиме счетчика), и MIC отсылаются. Как клиент, так и AP могут выполнять это шифрование или проверять его при получении беспроводного пакета. В случае многоадресных или широковещательных сообщений применяется групповой ключ.
8.11. Безопасность электронной почты
Во время переписки двух удаленных пользователей сообщения обычно проходят на своем пути через десяток других компьютеров. Любой из компьютеров может читать и записывать проходящую через него почту. Вопреки распространенному мнению, конфиденциальности не существует. Тем не менее многие пользователи хотели бы отправлять электронные письма так, чтобы их мог прочитать только непосредственный адресат и никто другой: ни начальство, ни даже правительство. Это заставило некоторых разработчиков (как отдельных представителей сообщества, так и группы) применить к электронной почте криптографические принципы, изученные нами ранее. В следующих разделах мы обсудим популярную систему защиты электронной почты PGP, а также дадим общее представление о системе S/MIME.
8.11.1. PGP
Система PGP (Pretty Good Privacy — «неплохая конфиденциальность») была создана всего одним человеком, Филом Циммерманом (Phil Zimmermann, 1995), активным сторонником конфиденциальности в интернете и автором фразы «Если конфиденциальность объявить вне закона, она будет доступна лишь преступникам». Выпущенная в 1991 году система PGP представляет собой полный пакет безопасности электронной почты, обеспечивающий конфиденциальность, аутентификацию, цифровые подписи и сжатие. Этот пакет удобен в использовании, содержит все исходные тексты программ и свободно распространяется в интернете. На сегодняшний день PGP широко используется благодаря своему качеству, стоимости (нулевой) и доступности на различных платформах (включая UNIX, Linux, Windows и Mac OS).
Изначально PGP кодировала данные с помощью блочного шифра IDEA (International Data Encryption Algorithm — международный алгоритм шифрования данных), использующего ключи длиной 128 бит. Он был изобретен в Швейцарии в те времена, когда DES уже считался устаревшим, а AES еще не был придуман. Концептуально IDEA похож на DES и AES: в нем производится перемешивание битов в последовательности циклов, однако детали реализации функций отличаются от этих алгоритмов. Позже в качестве алгоритма шифрования был предложен AES, и теперь эта схема является общепринятой.
С первого же дня своего существования система PGP столкнулась с серьезными проблемами (Леви; Levy, 1993). Поскольку Циммерман никак не препятствовал распространению PGP в интернете, правительство США обвинило его в нарушении закона о запрете экспорта военного имущества. Следствие по этому делу длилось пять лет, но в один прекрасный день прекратилось — вероятно, по двум причинам. Во-первых, Циммерман не выкладывал PGP в сеть собственноручно. Его адвокат аргументировал позицию защиты тем, что обвиняемый никогда не занимался экспортом чего бы то ни было сам (а то, что создание сайта равносильно экспорту, еще нужно доказать). Во-вторых, со временем власти поняли следующее: для победы в суде пришлось бы убедить присяжных в том, что любой сайт, содержащий доступную для скачивания программу, связанную с конфиденциальностью, подпадает под действие закона о контрабанде оружия (то есть танков, подводных лодок, военных самолетов и ядерных боеголовок). Годы негативного освещения в СМИ также не пошли делу на пользу.
Вообще, существующие правила экспорта, мягко говоря, странные. Правительство решило, что размещение программы на веб-странице можно приравнять к нелегальному экспорту, и преследовало Циммермана по этому поводу целых пять лет. Однако если кто-то опубликует книгу с полным исходным кодом PGP на языке С (крупным шрифтом, да еще и с контрольной суммой на каждой странице для облегчения сканирования) и займется ее экспортом, государство и глазом не моргнет: книги по закону не являются военным имуществом. Вопреки известной пословице45, в США порой сильнее меч, а не перо.
Еще одна проблема, с которой внезапно столкнулась система PGP, была связана с нарушением патентных прав. Корпорация RSA Security (владелец патента на RSA) заявила, что использование алгоритма RSA в PGP является посягательством на патент. Эта проблема разрешилась в последующих версиях, начиная с 2.6. Кроме того, в PGP использовался другой запатентованный алгоритм, IDEA, что поначалу тоже вызывало некоторые вопросы.
Так как PGP — это бесплатная система с открытым исходным кодом, различные группы и отдельные разработчики выпустили множество ее модификаций. Одни пытались обойти законы об экспорте оружия, другие — избежать применения запатентованных алгоритмов, а третьи работали над превращением PGP в коммерческий продукт с закрытым исходным кодом. Позже законы об экспорте оружия несколько смягчились (тем не менее продукцию, использующую AES, до сих пор нельзя поставлять за пределы США), а срок действия патента RSA закончился в сентябре 2000 года.