Вопросы о GnuPG

1 Предисловие

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

1.1 Уведомление о товарных знаках

  • Linux — товарный знак Линуса Торвальдса.
  • Macintosh, OS X и Mac OS X — товарный знак Apple.
  • PGP — товарный знак Symantec.
  • Solaris — товарный знак Oracle.
  • UNIX — товарный знак Open Group.
  • Windows — товарный знак Microsoft.
  • Названия некоторых упоминающихся здесь криптографических алгоритмов могут быть товарными знаками.

Эти и другие товарные знаки используются только в целях идентификации.

1.2 Лицензия

Этот документ © 2012-2015, Robert J. Hansen <rjh@sixdemonbag.org> и A.M. Kuchling <amk@amk.ca>; русский перевод © 2015-2017 Ineiev <ineiev@gnu.org>. Вы вольны пользоваться этим документом в соответствии с лицензией Creative Commons Attribution-ShareAlike 3.0; вы можете также пользоваться им на условиях GNU General Public License (версии 3 или, по вашему выбору, любой более поздней версии).

1.3 Отказ от ответственности

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

Содержание

2 Введение

Вы читаете перевод официальных «Вопросов и ответов по GnuPG». Работа над ними продолжается, как и над всеми подобного рода документами. Если у вас есть вопросы, которые сюда нужно добавить, напишите, пожалуйста, ответственному редактору, Робу Гансену, rjh@sixdemonbag.org или вынесите предложение в списке рассылки GnuPG-Users.

2.1 Есть ли этот текст на других языках?

2.2 Как получить помощь?

Прежде всего, не посылайте, пожалуйста, личные сообщения напрямую людям из GnuPG. Хотя мы пытаемся помогать тем, кто посылает сообщения нам лично, такие сообщения быстро накапливаются. Чтобы помочь шести людям за день, нужно потратить час, за который можно было бы улучшить GnuPG. Обращайтесь к сообществу GnuPG через список рассылки GnuPG-Users, а не отдельным людям, занимающимся GnuPG.

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

В-третьих, изложите свою проблему. Сообщайте как можно больше подробностей.

Делайте так, и вы удивитесь, до чего быстро будет решена ваша проблема. Пример хорошего вопроса: «Я работаю с GnuPG 1.4.14 на Ubuntu 15.04 x64. Я пользуюсь Thunderbird с Enigmail. Все шло хорошо до обновления программ. С тех пор GnuPG с почтой у меня не работает. Что стряслось?» Этот вопрос дает нам материал для работы, и в короткий срок у кого-нибудь найдется для вас ответ.

Плохой вопрос — «Как удалить GnuPG?» Мы ничем не можем помочь; вы не дали нам никаких сведений, необходимых для ответа на вопрос.

2.3 Кто редактирует этот документ?

Роб Гансен. Обращайтесь ко мне по любым ошибкам в этом документе: типографским, грамматическим или фактическим.

«Мы» в этом тексте означает общий консенсус сообщества GnuPG. Этот консенсус выкован в списке рассылки GnuPG-Users. Все члены сообщества GnuPG приглашаются к участию. Отдельные члены сообщества могут добавлять свои собственные комментарии: они будут выделяться квадратными скобками, набираться курсивом и дополняться ссылкой на автора. Список редакторов:

  • wk: Вернер Кох

<wk@gnupg.org>

  • rjh: Роберт Дж. Гансен

<rjh@sixdemonbag.org>

  • ti: переводчик

<ineiev@gnu.org>

2.4 Это официальные «Вопросы и ответы по GnuPG»?

Нет, это их перевод.

2.5 Когда этот документ последний раз проверялся на точность?

В феврале 2016 года.

3 Общие вопросы

3.1 Что такое GnuPG?

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

  • Криптографическая. Слово «криптография» образовано из двух греческих слов, κρυπτός «скрытый» и γράφω «писать». Криптография — это математическое исследование кодов и шифров.
  • Программа. Это должно быть уже понятно.
  • Конфиденциальность. Никто, кроме допущенных сторон, не должен иметь возможность прочесть ваши данные.
  • Целостность. Не должно быть возможности изменить сообщение незаметно.
  • Подтверждение. Подтверждение — не гарантия. В жизни ничто не гарантировано, и программы не исключение. Подтверждение просто означает, что есть основания быть в чем-то уверенным — в данном случае это значит, что если GnuPG применяется правильно, то люди могут быть уверены, что данные конфиденциальны или целостны.

GnuPG можно применять саму по себе как программу командной строки (т.е. запускать из терминального окна) или вызывать ее из популярных пользовательских почтовых программ. Она применяется также в некоторых программах мгновенных сообщений, таких как Psi.

3.2 Как произносить GnuPG?

Гну-пэ-гэ [возможны варианты… — ti].

3.3 Совместима ли она с PGP компании Symantec?

По большей части. Ее можно заставить работать со всем начиная с PGP 5, а с последними выпусками у нее совместимость отличная.

3.4 На каких операционных системах она работает?

Список слишком велик! Известно, что она работает на Microsoft Windows, Mac OS X, различных свободных системах семейства Unix, AIX, Solaris, HPUX, OpenVMS и многих других. Ведется даже работа над переносом ее на смартфоны, например, под Android.

3.5 Сколько она стоит?

Конкретной цены нет. На многих сайтах в Интернете ее можно законно получить бесплатно.

3.6 Где ее получить…

Сайтов много, но ни на одном не размещены скомпилированные файлы сразу для всех систем.

… для Microsoft Windows?

Удобный установочный пакет можно взять из GPG4WIN.

… для Mac OS X?

В проекте GPGtools есть все, что нужно для начала. Однако в GPGTools есть только GnuPG 2.0; если вам нужна самая новомодная 2.1, зайдите на проект Патрика Бруншвига GnuPG для OS X на SourceForge.

… для GNU/Linux?

Единого способа установить GnuPG на системах GNU/Linux нет. Зато она обычно устанавливается по умолчанию, так что ничего делать не надо!

  • … для Debian GNU/Linux или Ubuntu?

    Наберите в окне терминала sudo apt-get install gnupg2.

  • … для OpenSUSE?

    Наберите в окне терминала sudo zypper install gnupg2.

    установка.

  • … для Fedora, CentOS или RHEL?

    Для Fedora 22 и более поздних: наберите в окне терминала sudo dnf install gnupg2.

    Для Fedora 21 и более ранних, CentOS или RHEL: наберите в окне терминала sudo yum install gnupg2.

  • … для Slackware?

    Установите пакет gnupg, если нужна GnuPG 1.4, или gnupg2, если нужна GnuPG 2.0.

  • … для Gentoo?

    Для установки GnuPG на Gentoo запустите следующую команду как суперпользователь:

    emerge gnupg

    Документация Gentoo содержит Руководство пользователя по GnuPG.

