355 500 произведений, 25 200 авторов.

Электронная библиотека книг » Максим Левин » PGP: Кодирование и шифрование информации с открытым ключом » Текст книги (страница 1)
PGP: Кодирование и шифрование информации с открытым ключом
  • Текст добавлен: 12 октября 2016, 01:14

Текст книги "PGP: Кодирование и шифрование информации с открытым ключом"


Автор книги: Максим Левин



сообщить о нарушении

Текущая страница: 1 (всего у книги 10 страниц)

Максим Левин
PGP: Кодирование и шифрование информации с открытым ключом.


Руководство пользователя PGP.

Pretty Good Privacy (PGP) выпущено фирмой Phil`s Pretty Good Software и является криптографической системой с высокой степенью секретности для операционных систем MS-DOS, Unix, VAX/VMS и других. PGP позволяет пользователям обмениваться файлами или сообщениями с использованием функций секретности, установлением подлинности, и высокой степенью удобства. Секретность означает, что прочесть сообщение сможет только тот, кому оно адресовано. Установление подлинности позволяет установить, что сообщение, полученное от какого-либо человека, было послано именно им. Нет необходимости использовать секретные каналы связи, что делает PGP простым в использовании программным обеспечением. Это связано с тем, что PGP базируется на мощной новой технологии, которая называется шифрованием с «открытым ключом».

PGP объединяет в себе удобство использования криптографической системы с открытым ключом Rivest-Shamir-Adleman (RSA) и скорость обычной криптографической системы, алгоритм "дайджеста сообщений" для реализации электронной подписи, упаковку данных перед шифрованием, хороший эргономический дизайн программы и развитую систему управления ключами. PGP выполняет функции открытого ключа быстрее, чем большинство других аналогичных реализаций этого алгоритма.

PGP – это криптографическая система с открытым ключом для всех.

PGP не имеет встроенной возможность работы с модемом. Для этого вы должны использовать отдельное программное обеспечение.

Зачем Вам нужна PGP?

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

Возможно вы думаете, что ваша Электронная Почта законна настолько, что шифрование совершенно не оправдано. Если вы действительно столь законопослушный гражданин, которому нечего скрывать, тогда почему вы не всегда посылаете ваши письма на открытках? Почему не проходите проверку на наркотики по первому требованию? Почему требуете ордер, если полиция делает обыск в вашей квартире? Не пытаетесь ли вы скрыть что-нибудь? Вы, очевидно, террорист или торговец наркотиками, раз вы скрываете ваше письмо внутри конверта. Или у вас мания преследования, не иначе. Необходимо ли законопослушному гражданину шифровать его электронную почту?

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

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

Все больший и больший процент нашей частной связи распространяется через электронные каналы. Электронное сообщение будет постепенно заменять обычное бумажное сообщение. И все бы хорошо, но сообщения в электронной почте слишком хорошо доступны для просмотра всем на предмет поиска интересующих ключевых слов. Это может быть выполнено легко, автоматически, выполняться постоянно и быть трудно обнаруживаемым. Международные телеграммы NSA уже просматривает таким образом в крупных масштабах.

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

Билль Сената № 266, заключал в себе некоторые интересные мероприятия. Если бы эта резолюция стала реальным законом, это вынудило бы изготовителей оборудования для секретной связи вставлять специальные "люки" в их изделия, так что правительство могло бы читать шифрованные сообщения кого угодно. Читаем: "Конгресс считает, что поставщики электронных услуг связи и изготовители сервисного оборудования для электронной связи будут обеспечивать, чтобы системы связи разрешали правительству получать простое текстовое содержимое разговора, данных, и других видов связи, соответственно санкционированных законом". Эта мера была отвергнута после решительного гражданского протеста и протеста групп представителей промышленности. Но правительство тогда представило другое законодательство, чтобы достичь подобных целей.

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

PGP позволяет людям взять секретность в собственные руки. Сейчас налицо возрастающая социальная потребность для этого.

Как PGP работает.

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

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

В стандартных криптографических системах, таких, как US Federal Data Encryption Standard (DES), один и тот же ключ используется и для шифрования, и для расшифровки. Это значит, что ключ должен первоначально быть передан через секретные каналы так, чтобы обе стороны могли иметь его до того, как шифрованные сообщения будут посылаться по обычным каналам. Это может быть неудобно. Если вы имеете секретный канал для обмена ключами, тогда вообще, зачем вам нужна криптография?

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

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

Кроме того, обеспечивается также установление подлинности сообщения. Собственный секретный ключ отправителя может быть использован для шифровки сообщения, таким образом "подписывая" его. Так создается электронная подпись сообщения, которую получатель (или кто-либо еще) может проверять, используя открытый ключ отправителя для расшифровки. Это доказывает, что отправителем был действительно создатель сообщения и что сообщение впоследствии не изменялось кем-либо, так как отправитель – единственный, кто обладает секретным ключом, с помощью которого была создана подпись. Подделка подписанного сообщения невозможна, и отправитель не может впоследствии изменить свою подпись.

Эти два процесса могут быть объединены для обеспечения и секретности, и установления подлинности: сначала подписывается сообщение вашим собственным секретным ключом, а потом шифруется уже подписанное сообщение открытым ключом получателя. Получатель делает наоборот: расшифровывает сообщение с помощью собственного секретного ключа, а затем проверяет подпись с помощью вашего открытого ключа. Эти шаги выполняются автоматически с помощью программного обеспечения получателя.

В связи с тем, что алгоритм шифрования с открытым ключом значительно медленнее, чем стандартное шифрование с одним ключом, шифрование сообщения лучше выполнять с использованием высококачественного быстрого стандартного алгоритма шифрования с одним ключом. Первоначальное незашифрованное сообщение называется "открытым текстом" (или просто текст). В процессе, невидимом для пользователя, временный произвольный ключ, созданный только для этого одного "сеанса", используется для традиционного шифрования файла открытого текста. Тогда открытый ключ получателя используется только для шифровки этого временного произвольного стандартного ключа. Этот зашифрованный ключ "сеанса" посылается наряду с зашифрованным текстом (называемым "ciphertext" – "зашифрованный") получателю. Получатель использует свой собственный секретный ключ, чтобы восстановить этот временный ключ сеанса, и затем применяет его для выполнения быстрого стандартного алгоритма декодирования с одним ключом, чтобы декодировать все зашифрованное сообщение.

Открытые ключи хранятся в виде "сертификатов ключей", которые включают в себя идентификатор пользователя владельца ключа (обычно это имя пользователя), временную метку, которая указывает время генерации пары ключей, и собственно ключи. Сертификаты открытых ключей содержат открытые ключи, а сертификаты секретных ключей – секретные. Каждый секретный ключ также шифруется с отдельным паролем. Файл ключей, или каталог ключей ("кольцо с ключами" – "keyring") содержит один или несколько таких сертификатов. В каталогах открытых ключей хранятся сертификаты открытых ключей, а в каталогах секретных – сертификаты секретных ключей.

На ключи также внутренне ссылаются "идентификаторы ключей", которые являются "сокращением" открытого ключа (самые младшие 64 бита большого открытого ключа). Когда этот идентификатор ключа отображается, то показываются лишь младшие 24 бита для краткости. Если несколько ключей могут одновременно использовать один и тот же идентификатор пользователя, то никакие два ключа не могут использовать один и тот же идентификатор ключа.

PGP использует "дайджесты сообщений" для формирования подписи. Дайджест сообщения – это криптографически мощная 128-битная односторонняя хэш-функция от сообщения. Она несколько напоминает контрольную сумму, или CRC-код, она однозначно представляет сообщение и может использоваться для обнаружения изменений в сообщении. В отличие от CRC-кода (контроля циклическим избыточным кодом), дайджест не позволяет создать два сообщения с одинаковым дайджестом. Дайджест сообщения шифруется секретным ключом для создания электронной подписи сообщения.

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

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

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

Установка PGP.

Версия PGP 2.2 для MS-DOS распространяется в виде архивного файла с именем PGP22.ZIP (каждая новая версия будет иметь имя вида PGPxy.ZIP для PGP с номером версии x.y). Этот архив нужно распаковать с помощью утилиты PKUNZIP для MS-DOS (распространяемой как shareware) или утилиты для Unix unzip. Пакет с очередной версией PGP содержит файл README.DOC, который вам нужно прочитать перед установкой PGP. Этот файл содержит последние новости о том, что нового в данной версии PGP, а также о том, что находится в остальных файлах архива.

Если у вас уже есть версия 1.0 PGP для MS-DOS, вы можете удалить ее, так как никто более не использует ее. Если вы не хотите ее удалять, переименуйте старый исполняемый файл в pgp1.exe для предотвращения конфликта имен файлов.

Для установки PGP на вашей системе MS-DOS, вы должны просто скопировать архив PGPхх.ZIP в подходящий каталог на вашем жестком диске (например, C:PGP), и распаковать его с помощью PKUNZIP. Для более эффективной работы с PGP, вам также будет необходимо изменить ваш файл AUTOEXEC.BAT, как описано далее в этом руководстве, но вы можете сделать это позже, после того, как немного повозитесь с PGP и прочитаете это руководство. Если вы ранее не использовали PGP, первым шагом после установки (и прочтения настоящего руководства) будет запуск команды PGP для генерации ключей pgp –kg.

Установка в системах Unix и VAX/VMS в основном похожа на установку в MS-DOS, но для начала вам необходим исходный текст для компиляции. Для этого вариант с исходными текстами для Unix дополняется make-файлом.

Как использовать PGP.

Вывод краткой справки.

Для получения краткой справки об использовании команды PGP введите:

pgp -h

Шифрование Сообщения

Для шифровки текстового файла открытым ключом получателя, введите:

pgp -e textfile her_userid

В результате будет получен зашифрованный файл textfile.pgp.

Типичный пример:

pgp -e letter.txt Alice

или:

pgp -e letter.txt "Alice S"

В первом примере PGP будет искать в каталоге ваших открытых ключей "pubring.pgp" сертификаты открытых ключей, которые содержат строку "Alice" в поле идентификатора пользователя. Во втором примере PGP будет искать идентификаторы пользователя, которые содержат строку "Alice S". Нельзя использовать пробелы в командной строке, если вы не заключаете целую строку в кавычки. Поиск ведется без учета регистра. Если соответствующий открытый ключ найден, то он используется для шифровки текстового файла "letter.txt", получается зашифрованный файл "letter.txt".

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

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

Шифрование сообщения для нескольких адресатов.

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

pgp -e letter.txt Alice Bob Carol

В результате будет создан зашифрованный файл letter.pgp, который может быть прочитан любым адресатом: Alice, Bob или Carol. Можно задать любое количество адресатов.

Подписание сообщения.

Для подписания текстового файла вашим секретным ключом, наберите:

pgp –s textfile [-u your_userid]

Обратите внимание, что скобки [ ] просто обозначают необязательное поле, не вводите сами скобки.

В результате выполнения этой команды получится подписанный файл textfile.pgp. Типичный пример:

pgp –s letter.txt –u Bob

По этой команде PGP будет искать в файле каталога секретных ключей "secring.pgp" сертификаты секретного ключа, в которых содержится строка "Bob" в поле идентификатора пользователя. Поиск ведется без учета регистра. Если соответствующий секретный ключ будет найден, он будет использован для подписания текстового файла "letter.txt", в результате будет получен подписанный файл "letter.pgp".

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

Подписание и шифрование.

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

pgp –es textfile her_userid [-u your_userid]

Обратите внимание, что скобки [ ] просто обозначают необязательное поле, не вводите сами скобки.

В результате выполнения данного примера будет получен "вложенный" зашифрованный файл textfile.pgp. Ваш секретный ключ для создания подписи автоматически ищется в вашем каталоге секретных ключей по your_userid. Открытый ключ адресата для шифрования автоматически ищется в вашем каталоге открытых ключей по her_userid. Если вы опускаете этот параметр в командной строке, PGP запросит его у вас.

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

Обратите внимание, что PGP будет пытаться упаковывать текст перед шифрованием.

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

Можно определить несколько адресатов, задавая в командной строке несколько идентификаторов пользователя.

Использование стандартного шифрования.

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

Чтобы зашифровать текстовый файл традиционным способом, наберите:

pgp –c textfile

В этом случае PGP зашифрует текстовый файл и получит выходной файл textfile.pgp без использования метода открытого ключа, каталогов ключей, идентификаторов и т.д. PGP запросит у вас фразу пароля для шифрования файла. Эта фраза не должна быть (действительно НЕ ДОЛЖНА БЫТЬ) одинаковой с фразой пароля, которую вы используете для защиты вашего секретного ключа. PGP будет пытаться упаковать текст перед шифрованием.

PGP не будет шифровать один и тот же файл тем же самый способом дважды, даже если вы используете ту же самую фразу пароля.


    Ваша оценка произведения:

Популярные книги за неделю