Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Краткая теория. Криптография с несимметричным (открытым ключом)



Лабораторная работа № 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; Прочитано: 249 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...