Содержание Показать Скрыть
Что можно построить
Менеджер паролей без хранилища: секрет каждого сервиса выводится из seed-фразы пользователя и имени этого сервиса — тот же результат на каждом устройстве, навсегда, и нигде не сохраняется. Новый телефон плюс двенадцать слов — и все пароли на месте.
Как это работает
Handle на каждую персону выводит один секрет на контекст сервиса:
const work = await identity.deriveHandle('work');
const githubSecret = work.derivePassword('github.com', 32);
const jiraSecret = work.derivePassword('jira.internal', 32);
@me2em/crypto добавляет страховку: профили Argon2id для секретов, которые
пользователь вводит руками, а не выводит, и проверку утечек HIBP для редких
паролей, придуманных вручную.
Бенефиты
- Ноль хранения. Ни файла-хранилища, ни облачной синхронизации, ни поверхности взлома — пароль существует только в момент использования.
- Детерминированное восстановление. Тот же seed + тот же контекст → тот же секрет, на каждом устройстве, без синхронизации.
- Изоляция по контекстам. Компрометация рабочего Handle никогда не выводит секреты личного Handle.
- Флоу «забыли пароль» не существует, потому что нечего забывать.
Компромиссы
- Seed — единственная точка отказа. Потеря фразы — потеря всех выведенных паролей; восстановления по дизайну нет.
- Ротация структурна. Смена секрета — это смена имени контекста: планируйте ротацию по сервисам, а не на месте.
- Alpha. API пакетов до 1.0; фиксируйте версии.
Ссылки
- Сценарий 8 в руководстве Use Cases протокола
- Почему мы не храним вашу seed-фразу — модель zero-storage
- Парольный менеджер, который ничего не хранит