Центр доверия
Методология безопасности и генерации
Технические детали, границы угроз, обработка случайности и воспроизводимые проверки генератора паролей.
Источник случайности
Генератор запрашивает криптостойкие значения из crypto.getRandomValues(). Он никогда не использует Math.random(), чей вывод не предназначен для криптографического использования. Спецификация Web Crypto описывает CSPRNG, инициализируемый высококачественной энтропией, обычно предоставляемой операционной системой. Браузер и операционная система выбирают базового провайдера; PwdGen не утверждает, что каждый вызов напрямую считывает аппаратный источник энтропии CPU.
Случайные индексы используют выборку с отклонением. Значения выше наибольшего полного кратного размера алфавита отбрасываются перед операцией модуля, что позволяет избежать смещения, которое внесло бы прямое отображение randomValue % alphabetSize.
Охват символов и перемешивание
Генератор сначала выбирает по одному символу из каждого включенного источника. Он заполняет оставшиеся позиции из объединенного пула, а затем выполняет криптографически управляемое перемешивание Фишера–Йетса. Фильтры для похожих и неоднозначных символов применяются до выбора.
Поток данных
Сгенерированные значения существуют только в памяти текущей страницы и видимых узлах результата. Они не записываются в URL, куки, локальное хранилище, сессионное хранилище, журналы сервера или артефакты сборки. Настройка локали — единственное предпочтение приложения, хранящееся в локальном хранилище и функциональном куки.
Модель угроз и ограничения
Эта конструкция защищает от намеренного сбора сгенерированных паролей веб-сайтом. Она не может гарантировать целостность устройства пользователя, расширений браузера, буфера обмена, операционной системы или целевого сервиса. Она также не может сделать повторно используемый пароль безопасным или предотвратить ввод пароля на фишинговой странице.
Воспроизводимая проверка
Браузер, публичный API и pwdgen-cli@1.0.0 используют одно и то же ядро выборки с отклонением Web Crypto. Автоматизированные тесты проверяют охват включенных символов, исключенные символы, недопустимые конфигурации и отсутствие Math.random(). Браузерные тесты проверяют, что регенерация и копирование не отправляют сетевые запросы, содержащие пароли. Публичный исходный код и результаты CI приведены выше; это воспроизводимые инженерные доказательства, а не заявление о независимом аудите безопасности.
Для более глубокого объяснения на уровне протокола прочитайте технический документ о генерации паролей на стороне клиента.