… для FreeBSD?

GnuPG находится в портах. Для установки запустите следующие команды как суперпользователь:

cd /usr/ports/security/gnupg
make install clean

GnuPG можно также установить с помощью диспетчера пакетов:

sudo pkg_add -r gnupg

… для VMS?

Вариант для VMS поддерживается Стивеном Шведой на antinode.info.

3.7 Можно ли получить исходный текст?

Да! Человек, предприятие или группа, которая предоставила вам GnuPG в скомпилированном виде, обязаны дать вам исходный текст по первому требованию.

3.8 Что такое свободные программы и почему они важны?

Слово «свободный» должно наводить на мысли о свободе, а не стоимости. Ужасно многие в программной промышленности не уважают ваши свободы: свободу применять программу в любых целях, свободу изучать и учиться на том, как она работает, свободу обмениваться программой с теми, кому она могла бы принести пользу, и так далее. Свободные программы, напротив, означают, что к вашим правам относятся с уважением. Вы можете пользоваться программой в любых целях; можете исследовать и править исходный текст; можете обмениваться программой или модификациями с другими.

Лучше всего посетить страницу пожертвований.

3.10 Как помочь в разработке GnuPG?

Обсуждение разработки проходит в списке рассылки gnupg-devel. Зайдите на страницу рассылок GnuPG, там есть ссылки для того, чтобы подписаться и заглянуть в архивы.

Журнал ошибок проекта GnuPG тоже общедоступен.

4 Где получить дополнительные сведения?

Интернет — кладезь всяческих знаний. Зато это и гноящийся рассадник дезинформации, теорий заговора и полуграмотных умопостроений,— и все это подают под видом советов знатока.

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

4.1 Помогите! Не могу вспомнить фразу-пароль.

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

Если вы не можете вспомнить фразу-пароль, лучшее, что можно сделать — воспользоваться своим заранее сделанным сертификатом отзыва и отозвать свой старый сертификат, отправить отозванный сертификат в сеть и начать все с новым ключом.

4.2 Как распознать шарлатанов?

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

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

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

В четвертых, эксперты не пытаются запугивать. Мир страшен и без этого. Шарлатаны постараются запугать вас, чтобы вы прислушивались к ним и только от них получали сведения о том, как быть «в безопасности».

В-пятых, эксперты легко допускают, что были неправы и отдают должное человеку, указавшему на их ошибку. Шарлатаны, как правило, принимают это в штыки.

4.3 Какие списки рассылки полезны?

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

Список рассылки GnuPG-Users

Подписаться
зайдите на

страницу GnuPG-Users - Выйти из списка :: см. выше - Модератор :: <gnupg-users-owner@gnupg.org>

Поддерживает PGP/MIME? :: Да - Поддерживаются языки
английский

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

Список рассылки Enigmail

Подписаться
зайдите на страницу списка рассылки Enigmail
Выйти из списка
См. выше
Модераторы
Поддержка PGP/MIME
Да
Поддерживаются языки
английский, немецкий, испанский

Enigmail интегрирует GnuPG с Mozilla Thunderbird или Mozilla Seamonkey. Это одно из популярнейших применений GnuPG, а список рассылки дает хорошую возможность узнать, как это работает и как этим пользоваться.

Список слегка модерируется.

PGP-Basics

Подписаться
зайдите на

страницу PGP-Basics - Выйти из списка :: см. выше - Модератор :: Майк Дейгл <mdaigle@gswot.org>

Поддержка PGP/MIME :: Нет - Поддерживаются языки
английский

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

PGPNET

Подписаться
зайдите на

страницу PGPNET - Выйти из списка :: см. выше - Модераторы :: неизвестны - Поддержка PGP/MIME :: Нет - Поддержка языков :: неизвестно

Цель PGPNET — предоставить людям возможность практиковаться в посылке и приеме зашифрованной, подписанной и зашифрованной подписанной корреспонденции в условиях группы.

4.4 Какие сайты полезны?

В общем и целом коэффициент шарлатанов на страницах сайтов довольно велик. Вместе с тем есть сайты, которые мы рекомендуем. Их можно разделить на домашние страницы специальных проектов, связанных с GnuPG, и общеинформационные сайты.

Где найти домашнюю страницу…

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

  • … GnuPG?

    Домашняя страница GnuPG’s находится на https://www.gnupg.org. Ее можно найти также в сети Tor по адресу ic6au7wa3f6naxjq.onion.

  • … Enigmail?

    Enigmail, внешний модуль к Mozilla Thunderbird, которое добавляет сильную поддержку GnuPG, находится на https://enigmail.net.

  • … GPGTools?

    Для пользователей Mac OS X есть проект GPGTools на https://www.gpgtools.org.

  • … GPG4WIN?

    GPG4WIN, версия GnuPG для Windows, поддерживает домашнюю страницу на https://www.gpg4win.org.

Где найти сайты по…

Хотя сообщество GnuPG в общем находит эти сайты полезными, это может сильно зависеть от читателя. Мнения о некоторых из них очень неоднозначны. Их стоит посещать и читать, но относитесь к ним критически.

  • … простому введению в криптографию?

    Простого введения в криптографию не бывает. Однако у PGP Corporation есть солидное Введение в криптографию.

  • … более глубокой криптографической математике?

    Редактор этого списка ведет также мягк(оват)ое введение в криптографическую математику и информатику.

  • … рекомендуемой практике GnuPG?

    В настоящее время авторитетных страниц с подробностями рекомендуемой практики GnuPG нет.

  • … криптографической политике?

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

    Вероятно, наиболее известная организация — Фонд электронных рубежей, который свыше двадцати лет стоит в авангарде электронных гражданских свобод.

    Фонд свободного программного обеспечения также глубоко вовлечен в эти проблемы, хотя не в таком аспекте, как ФЭР.

5 Какие почтовые программы поддерживают GnuPG на…

Многие почтовые клиенты сильно интегрированы с GnuPG.

Колонка «активный» в приведенных ниже таблицах показывает, развивается ли программа в настоящее время.

