Система PGP — мировой стандарт доступности

Много лет назад проблема защиты частной жизни граждан не стояла так уж остро, в связи с тем, что вмешаться в личную жизнь было технически достаточно трудно (труд этот был, как мы можем сейчас сказать, не автоматизирован). В настоящее вре­мя благодаря развитию информационных технологий компьютеры могут делать то, что не всегда могут делать люди, в частности, искать в речевых или текстовых фраг­ментах определенные ключевые фразы. И не только это. Теперь стало гораздо легче перехватывать информацию, особенно в сети Internet, которая общедоступна и содер­жит множество точек, где сообщения можно перехватить. Организации и фирмы, ко­торые могут себе позволить тратить крупные средства на защиту своей информации, применяют сложные дорогостоящие системы шифрования, строят свои службы безо­пасности, используют специальные технические средства и т.п.

Алгоритмы шифрования реализуются программными или аппаратными средства­ми. Существует великое множество чисто программных реализаций различных алго­ритмов. Из-за своей дешевизны (некоторые из них и вовсе распространяются бесплат­но), а также высокого быстродействия процессоров, простоты работы и безотказности они вполне конкурентоспособны. В этой связи нельзя не упомянуть программный пакет PGP (Pretty Good Privacy), в котором комплексно решены практически все проблемы защиты передаваемой информации. Благодаря PGP рядовые граждане могут доста­точно надежно защищать свою информацию, причем с минимальными затратами.

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

Программа PGP разработана в 1991 году Филиппом Зиммерманом (Philip Zimmermann). В ней применены сжатие данных перед шифрованием, мощное управление ключами, вычисление контрольной функции для цифровой подписи, надежная генерация ключей.

В основе работы PGP лежат сразу два криптоалгоритма — обычный алгоритм шиф­рования с закрытым ключом и алгоритм шифрования с открытым ключом (рис. 4.21).

Зачем это нужно? Алгоритм шифрования с закрытым ключом требует защищенного канала для передачи этого самого ключа (ведь одним и тем же ключом можно как зашифровать, так и расшифровать сообщение). Система с открытым ключом позволя­ет распространять ключ для зашифровки сообщения совершенно свободно (это и есть открытый ключ), однако расшифровать сообщение можно при помощи второго, зак­рытого ключа, который хранится только у пользователя. Более того, это справедливо и в обратную сторону — расшифровать сообщение, зашифрованное закрытым клю­чом, можно только при помощи открытого ключа. Недостатком данного алгоритма является крайне низкая скорость его выполнения.

Однако при шифровании сообщения в PGP оба эти ограничения обойдены доста­точно оригинальным способом. Вначале генерируется случайным образом ключ для алгоритма с закрытым ключом (кстати, в качестве такого алгоритма используется очень стойкий алгоритм IDEA). Ключ этот генерируется только на один сеанс, причем та­ким образом, что повторная генерация того же самого ключа практически невозмож­на. После зашифровки сообщения к нему прибавляется еще один блок, в котором со­держится данный случайный ключ, но уже зашифрованный при помощи открытого ключа алгоритма с открытым ключом RSA. Таким образом, для расшифровки необхо­димо и достаточно знать закрытый ключ RSA.

Для пользователя все это выглядит гораздо проще: он может зашифровать сообще­ние общедоступным открытым ключом и отправить это сообщение владельцу закры­того ключа. И только этот владелец и никто иной сможет прочесть сообщение. При этом программа PGP работает очень быстро. Как же она это делает?

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

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

Расшифровка происходит в обратной последовательности. Программа PGP полу­чателя сообщения использует закрытый ключ получателя для извлечения временного сессионного ключа, с помощью которого программа затем дешифрует текст.

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

Ключи, используемые программой, хранятся на жестком диске компьютера в за­шифрованном состоянии в виде двух файлов, называемых кольцами (keyrings): одного для открытых ключей, а другого — для закрытых. В течение работы с программой PGP открытые ключи корреспондентов вносятся в открытые кольца. Закрытые ключи хранятся в закрытом кольце. Если вы потеряли закрытое кольцо, то не сможете рас­шифровать информацию, зашифрованную с помощью ключей, находящихся в этом кольце.

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

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

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

– напрямую в почтовой программе (самый удобный);

– через копирование текста в буфер обмена Windows;

– через шифрование всего файла, который затем прикрепляется к сообщению.

Программа PGP предназначена, в первую очередь, для защиты электронной по­чты, хотя ее можно использовать и для защиты файлов на жестком диске. Особенно привлекательными чертами PGP являются многочисленные plug-ins для таких попу­лярных почтовых программ, как Eudora, Netscape и Outlook. Plug-ins настраивают PGP для этих программ и дополняют их некоторыми приятными мелочами, например, до­полнительными кнопками на панели инструментов. Пиктограмма в правом нижнем углу (tray), всплывающая панель инструментов (floating toolbox) и меню правой кноп­ки мыши (right-click menu) в PGP очень логичны и удобны, поэтому она проста в уп­равлении.

Можно столкнуться с системой защиты PGP в программе Nuts & Bolts фирмы Helix Software. Это та же программа, только PGP — более новой версии. Компания Network Associates поглотила Helix и завладела правами на продукт. Новая версия PGP for Personal Privacy совместима с предыдущими версиями, в том числе Nuts & Bolts.

Рекомендуется использовать связку популярной почтовой программы The Bat! (за­одно поддержав производителей отечественного программного обеспечения) и PGP. Безусловным достоинством этой программы является то, что она позволяет использо­вать как внешнюю программу PGP (то есть оригинальную, непосредственно от разра­ботчиков), так и установить специальное дополнение к программе, дающее возмож­ность работать с PGP (основанное на популярной библиотеке SSLeay). Все основные возможности PGP поддерживаются в полной мере и достаточно просты в употребле­нии.

Заметим, что PGP позволяет шифровать сообщение и составлять электронную подпись (ее еще часто называют сигнатурой или PGP-сигнатурой). Если с шифровани­ем все достаточно понятно, то сигнатура нуждается в дополнительном пояснении. Все дело в том, что сообщение может быть не только прочтено, но и модифицировано. Для установки факта целостности сообщения вычисляется дайджест сообщения — аналог контрольной суммы, но более надежный в силу его уникальности.

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

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

В настоящий момент программа доступна на платформах UNIX, DOS, Macintosh и VAX. Пакет программ PGP свободно распространяется по Internet для некоммерчес­ких пользователей вместе с 75-страничным справочным руководством.

Однако следует сразу предупредить пользователей, что система PGP не сертифи­цирована для применения в Российской Федерации. Поэтому следует избегать ее ис­пользования в государственных организациях, коммерческих банках и т. п. Но для личного пользования граждан она является великолепным средством защиты от пося­гательств на свою частную жизнь.