![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Лабораторная работа № 2
Криптография с несимметричным (открытым ключом).
Цель: Знакомство с пакетами прикладных программ систем криптографической защиты информации (СКЗИ) на примере PGP (Pretty Good Privacy – довольно хорошая конфиденциальность).
Отчёт: Отчёт по лабораторной работе должен содержать:
1. цель работы;
2. постановка задачу;
3. алгоритм действий (по шагам);
4. полученные в результате работы файлы (ключи и пр.).
5. Ответы на контрольные вопросы с пояснениями где это необходимо
Краткая теория
При пересылке между двумя удаленными пользователями сообщение обычно преодолевает по пути десяток других машин. Любая из них может читать "и записывать проходящую через нее почту. Конфиденциальности не существует, что бы ни думали об этом многие пользователи. Тем не менее, многие пользователи желали бы иметь возможность посылать электронную почту так, чтобы ее мог прочитать только тот, для кого она предназначается, и никто другой: ни шеф, ни хакеры, ни даже правительство. Эта потребность стимулировала применение некоторыми группами и отдельными разработчиками криптографических принципов к электронной почте. Целью данной работы является ознакомление с широко распространенной системой защиты электронной почты PGP. Дополнительную информацию см. в (Kaufman и др., 2002; Schneier, 1995).
Система PGP (Pretty Good Privacy — довольно хорошая конфиденциальность), создана всего одним человеком, Филом Циммерманом (Phil Zimmermann, 1995a, 1995b). Циммерман является сторонником безопасности в сетях, и его девиз таков: «Если конфиденциальность объявлена вне закона, значит, пользоваться ею будут только нарушители закона». Выпущенная в 1991 году система PGP представляет собой полный пакет для электронной почты, обеспечивающий конфиденциальность, аутентификацию, цифровые подписи и сжатие. Все это делается в легкой и удобной форме. Более того, полный пакет, включающий все исходные тексты программ, свободно распространяется через Интернет. Благодаря своему качеству, цене (нулевой) и простоте установки на различных платформах, включая UNIX, Linux, Windows и Mac OS, в настоящее время система PGP получила широкое распространение.
PGP кодирует данные с помощью блочного шифра IDEA (International Data Encryption Algorithm — международный алгоритм шифрования данных), использующего 128-разрядные ключи. Он был изобретен в Швейцарии в те времена, когда DES уже считался устаревшим, a AES еще не был придуман. Концептуально IDEA похож на DES/AES: производится смешивание разрядов в серии, однако детали реализации функций отличают его от DES и AES. Управление ключами происходит с помощью RSA, а для задач обеспечения целостности данных применяется MD5. Все эти методы изучаются в лекционном курсе либо выдаются на самостоятельное изучение.
История создания системы PGP весьма запутана с первого дня ее существования (Levy, 1993). Поскольку она свободно распространялась через Интернет, правительство США объявило, что Циммерман нарушил закон, запрещающий экспорт военного имущества. Следствие по этому делу длилось пять лет, однако в один прекрасный день прекратилось по двум основным причинам. Во-первых, Циммерман собственноручно не выкладывал PGP в Интернете, и адвокат аргументировал позицию защиты тем, что обвиняемый сам никогда не занимался экспортом чего бы то ни было (кроме того, еще надо доказать, что создание сайта равносильно экспорту). Во-вторых, правительство вдруг осознало, что выигрыш дела означал бы, что любой веб-сайт, содержащий загружаемые программы, связанные с секретностью, подпадает под действие закона о торговле такими предметами, как танки, подводные лодки, военные самолеты и ядерное оружие. Этим можно было бы добиться лишь одного: бурного протеста общественности. Это не решение проблемы.
Честно говоря, законы, касающиеся экспорта, кажутся несколько диковатыми. Правительство решило, что размещение программы на веб-странице можно приравнять к нелегальному экспорту, и надоедало Циммерману целых 5 лет. С другой стороны, если кто-то опубликует в книге полный исходный код PGP на языке С (крупным шрифтом, да еще и с контрольной суммой в конце каждой страницы, что облегчит сканирование) и затем займется экспортом этой книги, правительство и глазом не моргнет: книги по закону не являются военным имуществом. Оружие сильней пера в законе дяди Сэма.
Еще одна проблема, с которой внезапно столкнулась PGP, была связана с посягательством на патентные права. Владелец патента на RSA, корпорация RSA Security, сослалась на то, что использование метода RSA в PGP является посягательством на патент. Эта проблема разрешилась в версиях, начиная с 2.6, вместо RSA в PGP стали применять IDEA, что поначалу тоже вызывало некоторые вопросы.
Так как PGP — это система с открытым исходным кодом, появилось множество модификаций, созданных различными группами и отдельными заинтересованными лицами. Некоторые из них пытались каким-то образом обойти законы об экспорте оружия, другие старались избежать применения запатентованных алгоритмов, а третьи работали над превращением PGP в коммерческий продукт с закрытым исходным кодом. Несмотря на то, что законы об экспорте оружия несколько смягчились (тем не менее, продукцию, использующую AES, до сих пор нельзя экспортировать за пределы США), а срок действия патента RSA закончился в сентябре 2000 года, следствием всех этих проблем стало появление и распространение нескольких несовместимых версий PGP, имеющих разные названия. Далее обсуждается классический вариант PGP, он же является самым старым и простым. Еще одна популярная версия, Open PGP, описана в RFC 2440. Можно отметить еще GNU Privacy Guard.
В системе PGP намеренно используются уже существующие криптографические алгоритмы, а не изобретаются новые. Все они прошли тщательную проверку ведущими криптоаналитиками мира, и история создания этих алгоритмов не запятнана участием каких-либо государственных организаций, пытающихся их ослабить. Последнее качество является особенно большим преимуществом для всех, кто склонен не доверять правительству.
Система PGP поддерживает сжатие текста, секретность и цифровые подписи, а также предоставляет исчерпывающие средства управления ключами. Как ни странно, не поддерживаются средства электронной почты. Она больше всего похожа на препроцессор, берущий на входе открытый текст и создающий на выходе шифр base64. Разумеется, эти выходные данные можно отправить по электронной почте. Некоторые реализации на последнем шаге обращаются к пользовательскому агенту, чтобы упростить задачу реальной отправки сообщения.
Чтобы понять, как работает система PGP, рассмотрим пример на рис. 1. Алиса хочет надежным способом послать Бобу открытым текстом подписанное сообщение Р. У Алисы и у Боба есть закрытый (Dx) и открытый (DY) RSA-ключи. Предположим, что каждому из них известен открытый ключ другого. Способы передачи ключей мы рассмотрим позднее.
Алиса начинает с того, что запускает на своем компьютере программу PGP. Программа PGP сначала хэширует ее сообщение Р с помощью алгоритма MD5, а затем шифрует полученный хэш-код при помощи ее закрытого RSA-ключа DA. Получив это сообщение, Боб может расшифровать хэш-код открытым ключом Алисы и убедиться в его правильности. Даже если какой-либо злоумышленник мог получить хэш на этой стадии и расшифровать его известным открытым ключом Алисы, сила алгоритма MD5 гарантирует невозможность создания другого сообщения с тем же хэш-кодом (из-за трудоемкости вычислений).
Рис. 1 Использование системы PGP для передачи сообщения
Затем зашифрованный хэш-код и оригинальное сообщение объединяются в единое сообщение P1, которое сжимается с помощью программы ZIP, использующей алгоритм Зива—Лемпеля (Ziv—Lempel, 1977). Будем называть результат этого этапа P1.Z.
Затем программа PGP предлагает Алисе ввести случайную текстовую строку. При формировании 128-разрядного ключа сообщения Км для алгоритма IDEA учитываются как содержимое, так и скорость ввода. (В PGP-литературе этот ключ назван сеансовым, что является неправильным употреблением термина, так как никакого сеанса нет.) Затем P1.Z шифруется алгоритмом IDEA с помощью ключа Км в режиме шифрованной обратной связи. Кроме того, ключ Км шифруется открытым ключом Боба, E в. Эти два компонента объединяются и преобразуются в кодировку Base64. Получающееся в результате сообщение содержит только буквы, цифры и символы +, * и =, что означает, что это сообщение может быть помещено в тело письма стандарта RFC 822(электронная почта интернет), и можно надеяться, что оно прибудет к получателю без изменений.
Получив сообщение, Боб выполняет обратное преобразование Base64 и расшифровывает IDEA-ключ своим закрытым RSA-ключом. С помощью IDEA-ключа он расшифровывает сообщение и получает P1.Z. Распаковав zip-файл, Боб отделяет зашифрованный хэш-код от открытого текста и расшифровывает его открытым ключом Алисы. Если в результате обработки открытого текста алгоритмом MD5 получается тот же самый хэш-код, это означает, что сообщение Р действительно пришло от Алисы.
Следует отметить, что алгоритм RSA используется здесь только в двух местах: для зашифровки 128-разрядного MD5-хэша и 128-разрядного IDEA-ключа. Алгоритм RSA медленный, но ему нужно зашифровать всего лишь 256 бит, что совсем немного. Более того, все эти 256 бит в высшей степени случайны, поэтому злоумышленнику придется очень сильно попотеть, чтобы угадать ключ. Основное шифрование выполняется алгоритмом IDEA, который на порядок быстрее, чем RSA. Итак, система PGP обеспечивает секретность, сжатие и цифровую подпись, и делает это намного эффективнее, чем многие другие схемы.
Система PGP поддерживает четыре длины ключа RSA. Пользователь может самостоятельно выбирать нужную длину. Предлагаются следующие варианты длины:
1. Несерьезная (384 бит): шифр может быть взломан сегодня же организациями с большим бюджетом.
2. Коммерческая (512 бит): возможно, шифр смогут взломать организации из трех букв.
3. Военная (1024 бит): никто на Земле не сможет взломать этот шифр.
4. Межпланетная (2048 бит): никто во всей вселенной не сможет взломать шифр.
Поскольку алгоритм RSA используется только для двух небольших вычислений, всем следует всегда применять ключи межпланетного варианта, длиной 2048 бит.
Формат PGP-сообщения показан на рис. 2. Сообщение состоит из трех частей: области ключа, области подписи и области сообщения. Область ключа, помимо самого IDEA-ключа, содержит также идентификатор ключа, так как пользователям разрешено иметь несколько открытых ключей.
Рис. 2 PGP-сообщение
Область подписи содержит заголовок, который нас сейчас не интересует. За заголовком следует временной штамп, идентификатор открытого ключа отправителя, с помощью которого получатель сможет расшифровать хэш-код, используемый в качестве подписи. Следом идет идентификатор использованных алгоритмов шифрования и хеширования (чтобы можно было пользоваться, например, MD6 или RSA2, когда они будут разработаны). Последним в области подписи располагается сам зашифрованный хэш-код.
Часть сообщения также содержит заголовок, имя файла по умолчанию, на случай, если получатель будет сохранять принятое сообщение на диске, временной штамп создания сообщения и, наконец, само сообщение.
Работе с ключами в системе PGP было уделено особенное внимание, так как это ахиллесова пята всех систем защиты. У каждого пользователя локально находится две структуры данных: набор закрытых ключей и набор открытых ключей (эти наборы иногда называют связками). Связка закрытых ключей содержит несколько личных пар ключей, состоящих из закрытого и открытого ключей. Несколько пар ключей поддерживаются, чтобы позволить пользователям периодически их менять, когда возникают опасения, что тот или иной ключ скомпрометирован. При этом для смены ключа не требуется принимать каких-либо экстренных мер по передаче нового ключа. У каждой пары ключей есть связанный с ней идентификатор, так что отправителю нужно всего лишь сообщить получателю, которым открытым ключом был зашифрован ключ сообщения. Идентификатор сообщения состоит из младших 64 разрядов открытого ключа. За отсутствие конфликтов между идентификаторами ключей отвечают сами пользователи.
Закрытые ключи на диске зашифрованы специальным паролем (произвольной длины), защищающем их от кражи.
Связка открытых ключей содержит открытые ключи корреспондентов пользователей. Они нужны для зашифровки ключей сообщений, связанных с каждым сообщением. Каждая запись набора открытых ключей содержит не только ключ, но также его 64-разрядный идентификатор и отметку, указывающую степень доверия пользователя этому ключу.
Степень доверия ключу зависит, например, от способа его получения. Предположим, что открытые ключи расположены на электронных досках объявлений (BBS). Злоумышленник может атаковать доску объявлений и подменить размещенный там открытый ключ Боба своим ключом. Когда Алиса попытается воспользоваться подмененным ключом, злоумышленник сможет применить к Бобу атаку типа «человек посередине».
Чтобы предотвратить подобные атаки или хотя бы минимизировать их ущерб, Алисе необходимо знать, насколько она может доверять открытому ключу Боба, хранящемуся в ее наборе открытых ключей. Если Боб лично дал ей дискету с ключом, она может поставить такому ключу максимальную степень доверия. В этом и заключается децентрализованный, контролируемый пользователем подход к управлению открытыми ключами, отличающий PGP от централизованной схемы PKI.
Однако на практике открытые ключи часто получают, опрашивая доверенный сервер ключей. По этой причине после стандартизации Х.509 система PGP стала поддерживать сертификаты наряду с традиционным для PGP механизмом связки открытых ключей. Все современные версии PGP имеют поддержку Х.509.
Дата публикования: 2015-02-18; Прочитано: 258 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!