Заполняй пароли, а не облака.
Расширение — тонкий клиент: оно обращается к Desktop Gateway на localhost, а все секреты, политики и разрешения остаются в Core. Ничего не кэшируется в браузере.
На главнуюРасширение находит поля логина, пароля и OTP, но команды запускаются из popup ChromVoid. Кнопки расширения не встраиваются в DOM формы.
Браузер получает UX, но не получает секреты.
Эта страница объясняет, почему расширение выглядит как привычный autofill-инструмент, но не становится вторым хранилищем доверия.
Только localhost
Расширение не может обратиться к облаку, WebRTC или WSS напрямую. Единственная точка входа — Desktop Gateway на `127.0.0.1`.
Ноль секретов в браузере
В хранилище расширения нет паролей и ключей. Браузер хранит только метаданные сопряжения и разрешений — с явным сроком жизни.
Разрешения с узким scope и безопасные ошибки
Core определяет scope разрешения: сессия, сайт или одно действие. Ошибки нормализованы — браузер не узнает, есть ли запись в хранилище или нет.
Один маршрут, одна localhost-граница, один источник решений.
Любой запрос проходит одинаковый путь: страница и popup идут через service worker, Desktop Gateway брокерит обращение, Core решает, можно ли выдать короткоживущий grant.
Сопряжение через PIN
Откройте ссылку сопряжения или отсканируйте QR-код — десктоп покажет одноразовый PIN. Доверие устанавливается через PIN-derived `XXpsk0`, а не через тихую фоновую регистрацию.
Всё идёт через service worker
Расширение и скрипты страниц отправляют запросы через единый service worker. Весь трафик идёт на localhost-шлюз — прямых каналов к Core нет.
Core выдаёт разрешение
Desktop Gateway просит Core проверить источник, состояние хранилища и подтверждение пользователя. Core выдаёт разрешение — на сессию, сайт или одно действие.
Доступ отзывается автоматически
Хранилище заблокировано, сессия истекла или сопряжение отозвано — расширение сразу теряет доступ. Резервного кэша «для удобства офлайн» нет.
Что живёт в браузере, а что остаётся вне его.
Разделение ролей важнее маркетингового «secure by default». Здесь у каждого слоя свой узкий контракт, и browser не может его расширить сам.
UI-граница
Расширение живёт в контексте браузера, поэтому его роль предельно узкая: показать интерфейс, отправить запрос, отрисовать ответ.
- Хранит только метаданные сопряжения и grant с явным TTL.
- Показывает popup, autofill и TOTP без локального vault.
- Не может обратиться к облаку, WebRTC или телефону напрямую.
Локальный брокер
Desktop Gateway остаётся единственной точкой входа на `127.0.0.1`. Он принимает все запросы от service worker и не даёт браузеру открыть обходной путь.
- Брокерит весь трафик через localhost.
- Отдельно проверяет доступность сессии и соединения.
- Теряет доступ сразу после lock, revoke или истечения grant.
Политика и секреты
Core остаётся единственным местом, где находятся секреты, политики и решение о grant. Браузер не узнаёт лишнего даже на ошибках.
- Проверяет origin, состояние vault и подтверждение пользователя.
- Выдаёт scope: session, site или single-action.
- Нормализует ошибки, чтобы браузер не доказывал существование секрета.
Ограничения и требования
Честные ограничения — прочитайте до того, как строить рабочий процесс вокруг расширения.
Практические сценарии
- Расширение работает только при запущенном Desktop Gateway на той же машине. Это не автономный браузерный менеджер паролей.
- Расширение не заменяет системное автозаполнение. Для автозаполнения вне браузера подключите Credential Provider отдельно.
- Удалённые и телефонные сессии проходят через localhost десктопа. Прямого сопряжения расширения с телефоном нет.
Нужны браузерные сценарии без переноса доверия в браузер?
Подключите расширение для работы в браузере. Если нужно автозаполнение на уровне ОС — добавьте Credential Provider отдельно.