5.1 … Microsoft Windows?

Название Внешние модули см.
Thunderbird да (Enigmail) (1)
Kontact встроенная (2)
Claws-Mail да (внутренняя) (3)

(1) С помощью модуля Enigmail Thunderbird стал одной из популярнейших почтовых программ с поддержкой GnuPG. Он активно развивается и совместим с последними выпусками Thunderbird, вокруг него собралось дружелюбное сообщество пользователей.

(2) Kontact — интегрированный диспетчер личной информации KDE. Он работает везде, где работает KDE, и даже на мобильных устройствах в виде Kontact Touch.

(3) Claws-Mail для Windows входит в набор установки Gpg4win.

5.2 … Mac OS X?

Название Внешние модули см.
Thunderbird да (Enigmail) (1)
Gnus да (EasyPG) (2)
Mutt встроенная (3)
Apple Mail да (GPGtools) (4)

(1) С помощью модуля Enigmail Thunderbird стал одной из популярнейших почтовых программ с поддержкой GnuPG. Он активно развивается и совместим с последними выпусками Thunderbird, вокруг него собралось дружелюбное сообщество пользователей.

(2) EasyPG — часть собственно Emacs 23. Так что устанавливать модуль больше не нужно. Заметки по настройке см. в руководстве Gnus.

(3) Не забудьте добавить set crypt_use_gpgme в свой файл ~/.muttrc.

(4) На момент написания Apple Mail несовместим с PGP/MIME. Это известный недостаток, над этим работают.

5.3 … Linux или FreeBSD?

Название Внешние модули см.
Thunderbird да (Enigmail) (1)
Gnus да (EasyPG) (2)
Mutt встроенная (3)
Kontact встроенная (4)
Evolution встроенная  
Claws-Mail да (внутренняя) (3)

(1) С помощью модуля Enigmail Thunderbird стал одной из популярнейших почтовых программ с поддержкой GnuPG. Он активно развивается и совместим с последними выпусками Thunderbird, вокруг него собралось дружелюбное сообщество пользователей.

(2) EasyPG — часть собственно Emacs 23. Так что устанавливать модуль больше не нужно. Заметки по настройке см. в руководстве Gnus.

(3) Не забудьте добавить set crypt_use_gpgme в свой файл ~/.muttrc.

(4) Kontact — интегрированный диспетчер личной информации KDE. Он работает везде, где работает KDE, и даже на мобильных устройствах в виде Kontact Touch.

6 Есть ли «переносной» вариант GnuPG?

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

Вместе с тем, пользователи Windows могут зайти на PortableApps. Или воспользоваться средством mkportable из набора Gpg4win для сборки собственного экземпляра.

7 Что означают все эти странные слова?

В криптографии широко употребляются специализированные термины и жаргон. В этом разделе кое-что из этого расшифровывается.

7.1 Что такое криптография с открытым ключом?

В семидесятые годы XX века на передний план криптоаналитического мира вышли новые идеи. Одной из важнейших стало развитие асимметричной криптографии (часто называемой также криптографией с открытым ключом).

Асимметричная криптография построена на задачах, которые очень сложно решать в одном направлении и очень просто в обратном. Рассмотрим число 2701. Если бы вас попросили разложить его на простые множители, вам это показалось бы нудной работой. Но если бы вам дали числа 37 и 73, вы за минуту нашли бы результат — 2701. Найти число перемножением двух других просто; найти эти два числа по третьему сложно.

Асимметричная криптография пользуется этими асимметричными задачами как строительными блоками. Легко создать зашифрованное сообщение, которое ни вы, ни кто-либо другой, кроме получателя, не может расшифровать. Продолжая сравнение, перед вами и всеми другими встает сложная задача (разложить на множители 2701). Получатель знает секретную часть информации, что делает задачу простой (разложить на множители 2701, зная, что один из множителей равен 73).

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

7.2 Что такое симметричная криптография?

Один из самых старых шифров — шифр сдвига, предположительно применявшийся Юлием Цезарем во время галльских походов. Он брал незашифрованный текст и сдвигал каждую букву на три места в алфавите, переходя к началу по мере необходимости (так что «Z» становилась «C»). Его корреспонденты делали обратное: сдвигом каждой буквы назад на три места восстанавливалось первоначальное сообщение. Тот, кто знал, как текст зашифрован, знал также и то, как его расшифровать: процесс не был в точности тем же самым (в одном случае нужно сдвигать вверх, в другом — вниз), но зная первый процесс, можно было легко найти второй.

Этот признак — что шифрование и расшифровка являются двумя сторонами одной медали,— определяет симметричную криптографию. Современные симметричные шифры гораздо сложнее схемы Цезаря, но они действуют по сути так же. Знание того, как расшифровать, содержится в знании того, как текст зашифрован, и наоборот. Симметрия между этими операциями ведет к названию «симметричная криптография».

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

7.3 Что такое ключ?

Слово «ключ», к сожалению, неоднозначно. Оно может указывать либо на математические структуры, обеспечивающие шифрование, расшифровку, подпись и проверку, либо на крупные массивы данных, которые содержат эти структуры, а также информацию о связанном с ключом человеке, дополнительные подключи и так далее.

В случае массивов данных предпочтительно называть их «сертификатами», чтобы слово «ключ» можно было однозначно связать только с математическими структурами. Как ни жаль, такое употребление встречается довольно-таки редко.

7.4 Что такое сертификат?

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

7.5 Что такое сервер ключей?

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

Одна из популярных сетей серверов — sks-keyservers.net. SKS расшифровывается как «Synchronising Key Server (синхронизирующий сервер ключей)». Пользование этой сетью включается с помощью параметра --keyserver pool.sks-keyservers.net.

7.6 Что такое RSA?

RSA — один из лучших в мире алгоритмов асимметричной криптографии, он строится на трудности разложения сверхбольших составных чисел. GnuPG поддерживает RSA с размерами ключа от 1024 до 4096 бит.

7.7 Что такое DSA?

Национальный институт стандартов и техники США (NIST) установил Алгоритм цифровой подписи (Digital Signature Algorithm, DSA) в качестве государственного стандарта цифровой подписи. Первоначально он поддерживал длины ключей между 512 и 1024 битами. Недавно NIST объявил 512-битные ключи устаревшими; сейчас доступные длины ключей DSA — 1024, 2048 и 3072 бита.

DSA относится к семейству алгоритмов Elgamal и считается очень надежным.

