From: Sergey Matveev Date: Sat, 31 Oct 2015 16:25:32 +0000 (+0300) Subject: Перенести русскоязычный документ о PGP keysigning party X-Git-Url: http://www.git.cypherpunks.ru/?a=commitdiff_plain;h=f16a1758f2d057f4a319eea75041b3cd4e3dd62e;p=cypherpunks-www.git Перенести русскоязычный документ о PGP keysigning party Источник: https://github.com/ivladdalvi/keysigning-party --- diff --git a/index.texi b/index.texi index 5b2d72d..6557044 100644 --- a/index.texi +++ b/index.texi @@ -41,6 +41,7 @@ @menu * Манифесты и статьи о приватности: Manifests. * Cryptoparty:: +* Встреча для подписей ключей: KSP. * Технические статьи: Articles. * Полезные ссылки: Links. * BitTorrent tracker: Tracker. @@ -56,6 +57,7 @@ @include manifests/index.texi @include cryptoparty/intro.texi +@include ksp/index.texi @include articles/index.texi @include links.texi @include tracker.texi diff --git a/ksp/announcing.texi b/ksp/announcing.texi new file mode 100644 index 0000000..a7fe817 --- /dev/null +++ b/ksp/announcing.texi @@ -0,0 +1,133 @@ +@node KSP announcing +@section Организация встречи + +@strong{Задачи координатора} + +Организовать встречу для подписи ключей не очень сложно. Однако помимо +обычных организационных задач вроде приглашения участников, выбора +времени и места проведения встречи, координатор несёт ещё ряд +специфических для такого рода встреч обязанностей. Они включают в себя +создание списка ключей участников и определение порядка проведения +встречи. + +@strong{Как проводить встречу?} + +Есть две основных стратегии проведения встречи для подписи ключей: +централизованная и децентрализованная. Выбор стратегии зависит от числа +участников и места проведения встречи. Главное требование к организации +встречи -- чтобы участники могли проверить ключи друг друга и убедиться +в том, что другие участники -- те, за кого они себя выдают. Если это +требование удовлетворено, координатор может комбинировать обе эти +стратегии. + +Централизованный способ проведения встречи позволяет провести подпись +ключей более организованно и подходит для встреч с относительно +небольшим числом участников. Участники заранее посылают информацию о их +ключах координатору, который составляет список участников. По прибытии +каждый участник получает копию списка ключей. Затем каждый участник по +очереди вызывается координатором. Каждый участник проверяет правильность +отпечатка своего ключа в списке ключей, распространяемом координатором. +Если участник уверен, что его информация внесена в список верно, он +оглашает отпечаток своего ключа так, чтобы другие участники могли его +слышать и проверить правильность отпечатка. Если отпечаток верен, +участники отмечают это в своих списках. Эта проверка необходима для +защиты от ошибки координатора при создании списка или от намеренного +искажения информации в списке. После того как каждый участник убедился +в правильности ключа, координатор вызывает следующего участника и так +далее. После того как правильность всех ключей проверена, все +участники, включая координатора, выстраиваются в ряд, держа свои +удостоверения личности перед собой. Участник в начале шеренги проходит +всю шеренгу и проверяет удостоверения личности всех остальных +участников. Если участник удовлетворён результатами проверки +удостоверения личности, он также убеждается, что отпечаток ключа верен. +Если это так, проверяющий участник ставит вторую отметку в списке. После +того, как ключ прошёл две проверки, он может быть подписан. + +На децентрализованной встрече каждый участник должен позаботиться +о себе сам. Участники должны сами находить тех, чьи +ключи они ещё не проверили. Во время неформального общения участники +проверяют правильность своего ключа в списках других участников и +проверяют удостоверения личности. Децентрализованный способ проведения +встречи удобен в случае относительно большого числа участников, однако +недостатком такого способа проведения является то, что скорее всего не +все участники проверят ключи друг друга. В этом случае задачей +координатора является организовать встречу таким образом, чтобы как +можно больше участников (в идеале -- все) смогли проверить ключи. В +случае проведения децентрализованной встречи создание списков участников +необязательно, однако это сильно облегчает организацию встречи. + +Централизованные встречи хорошо подходят для проведения на всевозможных +конференциях, во время неформальных встреч, домашних вечеринок или во +время совместного похода в ресторан и т.д. Децентрализованные встречи +лучше проводить на вечеринках, где присутствует большое число людей, в +ночном клубе или на дискотеке -- там, где централизованную встречу +организовать трудно. + +@strong{Объявление о встрече} + +Чем больше людей примет участие во встрече, тем лучше. О встрече можно +оповестить членов местной группы пользователей GNU/Linux, в популярных +списках рассылки или дать объявление в газету или выпустить пресс-релиз. + +Если вы только начинаете создание сети доверия в своей местности, +попробуйте найти других активных пользователей PGP. Скорее всего, +опытные пользователи уже принимали участие в подобных встречах для +подписи ключей или сами организуют их в будущем. Попробуйте обратиться к +тем людям, в подписях e-mail которых вы видели отпечатки ключа PGP или +электронную подпись. Большое число потенциальных участников можно найти +среди владельцев адресов электронной почты из университетов или крупных +компаний. + +Вот примеры объявлений о проведении встречи: + +@itemize +@item Web-страница с объявлением +@item Объявление по электронной почте +@item Пресс-релиз с объявлением о встрече +@end itemize + +@strong{Создание списков ключей} + +Если вы собираетесь использовать списки ключей всех участников при +проведении встречи, такой список нужно подготовить заранее. Список может +выглядеть таким образом: + +@multitable @columnfractions .1 .25 .25 .1 .1 .1 .1 +@headitem Key ID @tab Key Owner @tab Key Fingerprint @tab Key Size @tab Key Type @tab Key Info Matches? @tab Owner ID Matches? +@item 992A4B3F @tab V. Alex Brennen @tab 0EC8 B0E3 052D FC4C 208F 76EB FA92 0973 992A 4B3F @tab 1024 @tab DSA @tab @tab +@end multitable + +Я написал скрипт на Perl, который позволяет создать HTML-документ, +содержащий подобную таблицу, из кольца ключей PGP. Этот Perl-скрипт для +создания списка участников встречи для подписи ключей доступен на +условиях Общественной Лицензии GNU (GPL). + +Каждый участник встречи должен иметь бумажную копию этого списка. +Координатор может распечатать копии сам, сделать список доступным +для скачивания через Web или разослать его через список рассылки, чтобы +каждый участник мог распечатать список самостоятельно. + +@strong{Построение получившейся сети доверия} + +Ничто не вызывает у людей такого интереса, как разноцветные графики. +Поэтому построение графического изображения получившейся в результате +встречи сети доверия может заинтересовать потенциальных участников и +служить наглядной иллюстрацией результатов, достигнутых при проведении +встречи. + +Построить графическую схему сети доверия очень легко. Для этого можно +использовать скрипт @url{http://www.chaosreigns.com/code/sig2dot/, Darxus sig2dot.pl} +или более современные варианты @url{https://www.phildev.net/pgp/gpg_graphs.html, sig3} +и @url{https://github.com/bmhm/sig2dot2, sig2dot на Python}. +Все эти скрипты на основе ключей и подписей в ключнице создают файл в +формате @code{dot}. Этот файл впоследствии используется +@url{http://www.graphviz.org/, пакетом Graphviz} AT&T Research для +создания собственно изображения графа. С построениями схем сетей, +состоящих из нескольких сотен узлов, могут возникнуть трудности из-за +нехватки памяти. + +Указания по построению графической схемы сети доверия включены в скрипт +@code{sig2dot.pl}, а также их можно найти на странице ключницы Debian. +Здесь расположен пример схемы сети доверия, созданный с помощью +@code{sig2dot.pl} и @code{neato}. Дополнительную информацию можно найти +на странице построения схемы ключницы Debian. diff --git a/ksp/attending.texi b/ksp/attending.texi new file mode 100644 index 0000000..7290e4a --- /dev/null +++ b/ksp/attending.texi @@ -0,0 +1,472 @@ +@node KSP attending +@section Посещение встречи + +@strong{Задачи участника} + +@itemize +@item Создать пару ключей +@item Послать открытый ключ на сервер ключей (или координатору) +@item Послать координатору информацию для внесения в список +@item Лично прийти на встречу +@item Проверить информацию в списке +@item Проверить информацию о ключах других участников +@item Проверить личность участников, чьи ключи вы хотите подписать +@item Подписать ключи других участников +@item Послать подписанные ключи на сервер ключей (или владельцу ключа) +@end itemize + +@strong{Что нужно принести с собой на встречу} + +@itemize +@item Необходимо явиться лично +@item Два удостоверения личности с фото (паспорт, водительские права, +студенческий билет, воинское удостоверение и т.д.) +@item ID ключа, тип ключа, отпечаток ключа и его размер или копию списка +участников +@item Ручку или карандаш +@end itemize + +@strong{Что не нужно приносить с собой} + +@itemize +@item Компьютер +@end itemize + +@strong{Почему не нужно брать с собой компьютер} + +На встрече нельзя пользоваться компьютером, поскольку подмена программы +или модификация операционной системы позволяют легко нарушить надёжность +PGP. + +Если кто-то приносит с собой портативный компьютер и все используют его +для цифровой подписи ключей других участников, никто не может +гарантировать, что на компьютере не установлена программа записи нажатых +клавиш, изменённая версия GnuPG, изменённая версия ядра Linux или +модифицированная клавиатура, что позволит раскрыть закрытые ключи тех, +кто пользовался этим компьютером. + +Если вы используете компьютер на встрече, ваш пароль также могут просто +подсмотреть через плечо, GnuPG может быть модифицирована для создания +более слабых ключей или даже может быть создан компьютерный вирус, +заражающий GnuPG, для дальнейшего раскрытия закрытых ключей. + +@strong{Создание собственной пары ключей} + +Создать собственную пару ключей очень просто. Нужно всего лишь запустить +@code{gpg --gen-key}. Однако я советую также создать отзывающий сертификат для +созданного ключа на случай, если доступ к закрытому ключу будет +невозможен (например, вы забыли парольную фразу или потеряли закрытый +ключ). Процедура создания отзывающего сертификата описана в +@ref{KSP revcert, соответствующем разделе} этого документа. + +Не всем могут быть необходимы описанные здесь действия по повышению +безопасности. Скажем, если вы читаете всю почту на домашнем или +портативном компьютере, вы можете сохранить ключи на жёстком диске. +Возможно, вы также захотите создать ключ без истечения срока действия и +использовать его для обычных коммуникаций, а для особо секретных (если у +вас есть такие) использовать другой ключ. Повторюсь, что пошаговая +инструкция, приведённая здесь, нацелена на обеспечение максимального +уровня безопасности. Вам не обязательно полностью следовать ей, можно +просто создать пару ключей. С другой стороны, если вы (так же, как и я) +очень щепетильно относитесь к вопросам безопасности, следование этим +инструкциям ненадолго успокоит вас (и вашу паранойю). + +Эти пошаговые инструкции написаны с (довольно параноидальной) точки +зрения обеспечения максимальной безопасности, что включает в себя: + +@itemize +@item создание ключей максимально возможной длины для усложнения атак + перебора +@item создание ключей с ограниченным сроком действия в расчёте на + возможность радикальных изменений в компьютерных технологиях +@item ключи сохраняются на USB устройстве для защиты от похищения в случае + кражи компьютера или его взлома через сеть +@item создание отзывающего сертификата для возможности отзыва ключа + в случае, если он будет утрачен или скомпрометирован +@end itemize + +@enumerate + +@item +Загрузите последнюю версию +@url{https://www.gnupg.org/download/index.html, GnuPG с сайта}: +@code{gnupg-x.x.x.tar.bz2} + +Внимание! Убедитесь, что вы используете GnuPG как минимум версии 1.0.6. +Все более старые версии GnuPG содержат как минимум одну весьма +серьёзную с точки зрения безопасности недоработку. + +@item +Проверьте криптографическую подпись или как минимум контрольную сумму SHA1. + +@verbatim +$ gpg --verify gnupg-x.x.x.tar.bz2.sig gnupg-x.x.x.tar.bz2 +$ sha1sum gnupg-x.x.x.tar.bz2 +@end verbatim + +@item +Распакуйте архив, настройте параметры сборки, выполните сборку и +установите программу. + +@verbatim +$ tar xvzf gnupg-x.x.x.tar.bz2 +$ cd gnupg-x.x.x +$ ./configure +$ make +$ su +# make install +# exit +@end verbatim + +Если компьютером, где вы устанавливаете GnuPG, пользуются и другие люди, +имеет смысл установить GnuPG как SUID root -- это позволит GnuPG +установить защиту сегментов памяти, где хранится секретная информация, +от записи на диск в область подкачки. Если вы решите так поступить, +обязательно проверьте подлинность архива с помощью SHA1 или электронной +подписи, чтобы быть уверенным, что вы не установите троянскую программу. + +@item +Возьмите USB диск, на котором вы будете хранить ключи, и отформатируйте +его. + +@verbatim +# /sbin/mkfs.ext2 /dev/sda1 +@end verbatim + +@item +Смонтируйте USB диск и создайте на нём каталог для вашей ключницы: + +@verbatim +# mount /mnt/usbfs +# mkdir /mnt/usbfs/.gnupg +@end verbatim + +и (если необходимо, в зависимости от параметров монтирования) + +@verbatim +# chown : /mnt/usbfs/.gnupg +@end verbatim + +@item +Создайте символьную ссылку каталога на USB диске в домашний каталог: + +@verbatim +$ ln -s /mnt/floppy/.gnupg .gnupg +@end verbatim + +@item Создайте ключи GnuPG + +@verbatim +$ gpg --gen-key +@end verbatim + +@item +Выберите тип создаваемых ключей -- если вы не знаете, что это, выберите +ответ по умолчанию. + +@verbatim +Please select what kind of key you want: + + (1) RSA and RSA (default) + (2) DSA and Elgamal + (3) DSA (sign only) + (4) RSA (sign only) +Your selection? +@end verbatim + +@item +Установите длину ключа равной 4096 бит. + +@verbatim +RSA keys may be between 1024 and 4096 bits long. +What keysize do you want? (2048) 4096 +Requested keysize is 4096 bits +@end verbatim + +@item +Выберите срок действия ключа. Разумный срок -- 5 лет. + +@verbatim +Requested keysize is 4096 bits +Please specify how long the key should be valid. + 0 = key does not expire + = key expires in n days + w = key expires in n weeks + m = key expires in n months + y = key expires in n years +Key is valid for? (0) 1y +Key expires at Fri Nov 5 00:19:43 EST 2014 +Is this correct (y/n)? y +@end verbatim + +@item +Введите ваше имя и адрес электронной почты. + +@verbatim +Real name: Demo User +Email address: demo@@nonexistent.nowhere +Comment: +You selected this USER-ID: +"Demo User " + +Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O +@end verbatim + +@item +Выберите парольную фразу. Парольная фраза является гарантом сохранности +ключей, поэтому она должна быть нетривиальной, достаточно длинной. Не +забудьте её. Если вы забыли парольную фразу, вы не сможете дешифровать +свой закрытый ключ. + +@item +Пошевелите мышкой, нажмите несколько случайных клавиш, запустите +перестройку базы locate или find по большому дереву каталогов. Для +создания ключей GnuPG требуется некоторое количество случайных данных. +Для сбора данных GnuPG читает из @code{/dev/random}; энтропия данных в +@code{/dev/random} увеличивается, среди прочего, за счёт прерываний. + +@item +Если это необходимо, измените дополнительные параметры ключа. Например, +если вы пользуетесь несколькими адресами электронной почты, вы можете +присоединить их к своему ключу. + +@verbatim +$ gpg --list-secret-keys + +/home/demo/.gnupg/secring.gpg +---------------------------- +sec 4096R/C01BAFC3 2000-09-21 Demo User +ssb 4096R/7A4087F3 2000-09-21 +$ gpg --edit-key C01BAFC3 +Command> help +[...] +Command> adduid +[...] +Command> save +@end verbatim + +@item Пошлите ваш открытый ключ на сервер ключей: + +@verbatim +$ gpg --keyserver --send-key +@end verbatim + +Вы должны увидеть подобное сообщение: + +@verbatim + gpg: success sending to '' (status=200) +@end verbatim + +@end enumerate + +@strong{Пересылка открытого ключа на сервер ключей} + +Необходимо отметить, что некоторые полагают, что сохранение их открытого +ключа в секрете повышает безопасность коммуникаций. Это в определённом +смысле верно, поскольку сервер ключей может работать неправильно или +быть взломан и возвращать по запросу неверные открытые ключи. Также +может оказаться, что ключ, хранящийся на сервере, неактуален. Например, +ключ владельца мог быть подписан новыми людьми, и эти подписи ещё не +отправлены на сервер. Это также верно, поскольку для реализации ряда +атак на асимметричную систему шифрования атакующему необходим доступ к +открытому ключу. Хотя большинство специалистов полагает, что при +достаточно большой длине ключа такого рода атаки скорее всего обречены +на провал, поэтому распространение открытого ключа безопасно, факт +остаётся фактом -- хранение открытого ключа в секрете усиливает +надёжность пары. Наконец, публикация открытого ключа и его подписей +позволяет атакующим создать граф коммуникаций и, хотя это не является +атакой на PGP, вы вправе желать сохранить свой социальный граф в тайне. + +Тем не менее я не рекомендую хранить ваш открытый ключ в секрете, +поскольку это не даёт возможности другим людям пользоваться PGP при +отправлении вам электронной почты. Для того чтобы обезопасить себя от +проблем с неправильно работающим сервером ключей, возвращающим неверные +открытые ключи, вы можете, например, внести отпечаток ключа в файл +.signature или разместить его на своей домашней странице. Для решения +проблемы атаки на открытый ключ, если он известен, я бы порекомендовал +для очень важных сообщений создавать дополнительные ключи (со сроком +действия в несколько часов или дней) и обмениваться ими по защищённому +каналу. + +Итак, если вы не хотите размещать свой открытый ключ на сервере ключей, +можете вместо этого послать его координатору встречи, +отметив при этом, что вы не хотите, что бы ваш ключ был размещён на +сервере. В этом случае координатор может извлечь необходимую информацию +и передать ваш ключ другим участникам встречи по защищённому каналу, +отметив, что подписанный ключ должен быть передан его владельцу, а не +отправлен на сервер ключей. + +@anchor{KSP revcert} +@strong{Создание отзывающего сертификата} + +Это необязательный шаг. + +Создание и хранение отзывающего сертификата позволит вам отозвать свой +открытый ключ в любой момент, если вы потеряете доступ к закрытому ключу +из-за взлома, кражи, забытой парольной фразы или поломки носителя. Если +вы хотите иметь возможность отозвать свой открытый ключ, даже если ваш +закрытый ключ станет недоступен, вы должны заранее создать отзывающий +сертификат и хранить его в безопасном месте. Сертификат можно также +распечатать на бумаге на случай, если носитель данных с электронной +копией не будет работать. + +Если ваш отзывающий сертификат будет похищен, тот, кто его похитил, сможет +обеспечить его распространение, тем самым лишая ваш ключ легитимности. +Однако похититель не получит доступа к вашему закрытому ключу, даже если +он завладел отзывающим сертификатом. Таким образом, он не будет в +состоянии подписывать электронные документы от вашего имени, читать +зашифрованные для вас сообщения или выдавать себя за вас другим +способом. Таким образом, поскольку единственной опасностью, +сопряжённой с хранением отзывающего сертификата, может быть +потенциальное нарушение действительности пары ключей, имеет смысл +создать его заранее. + +@ref{KSP own keypair revocation, Раздел содержит} дополнительную +информацию об отзыве ключей. + +Команда GnuPG для создания отзывающего сертификата: + +@verbatim +$ gpg --output revcert.asc --gen-revoke +@end verbatim + +@enumerate 16 + +@item +Напишите электронное письмо координатору, уведомите его о том, что вы +желаете принять участие во встрече. Пошлите также вывод следующей +команды -- он содержит всю необходимую информацию, если ваш ключ уже +хранится на сервере ключей. Разумеется, ваше письмо координатору может +быть зашифровано. + +@verbatim +$ gpg --fingerprint +@end verbatim + +@item +Размонтируйте USB диск и выньте его: + +@verbatim +# umount /mnt/usbfs +@end verbatim + +Вы можете всегда носить USB диск с собой или запирать в сейф, ящик +стола и т.п. Крайне не рекомендуется хранить ключи в системе, к которой +есть доступ через Интернет. + +@item Придите на встречу. + +@end enumerate + +@strong{Подпись других ключей} + +@enumerate + +@item Получите копию ключа. + +Обычно вы можете получить ключ с сервера ключей. Однако если вы +подписываете ключ, который не доступен с сервера, вы можете включить его +в вашу ключницу командой @code{gpg --import}. Если вы работаете с +сервером, добавьте ключ в вашу ключницу командой + +@verbatim +$ gpg --keyserver --recv-keys +@end verbatim + +Ошибка чтения, скорее всего, означает, что сервер перегружен. Попробуйте +ещё раз через несколько минут. + +@item Проверьте отпечаток ключа. + +@verbatim +$ gpg --fingerprint +@end verbatim + +Вывод команды будет содержать отпечаток только что полученного ключа. +Сравните выведенный отпечаток с отпечатком на списке участников. + +Внимание! Не полагайтесь на отпечаток, который показывает сервер ключей +-- возможно, для загрузки вам будет предложен один ключ, а отпечаток +показан от другого. + +@item Подпишите ключ. + +@verbatim +$ gpg --sign-key +@end verbatim + +Если у вас несколько закрытых ключей, вы можете указать, каким из них вы +хотите подписать чужой ключ. Это делается так: + +@verbatim +$ gpg --default-key --sign-key +@end verbatim + +Если у вас возникли проблемы с ключами RSA, вероятнее всего, у вас +слишком старая версия GnuPG. Версии GnuPG до 1.0.3 не поддерживали RSA. +Возможно, вам будет необходимо удалить версию GnuPG, поставляющуюся с +дистрибутивом, если вы собираете более новую версию из исходных текстов. + +Версию GnuPG можно проверить такой командой: + +@verbatim +$ gpg --version +@end verbatim + +@item Пошлите подписанный ключ владельцу или отправьте его на сервер ключей. + +Если ваш партнёр не хочет, чтобы его ключ находился на сервере ключей, +просто перешлите им их ключи назад -- например, по электронной почте с +шифрованием. Не следует посылать ключ на сервер без разрешения +владельца. Как мы отмечали, распространение открытого ключа +незначительно снижает общую безопасность пары, поэтому распространение +открытых ключей без разрешения их владельца считается дурным тоном. + +Однако обычно вы отсылаете ключи на сервер. Это делается так: + +@verbatim +$ gpg --keyserver --send-key +@end verbatim + +Если публикация прошла успешно, вы получите подобное сообщение: + +@verbatim +gpg: success sending to '' (status=200) +@end verbatim + +@end enumerate + +Поздравьте себя, процедура подписи завершена, ваша подпись включена в +ключ вашего партнёра и отношения доверия установлены. + +@anchor{KSP own keypair revocation} +@strong{Отзыв собственной пары ключей} + +Если вы подозреваете, что ваш закрытый ключ скомпрометирован, +вы должны немедленно отозвать свой открытый ключ. Отзыв ключа +состоит в присоединении т.н. подписи отзыва к открытому ключу. Отзыв +ключа означает, что ключ больше не действителен и не должен +применяться. Отзыв ключа не может быть отменен. + +Поскольку ваш ключ передан многим людям, а не помещён в одном центральном +хранилище, вы должны позаботиться о распространении отзывающего +сертификата таким же образом, как и вашего открытого ключа. Это обычно +означает, что отзывающий сертификат должен быть послан на сервер +ключей. Даже если вы не посылали свой открытый ключ на сервер ключей из +соображений секретности, посылка отзывающего сертификата может, тем не +менее, иметь смысл. В этом случае опасность атаки на открытый ключ может +быть менее значимой, чем преимущества быстрого оповещения об отзыве +ключа. + +Для создания отзывающего сертификата используйте следующую команду: + +@verbatim +$ gpg --output revcert.asc --gen-revoke +@end verbatim + +Если вы знаете, как и когда произошло нарушение безопасности вашего +закрытого ключа, вы можете создать отзывающий сертификат с указанием +причины отзыва, что допускается стандартом OpenPGP. В целом более +точное указание причины отзыва ключа может оказаться полезнее, чем +отзывающий сертификат без указания причины, который создаётся во время +создания ключа. diff --git a/ksp/glossary.texi b/ksp/glossary.texi new file mode 100644 index 0000000..be5f729 --- /dev/null +++ b/ksp/glossary.texi @@ -0,0 +1,56 @@ +@node KSP glossary +@section Список терминов + +@table @asis + +@item Ключ +набор данных, являющихся секретом шифрования; + +@item Отпечаток ключа +в PGP это значение, использующееся для идентификации ключа; представляет +из себя хеш ключа; + +@item Пара ключей +в криптографии с открытым ключом - пара ключей, открытый и закрытый +(секретный), связанные друг с другом специальным отношением; + +@item Ключница (keyring) +набор ключей; + +@item Сервер ключей +служба, сохраняющая открытые ключи в базе данных; эти ключи могут быть +получены пользователями по запросу в случае, если они ещё не вступали в +контакт с владельцем ключа; + +@item Встреча для подписи ключей +собрание людей с целью подписи ключей друг друга; служат развитию сети +доверия; + +@item OpenPGP +открытый стандарт, описывающий работу PGP; + +@item Pretty Good Privacy (PGP) +программное обеспечение, обеспечивающее шифрование данных, разработанное +Филиппом Циммерманом; включает в себя как симметричную криптографию, так +и криптографию с открытым ключом; + +@item Открытый ключ +в криптографии с открытым ключом - один ключ из пары ключей, известный +многим коммуникантам; + +@item Radix +метод кодирования данных для передачи по каналу, поддерживающему только +8-битные символы, например электронной почте или Usenet; + +@item Закрытый (секретный) ключ +в криптографии с открытым ключом - ключ, известный только владельцу; + +@item Путь доверия +набор связей, позволяющих установить отношения доверия через несколько +промежуточных узлов; в PGP это соединение между двумя открытыми ключами; + +@item Сеть доверия +набор открытых ключей и подписей, формирующих пути доверия с точки +зрения конкретного пользователя. + +@end table diff --git a/ksp/index.texi b/ksp/index.texi new file mode 100644 index 0000000..369c30c --- /dev/null +++ b/ksp/index.texi @@ -0,0 +1,31 @@ +@node KSP +@unnumbered Как проводить встречи для подписи ключей GnuPG + +Этот документ описывает организацию и проведение встречи для подписи +ключей PGP с использованием GnuPG. Он также объясняет процесс подписи +ключей, даёт ответы на часто задаваемые вопросы и поясняет, как создать +собственную пару ключей и как подписывать ключи других +людей. Этот документ появился как перевод "The Keysigning Party +HOWTO", но со временем несколько видоизменился. + +@menu +* Описание встречи: KSP overview. +* Организация встречи: KSP announcing. +* Посещение встречи: KSP attending. +* Список терминов: KSP glossary. +* Ссылки на источники дополнительной информации: KSP links. +@end menu + +Оригинал документа на английском +@url{http://cryptnet.net/fdp/crypto/keysigning_party/en/keysigning_party.html, написанный V. Alex Brennen}. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, +@url{https://www.gnu.org/licenses/fdl.html, Version 1.3} or +any later version published by the Free Software Foundation. + +@include ksp/overview.texi +@include ksp/announcing.texi +@include ksp/attending.texi +@include ksp/glossary.texi +@include ksp/links.texi diff --git a/ksp/links.texi b/ksp/links.texi new file mode 100644 index 0000000..431cfff --- /dev/null +++ b/ksp/links.texi @@ -0,0 +1,37 @@ +@node KSP links +@section Ссылки на источники дополнительной информации + +@strong{Список некоторых общественных серверов ключей} + +@itemize +@item @url{http://keys.gnupg.net/} +@item @url{http://gnv.us.ks.cryptnet.net/} +@item @url{http://subkeys.pgp.net/} +@item @url{http://pgp.mit.edu/} +@end itemize + +@strong{Сайты и документы по теме} + +@itemize +@item @url{http://www.biglumber.com/, Biglumber} -- координация тех кто хочет подписать ключи +@item Домашняя страница @url{http://www.openpgp.org/, OpenPGP альянса} +@item @url{https://www.eff.org/, Electronic Frontier Foundation} (EFF) +@item @url{https://gnupg.org/faq/gnupg-faq.html, GnuPG FAQ} +@item @url{http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto.html, GnuPG Mini Howto} +@end itemize + +@strong{Сопутствующие программы} + +@itemize +@item @url{https://gnupg.org/, Gnu Privacy Guard} (GnuPG) +@item @url{https://www.lysator.liu.se/~jc/wotsap/, Wotsap} -- Web of trust statistics and pathfinder +@item @url{http://pgp.cs.uu.nl/, PGP pathfinder & key statistics} +@item @url{http://www.graphviz.org/, Graphviz} -- Graph visualization +@end itemize + +@strong{RFC, имеющие отношение к теме} + +@itemize +@item @url{http://tools.ietf.org/html/rfc4880, RFC4880: OpenPGP Message Format} +@item @url{http://tools.ietf.org/html/rfc3156, RFC3156: MIME Security with OpenPGP} +@end itemize diff --git a/ksp/overview.texi b/ksp/overview.texi new file mode 100644 index 0000000..3523d19 --- /dev/null +++ b/ksp/overview.texi @@ -0,0 +1,139 @@ +@node KSP overview +@section Описание встречи + +@strong{Что такое "встреча для подписи ключей"?} + +Встреча для подписи ключей -- это собрание людей, которые используют +систему шифрования PGP, для подписи ключей друг друга. Встречи для +подписи ключей позволяют значительно расширить сеть доверия. Кроме того, +встречи для подписи ключей предоставляют замечательную возможность +обсудить различные общественные и политические проблемы, возникающие в +связи с применением сильной криптографии, вопросы свободы личности, +личной неприкосновенности или просто возможность поболтать, а может +быть, даже придумать новые механизмы шифрования. + +@strong{Что такое "подпись ключей"?} + +Подпись ключей -- это процесс электронной подписи открытого ключа и +соответствующего ему идентификатора личности. Процесс подписи ключа +позволяет убедиться, что открытый ключ и идентификатор пользователя +действительно принадлежат владельцу открытого ключа и соответствующего +идентификатора. + +Можно подписывать как собственные открытые ключи, так и открытые ключи +и идентификаторы других пользователей. + +Смысл подписи ключей состоит в подтверждении третьим лицом +принадлежности открытого ключа и соответствующего идентификатора. Таким +образом, подпись ключей позволяет создать сеть доверия. + +@strong{1.3 Что такое сеть доверия?} + +Термин "сеть доверия" используется для описания отношений доверия между +несколькими ключами (точнее -- их владельцами). Ключи представляют собой +узлы графа доверия, а подписи -- рёбра графа. Эти связи между ключами также +называются путями доверия. Доверие может быть как двусторонним, так и +односторонним. В идеальной сети доверия каждый доверяет каждому. Это +означает, что каждый уверен, что все ключи принадлежат своим владельцам. +Сеть доверия может рассматриваться как сумма всех путей доверия между +всеми владельцами ключей. + +@strong{Пример применения подписей ключей} + +Пусть, например, Алиса и Борис каждый создали ключи PGP с помощью +@url{https://www.gnupg.org/, GnuPG} и провели встречу для подписи +ключей. На встрече Алиса и Борис проверили ключи друг друга и +впоследствии подписали их. По умолчанию GnuPG автоматически подписывает +открытый ключ каждой вновь созданной пары с помощью соответствующего +закрытого ключа. Таким образом, как Алиса, так и Борис имеют как минимум +по две подписи, подтверждающие их владение соответствующим ключом. Ключ +Алисы подписан самой Алисой и Борисом, а ключ Бориса подписан им самим и +Алисой. + +Допустим, впоследствии Алиса и Борис познакомились с Викторией. Виктория +создаёт пару ключей и сообщает Алисе и Борису, что пошлёт им свой +открытый ключ. Алисе не нравится Виктория, и она не хочет, чтобы Борис +обменивался с Викторией зашифрованными письмами. Алиса также создаёт +PGP-ключи от имени Виктории и высылает их Борису. Оба открытых ключа +имеют только одну подпись -- созданную с помощью соответствующего закрытого +ключа. Борис не может проверить, какой из ключей на самом деле +принадлежит Виктории. + +Виктория узнает, что Борис получил два открытых ключа от её имени. Она +подозревает Алису. Желая отомстить, Виктория может попытаться разрушить +отношения доверия между Борисом и Алисой. Чтобы достичь результата, +Виктория посылает письмо Борису от имени Алисы, сообщая, что Алиса +создала новую пару ключей. В письме также содержится "новый ключ" +Алисы, созданный Викторией. Однако Борис может легко установить подмену, +так как, хотя у него и есть два разных ключа, оба якобы принадлежащих +Алисе, один из них подписан несколькими людьми (им самим и Алисой), +а другой (поддельный ключ, созданный Викторией) -- только собственным +закрытым ключом. + +Этот пример очень упрощён, и в реальной ситуации процесс может выглядеть +намного сложнее. Прочтите список ответов на частые вопросы о PGP или +какую-нибудь хорошую книгу о PKI -- наверняка вы найдёте более подробное +объяснение и много дополнительной информации. Рассмотренный пример, +однако, наглядно показывает принципы и необходимость подписи ключей. +Виктории не удалось заставить Бориса использовать поддельную пару ключей +для Алисы, поскольку между Алисой и Борисом уже установлен путь доверия. + +Однако наличие подписей и сетей доверия не всегда обеспечивает +возможность проверки ключей. Пусть, например, Алиса и Борис +познакомились с Викторией в присутствии Дмитрия, знакомого Виктории. +Дмитрий может создать поддельные ключи для Алисы и Бориса, подписать их +своим ключом и поддельными ключами Алисы и Бориса. В этом случае он +получит три подписи на каждом из поддельных ключей, которые он пошлёт +Виктории. Настоящие ключи Алисы и Бориса подписаны только их закрытыми +ключами; они также посланы Виктории. Каким образом Виктория может +противостоять такой атаке? Пусть, например, весь обмен ключами +происходит через сервер ключей. Виктория находит по две копии ключей для +Алисы и Бориса. Если ключи Бориса и Алисы подписаны двадцатью +участниками во время встречи для подписи ключей, очевидно, что Виктории +следует доверять открытым ключам, подписанным 20 раз, а не тем, которые +подписаны всего 3 раза. В любом случае уже сам факт существования двух +наборов подписей должен насторожить Викторию -- в этом случае она может +более тщательно проверить сеть доверия наборов, даты создания и тому подобное. 20 +ключей, использовавшиеся во время встречи для подписи ключей, сами должны +быть подписаны не менее 20 раз, иметь различные даты создания, развитые +сети доверия. У поддельных ключей этого не будет, даже если Дмитрий +создаст поддельную сеть доверия из 20 ключей. Поддельная сеть доверия +Дмитрия будет ограничена по размерам и глубине количеством ключей, +созданных или контролируемых Дмитрием. Многоуровневая сеть доверия, +содержащая заведомо настоящие ключи, будет веским свидетельством в +пользу того, что подлинным ключам Алисы и Бориса можно доверять больше, +чем поддельным ключам Дмитрия. + +@strong{Зачем мне проводить встречи для подписи ключей?} + +Есть три основных причины проводить встречи для подписей ключей как +можно чаще. + +Во-первых, частое проведение встреч для подписи ключей позволяет +расширять сеть доверия. Чем сильнее связана сеть доверия, чем больше +отношений доверия установлено в ней, тем труднее её разрушить. Это может +оказаться особенно важно для пользователей и разработчиков открытого +программного обеспечения. Разработчики часто используют PGP для +криптографической подписи своих программных разработок, писем с +сообщениями о критических ошибках и выходе новых версий. Развитость и +связанность сети доверия прямо пропорциональна защите, обеспечиваемой +PGP. + +Во-вторых, встречи для подписи ключей позволяют привлечь новых членов и +познакомить их с культурой компьютерной безопасности, помочь им понять +принципы работы PGP и относящейся к ней сильной криптографии. Чтобы +использовать преимущества, предоставляемые сильной криптографией, люди +должны правильно её использовать. + +Наконец, такие встречи позволяют расширять сообщество. Они позволяют +людям ближе познакомиться друг с другом, общаться на интересующие их +темы, как то: гражданские свободы, право использовать шифрование, +управление Интернетом. Обсуждения важны, поскольку обсуждение -- не только +первый шаг, но и побуждение к действию. Сейчас, когда я пишу этот +документ, в мире не так много больших сетей доверия. Если вы собираетесь +создать сеть доверия в круге вашего общения, скорее всего, первыми +участниками будут лидеры, организаторы и активные участники сообщества +Интернета вокруг вас. Они могли бы взять на себя внедрение защищённых +коммуникаций в сложившуюся сетевую инфраструктуру. Внедрение такой +технологии и протоколов может предотвратить угрозы безопасности частной +жизни, связанные с внедрением ФБР системы Carnivore (а МВД -- СОРМ).