Наверх
12 декабря 2019
USD EUR
Погода
Без рубрики

Архивная публикация 2007 года: "Защита сообщений с помощью PGP"

Для защиты (шифрования) электронных сообщений лучше всего использовать алгоритм с открытыми ключами, о котором мы говорили в предыдущем номере. Самая знаменитая программа, используемая для этой цели, называется PGP (Pretty Good Privacy), и об истории ее создания имеет смысл немного рассказать…Циммерман

Программа PGP неотделима от личности ее создателя — Фила Циммермана, американского математика и программиста, человека, борющегося с Системой. Еще в колледже молодой Фил разработал алгоритм, который самонадеянный юноша посчитал «невскрываемым». Перед его глазами забрезжила Нобелевка, и он уже стал репетировать свою речь, которую произнесет при вручении премии, как вдруг на глаза Филу попалась работа какого-то другого студента, в которой приводился практически точно такой же алгоритм, который придумал Циммерман, а кроме того — о, ужас! — давались данные о том, как этот алгоритм вскрывать. И вот тут Фил пришел к довольно интересной мысли: «Невскрываемых алгоритмов не бывает». 

Циммерман занялся разработкой такой системы шифрования, которая была бы не просто стойкой, а очень стойкой. Кроме того, он значительно усовершенствовал изобретенный в 1971 году Мартином Хеллманом, Уайтфилдом Диффи и Ральфом Мерклом метод шифрования открытым ключом, добавив туда механизм взаимной сертификации, после чего и появилась программа PGP, то есть Pretty Good Privacy — Классная Прелестная Уединенность моей, вашей и вообще любой информации.

У Циммермана получилась действительно отличная программа. Более того, Фил совершенно сознательно полностью открыл исходные коды PGP, чтобы, во-первых, ими могли воспользоваться все желающие, а во-вторых, чтобы их могли проанализировать специалисты по безопасности на предмет уязвимости.

PGP не вскрывается. В том смысле, что невозможно (по крайней мере, сейчас) сделать программу, которая мигом вскроет защищенный с помощью PGP файл. 

«И что? Что, PGP вообще невозможно расковырять?» Разумеется, нет! Возможно. Старина Норберт Винер сформулировал этот принцип следующим образом: «Любой шифр может быть вскрыт, если только в этом есть настоятельная необходимость и информация, которую предполагается получить, стоит затраченных средств, усилий и времени».

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

Размер имеет значение

Один из наиболее важных параметров при использовании современных средств криптографии — это размер ключа. Причем зависимость совершенно прямая: значение растет вместе с размером. Как мы уже сказали, алгоритм PGP не вскрывается, кроме как подбором ключей. Этот перебор называется «взять грубой силой», хотя вся грубость заключается в тупом вводе и переборе паролей. А это означает, что чем больше ключ, тем сложнее его подобрать.

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

Более или менее стандартные современные размеры ключей — 1024 и 2048 бит (то есть один-два килобита). PGP допускает использование четырехкилобитного ключа, и такой размерчик быстро не вскрыть просто по определению. Впрочем, даже четырехкилобитный ключ может быть вскрыт — при использовании соответствующих мощностей и при наличии достаточного времени. Но это должны быть очень серьезные мощности, да и времени на это уйдет — я вас умоляю.

Электронная подпись

PGP-шифрование предоставляет еще одну очень интересную возможность под названием электронная подпись. Она выполняет сразу две функции:

1. Совершенно однозначно идентифицирует отправителя письма. Точнее, сигнализирует, если кто-то пытается выдать себя за вас.

2. Гарантирует, что в первоначальный текст письма не внесено никаких изменений.

Физически это выглядит так. Под каждым зашифрованным письмом PGP ставит так называемый «отпечаток пальца» (PGP-Fingerprint). Это некий код, то есть набор символов. При получении письма программа абонента сравнивает этот отпечаток с текстом — таким образом выясняется, были ли внесены в текст какие-то изменения, — а затем отпечаток сверяется с вашим публичным ключом. Если все совпадает, значит, письмо точно написано вами, причем в него не было внесено никаких изменений. Подделать этот «отпечаток пальца» практически невозможно. Только если украсть у вас секретный ключ.

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

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

Далее действия следующие:

1. Установите PGP на свой компьютер.

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

3. Распространите свой открытый ключ среди всех ваших корреспондентов. Напоминаю, что открытый ключ на то и открытый, что его можно раздавать всем желающим.

4. Заставьте корреспондентов сверить подлинность открытого ключа, то есть убедиться, что это именно вы прислали данный ключ. Таким же образом сверьте открытые ключи, полученные вами от корреспондентов.

И все, теперь программой можно пользоваться. Если у вас почтовый клиент поддерживает встроенную PGP (например, The Bat! или Outlook), то процедура шифрования/расшифровывания производится практически автоматически. Вы просто пишете письмо (или прикладываете текстовый файл к письму), нажимаете кнопку «Зашифровать», далее письмо зашифровывается и его можно отправлять. Программа получателя расшифрует сообщение с помощью вашего открытого ключа и секретного ключа получателя.

Секретный ключ

Разумеется, данный способ предполагает секьюрное хранение секретного ключа — он не должен попасть посторонним. Как сохранить секретный ключ? Да так же, как и любой другой секретный файл: держать его в папке, недоступной остальным пользователям, либо же вообще носить, например, на flash-drive. Секретный ключ еще и защищен паролем, то есть даже если его вдруг кто-то украдет, воспользоваться ключом у злоумышленника все равно не получится.

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

Больше интересного на канале: Дзен-Профиль
Скачайте мобильное приложение и читайте журнал "Профиль" бесплатно:
Самое читаемое

Зарегистрируйтесь, чтобы получить возможность скачивания номеров

Войти через VK Войти через Google Войти через OK