Восстановление доступа по схеме Шамира
Пассворк хранит ключи сейфов по модели 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) лицензия и клиентское шифрование не нужны, они работают в любой конфигурации.
Разделы
- Политики доступа к сейфам — механизм, на котором строится восстановление, и его собственная польза.
- Основные концепции — роли участников, что именно делится, два разных RSA-ключа.
- Настройка сервисного аккаунта — пошаговое создание и раздача долей (Расширенная редакция).
- Упрощённый вариант без сервисных аккаунтов — ручная схема для любой редакции.
- Покрытие сейфов — как подключить аккаунт восстановления к политике доступа.
- Восстановление при инциденте — церемония выдачи доступа (Расширенная редакция).
- Аудит и коды завершения — журналирование и диагностика.
- Модель безопасности и рекомендации — модель угроз, ограничения, рекомендации.
- Практические ре комендации — типовые профили: небольшая команда, средняя компания, крупная организация.
- Примеры — готовые рецепты CLI и Python SDK.
- FAQ — частые вопросы.