7.8 Что такое Elgamal?

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

GnuPG поддерживает алгоритм асимметричного шифрования Elgamal с длинами ключа от 1024 до 4096 бит.

Есть также алгоритм цифровой подписи Elgamal, который GnuPG больше не поддерживает.

7.9 Что такое AES?

На подходе к 2000 году было ясно, что старый стандарт шифрования данных (DES) уже на последнем издыхании, что его нужно заменить. Чтобы заткнуть дыру, был 3DES, но назрела необходимость создать новый стандарт, который пользовался бы результатами криптографических изысканий последних десятилетий.

Национальный институт стандартов и техники США (NIST) провел открытый конкурс, чтобы выбрать новый стандарт шифрования. Летом 2000 года шифр под названием Rijndael (произносится «РЕЙН-дол») был выбран как новый «Прогрессивный стандарт шифрования (Advanced Encryption Standard)», сокращенно AES.

Шифр AES отличается глубоко современной конструкцией, им можно спокойно пользоваться.

7.10 Что такое Twofish и Blowfish?

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

7.11 Что такое 3DES?

В семидесятые годы XX века в IBM разработали новый симметричный шифр под названием «Digital Encryption Standard (Стандарт цифрового шифрования)», т.е. DES. Они наворотили в нем ужасно много: даже через три десятилетия его можно взломать только полным перебором. К сожалению, пространство ключей в DES достаточно мало, чтобы это было реальной опасностью.

Нужен был новый вариант DES. В результате появился 3DES, составленный из трех алгоритмов DES, работающих вместе с тремя независимыми ключами. 3DES был громоздким, безобразным, медленным и воплощал в себе эстетику архитектуры западных городков США начала XX века. Он также выдержал три десятилетия криптоанализа и по-прежнему криптостоек.

Из-за длины блока, равной 64 бит, характерной для эпохи семидесятых годов, его не следует применять для шифрования более чем 4Гб данных. Однако в остальном он прочен, как скала, и вряд ли у кого-то из пользователей GnuPG когда-нибудь будут проблемы из-за этого. Если не шифровать больше 4Гб данных, шифром 3DES можно спокойно пользоваться.

7.12 Что такое CAST, CAST5 и CAST5-128?

Карлайл Адамс и Статфорд Таварес («CA» и «ST» в «CAST») разработали алгоритм CAST в 1996 году. Впоследствии он был одобрен для применения в канадских государственных учреждениях.

У CAST много названий: CAST, CAST5, CAST5-128 и CAST-128 обозначают один и тот же алгоритм.

Устройством CAST сходен с Blowfish, другим солидным алгоритмом. Как и в 3DES, размер его блока равен 64 битам, т.е. его не следует применять для шифрования файлов длиннее 4Гб. При всем при том CAST — современный шифр, им можно спокойно пользоваться.

7.13 Что такое Camellia?

Примерно в то же время, когда NIST проводил конкурсы на Прогрессивный стандарт шифрования, NESSIE в Евросоюзе и CRYPTREC в Японии проводили такие же конкурсы. Camellia — шифр, выигравший на конкурсах NESSIE и CRYPTREC, примерно так же, как Rijndael выиграл конкурсы в США.

Шифр Camellia отличается глубоко современной конструкцией, им можно спокойно пользоваться.

7.14 Что такое SHA-1, SHA-224, SHA-256, SHA-384, SHA-512 и SHA-3?

Безопасные алгоритмы хеша (Secure Hash Algorithms) — криптографические хеш-функции, спроектированные первоначально Национальным агентством безопасности США. Алгоритмы стали широкодоступны и подвергались потрясающему количеству независимых проверок.

  • SHA и SHA-0: первоначальный алгоритм, выдающий 160-битные числа. В нем почти сразу же обнаружились огрехи. SHA-0 практически не применялся в криптографическом сообществе, и в GnuPG он не представлен.
  • SHA-1 представляет собой SHA-0, в котором устранили просчеты, а больше ничего не меняли. Он тоже выдает 160-битные числа. SHA-1 не выдержал проверки временем. Хотя он все еще считается надежным, рекомендуется по возможности применять другие функции.
  • SHA-224, 256, 384 и 512: Это основательно переработанные SHA-1, они выдают числа большей длины (224, 256, 384 и 512 бит). На настоящий момент это самые сильные хеш-функции в GnuPG.
  • SHA-3: SHA-3 — полностью новый хеш-алгоритм, далеко отрывающийся от предыдущих функций. Он считается надежным без оговорок. Его еще не ввели официально в стандарт OpenPGP, и поэтому GnuPG его не поддерживает. Однако SHA-3, вероятно, включат в спецификацию, и с этого момента GnuPG станет его поддерживать.

7.15 Что такое MD5?

MD5 — 128-битная криптографическая хеш-функция, изобретенная Роном Ривестом («R» из «RSA») в начале девяностых годов XX века. Много лет это был один из стандартных алгоритмов в криптографии, но сейчас он совершенно устарел. По этой причине в GnuPG он не поддерживается.

7.16 Что такое ZLIB, ZIP и BZIP?

ZLIB, ZIP и BZIP — это разные алгоритмы сжатия. GnuPG пользуется одним из этих трех алгоритмов для сжатия ваших данных перед тем, как шифровать их, если только GnuPG не обнаружит, что данные уже сжаты.

7.17 Что такое сертификат отзыва?

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

Мы рекомендуем создавать сертификат отзыва сразу после создания нового сертификата GnuPG. Храните его в надежном месте. Как создать сертификат отзыва, см. ниже.

7.18 Что такое назначенный отзывающий?

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

7.19 Что такое достоверность?

Хотя сертификат подтверждает определенные аспекты личности, этим подтверждениям нельзя доверять слепо (представьте себе, например, должны ли вы доверять сертификату, в котором заявлено, что он принадлежит obama@whitehouse.gov.)

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

7.20 Что такое доверие?

Доверие определяет, насколько тщательно сертификат был проверен. Эти выражения до некоторой степени взаимозаменяемы.

7.21 Что такое доверие владельцу?

Если сертификат был проверен и вы верите, что человек, которому этот сертификат принадлежит, проверяет сертификаты должным образом, вы можете сказать GnuPG: «Я желаю доверять проверкам, проведенным этим человеком, как своим собственным».

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

8 Как начать пользоваться GnuPG?

Прежде всего присоединиться к списку рассылки GnuPG-Users. Вас встретит дружелюбное сообщество, всегда готовое помочь новичкам.

