На этой странице описан способ распространения и активации сертификата отзыва ключа подписи Tails.

Задачи

Что даёт описанный метод?

  • Никто не может единолично отозвать ключ подписи.

  • Allow a coalition of people from the Board to revoke our signing key in case most of the people from the Board become unavailable.

  • Allow a coalition of people, not necessarily from the Board, to revoke our signing key in case everybody or almost everybody from the Board becomes unavailable.

  • Make it hard for a coalition of people not from the Board to revoke our signing key unless everybody or almost everybody from the Board becomes unavailable.

  • People not from the Board shouldn't know how the shares are spread and who has them.

  • Обладатели фрагментов сертификата отзыва должны знать, как его применить при необходимости.

Группы

Мы выделяем четыре группы доверенных лиц:

  • Group A: people from the Board themselves
  • Группа B
  • Группа C
  • Группа D

Все эти люди должны иметь ключи OpenPGP и знать, что такое сертификат отзыва.

Криптографические фрагменты

Мы создаем сертификат отзыва ключа подписи и разделяем его на определённое число зашифрованных фрагментов, используя, например, схему разделения секрета Шамира, реализованную gfshare.

Следующие комбинации людей могут объединиться и собрать из принадлежащих им фрагментов сертификат отзыва:

  • Three people from the Board: A{3}
  • Two people from the Board and one person not from the Board: A{2}+(B|C|D)
  • One person from the Board, and two people not from the Board but from two different groups: A+(B|C|D){2}
  • Three people not from the Board but from three different groups: (B+C+D){3}

Мы создаём следующие фрагменты:

  • N shares, one for each person from the Board
  • 1 фрагмент для участников группы B
  • 1 фрагмент для участников группы C
  • 1 фрагмент для участников группы D

Кому что известно

  • People from the Board know the composition of each group
  • People not from the Board:
    • Are explained in which circumstances they should revoke the signing key
    • Are told to write to a certain contact email address if they decide to revoke the signing key
    • Are told that they need three different shares to reassemble the revocation certificate

Инфраструктура

  • Каждый владелец фрагмента включён в рассылку.
  • Рассылка размещена на надёжном сервере, не имеющем отношения к boum.org. Это надёжнее, чем обычные каналы связи.
  • Один из администраторов рассылки входит в группу B, C или D и может гарантировать, что рассылка работает, даже если по факту не используется.

Замена участников групп B, C или D

Для добавления нового участника в группу:

  • Попросите одного из участников группы выслать фрагмент сертификата тому, кого хотите пригласить.

Для удаления участника из группы:

  • Отправьте новые фрагменты всем, кроме человека, которого вы хотите удалить.
  • Попросите всех удалить принадлежащие им старые фрагменты и проследите за этим. После того, как все участники двух групп из этого списка — B, C или D — удалят свои фрагменты, воссоздать сертификат отзыва с помощью предыдущего набора фрагментов станет невозможно.
  • Надеемся, это не будет происходить слишком часто :)

Срок действия

У сертификатов отзыва нет срока действия. Один из способов отмены права отзыва — удаление всех копий фрагментов двух групп из следующего списка: B, C, D.

Письмо-приглашение

Это письмо должен отправить пользователь, состоящий с доверительных отношениях с приглашаемым.

Subject: распространение

Здравствуйте,

Предлагаем вам присоединиться к распределённой системе, созданной для отзыва
ключа подписи Tails.

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

Note: In all this document, 'us' refers to the Board.

Здесь подробно рассказано, как распределяются фрагменты сертификата:

https://tails.net/doc/about/openpgp_keys/signing_key_revocation

Описание способа доступно всем. Единственный секрет — список тех, у кого
есть фрагменты.

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

Что плохого может случиться, если наш способ не сработает:

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

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

Распределение фрагментов сертификата
======================================================================

Each person from the Board, group A, has a *different* share, A1, A2, ...,
An.

Кроме того, мы создали три дополнительные группы: B, C и D. В них входят
люди, которым мы доверяем. Эти пользователи давно работают с Tails, у них
разные интересы и разные уровни доступа к информации о нас. Вы входите в
одну из этих групп.

Все участники группы B обладают *идентичными* фрагментами B.

Все участники группы C обладают *идентичными* фрагментами C.

Все участники группы D обладают *идентичными* фрагментами D.

