@node KSP Overview @section Описание встречи @menu * Что такое "встреча для подписи ключей"?: KSP What. * Что такое "подпись ключей"?: KSP What keysigning. * Что такое сеть доверия?: KSP What WoT. * Пример применения подписей ключей: KSP Example. * Зачем мне проводить встречи для подписи ключей?: KSP Why. @end menu @node KSP What @subsection Что такое "встреча для подписи ключей"? Встреча для подписи ключей -- это собрание людей, которые используют систему шифрования PGP, для подписи ключей друг друга. Встречи для подписи ключей позволяют значительно расширить сеть доверия. Кроме того, встречи для подписи ключей предоставляют замечательную возможность обсудить различные общественные и политические проблемы, возникающие в связи с применением сильной криптографии, вопросы свободы личности, личной неприкосновенности или просто возможность поболтать, а может быть, даже придумать новые механизмы шифрования. @node KSP What keysigning @subsection Что такое "подпись ключей"? Подпись ключей -- это процесс электронной подписи открытого ключа и соответствующего ему идентификатора личности. Процесс подписи ключа позволяет убедиться, что открытый ключ и идентификатор пользователя действительно принадлежат владельцу открытого ключа и соответствующего идентификатора. Можно подписывать как собственные открытые ключи, так и открытые ключи и идентификаторы других пользователей. Смысл подписи ключей состоит в подтверждении третьим лицом принадлежности открытого ключа и соответствующего идентификатора. Таким образом, подпись ключей позволяет создать сеть доверия. @node KSP What WoT @subsection Что такое сеть доверия? Термин "сеть доверия" используется для описания отношений доверия между несколькими ключами (точнее -- их владельцами). Ключи представляют собой узлы графа доверия, а подписи -- рёбра графа. Эти связи между ключами также называются путями доверия. Доверие может быть как двусторонним, так и односторонним. В идеальной сети доверия каждый доверяет каждому. Это означает, что каждый уверен, что все ключи принадлежат своим владельцам. Сеть доверия может рассматриваться как сумма всех путей доверия между всеми владельцами ключей. @node KSP Example @subsection Пример применения подписей ключей Пусть, например, Алиса и Борис каждый создали ключи PGP с помощью @url{https://www.gnupg.org/, GnuPG} и провели встречу для подписи ключей. На встрече Алиса и Борис проверили ключи друг друга и впоследствии подписали их. По умолчанию GnuPG автоматически подписывает открытый ключ каждой вновь созданной пары с помощью соответствующего закрытого ключа. Таким образом, как Алиса, так и Борис имеют как минимум по две подписи, подтверждающие их владение соответствующим ключом. Ключ Алисы подписан самой Алисой и Борисом, а ключ Бориса подписан им самим и Алисой. Допустим, впоследствии Алиса и Борис познакомились с Викторией. Виктория создаёт пару ключей и сообщает Алисе и Борису, что пошлёт им свой открытый ключ. Алисе не нравится Виктория, и она не хочет, чтобы Борис обменивался с Викторией зашифрованными письмами. Алиса также создаёт PGP-ключи от имени Виктории и высылает их Борису. Оба открытых ключа имеют только одну подпись -- созданную с помощью соответствующего закрытого ключа. Борис не может проверить, какой из ключей на самом деле принадлежит Виктории. Виктория узнает, что Борис получил два открытых ключа от её имени. Она подозревает Алису. Желая отомстить, Виктория может попытаться разрушить отношения доверия между Борисом и Алисой. Чтобы достичь результата, Виктория посылает письмо Борису от имени Алисы, сообщая, что Алиса создала новую пару ключей. В письме также содержится "новый ключ" Алисы, созданный Викторией. Однако Борис может легко установить подмену, так как, хотя у него и есть два разных ключа, оба якобы принадлежащих Алисе, один из них подписан несколькими людьми (им самим и Алисой), а другой (поддельный ключ, созданный Викторией) -- только собственным закрытым ключом. Этот пример очень упрощён, и в реальной ситуации процесс может выглядеть намного сложнее. Прочтите список ответов на частые вопросы о PGP или какую-нибудь хорошую книгу о PKI -- наверняка вы найдёте более подробное объяснение и много дополнительной информации. Рассмотренный пример, однако, наглядно показывает принципы и необходимость подписи ключей. Виктории не удалось заставить Бориса использовать поддельную пару ключей для Алисы, поскольку между Алисой и Борисом уже установлен путь доверия. Однако наличие подписей и сетей доверия не всегда обеспечивает возможность проверки ключей. Пусть, например, Алиса и Борис познакомились с Викторией в присутствии Дмитрия, знакомого Виктории. Дмитрий может создать поддельные ключи для Алисы и Бориса, подписать их своим ключом и поддельными ключами Алисы и Бориса. В этом случае он получит три подписи на каждом из поддельных ключей, которые он пошлёт Виктории. Настоящие ключи Алисы и Бориса подписаны только их закрытыми ключами; они также посланы Виктории. Каким образом Виктория может противостоять такой атаке? Пусть, например, весь обмен ключами происходит через сервер ключей. Виктория находит по две копии ключей для Алисы и Бориса. Если ключи Бориса и Алисы подписаны двадцатью участниками во время встречи для подписи ключей, очевидно, что Виктории следует доверять открытым ключам, подписанным 20 раз, а не тем, которые подписаны всего 3 раза. В любом случае уже сам факт существования двух наборов подписей должен насторожить Викторию -- в этом случае она может более тщательно проверить сеть доверия наборов, даты создания и тому подобное. 20 ключей, использовавшиеся во время встречи для подписи ключей, сами должны быть подписаны не менее 20 раз, иметь различные даты создания, развитые сети доверия. У поддельных ключей этого не будет, даже если Дмитрий создаст поддельную сеть доверия из 20 ключей. Поддельная сеть доверия Дмитрия будет ограничена по размерам и глубине количеством ключей, созданных или контролируемых Дмитрием. Многоуровневая сеть доверия, содержащая заведомо настоящие ключи, будет веским свидетельством в пользу того, что подлинным ключам Алисы и Бориса можно доверять больше, чем поддельным ключам Дмитрия. @node KSP Why @subsection Зачем мне проводить встречи для подписи ключей? Есть три основных причины проводить встречи для подписей ключей как можно чаще. Во-первых, частое проведение встреч для подписи ключей позволяет расширять сеть доверия. Чем сильнее связана сеть доверия, чем больше отношений доверия установлено в ней, тем труднее её разрушить. Это может оказаться особенно важно для пользователей и разработчиков открытого программного обеспечения. Разработчики часто используют PGP для криптографической подписи своих программных разработок, писем с сообщениями о критических ошибках и выходе новых версий. Развитость и связанность сети доверия прямо пропорциональна защите, обеспечиваемой PGP. Во-вторых, встречи для подписи ключей позволяют привлечь новых членов и познакомить их с культурой компьютерной безопасности, помочь им понять принципы работы PGP и относящейся к ней сильной криптографии. Чтобы использовать преимущества, предоставляемые сильной криптографией, люди должны правильно её использовать. Наконец, такие встречи позволяют расширять сообщество. Они позволяют людям ближе познакомиться друг с другом, общаться на интересующие их темы, как то: гражданские свободы, право использовать шифрование, управление Интернетом. Обсуждения важны, поскольку обсуждение -- не только первый шаг, но и побуждение к действию. Сейчас, когда я пишу этот документ, в мире не так много больших сетей доверия. Если вы собираетесь создать сеть доверия в круге вашего общения, скорее всего, первыми участниками будут лидеры, организаторы и активные участники сообщества Интернета вокруг вас. Они могли бы взять на себя внедрение защищённых коммуникаций в сложившуюся сетевую инфраструктуру. Внедрение такой технологии и протоколов может предотвратить угрозы безопасности частной жизни, связанные с внедрением ФБР системы Carnivore (а МВД -- СОРМ).