8.1 Нужно ли «настраивать» GnuPG перед пользованием?

Нет. Первоначальные настройки GnuPG вполне разумны. Менять их не нужно.

8.2 Какого размера у меня должен быть ключ?

Подавляющему большинству пользователей отлично подойдут 2048-битные ключи RSA. GnuPG по умолчанию создает именно такие ключи.

8.3 Какой мне применять алгоритм?

Подавляющему большинству пользователей отлично подойдут 2048-битные ключи RSA. GnuPG по умолчанию создает именно такие ключи.

8.4 Почему сертификат создается так медленно?

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

8.5 Что делать после создания сертификата?

Создайте сертификат отзыва и сохраните его в надежном месте. Вместо этого можно назначить отзывающего.

Как назначить отзывающего?

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

Чтобы добавить отзывающего, воспользуйтесь командной строкой:

gpg --edit-key [вставьте свой ID ключа] addrevoker

В ответ на приглашение введите ID ключа человека, которого вы желаете назначить отзывающим. Его ключ должен быть полностью достоверным.

Как создать сертификат отзыва?

Сертификат отзыва помечает другой сертификат как непригодный.

Для создания сертификата отзыва для своего ключа выполните:

gpg --armor --output revoke.asc --gen-revoke [ID вашего ключа]

Скопируйте revoke.asc в безопасное место.

Как отослать сертификат в сеть серверов ключей?

gpg --keyserver pool.sks-keyservers.net --send-key [ID вашего ключа]

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

8.6 Где GnuPG ищет настройки?

GnuPG заглядывает в файл с именем gpg.conf для определения различных параметров работы. В системах семейства UNIX этот файл можно найти в каталоге ~/.gnupg. В системах Windows посмотрите в %APPDATA%\Roaming\GnuPG.

8.7 Какие настройки мне записать в файле конфигурации?

На самом деле у вас не должно быть необходимости в этом. Тем не менее ниже приводится файл gpg.conf Роба Гансена.

# Сказать GnuPG, что нужна максимальная совместимость с OpenPGP.
openpgp

# Выключить некоторые сообщения GnuPG, которые мне заведомо не нужны.
no-greeting no-secmem-warning

# Не добавлять номер версии с комментариями на выходе.
no-emit-version no-comments

# Пользоваться полными 16-символьными, а не краткими
# 8-символьными идентификаторами ключей.
keyid-format long

# Пользоваться глобальной сетью серверов для поиска сертификатов.
# Далее, когда я что-нибудь посылаю из сети серверов или принимаю оттуда,
# очистить то, что я посылаю или принимаю.
keyserver pool.sks-keyservers.net
keyserver-options import-clean-sigs import-clean-uids export-clean-sigs
export-clean-uids

# Если я не указываю явно, каким сертификатом пользоваться, пользоваться
этим.
default-key 1DCBDC01B44427C7

# Всегда включать подписи этого сертификата.
local-user 1DCBDC01B44427C7

# Всегда добавлять этот сертификат в мой список получателей.
encrypt-to 1DCBDC01B44427C7

# Заменять "From" на "> From" для удобства работы с почтовыми файлами UNIX.
escape-from-lines

# По возможности предпочитать сильные хеши.
personal-digest-preferences SHA256 SHA384 SHA512 SHA224 RIPEMD160

# Старым шифрам предпочитать новые.
personal-cipher-preferences CAMELLIA256 AES256 TWOFISH CAMELLIA192 AES192
CAMELLIA128 AES BLOWFISH CAST5 3DES

# Поднять уровень сжатия и отдавать BZIP2 предпочтение перед ZIP и ZLIB.
bzip2-compress-level 9
compress-level 9
personal-compress-preferences BZIP2 ZIP ZLIB

8.8 Есть ли конкретный сервер ключей, которым нужно пользоваться?

У многих людей отлично зарекомендовал себя pool.sks-keyservers.net. На OS X некоторым вместо этого приходится пользоваться ipv4.pool.sks-keyservers.net.

8.9 В чем разница между параметром и командой?

Команды указывают GnuPG, что делать; параметры указывают GnuPG, как это делать. Например, =encrypt= — это команда, а =armor= — параметр, который велит GnuPG выводить только печатные (неслужебные) символы.

8.10 Какие параметры наиболее употребительны?

Наиболее употребительны параметры:

Выдавать больше текстов, поясняющих работу GnuPG:

-v, --verbose

Не вносить изменений; это полезно только для проверки командной строки, которая будет изменять ключи или создавать что-то на выходе:

-n, --dry-run

Послать выходные данные в названный файл:

-o ФАЙЛ, --output ФАЙЛ

Выводить в текстовом виде, который можно cпокойно отправлять по электронной почте, а не в двоичном виде:

-a, --armor

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

-r ID ключа, --recipient ID ключа= указать ID получателя

8.11 Какие команды наиболее употребительны?

Основные функции GnuPG — шифрование и расшифровка сообщений, а также создание и проверка подписей. Можно подписываться без шифрования и шифровать без подписи.

Подпись содержимого файла создается командами -s или --sign. Есть вариант -b или --detach-sign, который создает отдельную подпись, не включающую в себя содержимое файла; это полезно, когда нужно подписать архив программ или другой крупный файл. Ключ, который нужно применить для подписи, можно указать настройкой local-user в файле gpg.conf или параметрами -u, --local-user.

Шифрование содержимого файла производится командами -e или --encrypt. Получатели указываются параметрами -r или --recipient.

Действие GnuPG по умолчанию — расшифровка и проверка входного файла, запись содержимого в стандартный поток вывода или в файл, указанный параметрами -o или --output. Команда --verify проверяет подпись без вывода содержимого файла куда бы то ни было.

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

8.12 Как пользоваться чужим сертификатом?

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

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

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

gpg --import certificate.txt

Но чаще вы получаете сертификат корреспондента с сервера ключей.

Как найти сертификат на сервере ключей?

Есть также целая сеть публичных серверов ключей, доступная под общим именем pool.sks-keyservers.net. Пользователи GnuPG могут отправлять свои ключи на серверы ключей, с тем чтобы другие пользователи могли находить и получать их оттуда.

gpg --keyserver pool.sks-keyservers.net --search [адрес электронной почты, имя, ID ключа и т.д.]

GnuPG перечислит подходящие под запрос сертификаты и попросит вас выбрать, какие вы желаете получить и добавить к своей связке ключей.

