PGP: Кодирование и шифрование информации с открытым ключом. - Максим Левин
Шрифт:
Интервал:
Закладка:
Для удобства работы PGP группирует ключи в keyring (каталоги), таким образом, Вы можете иметь у себя на машине только два файла (кроме системных PGP): каталог секретных ключей и каталог общих ключей. Причем последний можно получить на нашем сервере. И вообще, программа очень неплохо эргономически построена, несмотря на интерфейс командной строки. Все вещи делаются за один присест. А для обработки пришедшего файла (что бы там ни было: подпись, ключ, письмо зашифрованное) достаточно просто дать команду "pgp file_name" — и она сама в нем разберется и разложит все новые ключи и подписи по местам.
Еще одно — весьма важное — свойство PGP: она очень неплохо делает ASCII armour. Вам сие действие должно быть знакомо: UUкодирование файлов в эху, да-да. Вкратце: Вы берете любой файл (текстовый, двоичный) и кодируете его так, чтобы в результате получились только символы первой половины таблички ASCII. Это необходимо при пересылке файлов в эхах и нетмэйлом (ну, и Е-mail`ом). Так вот, PGP это делает с одновременной упаковкой (по алгоритму ZIP, лицензия была предоставлена разработчикам), так что файлы получаются меньше, чем у UUENCODE/UUDECODE, к тому же их не надо предварительно архивировать. Таким образом можно пересылать и тексты и программы, естественно. PGP может файл зашифровать, а может и не зашифровывать, подпись может быть добавлена в сообщение, а может быть послана отдельно. Ну, и, разумеется, зашифрованные файлы и подпись могут быть созданы в виде двоичных файлов.
Приложения.
Краткий путеводитель по миру PGP.
Начиная с 1991 года аббревиатура PGP стала своеобразным символом. Во-первых, она обозначает определенное семейство продуктов (в основном, разработанных Филипом Зиммерманном, или под его руководством). Во-вторых, она ассоциируется с бескомпромиссным подходом к стойкости криптографии для массового использования, применением определенных алгоритмов, протоколов и форматов, прошедших долгую практическую проверку в сетях публичного пользования. В-третьих, она указывает на де-факто стандарт шифрования и цифровой подписи для электронной почты, который, вероятно, вскоре станет официальным стандартом Интернета.
Продукты.
За семь лет триумфального шествия PGP были созданы десятки программ, в той или иной степени использующие компоненты технологии PGP, или согласованных с ней. Описать или даже перечислить их в одной статье не представляется возможным, поэтому здесь представлены лишь важнейшие продукты.
PGP 2.х.х и ее расширения.
PGP 2 — это "классическая" PGP. С помощью команд строчного интерфейса ее пользователь может выполнять все базовые криптографические функции, а именно:
• генерацию пары из закрытого/открытого ключа;
• шифрование файла с помощью открытого ключа любого пользователя PGP (в том числе своего);
• расшифровку файла с помощью своего закрытого ключа;
• наложение цифровой подписи с помощью своего закрытого ключа на файл (аутентификация файла) или на открытый ключ другого пользователя (сертификация ключа);
• проверку (верификацию) своей подписи или подписи другого пользователя с помощью его открытого ключа.
Награды PGP.
1997 "Crossroads 98 A-List Award" (единственный промышленный приз, вручаемый компанией Open System Advisor Inc. на основании опроса пользователей, использующих продукт в критическом контексте).
1996 "Приз за качество в информационных технологиях" от PS Week.
1996 "Лучший продукт для защиты" от Network Computing.
1996 Вторая премия за "Лучший Интернет-продукт" от Network Computing.
1995 "Один из 10 самых важных продуктов 1994 г." от Information Week.
1995 Крайслеровская премия "За инновацию в разработках".
Справка: Начиная с 1994 г., только с сервера MIT подгружается по 500—1000 копий PGP в день. Общее количество установленных копий всех версий оценивается в 2—5 млн.
Награды Фила Зиммермана.
1996 Премия Норберта Винера от CPSR ("Компьютерные профессионалы за социальную ответственность").
1995 Приз "За личные достижения" от Internet World.
1995 Приз "Pioneer Award" от Фонда электронных рубежей (EFF).
Простейшие функции управления "связками ключей".
Кроме того, PGP 2 реализует простейшие функции управления "связками ключей", включая добавление и удаление ключа со связки, возможность гибкой настройки параметров, а также встроенные функции сжатия исходного открытого текста по алгоритму ZIP и кодирования шифровки в формате RADIX-64, позволяющем пересылать сообщения по 7-битным каналам, не прибегая к дополнительному армированию (uuencode и пр.)
В качестве криптоалгоритма с открытым ключом (как для шифрования, так и для наложения подписи) в этой версии был использован RSA, в качестве алгоритма хеширования файла для наложения — MD5, а в качестве симметричного криптоалгоритма — IDEA. Популярность PGP имела своей обратной стороной то, что фирмы, претендующие на обладание патентами на эти алгоритмы (RSA Data Security Inc., США, — на первые два, и Ascom-Systec, Швейцария, — на третий) засыпали Зиммерманна судебными исками. История многочисленных обращений в суд, соглашений, отзывов и повторной подачи исков могла бы составить тему отдельного исследования.
Конечно, на популярность PGP очень сильно повлияли косвенные обстоятельства, такие, как попытки преследования Зиммерманна властями (косвенная аттестация качества программы спецслужбами), тяжбы с RSA и Ascom-Systec (привлекшие внимание всех тех, кто обеспокоен распространением "прав интеллектуальной собственности" на алгоритмы) и, наконец, бесплатное ее распространение.
Однако этих обстоятельств было бы недостаточно, чтобы сделать PGP 2 де-факто криптографическим стандартом для электронной почты, удерживать внимание пользователей в течение почти семи лет (своеобразный рекорд для всей компьютерной отрасли) и оставить позади всех конкурентов.
Суть заключается не в этом, а, как ни странно, в том, что Зиммерманн написал хорошую программу. С самого начала PGP соответствовала всем требованиям, предъявляемым гражданскими криптологами к криптографическому программному обеспечению, а именно:
• использование проверенных алгоритмов, выдержавших попытки взлома в течение достаточного времени;
• длина ключей, достаточная, чтобы исключить снижение безопасности в результате увеличения вычислительных ресурсов потенциальных оппонентов (удваивающихся каждый год, согласно закону Мура) в течение длительного периода времени (512-битные и длиннее ключи PGP 2.6 считаются относительно безопасными и сегодня);
• локальная генерация и локальный менеджмент ключей, исключающие их попадание в чужие руки;
• гибкая схема удостоверения действительности ключей, допускающая как распределенное управление доверием ("сеть доверия"), так и централизованную архитектуру сертификации;
• и, наконец, открытость и доступность для проверки и критики не только алгоритмических решений и форматов файлов, но и исходного текста самой программы.
PGP очень хорошо документирована. В отличие от большинства программных продуктов, документированы не только достоинства и сильные стороны программы, но также и уязвимые места; соответствующая глава сохранилась и в документации на коммерческие версии.
Все это очень высоко подняло планку качества для криптографических продуктов, и хотя за последние годы были предложены десятки альтернативных программ, ни одной из них не удалось приблизиться по количеству используемых копий к PGP 2. И сегодня эта версия конкурирует лишь с другими версиями PGP и ее клонами.
Позднее была построена версия PGP 2.6.31 ("международный релиз"), не использующая библиотеку RSAREF (это бесплатно распространяемая RSA Inc., то есть, американского производства, библиотека криптографических функций, примененная в версиях PGP начиная с 2.5).
Ресурсы и документация PGP 2.6 переведены на два десятка языков. Русскую локализацию PGP выполнил Андрей Чернов, а первый том "Руководства пользователя" переведен на русский Петром Сучковым.
Изначально ориентированная на массовых пользователей MS-DOS и Unix, PGP 2.6 была затем перенесена и на другие платформы, включая OS/2, MacOS, BeOS и даже Amiga и Atari. Доступ ко всем этим вариантам программы, к исходным текстам, а также к русским ресурсам можно получить со страниц "Русского Альбома PGP".
Недостатками этой версии принято считать неразвитость механизма управления связками ключей (они хранятся в виде простых последовательностей в файлах, и работа со связками, состоящими из сотен и тысяч ключей становится невыносимо медленной), ограниченный набор использованных в ней криптографических алгоритмов и ограничение на длину ключа. С распространением графических пользовательских интерфейсов (ГПИ) ОС и оболочек, а также почтовых программ, использующих ГПИ, консольный интерфейс PGP 2 стал преградой на пути приобщения к криптографии массового пользователя — тех, на кого, собственно, и была рассчитана программа.