Шифрование хранилища
- Случайный 256-битный ключ данных шифрует сжатое хранилище с помощью AES-256-GCM.
- Ваш главный пароль получает отдельный ключ-оболочку с использованием Argon2id 1.3 со 128-битной случайной солью, памятью 64 МБ, 3 итерациями и параллелизмом 4.
- Ключ упаковки шифрует ключ данных хранилища с помощью AES-256-GCM. Изменение главного пароля может привести к повторной упаковке ключа данных без ослабления шифрования данных хранилища.
- Формат, шифр, сжатие, идентификатор ключа и параметры переноса ключей аутентифицируются как дополнительные данные, поэтому скрытое вмешательство в метаданные отвергается.
Каждая операция шифрования использует новый случайный IV, где это необходимо. Текущая схема зашифрованного конверта и хранилища данных — версия 4.
Сеансы и быстрое разблокирование
После успешной разблокировки в хранилище сеанса браузера временно находятся распакованный 256-битный ключ данных и сведения об активности, но не мастер-пароль. Ручная блокировка, автоблокировка и завершение сеанса браузера очищают это состояние.
Там, где это поддерживается, дополнительная быстрая разблокировка использует расширение WebAuthn PRF для переноса того же ключа данных в материал, связанный с локальным аутентификатором. Он не превращает OTPManager в связку ключей операционной системы и остается объектом безопасности браузера и устройства.
Граница удалённого хранилища
Поставщики, совместимые с WebDAV и S3, получают зашифрованные конверты и зашифрованные резервные копии. Учетные данные хранятся в зашифрованном хранилище. Для соединений по умолчанию требуется HTTPS, за исключением явных адресов обратной связи для локальной разработки. Клиенты отвергают небезопасные пути или ключи объектов, встроенные учетные данные конечной точки и перенаправления WebDAV между источниками, а также применяют ограничения на размер ответа, количество элементов и время ожидания.
Шифрование не скрывает от поставщика каждый сигнал метаданных. Он по-прежнему может наблюдать IP-адрес, время, путь и размер зашифрованного текста.
Изоляция веб-страницы
В скрипт содержимого страницы передается только минимум данных, необходимых для обнаружения и наполнения. Он не может напрямую читать хранилище и не получает начальные значения TOTP или учетные данные синхронизации. Страницы расширений используют ограничительную политику безопасности контента и загружают исполняемый код из пакета расширения.
Ограничения модели угроз
- Слабый или повторно используемый мастер-пароль все равно можно угадать; Argon2id повышает стоимость, но не может создать энтропию.
- Вредоносное ПО, скомпрометированный процесс браузера, контролируемое устройство или локальный субъект, способный отладить разблокированное расширение, находятся внутри границы доверия.
- Вредоносный веб-сайт может обнаружить код после того, как вы намеренно разместите его в поле этого веб-сайта.
- Удаленные провайдеры могут удалять или откатывать объекты. Резервные копии и проверки на конфликты уменьшают случайную потерю, но не заменяют независимые копии для восстановления.
- Никакое заявление о безопасности программного обеспечения не является гарантией отсутствия уязвимостей.
Сообщить об уязвимости
Отправьте электронное письмо по адресу samler@foxmail.com, указав в теме «Отчет о безопасности OTPManager». Укажите затронутую версию, браузер, воспроизводимые шаги, влияние и безопасное подтверждение концепции. Не включайте настоящие секреты TOTP, пароли, учетные данные удаленного хранилища или данные других людей.