PGP: Кодирование и шифрование информации с открытым ключом - Левин Максим
Для обеспечения защиты и аутентификации могут использоваться оба процесса, как кодирование, так и подпись. Сначала документ подписывается нашим закрытым ключом и затем кодируется с помощью открытого ключа получателя.
По получении сообщения получатель выполняет шаги в обратном порядке, сначала декодируя документ своим закрытым ключом и потом проверяя нашу подпись нашим открытым ключом.
Все эти процессы могут быть автоматизированы, это мы покажем позднее.
Открытый ключ хранится в так называемом сертификате ключа, который является самим открытым ключом вместе с именем владельца и датой его создания.
Закрытый ключ защищен паролем, который предотвращает его несанкционированное использование.
Оба ключа хранятся в файле, известном как кольцо ключей, в котором также хранятся различные сертификаты ключей. Обычно есть кольцо для открытых ключей и кольцо для закрытых.
Ключи имеют внутренний идентификатор ключа, который состоит из 64 последних бит ключа. При отображении информации о ключе на самом деле показываются последние 32 бита ключа. Эти идентификаторы ключа используются PGP, например, для определения ключа при декодировании сообщения.
При подписывании документа PGP формирует 128 бит, которые представляют документ. Эта подпись является своего рода контрольной суммой, или CRC, которая позволяет обнаружить изменения в документе. В отличие от обычных CRC или контрольных сумм, никто не может заново создать эту подпись, чтобы узаконить любые изменения исходного документа. Подпись создается при помощи закрытого ключа отправителя и тот, кто хочет внести изменения, не имеет к нему доступа.
Версии PGP.
Теперь, когда вы знаете, для чего нужен PGP, вы наверняка захотите им воспользоваться.
На этом этапе необходимо еще раз сказать о большой путанице, окружающей различные версии PGP. В виду политики Соединенных Штатов в отношении экспорта криптографического материала, появились несколько версий PGP, вместе с несколькими законами по их использованию. Я постараюсь прояснить всю эту неразбериху и перечислю различные версии, существующие на сегодняшний день.
PGP 2.3a
Это "классический" PGP. Его все еще можно использовать, хотя из-за несовместимости могут возникнуть некоторые проблемы при обработке ключей и сообщений, созданными версиями 2.6.x и более поздними, использующими ключи длиннее 1280 бит. Предполагается, что версия 2.3a не может использоваться за пределами США из-за патентных ограничений.
PGP 2.6ui
Это неофициальная версия PGP 2.3a, которая устраняет указанные выше проблемы несовместимости. Эта версия не является версией 2.6.x так как она базируется на исходных кодах 2.3a.
PGP 2.62ui
Она основана на исходных кодах 2.6ui и является модификацией, в которой попытались достичь совместимости с последними нововведениями, появившимися в версиях 2.6.x.
MIT PGP 2.6.2
Это последняя официальная версия PGP. Ее сообщения можно прочитать предыдущими версиями до 2.5 и она использует библиотеку кодирования RSAREF. Экспортировать эту версию за пределы США незаконно, но, что любопытно, если она экспортирована, то ее можно свободно использовать.
PGP 2.6.3i
Основана на исходных кодах MIT PGP 2.6.2, которые были модифицированы для международного использования. В частности, не используется упомянутая выше библиотека кодирования RSAREF. Использование этой версии в США незаконно.
PGP 5.0
PGP 5.0 (ранее известная как PGP 3.0) является абсолютно новой версией PGP. Ее исходные коды были написаны абсолютно независимо. Добавлены новые опции, включая поддержку других криптографических алгоритмов, помимо RSA и IDEA. В нее входит графический пользовательский интерфейс для упрощения ее использования. Эта версия будет доступна в середине лета.
ViaCrypt PGP 2.7.1 v 4.0
Так как она является коммерческой, в поставку входит руководство и лицензия на личное использование. Исходные коды в поставку не входят.
PGP 4.5 и 5.0
В июне 1996 PGP Inc. купила ViaCrypt и начала разработку коммерческих версий PGP для Соединенных Штатов и Канады. Самой последней версией является PGPMail 4.5.
Необходимо также учитывать, что в некоторых странах, например во Франции, Иране, Ираке, России и Китае, использование криптографии регулируется законодательством или запрещено.
Некоторые ссылки для различных дистрибутивов Linux.
Бинарные файлы в формате ELF:
tonelli.sns.it/pub/Linux/pgp263.is.bin.tgz
Бинарные файлы и исходные коды для Red Hat:
ftp.replay.com/pub/replay/ub/redhat/i386/pgp-2.6.3i-1.i386.rpm
ftp.replay.com/pub/replay/ub/redhat/SRPMS/pgp-2.6.3i-1.src.rpm
Исходные коды:
ftp.dit.upm.es/mirror/ftp.ifi.uio.no/pub/pgp/src/pgp263is.tar.gz
Установка PGP.
Предположим, вы раздобыли PGP. Также предположим, что вы загрузили исходный код версии 2.6.3i и что на вашем жестком диске находится файл pgp263is.tar.gz
Первым шагом будет создать каталог для исходных кодов:
mkdir pgp
Далее разворачиваем архив:
tar –C:/pgp –xzvf pgp263is.tar.gz
Теперь переходим в только что созданный каталог:
cd pgp
Теперь разворачиваем файл pgp263ii.tar, в котором находится документация и исходный код программы. Это выполняется командой:
tar –xvf pgp263ii.tar
Сейчас вы готовы к компиляции PGP. Если вы загрузили не исходный код, а скомпилированную версию (а.out или ELF), вы можете пропустить этот этап. Если вы подготовили исходный код, то компиляция выполняется следующими командами:
cd scr
make linux
Если все прошло хорошо, то makefile создаст исполняемый файл pgp. В случае глобальной установки вы можете скопировать его в /usr/local/bin, /usr/bin или куда пожелаете. Или вы можете оставить его в вашем домашнем каталоге.
Аналогично, файл справки pgp.1 копируется в /usr/man/man1 в случае глобальной установки.
Основная конфигурация.
По умолчанию PGP ищет кольца ключей и некоторые конфигурационные файлы в каталоге ~/.pgp, поэтому первым шагом мы создадим этот каталог в нашем НОМЕ:
cd
mkdir.pgp
Обратимся к дистрибутиву и найдем файл config.txt, который отвечает за конфигурацию некоторых аспектов PGP. Чтобы у вас была личная конфигурация, вы должны скопировать этот файл в ваш только что созданный ~/.pgp.
Или, вместо ~/.pgp/ config.txt, вы можете переименовать его в .pgprc и сохранить в вашем домашнем каталоге, то есть ~/.pgprc.
Среди прочего, этот файл может определять используемый язык при помощи параметра Languaje, возможные варианты:
Languaje = en (Английский)
Languaje = es (Испанский)
Languaje = ja (Японский)
В этом файле есть другие параметры. Чтобы воспользоваться преимуществами этой опции, вы должны скопировать файл Languaje.txt в ~/.pgp
Далее рекомендуется скопировать персонализированный файл справки на вашем языке в ~/.pgp. В случае испано-говорящих пользователей можно скопировать файл es.hlp.
Создание пары ключей.
Чтобы начать использовать PGP, нужно создать вашу собственную пару ключей (открытый/закрытый). Чтобы это сделать, выполните команду:
pgp -kg
Вас попросят выбрать максимальный размер ключа (512, 768 или 1024 байта), чем больше ключ, тем более надежным он будет, правда ценой небольшого снижения быстродействия.