Время от времени люди получают новые подписи на своих сертификатах. gpg --refresh-keys проверяет все сертификаты на вашем открытом ключе и получает все новые подписи на этих ключах.

Как извлечь сертификат, если я уже знаю его отпечаток?

gpg --keyserver pool.sks-keyservers.net --recv-key [отпечаток]

Почему мне нужно проверять сертификаты?

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

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

Как проверять сертификаты?

Эта рекомендация небесспорна.

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

  1. Встретить владельца сертификата лично.
  2. Попросить показать два документа, удостоверяющих личность.
  3. Убедившись, что человек действительно является тем, за кого он себя выдает, попросите у него отпечаток его сертификата, адрес электронной почты и адрес, по которому можно получить сертификат. (Пример: «Мой отпечаток 4541 BB01 8EA4 8F99 19CA 3701 2380 6BE5 D6B9 8E10, сертификат можно взять на =pool.sks-keyservers.net=».)
  4. На своем собственном компьютере получите сертификат этого человека из указанного источника. Убедитесь, что адрес электронной почты, который вам дали, находится в списке адресов, записанных в сертификате. Убедитесь, что отпечаток сертификата, который вы получили, совпадает с отпечатком, который вам дали.
  5. gpg --edit-key [ID его сертификата] sign
  6. После подписи gpg --armor --output signed_cert.asc --export [ID его сертификата]
  7. Отправьте signed_cert.asc по данному вам адресу.

Следуя этой процедуре, вы сначала убеждаетесь, что говорите с нужным человеком. Сравнивая отпечаток сертификата с тем, который вам сообщили, вы убеждаетесь, что получили нужный сертификат. Еще одна проверка — чтобы убедиться, что данный вам адрес перечислен в сертификате. Как только это сделано, вуаля — это дядя Костя: остается только подписать и вернуть свежеподписанный сертификат владельцу.

8.13 Почему я не могу прочесть отправленные мной письма? Как это исправить?

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

Чтобы выйти из положения, добавляйте себя в качестве получателя (=–recipient = [ID вашего сертификата]).

8.14 Как шифровать файл для нескольких получателей?

Введите несколько параметров --recipient. Помните, что параметры идут перед командами!

8.15 Как подписать файл несколькими сертификатами?

Введите несколько параметров --local-user. Помните, что параметры идут перед командами!

8.16 Как сочетать шифрование с подписью?

gpg --armor --recipient [ID ключа первого получателя] --local-user [ID вашего ключа] --sign --encrypt [имя файла]

8.17 Как заставить GnuPG выдавать печатный текст?

Обычно в компьютерах применяется восьмибитный двоичный код. Нередко это представляет трудности для электронной почты, которая часто требует, чтобы использовались только печатные (семибитные) символы. Параметр --armor переводит GnuPG в режим вывода только печатных символов.

8.18 Как создать вложенную подпись?

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

Чтобы создать вложенную подпись, выполните

gpg --armor --output signed_file.asc --local-user [ID вашего ключа] --clearsign message_file.txt

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

gpg signed_file.asc

8.19 Как с помощью GnuPG проверить файл, полученный по сети?

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

    gpg --edit-key 1DCBDC01B44427C7 lsign

  3. Получите пакет программ. Предположим, он находится в файле «foo.zip».
  4. Получите отделенную подпись пакета. Предположим, она находится в файле «foo.zip.asc».
  5. Выполните:

    gpg foo.zip.asc

    GnuPG будет считать, что подписанный файл — foo.zip. (Если GnuPG не найдет foo.zip, GnuPG запросит у вас имя подписанного файла.) Если все в порядке, GnuPG сообщит о верной подписи, и вы можете быть уверены, что получили пакет в том виде, в каком это предполагал автор.

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

8.20 Как применять GnuPG в пакетном режиме?

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

Ниже предлагается метод создания ключей для пакетного режима. Сначала на защищенной машине:

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

    gpg --edit-key ID ключа

    Введите "addkey" и выберите тип ключа DSA.

  2. Обязательно пользуйтесь фразой-паролем; в настоящее время это требуется для того, чтобы вы могли экспортировать секретный ключ.
  3. Выполните:

    gpg --export-secret-subkeys --no-comment ID нового подключа > secring.auto

  4. Скопируйте secring.auto и связку открытых ключей в пробный каталог.
  5. Войдите в пробный каталог.
  6. Введите команду:

gpg --homedir . --edit ID нового подключа

С помощью подкоманды passwd снимите фразу-пароль с подключей Можно также удалить неиспользуемые ключи, набрав key N с последующим delkey для каждого подключа.

  1. Скопируйте secring.auto на рабочую машину тем или иным способом.

    На рабочей машине установите secring.auto в качестве связки секретных ключей и начинайте писать программы, вызывающие GnuPG.

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

8.21 Я программист, мне нужна библиотека GnuPG. Есть ли такая?

8.22 Я программист, мне нужен прямой доступ к внутренним объектам GnuPG. Есть ли такая библиотека?

Нет и не будет.

9 Какие обычно возникают проблемы?

9.1 Почему GnuPG предупреждает меня, что сертификат может не принадлежать тому, на кого я думаю?

Если вы получили по электронной почте письмо, автор которого утверждает, что он нигерийский нефтяной магнат, поверите ли вы этому? Или вы будете настаивать на какой-то предварительной проверке, чтобы убедиться, что вас не водят за нос?

То же самое и здесь. Если вы пользуетесь сертификатом, в котором написано, что он принадлежит Алисе, но ничто не свидетельствует о том, что он на самом деле ей принадлежит, GnuPG будет предупреждать вас, что вы пользуетесь недостоверным сертификатом.

Возможно, имеет смысл проверить сертификат.

9.2 Почему GnuPG предупреждает меня о пользовании незащищенной памятью?

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

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

9.3 Почему GnuPG изменяет мое сообщение?

GnuPG вставляет специальные строки, чтобы отметить начало сообщения, начало подписи и так далее. Эти строки начинаются с «=–— BEGIN=…». Если какая-то строка в вашем тексте начинается с символа «-», эта строка будет слегка подправлена, чтобы GnuPG не приняла ее за специальную строку.

10 Какая практика рекомендуется?