Для воссоздания сертификата нужны три разных фрагмента. Например, фрагменты
А1, А2 и А3 или фрагменты А1, B и С.

Как хранить ваш фрагмент
=============================================

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

Можно переименовать файл, но сохраните номер фрагмента в названии файла. Это
вам ещё пригодится.

Можете создать резервную копию фрагмента. Однако в какой-то момент мы можем
попросить вас его удалить, и вы должны точно знать, есть у вас эта копия или
нет. Потеряли фрагмент? Ничего страшного, если вы нам об этом своевременно
сообщите. Гораздо хуже хранить «где-то» копию фрагмента и при этом думать,
что у вас её нет.

Если вам непонятны какие-либо технические аспекты, не стесняйтесь задать
вопрос.

Когда использовать ваш фрагмент
===========================================================

Каждый владелец фрагмента подписан на рассылку.

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

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

Участники рассылки, которые убеждены, что ключ подписи надо отозвать,
пересылают друг другу свои фрагменты. Задача — собрать три разных
фрагмента. Из них можно воссоздать сертификат отзыва и опубликовать его,
чтобы отозвать ключ подписи.

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

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

Что дальше
===================

Если нам понадобится связаться с вами по поводу алгоритма отзыва, мы сделаем
это через рассылку tails@boum.org. Для чего нам может понадобиться с вами
связаться:

  - чтобы попросить вас отправить фрагмент сертификата новому члену вашей
    группы;

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

У рассылки tails@boum.org есть собственный ключ OpenPGP. Этот ключ подписан
с помощью ключа подписи Tails:

    https://tails.net/tails-email.key

Можем ли мы на вас рассчитывать?

Если ваш ответ — да, мы пришлем вам фрагмент сертификата и подпишем вас на
рассылку.

Спасибо, и да пребудет с вами сила!

Работа с участниками групп B, C и D

Следующие шаги мы делаем минимум раз в два года.

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

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

  3. Заходим в административную панель рассылки и убеждаемся, что рассылка работает и настроена правильно.

Обновление данных

Для рассылки сообщений мы используем tails@boum.org. Таким образом, отправителю письма не нужно тратить время на установление доверительных отношений с адресатом. Однако мы не рассылаем через tails@boum.org фрагменты групп B, C или D.

Subject: обновление

Здравствуйте,

Несколько лет назад вы согласились участвовать в работе распределённой
системы отзыва ключа подписи Tails. Мы отправили вам зашифрованный фрагмент
сертификата.

Пожалуйста, выполните следующие действия.

1. Verify the authenticity of this email, either by verifying that it is
   signed by the tails@boum.org mailing or by talking directly to someone
   from the Board.

   У рассылки tails@boum.org есть свой ключ OpenPGP. Он подписан ключом подписи Tails:

   https://tails.net/tails-email.key

2. Подтвердите, что у вас по-прежнему есть:

   - ваш фрагмент сертификата отзыва;

   - номер в названии вашего файла-фрагмента;

     Файл называется tails-signing-key-revocation-cert.asc.NNN, где NNN — трёхзначное число.

Запомните адрес рассылки, куда писать, если захотите воссоздать сертификат
отзыва:

    address@example.org

Пишите по этому адресу только если хотите запустить процесс отзыва ключа
подписи.

Ниже мы продублировали краткое описание метода восстановления сертификата.

XXX: Скопируйте письмо с приглашением:
XXX: - Добавьте «Здесь можно узнать, как рассылаются фрагменты сертификата:»
XXX: - Остановитесь перед «Можем ли мы на вас рассчитывать?»

Добавление нового участника

  1. Отправьте письмо-приглашение новому участнику.

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

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

  3. Попросите нового участника подтвердить получение фрагмента.

Как поделиться фрагментом

Для рассылки сообщений мы используем tails@boum.org. Таким образом, отправителю письма не нужно тратить время на установление доверительных отношений с адресатом. Однако мы не рассылаем через tails@boum.org фрагменты групп B, C или D.

Subject: делимся фрагментом

Здравствуйте,

Мы попросили одного из участников группы прислать вам копию вашего
фрагмента.

Пожалуйста, сообщите нам о его получении.

Если вы захотите воссоздать сертификат отзыва ключа подписи, пишите в
рассылку:

    address@example.org

Пишите по этому адресу только если хотите запустить процесс отзыва ключа
подписи.

Спасибо, и да пребудет с вами сила!