Границы вместо обещаний
Что ChromVoid защищает, а что — нет. Ограничения зафиксированы в этой модели угроз.
Что защищает ChromVoid
ChromVoid предназначен для хранения паролей, OTP, заметок и других секретов в модели угроз, где возможны физический доступ, принуждение, сетевые атаки и офлайн-анализ.
Показать детали
Критические активы и метаданные
| Актив | Описание | Последствия компрометации |
|---|---|---|
| Секреты в vault | Пароли, ключи, TOTP seeds, файлы | Полная компрометация связанных аккаунтов |
| Vault password | Пароль для открытия vault | Доступ ко всем секретам этого vault |
| Master key | Ключ управления хранилищем | Backup/restore, pairing и erase; не даёт доступа к данным vault |
| Device private key | Ключ Noise Protocol для текущего хоста | Компрометация транспортного канала |
| Session keys | Ключи активной Noise-сессии | Расшифровка текущего трафика |
Чувствительные метаданные
| Метаданные | Защита |
|---|---|
| Количество vault | Скрыто за счёт Plausible Deniability |
| Количество записей в vault | Скрыто до unlock: каталог зашифрован |
| Время последнего доступа | Частично видимо: timestamps файловой системы |
| Размер хранилища | Видим: общий размер чанков |
| Структура директорий | Не раскрывается: используется плоская структура чанков |
Границы доверия
ChromVoid проектируется как zero-trust система: компоненты не получают доверие по умолчанию, а доступ выдаётся через capability grants. Remote RPC/data payloads защищаются Noise на утверждённых transport paths, а local Tauri IPC остаётся внутри границы приложения.
Показать детали
Зоны доверия и уровни
| Зона | Уровень доверия | Обоснование |
|---|---|---|
| Core Zone | Root of trust | Core содержит доменную логику и криптографические операции |
| Client Zone (Tauri) | Высокое | Код поставляется вместе с приложением, но остаётся уязвимым к malware на хосте |
| Browser Extension | Среднее | Работает в изолированном browser context, но зависит от ограничений браузера и extension runtime |
| Сеть | Нулевое | Сеть считается недоверенной и потенциально скомпрометированной |
| Физический доступ к устройству | Принятый риск | Физический доступ к разблокированному устройству находится вне модели защиты |
Режимы работы
- Local mode: Rust Core встроен в Desktop/Mobile
- Mobile host: телефон выступает как source of truth (Secure Enclave/TEE); Mobile MVP использует WSS Relay + Noise, а WebRTC/USB остаются отдельными spec-gated путями
- Desktop + Extension: browser extension подключается к Desktop Gateway по localhost; секреты остаются в Desktop-приложении
- Network remote: paired-клиенты следуют утверждённой WebRTC/WSS policy; payload data защищается end-to-end через Noise
Криптография
ChromVoid использует публично специфицированные примитивы и не добавляет собственные криптоалгоритмы. Параметры и места применения зафиксированы в Threat Model, ADR и transport/storage спецификациях.
Показать детали
Примитивы и места применения
| Примитив | Где используется | Контур |
|---|---|---|
| ChaCha20-Poly1305 | AEAD для шифрования чанков vault | Хранилище |
| Argon2id | Memory-hard KDF для вывода ключей из vault password | Хранилище |
| BLAKE3 | Хэширование, stretched_salt и вспомогательные ключевые материалы | Хранилище |
| Noise Protocol (XX/IK/XXpsk0) | End-to-end защищённая сессия поверх USB, WebRTC и WSS | Транспорт |
| X25519 | DH-обмен ключами в Noise handshakes | Транспорт |
Архитектура хранилища
ChromVoid использует chunk-based storage: данные лежат в зашифрованных чанках около 16 KB. Каждый чанк шифруется отдельно. Запись идёт через write-temp-rename + fsync, чтобы снизить риск частично записанных данных при сбое.
Показать детали
Механики хранилища
- Каждый чанк шифруется отдельно — sync работает с изменёнными чанками, а не со всем vault
- AAD = имя чанка — шифротекст не пройдёт проверку при подстановке под другое имя чанка
- write-temp-rename + fsync — запись сначала уходит во временный файл, затем заменяет целевой чанк
- Sharded catalog — домены разнесены по внутренним namespace
- Delta sync — только изменённые чанки передаются
Усложнение офлайн-подбора
Если у атакующего есть копия файлов хранилища, ChromVoid разделяет данные vault и дополнительный секрет для derivation. Данные хранилища (chunks) лежат в файловой системе. Storage pepper хранится отдельно, например в OS keystore, и участвует в derivation ключа.
Plausible Deniability
ChromVoid поддерживает модель decoy-vault + hidden-vault: decoy-пароль открывает правдоподобное хранилище, а другие пароли открывают скрытые vault без явного сигнала «неверный пароль». На уровне storage ChromVoid сокращает метаданные о числе vault и не хранит явный список их границ за счёт flat-chunk схемы.
Показать детали
Ограничения модели
- Зависит от класса атаки: single-snapshot или multi-snapshot анализ
- Носитель и файловая система могут оставлять следы прошлых записей
- OPSEC пользователя: правдоподобность decoy-vault, регулярность использования и объяснимость структуры
- Не скрывает факт установки ChromVoid и общий объём данных
Классы противников
В Threat Model ChromVoid противники разделены по ресурсам, мотивации и типичным атакам: от случайной кражи устройства до атак государственного уровня. Уровень угрозы определяет режим работы и ограничения, которые нужно учитывать.
Показать детали
Профили противников
| Противник | Ресурсы | Мотивация | Типичные атаки |
|---|---|---|---|
| Скрипт-кидди | Низкие | Любопытство | Публичные эксплойты, фишинг |
| Киберпреступник | Средние | Финансовая выгода | Malware, кража учётных данных |
| Государственный противник | Высокие | Разведка | 0-day, supply-chain атаки, принуждение (rubber-hose) |
| Инсайдер | Средние | Доступ, конфликт интересов или давление | Социальная инженерия, физический доступ |
Сценарии атак
Ниже — практические сценарии из Threat Model. Для каждого указаны атакующий, его цель, вектор и механизм ChromVoid; результат считается только в пределах описанных условий и ограничений.
Показать детали
Что мы НЕ защищаем
Ниже — границы Threat Model. Эти сценарии остаются вне защиты ChromVoid или требуют отдельной OPSEC за пределами vault.
- Компрометация хоста во время разблокировки: если ОС заражена и читает экран, клавиатуру или память при открытом vault, данные считаются под высоким риском.
- Слабые пароли: KDF замедляет подбор, но не превращает слабый пароль в сильный.
- Социальная инженерия и ошибки пользователя: перенос секретов в заметки, скриншоты, чаты или другие внешние каналы остаётся вне защиты vault.
- Физический доступ к разблокированному устройству с открытым vault: software-only защита не предотвращает прямой просмотр данных или извлечение секретов из памяти.
- Компрометация supply chain ОС хоста, firmware или аппаратной части устройства находится вне области этой Threat Model.
Рекомендации
Практические настройки, которые уменьшают риск офлайн-подбора, компрометации открытого vault и ошибок OPSEC.
- КритичноИспользуйте отдельную длинную passphrase: 5+ случайных слов или 20+ символов из password manager
- ВажноДержите decoy-vault правдоподобным: добавьте объяснимые записи и периодически обновляйте их
- ВажноДля Desktop/Extension предпочитайте localhost; для Mobile host — прямое USB-подключение, когда это возможно
- КритичноВключите auto-lock при бездействии и блокировку vault при sleep/lock экрана
- КритичноЗапишите master password / recovery secret на бумаге и храните отдельно от устройства
- ВажноДелайте зашифрованные backup-копии и проверяйте восстановление после каждого существенного изменения vault
- РекомендацияОбновляйте ChromVoid после релиза security fixes и проверяйте release notes перед обновлением
Проверяемость
Архитектура, Threat Model и протокольные контракты опубликованы рядом с продуктом. Проверка строится не на обещании «безопасно», а на схемах, границах доверия и спецификациях.
- Схемы Core, транспорта и границ доверия
- Публичный репозиторий и спецификации протоколов
- OpenAPI-спецификация
Responsible Disclosure
Сообщайте об уязвимостях приватно: через security@chromvoid.com или GitHub Security Advisories, без публичного PoC до фикса или согласованного disclosure.
- Не публикуйте PoC, exploit steps и детали воспроизведения до фикса или согласованного disclosure
- Отправьте отчёт на security@chromvoid.com или через GitHub Security Advisories
- Мы подтвердим получение и будем обновлять статус по мере разбора