Тут трудно сказать что-то определенное, потому что у каждого свое мнение. Тем не менее вот несколько хороших советов:

  • Подключайтесь к сообществу. Подпишитесь на GnuPG-Users и участвуйте в обсуждениях. Круг тем очень широк, и вы встретите самые разнообразные мысли и мнения. Чтение GnuPG-Users — один из лучших способов самообразования.
  • Практикуйтесь. Если вы не практикуете эти навыки до того, как они потребуются, вы не сможете воспользоваться ими с толком.
  • Создавайте сертификат отзыва и храните его в надежном месте.
  • Пользуйтесь сильной фразой-паролем.
  • Оберегайте свой компьютер от вредоносных программ.
  • Правильно проверяйте сертификаты.

10.1 Как выбрать сильную фразу-пароль?

Если кто-то сумеет раздобыть ваш секретный ключ, единственное, что будет защищать ключ — это ваша фраза-пароль. Фразу-пароль должно быть 1) трудно угадать тому, кто вас знает, и 2) трудно найти перебором всех возможных сочетаний символов.

Чтобы обеспечить 1), фраза-пароль не должна быть основана на общедоступных сведениях о вас: дне вашего рождения, имени вашего родственника, названии вашей школы, строке из книги и т.д. Чтобы обеспечить 2), фраза-пароль должна быть длинной: доступная в продаже аппаратура может перебирать 2,8 миллиардов паролей в день, этого достаточно, чтобы взломать 10-буквенный пароль, составленный из строчных латинских букв.

Один из простых способов получения фраз-паролей, которые легко запомнить,— выбрать от четырех до шести случайных слов, как показано на карикатуре XKCD Правильно, лошадь! Батарейная скрепка!.

10.2 Как сохранить сертификат отзыва в безопасности?

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

10.3 Как оберечь свой компьютер от вредоносных программ?

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

  1. Регулярно обновляйте систему. Всегда устанавливайте последние обновления.
  2. Перестаньте пользоваться старыми версиями Internet Explorer. По возможности пользуйтесь Mozilla Firefox или Chromium.
  3. Не открывайте приложения к сообщениям электронной почты, если вы их не ждали или сообщения пришли от незнакомых людей.
  4. Не щелкайте по ссылкам в сообщении, если вы их не ждали или сообщения пришли от незнакомых людей.
  5. С подозрением относитесь к запросам личных данных, особенно если их объем больше необходимого для решения проблемы.

10.4 Следует ли пользоваться такими программами шифрования диска, как TrueCrypt, BitLocker или FileVault?

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

11 Технические вопросы

Эти вопросы «технические» в том смысле, что вам не нужно разбираться в этом, чтобы правильно и безопасно пользоваться GnuPG. Вместе с тем, если у вас есть вопрос о подробностях работы GnuPG, возможно, ответ на него найдется в этом разделе.

11.2 Почему GnuPG по умолчанию предлагает 2048-битный RSA-2048?

Когда принималось это решение, считалось, что 2048-битный RSA обеспечит разумную защиту по меньшей мере на десятилетие, оставаясь в то же время совместимым с подавляющим большинством программ стандарта OpenPGP.

Так ли это сейчас?

В основном да. Согласно Специальному выпуску NIST 800-57, опубликованному в июле 2012 года, 2048-битный RSA считается надежным до 2030 года. До сих пор никакой авторитетный криптограф и никакая уважаемая группа исследователей не подвергала сомнению надежность RSA-2048. Тем не менее многие предлагают постепенно переходить на более длинные ключи, и GnuPG будет делать это в ближайшем будущем.

Что другие группы говорят о 2048-битном RSA? В 2014 году немецкая Bundesnetzagentur fuer Elektrizitaet, Gas, Telekommunikation, Post und Eisenbahnen рекомендовала RSA-2048 для долгосрочной безопасности в электронных подписях.

В 2012 году ECRYPT-II опубликовала свой «Годовой отчет по алгоритмам и размерам ключей», где было выражено убеждение в том, что RSA-1776 подойдет по крайней мере до 2020 года, а RSA-2432 — до 2030.

В 2010 году французское Agence Nationale de la Securite des Systems d’Information заявляло, что они считают RSA-2048 надежным по меньшей мере до 2020 года.

Есть ли общая рекомендация применять 3072-битные ключи в новых приложениях?

Нет, хотя некоторые авторитетные в криптографическом сообществе люди и группы давали такие рекомендации. Некоторые даже рекомендуют 4096-битные ключи.

Будет ли когда-нибудь GnuPG поддерживать RSA-3072 или RSA-4096 по умолчанию?

Скорее всего, нет. Будущее — за криптографией эллиптических кривых; ее защита будет сопоставима с RSA-16384. Каждая минута, которую мы тратим на спор о том, нужно ли предлагать по умолчанию RSA-3072, на минуту отодвигает переход к криптографии эллиптических кривых. Откровенно говоря, мы считаем, что криптография эллиптических кривых — отличная техника, и нам хотелось бы, чтобы ее ввели в эксплуатацию настолько скоро, насколько это только позволяет человеческий фактор.

Я думаю, мне нужны более длинные ключи.

Пожалуйста. Создавайте сертификаты с более длинными ключами. GnuPG поддерживает ключи длиной до 4096 бит.

11.3 Применяется ли RSA-2048 в других приложениях с повышенной защитой?

2048-битный RSA часто применяют для защиты корневых подписывающих сертификатов SSL. Его применяют также, чтобы подписывать обновления операционных систем, в подписях Authenticode, приложениях Java и многом другом. RSA-2048 считается защищенным от атак по меньшей мере до 2030 года, так что пользуйтесь им спокойно.

11.4 Почему GnuPG не применяет по умолчанию RSA-4096?

Потому что это почти ничего не дает, а обходится недешево.

Взлом ключа RSA-10 требует проверки каждого простого числа от двух до ста. Их двадцать пять, значит, RSA-10 эквивалентен 5-битному симметричному шифру. Взлом RSA-20 требует проверки каждого простого числа от двух до тысячи: таких чисел 168, значит, RSA-20 эквивалентен 8-битному симметричному шифру. Удвоение длины ключа (с RSA-10 до RSA-20) не дает нам того выигрыша, какой мы могли бы ожидать из наивных соображений. Каждый дополнительный бит дает соответственно меньше дополнительной защиты, и мы быстро достигаем точки перегиба.

Эта точка перегиба расположена около RSA-2048. После этого вы не можете выиграть очень много. В то же время после RSA-2048 вы не можете переместить свой сертификат на электронную карту, нормально пользоваться им на некоторых мобильных устройствах или работать с другими приложениями OpenPGP, которые не поддерживают длинных ключей.

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

