Максим Левин - 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 байта), чем больше ключ, тем более надежным он будет, правда ценой небольшого снижения быстродействия.
После выбора размера ключа вас попросят задать идентификатор открытого ключа. Обычно здесь люди указывают свои имена или e-mail адрес. В моем случае, я написал:
Angel Lopez Gonzalez <[email protected]>
Далее идет пароль, который будет защищать ваш закрытый ключ. Выберите фразу, которую вы легко сможете запомнить. Это необходимо для защиты закрытого ключа. Например, если кто-нибудь украдет его, он будет бесполезен без пароля.
Наконец, программа попросит вас в произвольном порядке нажать несколько клавиш на клавиатуре, чтобы она могла создать последовательность случайных чисел. Программа задает последовательность бит на основе интервалов между нажатиями клавиш.
Через несколько секунд PGP создаст ключи и известит вас об этом сообщением. После того, как ключи были сгенерированы должным образом, их необходимо сохранить в каталоге ~/.pgp в виде файлов: pubring.pgp и secring.pgp
Первый, pubring.pgp, является кольцом с открытым ключом. На данный момент в нем хранится только ваш ключ.
Второй, secring.pgp является, как вы можете понять, кольцом закрытых ключей, на данный момент в нем содержится только ваш закрытый ключ.
Необходимо помнить, что безопасность методов открытого ключа опирается на безопасность закрытого ключа; поэтому, обязательно храните его в надежном месте и следите за тем, чтобы никто не смог его получить из кольца закрытых ключей. Проверьте права доступа к secring.pgp и установите такие права доступа, чтобы только вы могли читать и записывать, причем остальные не должны иметь доступ вообще.
Наконец, необходимо упомянуть, что редактировать и изменять и идентификаторы ключей, и пароли закрытых ключей можно с помощью команды:
pgp -ke идентификатор [кольцо].
Добавление ключей к кольцу.
Теперь вам, вероятно, захочется добавить открытые ключи ваших друзей к вашему кольцу. Для этого вам потребуется получить эти кольца: с сервера ключей, непосредственно от этого человека, при помощи команды finger, по e-mail, и т.д. Вспомним, что открытые ключи распространяются свободно и нет необходимости передавать их по безопасному каналу, как в случае с криптологическими методами с одним ключом.
Если в вашем файле Somekey.pgp содержится ключ и вы хотите добавить его в ваши кольца, процедура очень проста:
pgp -kа Somekey [кольцо]
По умолчанию расширение .pgp указывает на файл с ключом и имена pubring.pgp и secring.pgp даются файлам, содержащим кольца открытых и закрытых ключей, соответственно.
После добавления ключа PGP может сообщить вам, что добавленный ключ не полностью сертифицирован; это означает, что данный ключ не обязательно может принадлежать заявленному владельцу.
Если есть "уверенность", что ключ действительно принадлежит этому человеку, или потому что он или она дали его вам лично или по безопасному каналу, то вы сами можете сертифицировать его. Это означает, что мы удостоверяем сертифицированность ключа.
Это облегчает передачу нашего ключа человеку, который нам доверяет и абсолютно уверен в том, что мы передали ему правильный ключ.
Для этого процесса придумали даже имя, доверие в сети. В Соединенных Штатах пользователи PGP даже устраивают собирания для обмена открытыми ключами и их подписи.
Рассмотрим эту концепцию на примере. Возьмем все тех же двух друзей, Хуана и Педро. Хуан дает свой открытый ключ Педро. Педро уверен, что ключ, который ему дал Хуан, верен, так как они доверяют друг другу. Когда он приходит домой, он добавляет его к своему кольцу открытых ключей, и он может его сертифицировать, поскольку ключ действительно принадлежит Хуану, поэтому он подписывает его своим закрытым ключом.
Теперь на сцене появляются еще два человека: Луис и Мария. Луис получает от Педро ключ Хуана и позднее пересылает его Марии. Мария не доверяет Луису, но видит, что ключ Хуана сертифицирован Педро. Мария может проверить открытый ключ Хуана благодаря подписи Педро. У нее есть открытый ключ Педро, который он дал ей лично, поэтому она может доверять ключу Луиса, проверив подлинность подписи Педро. Теперь мы знаем, как Мария может довериться ключу, данному ей такой ненадежной личностью, как Луис.
Это запутано, но необходимо для защиты единственного слабого места этого типа криптографии: факта фальсификации открытого ключа.
Удаление ключа из кольца.
Продолжим наше небольшое путешествие по PGP. Следующим шагом после того, как к кольцу были добавлены ключи, мы узнаем как их удалить. Это можно сделать командой:
pgp -kr идентификатор [кольцо]
Например: "pgp –kr juan" удалит любой ключ, у которого в идентификаторе содержится "juan". По умолчанию исследуется кольцо открытых ключей.
Выделение ключа.
После сохранения ключей друзей в вашем открытом кольце нам необходимо послать им свой открытый ключ. Прежде всего, его необходимо выделить из кольца:
pgp -kx идентификатор файл [кольцо]
Например: "pgp –kx angel mykey" выделяет открытый ключ, идентифицированный подстрокой "angel" в файле mykey.
Созданный файл mykey.pgp не в формате ASCII (попробуйте использовать са1 для его просмотра). Однако, если кому-нибудь потребуется создать файл ключа в формате ASCII чтобы послать, к примеру, по e-mail, или добавить дополнительную информацию к базе данных finger, ему потребуется напечатать:
pgp –kxa identifies file [ring]
Например: "pgp –kxa angel mykey" выделяет открытый ключ, идентифицированный подстрокой "angel", в файл "mykey.asc".
Вместе с ключом также выделяются все сертификаты, которые его подтверждают.
Содержание кольца.
Чтобы просмотреть ключи, содержащиеся в кольце, наберите команду:
pgp -kv [идентификатор] [кольцо]
Еще раз заметим, что кольцом по умолчанию является pubring.pgp, открытое кольцо.
Если идентификатор не указан явно, то показываются все ключи кольца.
Чтобы просмотреть все сертификаты каждого ключа, необходимо набрать:
pgp -kvv [идентификатор] [кольцо
Кодирование сообщения.
Мы рассмотрели, как использовать ключи. Теперь давайте попробуем использовать это для чего-нибудь интересного. Давайте посмотрим, как декодировать файл:
pgp -е файл идентификатор
Приведем пример: учитель хочет послать своему коллеге экзаменационные задачи по e-mail и не хочет, чтобы студенты перехватили это сообщение :). Пусть имя второго учителя будет Маркос и идентификатор его открытого ключа содержит его имя. Первый учитель наберет:
pgp -е exam.doc marcos
Эта команда создает файл с именем exam.pgp, содержащий файл exam.doc, закодированный так, что только Маркос может его декодировать с помощью своего закрытого ключа.