Выбрать язык

К формальной верификации алгоритмов генерации паролей в менеджерах паролей

Подход формальной верификации с использованием EasyCrypt для доказательства функциональной корректности и безопасности генераторов случайных паролей в Chrome, Bitwarden и KeePass.
strongpassword.org | PDF Size: 0.1 MB
Оценка: 4.5/5
Ваша оценка
Вы уже оценили этот документ
Обложка PDF-документа - К формальной верификации алгоритмов генерации паролей в менеджерах паролей

1. Введение

Менеджеры паролей (МП) являются важными инструментами для генерации и хранения надежных случайных паролей, устраняя уязвимости аутентификации по паролю. Однако доверие пользователей остается препятствием для их внедрения. В данной статье предлагается формально верифицированная эталонная реализация генератора случайных паролей (ГСП) с использованием среды доказательств EasyCrypt, с акцентом на функциональную корректность и свойства безопасности.

2. Содержание

3. Текущие алгоритмы генерации паролей

Авторы изучили 15 МП, сосредоточившись на трех широко используемых с открытым исходным кодом: Google Chrome (v89.0.4364.1), Bitwarden (v1.47.1) и KeePass (v2.46). Они были выбраны из-за их популярности и доступности исходного кода.

3.1 Политики состава паролей

МП позволяют пользователям определять политики состава паролей, включая длину, классы символов (строчные, прописные, цифры, специальные символы), минимальное/максимальное количество вхождений на набор, исключение похожих символов и пользовательские наборы символов. В таблице 1 приведены политики для Chrome, Bitwarden и KeePass.

3.2 Генерация случайных паролей

Основной алгоритм генерирует случайные символы из заданных наборов до достижения требуемой длины пароля, соблюдая ограничения на минимальное/максимальное количество вхождений. Алгоритм Chrome сначала генерирует символы из наборов с минимальным количеством вхождений, затем из объединения всех наборов, не превышая максимумы, и, наконец, применяет перестановку к строке.

4. Среда формальной верификации

4.1 Обзор EasyCrypt

EasyCrypt — это ассистент доказательств для криптографических доказательств безопасности, использующий подход на основе игр. Он позволяет задавать эталонные реализации и формально верифицировать функциональную корректность и свойства безопасности.

4.2 Свойства безопасности

Формализация включает такие свойства, как равномерность случайности, устойчивость к атакам по побочным каналам и соблюдение ограничений политики. Подход на основе игр моделирует возможности противника и доказывает неотличимость от идеальной случайной генерации.

5. Технические детали и математическая формулировка

Безопасность ГСП моделируется с использованием концепции вычислительной неотличимости. Пусть $\mathcal{G}$ — алгоритм генерации паролей, а $\mathcal{U}$ — равномерный случайный генератор. Преимущество противника $\mathcal{A}$ определяется как:

$$\text{Adv}_{\mathcal{G}}(\mathcal{A}) = |\Pr[\mathcal{A}^{\mathcal{G}} = 1] - \Pr[\mathcal{A}^{\mathcal{U}} = 1]|$$

Цель состоит в том, чтобы доказать, что $\text{Adv}_{\mathcal{G}}(\mathcal{A})$ пренебрежимо мало для всех вероятностных полиномиальных противников. Формальное доказательство в EasyCrypt включает построение последовательности игр, каждая из которых незначительно отличается от предыдущей, и ограничение разницы в вероятности успеха противника.

6. Результаты экспериментов и диаграммы

Формальная верификация была проведена на эталонной реализации ГСП. Доказательство состоит из примерно 500 строк кода EasyCrypt, охватывающих функциональную корректность (сгенерированный пароль удовлетворяет политике) и безопасность (выходные данные неотличимы от равномерно случайных). Время доказательства составило менее 10 секунд на стандартном ноутбуке. Диаграмма структуры доказательства на основе игр показана ниже:

Рисунок 1: Структура доказательства на основе игр: Игра 0 (реальный алгоритм) → Игра 1 (замена PRG на случайный) → Игра 2 (замена выбора символов на равномерный) → Игра 3 (идеал). Каждый переход обосновывается криптографическим предположением или редукцией.

7. Пример среды анализа

Практический пример: Верификация генерации паролей KeePass

Рассмотрим политику, требующую пароль длиной 12 символов, содержащий не менее 2 строчных, 2 прописных, 2 цифр и 2 специальных символов. Формальная спецификация в EasyCrypt определяет:

Доказательство проводится по индукции по длине пароля, показывая, что каждый символ выбирается равномерно из соответствующего набора, а финальная перестановка гарантирует отсутствие позиционного смещения.

8. Оригинальный анализ

Основная идея: Данная статья устраняет критический пробел в доверии к менеджерам паролей, применяя формальную верификацию к алгоритмам генерации паролей. Хотя многие МП заявляют о безопасности, немногие предоставляют математические гарантии. Использование EasyCrypt является значительным шагом к доказуемо безопасной генерации паролей.

Логическая последовательность: Авторы сначала исследуют существующие алгоритмы, выявляя общие шаблоны и потенциальные недостатки. Затем они предлагают эталонную реализацию и формально верифицируют ее корректность и безопасность с помощью доказательств на основе игр. Логическая последовательность: выявление проблемы → разработка решения → формальная верификация → выводы.

Сильные стороны и недостатки: Сильная сторона заключается в строгом формальном подходе, который обеспечивает гарантии, выходящие за рамки обычного тестирования. Однако статья сосредоточена на одной эталонной реализации, а не на верификации фактического кода Chrome, Bitwarden или KeePass. Это ограничивает практическое влияние. Кроме того, доказательство предполагает наличие доверенного генератора случайных чисел, что может не выполняться во всех сценариях развертывания. Как отметили Белларе и Рогауэй (1993) в своей основополагающей работе по случайным оракулам, разрыв между теоретическими моделями и практическими реализациями остается проблемой.

Практические выводы: Для разработчиков МП внедрение инструментов формальной верификации, таких как EasyCrypt, может повысить доверие и уменьшить количество уязвимостей. Для исследователей было бы полезно расширить эту работу для верификации фактического исходного кода МП (например, с помощью декомпиляции или символьного выполнения). Пользователи должны требовать прозрачности и формальных гарантий от поставщиков МП. Данный подход согласуется с общей тенденцией использования формальных методов в безопасности, как это рекомендуется Национальным институтом стандартов и технологий (NIST) в их руководствах по валидации криптографических модулей.

9. Будущие применения и перспективы

Среда формальной верификации может быть расширена на другие функции МП, такие как хранение паролей и автозаполнение. Интеграция с конвейерами непрерывной интеграции может обеспечить автоматическую верификацию кода генерации паролей. Будущие работы также могут исследовать устойчивость к атакам по побочным каналам и квантово-безопасную случайную генерацию. По мере того как менеджеры паролей становятся повсеместными, формальные гарантии будут необходимы для укрепления доверия пользователей и соблюдения нормативных требований (например, GDPR, eIDAS).

10. Список литературы