11.5 Почему люди не советуют пользоваться RSA-4096?

Почти всегда, когда люди пользуются 4096-битным RSA, они делают это из-за того, что считают его гораздо сильнее, чем это есть на самом деле. Национальный институт стандартов и техники США (NIST) утверждает, что RSA-2048 дает примерно 112 бит защиты, а RSA-3072 — около 128. Официальных оценок для RSA-4096 нет, но общий консенсус состоит в том, что это около 140 бит — на 28 бит больше, чем с RSA-2048. Это настолько малое улучшение, что его не стоит и упоминать.

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

11.6 Почему GnuPG поддерживает RSA-4096, если он так плох?

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

11.7 Можно ли взломать какие-то шифры в GnuPG полным перебором?

Нет.

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

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

Пользуясь принципом Ландауэра и пределом Марголуса-Левитина), можно довольно точно определить, сколько тепла выделил бы компьютер, выполняющий полный перебор 128-битного шифра. Получаются дикие цифры: этого тепла достаточно, чтобы вскипятить океаны и превратить планету в выжженную дымящуюся пустыню.

Это не значит, что взломать GnuPG невозможно. Это только значит, что ни один из шифров в GnuPG не может быть взломан полным перебором.

11.8 Были ли когда-нибудь успешные атаки на GnuPG?

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

Если стоит вопрос: «Были ли сообщения GnuPG когда-нибудь успешно подвергнуты криптоанализу?» — то ответ, безусловно, отрицательный. Нам неизвестно никаких достоверных сообщений о том, что какой-то из шифров, применяемых в GnuPG, когда-либо был подвергнут успешному криптоанализу.

Если стоит вопрос: «Были ли случаи, когда люди все равно умудрились получить незашифрованный текст?» — то ответ подчеркнуто положительный. В случае 2007 года с Управлением по борьбе с наркотиками на компьютер подозреваемого установили программу, которая запоминала все нажатия на клавиши.

GnuPG защищает ваши сообщения от криптоанализа, но это не волшебная палочка, которой достаточно коснуться ваших данных, чтобы защитить их от всех напастей.

11.9 Нужно ли мне пользоваться PGP/MIME в электронной почте?

Почти наверняка. В прошлом это был неоднозначный вопрос, но в последнее время пришли к консенсусу: пользуйтесь PGP/MIME, когда только можно. Дело в том, что в PGP/MIME можно упрятать заголовки и метаданные сообщения, а если посылать данные в тексте сообщения, то эти данные остаются открыты.Опыт последних лет показал нам, что метаданные часто так же важны, как содержимое сообщения. PGP/MIME может защитить метаданные; пересылка в тексте сообщения — нет.

Однако имейте в виду, что не все серверы правильно обрабатывают PGP/MIME. Некоторые списки рассылки несовместимы с PGP/MIME (PGP-Basics, например). Некоторые программы для списков рассылки искажают PGP/MIME (старые версии Mailman, например).

Если у вас проблемы с PGP/MIME, обдумайте как следует, нуждаетесь ли вы в защите метаданных. Если нет, данные можно пересылать в тексте сообщения.

11.10 Какие алгоритмы в GnuPG лучше?

Алгоритмов MD5 и SHA-1 следует по возможности избегать, и для шифрования больших объемов лучше всего пользоваться Camellia, Twofish или AES. Других рекомендаций нет. Это все равно что спрашивать, кто лучше терроризирует мегаполисы: Годзилла или Кинг Конг? Явного победителя здесь нет.

Однако это не значит, что у вас не должно быть предпочтений. Это значит только, что алгоритмы в GnuPG спроектированы настолько хорошо для своих целей, что из них нельзя выбрать один «наилучший». Есть только много личных, субъективных предпочтений.

11.11 Почему мой ключ DSA ограничен 3072 битами?

За спецификацию DSA отвечает Национальный институт стандартов и техники США (NIST). NIST не публиковал 4096-битного варианта DSA, так что GnuPG его не предлагает.

11.12 Почему в ключе DSA-1024 используется не та же хеш-функция, что в ключах DSA-2048 или DSA-3072?

Было выпущено несколько пересмотренных версий DSA.

Первоначальная реализация DSA в GnuPG поддерживала 1024-битные ключи, в которых в качестве хеш-функций применялись SHA-1 или RIPEMD-160.

Когда Национальный институт стандартов и техники США (NIST) пересмотрел спецификацию и добавил 2048-битные и 3072-битные ключи, это потребовало также более длинных хешей. DSA-2048 потребовал 224-битного хеша (SHA-224 или более длинного хеша, обрезанного до 224 бит), а DSA-3072 потребовал 256-битного хеша (SHA-256 или более длинного хеша, обрезанного до 256 бит). Спецификация стала также допускать применение более сильных хешей для DSA-1024: если они длиннее 160 бит, они будут обрезаны.

Итак, в зависимости от того, как вы сконфигурировали GnuPG, программу можно заставить пользоваться SHA-1 или RIPEMD-160 с DSA-1024; GnuPG может пользоваться более длинными хешами SHA с DSA-1024; GnuPG может применять SHA-224, -256, -384 или -512 для DSA-2048; GnuPG может применять SHA-256, SHA-384 или SHA-512 для DSA-3072.

11.13 Почему не расшифровывается то, что зашифровано мною двадцать лет назад с помощью PGP 2.6?

Двадцать лет назад была выпущена PGP 2.6. Программа имела большой успех, но в ее устройстве были и неудачные моменты. Вскоре после этого была выпущена улучшенная версия, которая в конце концов вошла в стандарт RFC 4880.

GnuPG поддерживает RFC 4880, а не PGP 2.6. Ничего удивительного: все программы когда-нибудь становятся несовместимыми с тем, что было раньше. Текстовые процессоры 2015 года не поддерживают формат WordStar, точно так же как современные персональные компьютеры не принимают 5-дюймовые гибкие диски.

Если вам совершенно необходима поддержка PGP 2.6, мы рекомендуем воспользоваться PGP 2.6. Вы без труда найдете ее в Интернете. Если это неприемлемо, можно использовать GnuPG 1.4, более старую ветвь GnuPG, в которой есть некоторая (но никоим образом не полная) поддержка PGP 2.6.

Автор: Роберт Дж. Гансен и проч.

Created: 2017-05-25 Thu 17:37

Emacs 24.3.1 (Org mode 8.2.4)

Validate