Текст книги "PGP: Кодирование и шифрование информации с открытым ключом"
Автор книги: Максим Левин
Жанр:
Программное обеспечение
сообщить о нарушении
Текущая страница: 4 (всего у книги 10 страниц)
Краткий справочник команд PGP.
Здесь приведена краткая сводка команд PGP.
Зашифровать текстовый файл с открытым ключом получателя: pgp -е textfile her_userid
Для подписания текстового файла вашим секретным ключом: pgp -s textfile [-u your_userid]
Для подписи текстового файла вашим секретным ключом и, затем, зашифровки его с открытым ключом получателя:
pgp -es textfile her_userid [-u your_userid]
Для шифрования текстового файла стандартным криптографическим методом:
pgp -с textfile
Для расшифровки зашифрованного файла или для проверки целостности подписи подписанного файла:
pgp ciphertextfile [-o plaintextfile]
Для шифрования сообщения, предназначенного для нескольких адресатов:
pgp -е textfile userid1 userid2 userid3
Команды для работы с ключами.
Сгенерировать вашу собственную уникальную пару секретный/открытый ключи: pgp -kg
Для того, чтобы добавить содержимое файла открытого или секретного ключа в ваш каталог открытых или секретных ключей:
pgp –ka keyfile [keyring]
Для извлечения (копирования) ключа из каталога ключей: pgp –kx userid keyfile [keyring]
или: pgp –kxa userid keyfile [keyring]
Для просмотра оглавления каталога открытых ключей: pgp –kv[v] [userid] [keyring]
Для просмотра "отпечатка пальца" открытого ключа, чтобы помочь вам удостовериться в его истинности по телефону в разговоре с владельцем ключа:
pgp -kvc [userid] [keyring]
Для просмотра оглавления и проверки удостоверяющих подписей в вашем каталоге открытых ключей:
pgp -kc [userid] [keyring]
Для редактирования идентификатора пользователя или фразы пароля для вашего секретного ключа:
pgp -ke userid [keyring]
Для редактирования параметров доверия для открытого ключа:
pgp – ke userid [keyring]
Удалить ключ или только идентификатор пользователя из вашего каталога открытых ключей:
pgp – kr userid [keyring]
Для подписи и удостоверения чьего-либо открытого ключа в вашем каталоге открытых ключей:
pgp –ks her_userid [-u your_userid] [keyring]
Для удаления выбранных подписей из идентификатора пользователя каталога ключей:
pgp –krs userid [keyring]
Для постоянной отмены вашего собственного ключа с помощью выпуска удостоверения отмены:
pgp –kd your_userid
Для отмены или восстановления открытого ключа в вашем каталоге открытых ключей:
pgp –kd userid
Сложные команды.
Для дешифровки сообщения, оставляя подпись на нем нетронутой:
pgp –d ciphertextfile
Для создания удостоверяющей подписи отдельно от документа:
pgp –sb textfile [-u your_userid]
Для отделения удостоверяющей подписи от подписанного сообщения:
pgp –b ciphertextfile
Опции команд, которые могут использоваться в комбинации с другими опциями.
Для получения зашифрованного файла в формате ASCII Radix-64 добавьте опцию -а при шифровании или подписании сообщения или извлечения ключа:
pgp –sea textfile her_userid
или: pgp –kxa userid keyfile [keyring]
Для полного удаления оригинального текстового файла после создания зашифрованного файла просто добавьте опцию –w (wipe) при шифровании или подписании сообщения:
pgp –sew her_userid message.txt
Для указания того, что что текстовый файл содержит текст ASCII, а не двоичный, и должен быть преобразован в локальный текстовый файл получателя, добавьте опцию -t (text) к другим:
pgp –seat message.txt her_userid
Для просмотра выводимого расшифрованного текста на вашем экране (подобно команде "more" в Unix), без записи его в файл, используют опцию -m (more) при расшифровке:
pgp –m ciphertextfile
Для задания возможности просмотра распакованного текста ТОЛЬКО на экране без возможности записи на диск, добавьте опцию -m:
pgp –steam her_userid message.txt
Для восстановления оригинального имени файла в процессе дешифровки, добавьте опцию -р:
pgp –p ciphertextfile
Для использования режима фильтра (как в Unix), читая из стандартного потока ввода и записывая в стандартный поток вывода, добавим опцию -f:
pgp –feast her_userid
Philip Zimmermann.
Philip Zimmermann – инженер-консультант по разработке программного обеспечения с 18-летним стажем, специализируется в сложных системах реального времени, криптографии, идентификации и передаче данных. Его опыт включает разработку и внедрение идентификационных систем для финансовых информационных сетей, защиты данных в сетях, протоколов управления ключами, сложных многозадачных систем реального времени, операционных систем и локальных компьютерных сетей.
Zimmermann также предлагает разработку на заказ версий криптографических и идентификационных продуктов и реализаций публичного ключа, таких, как NIST DSS, а также поддержку разработанных продуктов. Адрес его консультационной фирмы:
Boulder Software Engineering
3021 Eleventh Street
Boulder, Colorado 80304 USA
Телефон 303-541-0140 (голос или факс)
Internet: [email protected]
Благодарности.
Я хотел бы поблагодарить следующих людей за их содействие созданию Pretty Good Privacy. Хотя я и был автором PGP версии 1.0, основные части последующих версий были выполнены усилиями многих людей из разных стран под моим общим руководством.
Branko Lankester, Hal Finney и Peter Gutmann пожертвовали огромным количеством времени для расширения возможностей PGP 2.0 и переноса ее в Unix. Hal и Branko приложили просто героические усилия для реализации моих новых протоколов управления ключами. Branko пожертвовал времени больше, нежели кто-либо другой.
Hugh Kennedy перенес PGP в систему VAX/VMS, Lutz Frank – на Atari ST, а Cor Bosman и Colin Plumb – на Commodore Amiga.
Перевод PGP на другие языки был выполнен: Jean-loup Gailly во Франции, Armando Ramos в Испании, Felipe Rodriquez Svensson и Branko Lanlester в Нидерландах, Miguel Angel Gallardo в Испании, Hugh Kennedy и Lutz Frank в Германии, David Vincenzetti в Италии, Harry Bush и Maris Gabalins в Латвии, Zygimantas Cepaitis в Литве, Peter Suchkow и Andrew Chernov в России и Александр Смишалев перевел ее на эсперанто. Peter Gutmann предложил перевести PGP на английский язык Новой Зеландии, но, в конце концов, мы решили, что можно будет получить PGP с английским языком США.
Jean-loup Gailly, Mark Adler и Richard B. Wales опубликовали код сжатия ZIP и предоставили разрешение на включение его в PGP. Ron Rivest разработал и опубликовал для свободного использования (public domain) подпрограммы MD5. Шифр IDEA(tm) был разработан Xuejia Lai и James L. Massey из ЕТН в Zurich , и используется в PGP с разрешения Ascom-Tech AG.
Charlie Merritt научил нас как использовать хорошую арифметику высок й точности для криптографии с открытым ключом, а Jimmy Upton пожертвовал нам алгоритм более быстрого умножения по модулю. Thad Smith реализовал еще более быстый алгоритм. Zhahai Steward принес много полезных идей относительно форматов файлов PGP и других вещей, включая идею наличия более, чем одного идентификатора пользователя для ключа.
Я услышал идею относительно поручителей от Whit Diffie. Kelly Goen провел всю основную работу для первоначальной электронной публикации PGP 1.0.
Различные усилия по созданию кода приложили также Colin Plumb, Derek Atkins и Castor Fu. Помогли нам также Hugh Miller, Eric Hughes, Tim May, Stephan Neuhaus, и многие другие. В процессе реализации находятся два проекта переноса PGP на Macintosh.
С момента выхода версии 2.0 многие программисты присылали поправки и исправления ошибок, вносили исправления на других системах компьютеров. Их слишком много, чтобы выразить благодарность каждому индивидуально.
Процесс развития PGP преобразовался в примечательный социальный феномен, чья уникальная политическая привлекательность вдохновляет на совместные усилия все большее число программистов-добровольцев.
Проект русификации PGP 5.0
Ряд правительств серьезно наказывает своих граждан за использование шифрованных коммуникаций. В некоторых странах вас даже могут за это расстрелять. Но если вы живете в такой стране, возможно, PGP вам тем более пригодится.
PGP 5.0: Быстрый старт.
Если вы используете PGP в первый раз, сначала вам нужно сгенерировать пару ключей, выбрав в меню Keys программы PGPkeys пункт New Кеу. Как правило, вам удастся сделать это автоматически через Помощник генерации ключа. Затем вам нужно будет послать открытый ключ другому пользователю. Для этого перетащите мышью ключ из главного окна PGPkeys в окно почтового сообщения. После этого пользователь, который получил ваш ключ, сможет шифровать направляемую вам почту. Чтобы посылать зашифрованные письма ему, вам потребуется получить его открытый ключ. Подписывать письма вы можете и без отправки своего открытого ключа другим пользователям, но тогда никто не сможет проверить вашу подпись. Вы также можете отправить свой открытый ключ на публично доступный сервер ключей, с которого этот ключ смогут получить другие пользователи.
Ключи Diffie-Hellman/DSS могут осложнить коммуникацию с пользователями ранних версий PGP. Diffie-Hellman/DSS – это новый тип ключей, являющийся по крайней мере столь же надежным, что и ключи RSA той же длины. Однако, ключи DH/DSS не поддерживаются более ранними версиями PGP, что означает, невозможность обмена зашифрованной почтой с пользователями, которые еще не перешли к использованию версии 5.0 или выше. Использование ключей DH/DSS значительно сокращает время, необходимое для шифрования и расшифровки.
Импорт файлов с ключами из ранних версий PGP. Ваши файлы с ключами должны быть скопированы в папку установки PGP 5.0 при выполнении установки. Чтобы импортировать другие файлы с ключами, лучше всего физически заместить файлы с ключами по умолчанию "pubring.pkr" и "secring.pkr" вашими старыми файлами "pubring.pgp" и "secring.pgp" в то время, когда PGP не запущена. При этом, информация о приписанных ключам степенях доверия сохраняется. Другой способ – это просто перетащить старые файлы с ключами из окна Проводника (Explorer) в главное окно PGP или выбрать пункт Import... из меню Keys программы PGPkeys. При использовании этого способа информация о доверии не будет перенесена, так как если вы получили файл с открытыми ключами от кого-то другого, информация о его степени доверия к ним вам ни к чему. Если у вас на связке несколько закрытых ключей, вам нужно использовать команду Set Default из меню Keys программы PGPkeys, чтобы указать ключ, который при подписи других ключей, а также сообщений, будет использоваться по умолчанию.
Чтобы послать свой открытый ключ другому пользователю, просто переместите его мышью в любое текстовое окно, или отправьте его на сервер ключей, а затем попросите своих друзей подгрузить его, используя PGP 5.0 или браузер. Обычным является включение URL, указывающего на ключ, в стандартную подпись ваших сообщений. Такой URL выглядит следующим образом:
Конечно, вам нужно заменить идентификатор ключа, которым заканчивается URL (0x27272727) на идентификатор вашего собственного ключа. Узнать идентификатор своего ключа вы можете, выбрав этот ключ в главном окне PGPkeys и использовав пункт Properties меню Keys этой программы.
Прием "Переместить и оставить" работает почти везде. Вы можете переместить ключи, идентификатор пользователя, подписи непосредственно на поверхность рабочего стола, перемещать идентификаторы пользователей из списка идентификаторов в список получателей и т.п.
Чтобы подписать ключ, выделите его и выберите пункт Sing из меню Keys в PGPkeys. Вы можете затем указать степень доверия, с которой вы относитесь к данному ключу, щелкнув на нем правой кнопкой мыши и выбрав из контекстного меню пункт Кеу Properties. Если вы укажете, что степень доверия к этому ключу является "полной" ("Complete"), другие ключи, подписанные его владельцем, будут считаться действительными.
Чтобы отозвать ключ, выделите его и выберите пункт Revoke из меню Keys в PGPkeys.
Имейте в виду, что новый интерфейс делает возможными многие вещи, которые раньше не были возможны (или занимали слишком много времени). Это включает подписывание одновременно нескольких ключей. Для этого, выделите все ключи, которые хотите подписать, и выберите Sing из меню Keys. Вы также можете удалять идентификаторы пользователя с ключей, удалять подписи, использовать перетаскивание мышкой для импорта связок ключей, на ходу управлять доверием и действительностью ключей.
Ответы на часто задаваемые вопросы.
• Сколько дискового пространства необходимо для успешной установки PGP 5.0 на компьютере?
– Для успешной установки вам понадобится 15 МВ.
• Что обозначают различные значки в PGP Keys?
– Один золотой ключ обозначает открытый ключ [из пары], сгенерированной по технологии DSS/Diffie-Hellman. Пара синих ключей обозначает вашу пару, состоящую из секретного и открытого ключей, сгенерированную по технологии RSA. Один синий ключ обозначает открытый ключ [из пары], сгенерированной по технологии RSA. Когда ключ или пара ключей изображены бледным цветом, это значит, что они временно недоступны для использования при шифровании и формировании подписей. Ключ, перечеркнутый красной линией, обозначает отозванный ключ.
• Как мне импортировать и экспортировать ключи с сервера ключей?
– Для того, чтобы экспортировать открытый ключ со своей связки на сервер ключей:
Откройте PGP Keys
Щелкните на [нужном] ключе правой кнопкой мыши
Выберите опцию Keyserver
Щелкните на пункте меню Send Selected Кеу
Для того, чтобы импортировать ключ с сервера:
Откройте PGP Keys
Откройте меню Keys
Выберите опцию Keyserver
Введите почтовый адрес или идентификатор ключа, который вы хотите найти.
• Где располагаются plug-ins в Eudora/Exchange?
– Соответствующие кнопки, появляются, когда вы читаете сообщение или составляете новое сообщение.
• Как мне распространить мой открытый ключ?
– Предпочтительным способом является помещение вашего открытого ключа на сервер ключей. PGP 5.0 может делать это автоматически во время создания ключа. Вы также можете щелкнуть на ключе правой кнопкой мыши, выбрать Keyserver и щелкнуть на Send Selected Кеу. Чтобы отправить [открытый] ключ кому-нибудь по почте, переместите ключ с помощью мыши из PGPКеуs в окно почтового сообщения.
• Я получил чей-либо [открытый] ключ по почте. Как мне добавить его на свою связку ключей?
– Если вы используете [в качестве почтовой программы] MS Exchange или Eudora, вы можете щелкнуть мышью на кнопке Extract PGP Кеу(s) from Email Message. Если вы используете другую почтовую программу, скопируйте фрагмент текста, содержащий ключ, в буфер обмена, затем перейдите в окно PGP keys и выберите из меню Edit пункт Paste. [Добавленный] ключ будет показан в виде значка в окне PGP keys.
• Как мне зашифровать, расшифровать, подписать или проверить подпись файла, используя Проводник?
– Щелкните правой кнопкой мыши на файле, выберите PGP, затем щелкните на операции, которую хотите выполнить.
• Я не использую Exchange, Outlook, или Eudora, как мне зашифровать или подписать почтовое сообщение?
– После того, как вы набрали текст сообщения, скопируйте его в буфер обмена, затем выберите PGPtray в системном меню, далее выберите Encrypt Clipboard, Sing Clipboard или Encrypt and Sing Clipboard. [Далее, вернитесь в окно почтовой программы и вставьте содержимое буфера обмена в текст сообщения].
• Я не использую Exchange, Outlook, или Eudora, как мне расшифровать зашифрованное сообщение или проверить подписанное сообщение?
– Скопируйте содержимое сообщения в буфер обмена, выберите PGPtray в системном меню, далее выберите Decrypt/Verify Clipboard.
• Могу ли я использовать в PGP 5.0 ключи, созданные в более ранних версиях PGP?
– Да. Вы можете перетащить мышью старые связки ключей в [окно] PGPkeys, или [в Проводнике] два раза щелкнуть мышью на файле со старой связкой ключей.
• Совместима ли PGP for Personal Privacy 5.0 с предыдущими версиями PGP?
– PGP 5.0 полностью совместима с предыдущими версиями PGP. Некоторые из предыдущих версий должны быть немного модернизированы (файлы модернизации доступны с нашего сервера) для улучшения совместимости с новыми типами ключей. Использование в версии 5.0 ключей, сгенерированных по технологии DSS/Diffie-Hellman ограничивают обратную совместимость, так как пользователь более ранней версии не сможет проверить вашу подпись, и будет не в состоянии [использовать ваш сгенерированный по этой технологии ключ] для шифровки направляемых вам сообщений. Пользователям, которые продолжают использовать старые версии PGP, мы рекомендуем провести бесплатную модернизацию до версий PGPmail 4.5.1 и PGPmail 4.0.1 для улучшения совместимости. Модернизация же до версии 5.0 обеспечит полную совместимость со всеми релизами PGP и предоставит все преимущества новых ключей, генерируемых по технологии DSS/Diffie-Hellman keys.
• Как признаки валидности и доверия перенести с моих [существующих] ключей, сгенерированных по технологии RSA на ключи, сгенерированные по технологии Diffie-Hellman?
– Признаки валидности и доверия действующего ключа RSA будут автоматически перенесены на ключ Diffie-Hellman при подписи ключа DH ключом RSA если оба ключа обладают одним идентификатором пользователя и находятся на одной связке.
• Почему в PGP включен дополнительный механизм DSS/Diffie-Hellman?
– Дополнительный механизм DSS/Diffie-Hellman включен для обеспечения гибкости системы в будущем, а также потому, что позволяет значительно улучшить производительность системы.
• Что такое PGP/MIME и когда он используется?
– PGP/MIME представляет собой стандарт IETF, который позволяет пользователям PGP автоматически шифровать и подписывать приложения при отправке почтовых сообщений, кроме того, PGP/MIME предоставляет пользователям более удобный интерфейс. При получении сообщения в формате PGP/MIME тело сообщения заменяется иконкой, показывающей, было ли сообщение зашифровано и/или подписано. При двойном щелчке мышью, будет расшифровано сообщение или проверена подпись. ВАЖНО: формат PGP/MIME следует использовать только при обмене сообщениями с пользователями PGP версии 5.0 или более поздних.
Пользователи более ранних версий могут столкнуться с проблемами при расшифровке или поверке подписи сообщений в формате PGP/MIME.
• Существует ли режим plug-in для Microsoft`s Outlook Express?
– В настоящее время PGP не работает в режиме plug-in с Outlook Express, поскольку программа этот режим не поддерживает.
• Что представляет собой "MessageID" в сообщениях, зашифрованных PGP?
– MessageID (идентификатор) использовался много лет назад во времена BBS и FIDOnet. Некоторые почтовые системы этого типа не могли обрабатывать длинные сообщения и PGP снабжалась дополнительной способность разбивать сообщения на части. MessageID позволял PGP снова склеивать разбитые на дробные части сообщения в правильном порядке при получении сообщения. В настоящее время это средство не имеет применения.
• Почему ключи PGP 5.0 настолько длиннее ключей PGP 2.6.2?
– Создаваемый по умолчанию открытый ключ PGP 5.0 на самом деле включает два открытых ключа: ключ DSS для формирования подписи и ключ Diffie-Hellman для шифрования. Кроме этого, в PGP 5.0 компонент Diffie-Hellman может быть в два раза длиннее ключа максимальной длины в версии 2.6.2.
• Как мне проверить целостность двоичных файлов PGP 5.0, которые я получил?
– Все распространяемые PGP Inc. файлы, содержащие криптографические программы, подписаны с помощью корпоративного ключа PGP Inc., так что каждый пользователь может проверить, не были ли эти файлы модифицированы после того, как их подписали. Эти подписи содержатся в директории "signatures", вложенной в директорию, в которую вы установили PGP 5.0. [Открытый] корпоративный ключ находится на связке, распространяемой вместе с PGP 5.0. Такие подписи называются "отделенными" ("detached signatures"), поскольку они размещаются в отдельных от подписываемых файлов файлах. Для проверки целостности включенных в состав PGP 5.0 двоичных файлов перейдите в директорию "signatures" и щелкните правой кнопкой по подписи. Выберите из контекстного меню PGP -> Verify Signature. Появится диалог, запрашивающий у вас имя файла, который вы хотите проверить (файла, соответствующего данной подписи). Обратитесь к списку файлов, приведенному ниже, для того, чтобы определить, где находится соответствующий файл. Например, щелкните правой кнопкой мыши на файле PGPkeys.exe.sig и выберите PGP -> Verify Signature из появившегося контекстного меню. В открывшемся окне диалога перейдите в директорию PGP 5.0 и выберите файл PGPKeys.ехе, который соответствует отделенной подписи PGPkeys.exe.sig. Нажмите кнопку Open.
Повторите эту операцию с каждым файлом для проверки их целостности.
Имейте в виду, что некоторые файлы (например, .dll) находятся в других директориях, так что для определения нахождения файлов обращайтесь к списку, приведенному ниже.
PGPkeys.exe -> директория, в которую установлена PGP 5.0
PGPtray.exe -> директория, в которую установлена PGP 5.0
PGPks.dll -> WindowsSystem PGPwctx.dll -> WindowsSystem PGPcmdig.dll -> WindowsSystem PGPRecip.dll -> WindowsSystem PGP.dll -> WindowsSystem Simple.dll -> WindowsSystem Bn.dll -> WindowsSystem Keydb.dll -> WindowsSystem PGPExch.dll -> PGPplugin.dll -> Eudoraplugins
В случае, когда имеются основания предполагать возможность модификации двоичных файлов, входящих в поставку PGP 5.0, недобросовестным посредником, предлагаемая авторами документа процедура проверки целостности не является удовлетворительной. Если недобросовестный посредник модифицировал файлы, входящие в поставку, он также мог сгенерировать фальшивую пару ключей с идентификатором, совпадающим с идентификатором ключа PGP Inc. Пользователю, подозревающему, что имеющаяся у него копия поставки PGP 5.0 является модифицированной недобросовестным посредником, в качестве первой меры рекомендуется удалить открытый ключ PGP Inc., содержащийся на связке, входящей в поставку, и получить заведомо аутентичную копию ключа, например, с сервера www.pgp.com или с сервера ключей.
Это позволяет лишь снизить риск, но не решает проблему определения целостности файлов в общем виде, т.к. модифицированная злоумышленником программа может заведомо некорректно выполнять процедуру проверки подписи.