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

Восстановление доступа по схеме Шамира

Пассворк хранит ключи сейфов по модели Zero-Knowledge: сервер не знает мастер-ключ пользователя и физически не может «выдать доступ» без участия клиентской криптографии. У этой модели есть обратная сторона — если единственный администратор типа сейфа недоступен (уволился, потерял мастер-ключ, учётную запись скомпрометировали), организация теряет возможность управлять существующими сейфами этого типа. Сброс пароля не помогает: пароль не хранит ключ шифрования, а только защищает его.

Пороговое восстановление по схеме Шамира (Shamir's Secret Sharing, M из N) закрывает этот риск без единой точки отказа. Мастер-ключ отдельного сервисного аккаунта восстановления делится на N частей (долей) так, что для его реконструкции достаточно любых M из них. Ни одна отдельная доля не даёт возможности восстановить ключ — а значит, ни один человек в одиночку не может ни воспользоваться восстановлением, ни заблокировать его. Когда M держателей долей собираются вместе, сервисный аккаунт восстанавливает свой мастер-ключ и выдаёт указанному пользователю права администратора в конкретном сейфе — без участия прежнего владельца и без передачи мастер-ключа на сервер в открытом виде.

Как это устроено на верхнем уровне

Схема: настройка аккаунта восстановления и раздача долей, затем восстановление доступа кворумом держателей при инциденте

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

Из чего это состоит

ИнструментЧто делаетНужен ли сервер
passwork-cli shamir split / recoverДелит и собирает секрет в base64 по схеме M из NНет
passwork-cli rsa gen-keys / encrypt / decryptШифрует доли RSA-ключом держателя (4096 бит), чтобы каждый видел только свою долюНет
passwork-cli users create-service-accountСоздаёт сервисный аккаунт восстановления и делит его мастер-ключДа, сессия администратора с включённым клиентским шифрованием
passwork-cli recovery grant-adminВосстанавливает мастер-ключ сервисного аккаунта и выдаёт права администратора в сейфеДа, только API-токен сервисного аккаунта

Все команды входят в passwork-cli — консольную утилиту на базе Python-коннектора. Установка и общие параметры описаны в разделе CLI-утилита.

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

Расширенная редакцияЛюбая редакция
Аккаунт восстановленияСервисный аккаунт (без интерактивного входа)Обычный пользователь
Настройка и восстановлениеАвтоматизированы командами passwork-cli (users create-service-account, recovery grant-admin)Выполняются вручную: администратор сам вызывает shamir split/shamir recover и переносит результат в продукт руками
Что делится на долиМастер-ключ сервисного аккаунтаМастер-пароль (или мастер-ключ) обычного пользователя

Дальше в этом разделе основной путь описан для Расширенной редакции — она даёт готовый end-to-end инструмент. Упрощённый вариант для любой редакции без лицензии на сервисные аккаунты описан отдельно: Упрощённый вариант без сервисных аккаунтов.

Чего эта схема не делает

  • Не заменяет ролевую модель доступа и не создаёт пользователей «из воздуха» — целевой пользователь, которому выдаются права, должен уже существовать в Пассворке.
  • Не переносит существующие сейфы в новый тип и не меняет их структуру — только выдаёт доступ.
  • В автоматизированном варианте на сервисном аккаунте не поддерживает end-to-end восстановление без лицензии на сервисные аккаунты — для таких инсталляций есть отдельный ручной вариант, но он требует больше действий руками и внимательнее к рискам (см. Модель безопасности).
  • Не восстанавливает утраченные данные, если клиентское шифрование выключено — схема имеет смысл только при включённом Zero-Knowledge.

Требования

  • Включённое клиентское шифрование (Zero-Knowledge) на инстансе — обязательно для обоих вариантов.
  • Для автоматизированного варианта на сервисном аккаунте — лицензия с поддержкой сервисных аккаунтов (флаг «Сервисные аккаунты», обычно Расширенная редакция).
  • Установленный passwork-cli у оператора настройки и восстановления — для офлайн-примитивов (shamir, rsa) лицензия и клиентское шифрование не нужны, они работают в любой конфигурации.

Разделы