id: Гость   вход   регистрация
текущее время 12:42 28/03/2024
создать
просмотр
редакции
ссылки

Это старая редакция страницы Библиотека / Основы / Сессии Заверителей за 09/11/2007 17:07.


Сессии заверителей


Оглавление документа:


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

Описание встречи

Что такое подписание ключа?


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


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


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

Что такое сеть доверия?


Пример графа Сети доверия PGP (14 Кб)
Рис. 1

Термин "сеть доверия" используется для описания отношений доверия между несколькими ключами (точнее, их владельцами). Ключи представляют собой узлы несовмещенного графа, а подписи — ребра графа. Эти связи между ключами также называются путями доверия, или путями сертификации. Доверие может быть как двухсторонним, так и односторонним. В идеальной сети доверия каждый доверяет каждому. Это означает, что каждый уверен, что все остальные ключи принадлежат предполагаемым владельцам. Сеть доверия можно рассматривать как сумму всех путей доверия между всеми владельцами ключей. Возможный пример сети доверия представлен на рис. 1.

Пример применения подписей ключей


Допустим, что Анна и Борис создали собственные ключи PGP с помощью своих OpenPGP-совместимых программ и провели встречу для заверения ключей. На встрече Анна и Борис проверили ключи друг друга и впоследствии подписали их. По умолчанию PGP и GnuPG автоматически подписывают открытый ключ каждой вновь созданной ключевой пары с помощью соответствующего закрытого ключа. Таким образом, как Анна, так и Борис, оба имеют как минимум две подписи, подтверждающие их владение соответствующим ключом. Ключ Анны подписан самой Анной и Борисом, а ключ Бориса подписан им самим и Анной.


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


Виктория узнаёт, что Борис получил два открытых ключа от ее имени. Она подозревает Анну. Желая отомстить, Виктория может попытаться разрушить отношения доверия между Борисом и Анной. Чтобы достичь результата, Виктория посылает письмо Борису от имени Анны, сообщая, что Анна создала новую пару ключей. В письме содержится "новый" ключ Анны, созданный Викторией. Однако Борис может легко установить подмену, ведь хотя у него и есть два разных ключа, оба якобы принадлежащих Анне, один из них подписан несколькими людьми (им самим и Анной), а другой (поддельный ключ, созданный Викторией) — только соответствующим ему закрытым ключом.


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


Тем не менее, наличие подписей и сетей доверия не всегда обеспечивает возможность проверки ключей. Пусть, к примеру, Анна и Борис впервые познакомились с Викторией в присутствии Дмитрия, знакомого Виктории. Дмитрий может создать поддельные ключи, якобы принадлежащие Анне и Борису, подписать их своим ключом и поддельными ключами Анны и Бориса. В этом случае он получит три подписи на каждом из поддельных ключей, которые он пошлет Виктории. Настоящие ключи Анны и Бориса подписаны только их собственными закрытыми ключами; они также отправлены Виктории. Каким образом Виктория может противостоять такой атаке? Предположим, что весь обмен ключами происходит через сервер ключей. Виктория находит по две копии ключей для Анны и Бориса. Однако, если ключи Бориса и Анны юыди подписаны двадцатью участниками во время сессии заверителей, очевидно, что Виктории следует доверять открытым ключам, подписанным 20 раз, а не тем, которые подписаны всего 3 раза. В любом случае, уже сам факт существования двух наборов подписей должен насторожить Викторию — в этом случае она может более тщательно проверить сеть доверия наборов, даты создания и прочие параметры 20 ключей, применявшихся для сертификации, убедиться, что сами эти ключи имеют достаточное число подтверждающих подписей, развитые сети доверия и т.д. Дмитрий не сможет добиться этого, даже если создаст поддельную сеть доверия из 20 ключей.

Организация встречи

Задачи координатора


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

Как проводить встречу


Встреча заверителей, Израиль (20 Кб)
Рис. 2

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


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


  1. Все желающие заранее посылают информацию о своих ключах координатору, который составляет список будущих участников.
  2. По прибытии все участники получают по копии списка ключей.
  3. Каждый участник поочередно вызывается координатором.
  4. Он проверяет правильность отпечатка своего ключа в списке ключей, распространенном координатором. Если участник уверен, что его информация внесена в список верно, он оглашает отпечаток своего ключа так, чтобы другие участники могли его услышать и проверить правильность отпечатка.
  5. Если отпечаток верен, участники отмечают это в своих списках. Эта проверка необходима для защиты от ошибки координатора при создании списка или от намеренного искажения информации в списке.
  6. Когда каждый участник убедится в правильности ключа, координатор вызывает следующего участника и так далее.
  7. После того, как правильность всех ключей проверена, все участники, включая координатора, выстраиваются в ряд, держа свои удостоверения личности перед собой. Участник в начале шеренги проходит всю шеренгу и проверяет удостоверения личности всех остальных участников. Если участник удолетворен результатами проверки удостоверения личности, он так же убеждается, что отпечаток ключа верен. Если это так, проверяющий участник ставит вторую отметку в списке. После того, как ключ прошел две проверки, он может быть подписан.

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


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

Объявление о встрече


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


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

Создание списков ключей


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

ID ключаВладелец ключаОтпечаток ключаКлюч совпадает?Личность совпадает?
992A4B3F V. Alex Brennen
<vab@cryptnet.net>
0EC8 B0E3 052D FC4C 208F 76EB FA92 0973 992A 4B3F

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

Построение получившейся сети доверия


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


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


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

Проведение встречи

Задачи участника


  1. Создать пару ключей.
  2. Отправить открытый ключ на сервер ключей (или координатору).
  3. Сообщить координатору информацию для внесения в список.
  4. Лично прийти на встречу.
  5. Проверить свою информацию в списке.
  6. Проверить информацию о ключах других участников.
  7. Проверить личности участников, чьи ключи хотите подписать.
  8. Подписать ключи других участников.
  9. Отправить подписанные ключи на сервер ключей (или владельцам ключей).

Что нужно взять с собой на встречу


  1. Себя.
  2. Два удостоверения личности с фото (паспорт, водительские права, студенческий билет, воинское удостоверение и т.п.).
  3. ID своего ключа, его тип, отпечаток и размер либо копию списка участников.
  4. Ручку или карандаш.

Что не нужно брать с собой на встречу


  1. Компьютер

Почему не нужно брать с собой компьютер


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


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


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

Загрузка открытого ключа на сервер ключей


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


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


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

Заверение других ключей


1) Получите копию ключа.


Обычно, вы можете получить ключ с сервера ключей. Однако, если вы подписываете ключ, который не доступен с сервера, то можете импортировать его на свою связку ключей командой gpg --import. Если вы работаете с сервером, то импортировать ключ на связку можно командой

Пользователи PGP для аналогичных целей могут воспользоваться средствами менеджера PGPkeys.

2) Проверьте отпечаток ключа.



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

3) Подпишите ключ.



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

4) Отправьте подписанный ключ владельцу или загрузите его на сервер ключей.


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

В случае, если публикация прошла успешно, вы получите подобное сообщение:

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


© 2000-2003 V. Alex Brennen
Перевод © 2003 Vladimir Ivanov
License: GNU FDL