Select Language

Towards Formal Verification of Password Generation Algorithms in Password Managers

A Formal Verification Approach Using EasyCrypt to Prove Functional Correctness and Security of Random Password Generators in Chrome, Bitwarden, and KeePass.
strongpassword.org | PDF Size: 0.1 MB
Rating: 4.5/5
Your Rating
You have already rated this document
PDF Document Cover - Towards Formal Verification of Password Generation Algorithms in Password Managers

1. Introduction

Password managers (PMs) are essential tools for generating and storing strong, random passwords to address vulnerabilities in password-based authentication. However, user trust remains a barrier to their widespread adoption. This paper presents a formally verified reference implementation of a Random Password Generator (RPG) using the EasyCrypt proof environment, focusing on functional correctness and security properties.

2. Table of Contents

3. Current Password Generation Algorithms

Marubutan sun yi nazarin manajoji na sirri 15, suna mai da hankali kan samfuran buɗaɗɗen tushe guda uku da aka yi amfani da su sosai: Google Chrome (v89.0.4364.1), Bitwarden (v1.47.1), da KeePass (v2.46). An zaɓi waɗannan samfuran saboda shahararsu da sauƙin samun tushen lambar.

3.1 Password Composition Policy

Password managers allow users to define password composition policies, including length, character categories (lowercase letters, uppercase letters, digits, special characters), minimum/maximum occurrences per category, exclusion of similar characters, and custom character sets. Table 1 summarizes the policies of Chrome, Bitwarden, and KeePass.

3.2 Samfurin Sirrin Sirri na Bazuwa

The core algorithm randomly generates characters from the defined character sets until the password length is met, adhering to the minimum/maximum occurrence constraints. Chrome's algorithm first generates characters from sets with minimum occurrence requirements, then from the union of all character sets without exceeding maximum limits, and finally shuffles the string.

4. Tsarin Tabbatarwa na Tsari

4.1 Bayyani Game da EasyCrypt

EasyCrypt is a proof assistant for cryptographic security proofs, employing a game-based approach. It allows specifying reference implementations and formally verifying functional correctness and security properties.

4.2 Siffofin Tsaro

The formal definition includes properties such as random uniformity, resistance to side-channel attacks, and adherence to policy constraints. A game-based approach models the adversary's capabilities and proves its indistinguishability from ideal random generation.

5. Technical Details and Mathematical Formulas

The security of the password generator is modeled using the concept of computational indistinguishability. Let $\mathcal{G}$ be the password generation algorithm and $\mathcal{U}$ be the uniform random generator. The advantage of an adversary $\mathcal{A}$ is defined as:

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

The goal is to prove that for all probabilistic polynomial-time adversaries, $\text{Adv}_{\mathcal{G}}(\mathcal{A})$ is negligible. The formal proof in EasyCrypt involves constructing a series of games, each slightly different from the previous one, and bounding the difference in the adversary's success probability.

6. Experimental Results and Charts

Formal verification was conducted on the reference implementation of the password generator. The proof consists of approximately 500 lines of EasyCrypt code, covering functional correctness (the generated passwords satisfy the policy) and security (the output is indistinguishable from uniform random). On a standard laptop, the proof time is less than 10 seconds. The game-based proof structure diagram is shown below:

Figure 1: Game-based proof structure: Game 0 (real algorithm) → Game 1 (replace pseudorandom generator with random) → Game 2 (replace character selection with uniform) → Game 3 (ideal). Each transition is supported by cryptographic assumptions or reduction proofs.

7. Analysis Framework Example

Case Study: Verifying KeePass Password Generation

Consider a policy that requires generating a 12-character password containing at least 2 lowercase letters, 2 uppercase letters, 2 digits, and 2 special characters. The formal specification in EasyCrypt defines:

The proof proceeds by induction on the password length, showing each character is drawn uniformly from the appropriate character set, and the final permutation ensures no positional bias.

8. Original Analysis

Core Insights: This paper addresses a critical gap in trust for password managers by applying formal verification to a password generation algorithm. While many password managers claim security, few offer mathematical guarantees. Using EasyCrypt is a significant step towards provably secure password generation.

Logical Flow: The authors first survey existing algorithms, identifying common patterns and potential flaws. They then propose a reference implementation and formally verify its correctness and security using game-based proofs. The flow is logical: problem identification → solution design → formal verification → impact analysis.

Strengths and Limitations: The strength lies in the rigorous formal method, providing guarantees beyond conventional testing. However, the paper focuses on a single reference implementation, not verifying the actual code of Chrome, Bitwarden, or KeePass. This limits practical impact. Furthermore, the proofs assume a trusted random number generator, which may not hold in all deployment scenarios. As noted by Bellare and Rogaway (1993) in their seminal work on random oracles, the gap between theoretical models and practical implementations remains a challenge.

Actionable Insights: For password manager developers, adopting formal verification tools like EasyCrypt can enhance trust and reduce vulnerabilities. For researchers, extending this work to verify actual password manager source code (e.g., through decompilation or symbolic execution) would be of significant value. Users should demand transparency and formal guarantees from password manager providers. This approach aligns with the broader trend of formal methods in security, as advocated by the National Institute of Standards and Technology (NIST) in its Cryptographic Module Validation Program guidance.

9. Aikace-aikace na Gaba da Hasashe

This formal verification framework can be extended to other features of password managers, such as password storage and autofill. Integration with continuous integration pipelines could enable automated verification of password generation code. Future work may also explore side-channel resistance and quantum-safe random generation. As password managers become ubiquitous, formal guarantees will be crucial for building user trust and meeting regulatory requirements (e.g., GDPR, eIDAS).

10. Nassoshi