Перейти к содержанию
Me2eM

Детерминированный менеджер паролей

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

Ноль хранения Тот же seed — тот же пароль Изоляция по контекстам Восстановления не существует

Что можно построить

Менеджер паролей без хранилища: секрет каждого сервиса выводится из 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; фиксируйте версии.

Ссылки

Вашего сценария здесь нет?

Термины протокола доменно-нейтральны — новые сценарии ложатся на те же примитивы. Начните с quick start или прочтите, как аттестации несут делегируемое доверие.