Перейти к основному содержимому
Версия: 7.0

Основные концепции

Участники

РольКто этоЧто делает
Владелец / АдминистраторВладелец инстанса или администратор с достаточными правамиНастраивает контур: создаёт аккаунт восстановления, раздаёт доли, подключает аккаунт к политике доступа
Аккаунт восстановленияСервисный аккаунт или обычный пользователь (в зависимости от редакции)Хранит секрет, разделённый на доли; при восстановлении используется для выдачи прав администратора в сейфе
Держатели долейЛюбые доверенные люди — необязательно пользователи ПассворкаХранят по одной доле; при инциденте передают её оператору
Оператор восстановленияТот, кто проводит церемонию восстановленияСобирает кворум долей и выполняет процедуру выдачи доступа

Держателям не нужны учётные записи в Пассворке — доля представляет собой файл, никак не связанный с пользователями системы.

Два варианта в зависимости от редакции

Сервисный аккаунт (Расширенная редакция)

  • Что делится на доли — мастер-ключ аккаунта.
  • Интерактивный вход у аккаунта — отсутствует, аутентификация только по API-токену.
  • Настройка — автоматизирована passwork-cli users create-service-account.
  • Восстановление — автоматизировано passwork-cli recovery grant-admin.
  • Лицензия — флаг «Сервисные аккаунты» (Расширенная редакция).

Обычный пользователь (любая редакция)

  • Что делится на доли — мастер-пароль (или производный мастер-ключ) аккаунта.
  • Интерактивный вход у аккаунта — есть, как у обычного пользователя.
  • Настройка — выполняется вручную: создание пользователя через продукт + passwork-cli shamir split.
  • Восстановление — выполняется вручную: passwork-cli shamir recover + вход под восстановленным паролем и выдача доступа штатными средствами.
  • Лицензия — не требуется.

Подробно про сервисный аккаунт — в разделе Настройка сервисного аккаунта, про ручной вариант — в разделе Упрощённый вариант без сервисных аккаунтов. Дальше на этой странице понятия — общие для обоих вариантов, если не указано иное.

Порог M из N

Секрет делится на N долей так, что для восстановления достаточно любых M из них (2 ≤ M ≤ N ≤ 16). Меньше M долей — секрет восстановить невозможно, даже если у вас M − 1 корректных долей. Любые M долей из корректного набора дают тот же исходный секрет, независимо от того, какие именно M выбраны.

Порог выбирает Владелец при настройке, исходя из числа держателей и приемлемого риска:

СхемаСмысл
3 из 5Устойчива к недоступности до 2 держателей одновременно
2 из 3Минимальная схема с кворумом больше одного человека
5 из 9Для крупных организаций с распределённой ответственностью

Два разных RSA-ключа — не путайте их

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

RSA ПассворкаRSA держателя
НазначениеШифрование ключей сейфов при выдаче доступаШифрование одной доли для конкретного держателя
Размер ключа2048 бит4096 бит
Где создаётсяАвтоматически внутри продукта при создании аккаунтаКаждым держателем через passwork-cli rsa gen-keys
Кто владеет приватным ключомАккаунт восстановления (приватный ключ зашифрован его же мастер-ключом)Держатель — хранит на своей машине, никому не передаёт

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

Клиентское шифрование — обязательное условие для обоих вариантов

Оба варианта имеют смысл только при включённом клиентском шифровании (Zero-Knowledge): без него сервер и так может выдать доступ штатными административными средствами, и восстанавливать через Шамира нечего. В автоматизированном варианте на сервисном аккаунте это ещё и проверяется явно: passwork-cli users create-service-account --m/--n и recovery grant-admin завершатся с кодом 7, если клиентское шифрование выключено.