Sélectionner la langue

Vers la vérification formelle des algorithmes de génération de mots de passe dans les gestionnaires de mots de passe

Une approche de vérification formelle utilisant EasyCrypt pour prouver la correction fonctionnelle et la sécurité des générateurs de mots de passe aléatoires dans Chrome, Bitwarden et KeePass.
strongpassword.org | PDF Size: 0.1 MB
Note: 4.5/5
Votre note
Vous avez déjà noté ce document
Couverture du document PDF - Vers la vérification formelle des algorithmes de génération de mots de passe dans les gestionnaires de mots de passe

1. Introduction

Les gestionnaires de mots de passe (PM) sont des outils essentiels pour générer et stocker des mots de passe forts et aléatoires, répondant aux vulnérabilités de l'authentification par mot de passe. Cependant, la confiance des utilisateurs reste un obstacle à leur adoption. Cet article propose une implémentation de référence formellement vérifiée pour un générateur de mots de passe aléatoires (RPG) utilisant l'environnement de preuve EasyCrypt, en se concentrant sur la correction fonctionnelle et les propriétés de sécurité.

2. Table des matières

3. Algorithmes actuels de génération de mots de passe

Les auteurs ont étudié 15 gestionnaires de mots de passe, en se concentrant sur trois logiciels open source largement utilisés : Google Chrome (v89.0.4364.1), Bitwarden (v1.47.1) et KeePass (v2.46). Ceux-ci ont été sélectionnés pour leur popularité et l'accessibilité de leur code source.

3.1 Politiques de composition des mots de passe

Les gestionnaires de mots de passe permettent aux utilisateurs de définir des politiques de composition des mots de passe, incluant la longueur, les classes de caractères (minuscules, majuscules, chiffres, caractères spéciaux), les occurrences minimales/maximales par ensemble, l'exclusion de caractères similaires et les ensembles de caractères personnalisés. Le tableau 1 résume les politiques pour Chrome, Bitwarden et KeePass.

3.2 Génération aléatoire de mots de passe

L'algorithme principal génère des caractères aléatoires à partir d'ensembles définis jusqu'à ce que la longueur du mot de passe soit atteinte, en respectant les contraintes d'occurrences minimales/maximales. L'algorithme de Chrome génère d'abord des caractères à partir d'ensembles avec des occurrences minimales, puis à partir de l'union de tous les ensembles ne dépassant pas les maximums, et enfin applique une permutation à la chaîne.

4. Cadre de vérification formelle

4.1 Aperçu d'EasyCrypt

EasyCrypt est un assistant de preuve pour les preuves de sécurité cryptographique utilisant une approche basée sur les jeux. Il permet de spécifier des implémentations de référence et de vérifier formellement la correction fonctionnelle et les propriétés de sécurité.

4.2 Propriétés de sécurité

La formalisation inclut des propriétés telles que l'uniformité de l'aléatoire, la résistance aux attaques par canaux auxiliaires et le respect des contraintes de politique. L'approche basée sur les jeux modélise les capacités adverses et prouve l'indistinguabilité par rapport à une génération aléatoire idéale.

5. Détails techniques et formulation mathématique

La sécurité du générateur de mots de passe aléatoires (RPG) est modélisée à l'aide du concept d'indistinguabilité computationnelle. Soit $\mathcal{G}$ l'algorithme de génération de mots de passe et $\mathcal{U}$ un générateur aléatoire uniforme. L'avantage d'un adversaire $\mathcal{A}$ est défini comme :

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

L'objectif est de prouver que $\text{Adv}_{\mathcal{G}}(\mathcal{A})$ est négligeable pour tout adversaire probabiliste en temps polynomial. La preuve formelle dans EasyCrypt implique la construction d'une séquence de jeux, chacun différant légèrement du précédent, et le bornage de la différence de probabilité de succès de l'adversaire.

6. Résultats expérimentaux et diagrammes

La vérification formelle a été menée sur une implémentation de référence du générateur de mots de passe aléatoires (RPG). La preuve comprend environ 500 lignes de code EasyCrypt, couvrant la correction fonctionnelle (le mot de passe généré satisfait la politique) et la sécurité (la sortie est indistinguable d'un tirage aléatoire uniforme). Le temps de preuve était inférieur à 10 secondes sur un ordinateur portable standard. Un diagramme de la structure de preuve basée sur les jeux est présenté ci-dessous :

Figure 1 : Structure de preuve basée sur les jeux : Jeu 0 (algorithme réel) → Jeu 1 (remplacer le PRG par un tirage aléatoire) → Jeu 2 (remplacer la sélection de caractères par un tirage uniforme) → Jeu 3 (idéal). Chaque transition est justifiée par une hypothèse cryptographique ou une réduction.

7. Exemple de cadre d'analyse

Étude de cas : Vérification de la génération de mots de passe de KeePass

Considérons une politique exigeant un mot de passe de 12 caractères avec au moins 2 minuscules, 2 majuscules, 2 chiffres et 2 caractères spéciaux. La spécification formelle dans EasyCrypt définit :

La preuve procède par induction sur la longueur du mot de passe, montrant que chaque caractère est tiré uniformément de l'ensemble approprié, et que la permutation finale garantit l'absence de biais positionnel.

8. Analyse originale

Idée centrale : Cet article comble une lacune critique dans la confiance accordée aux gestionnaires de mots de passe en appliquant la vérification formelle aux algorithmes de génération de mots de passe. Alors que de nombreux gestionnaires de mots de passe revendiquent la sécurité, rares sont ceux qui fournissent des garanties mathématiques. L'utilisation d'EasyCrypt constitue une étape significative vers une génération de mots de passe prouvablement sécurisée.

Logique du raisonnement : Les auteurs commencent par étudier les algorithmes existants, identifiant les schémas communs et les failles potentielles. Ils proposent ensuite une implémentation de référence et vérifient formellement sa correction et sa sécurité à l'aide de preuves basées sur les jeux. Le raisonnement est logique : identification du problème → conception de la solution → vérification formelle → implications.

Forces et faiblesses : La force réside dans l'approche formelle rigoureuse, qui offre des garanties allant au-delà des tests classiques. Cependant, l'article se concentre sur une seule implémentation de référence, et non sur la vérification du code réel de Chrome, Bitwarden ou KeePass. Cela limite l'impact pratique. De plus, la preuve suppose un générateur de nombres aléatoires de confiance, ce qui peut ne pas être le cas dans tous les scénarios de déploiement. Comme l'ont noté Bellare et Rogaway (1993) dans leur travail fondateur sur les oracles aléatoires, l'écart entre les modèles théoriques et les implémentations pratiques reste un défi.

Pistes d'action : Pour les développeurs de gestionnaires de mots de passe, l'adoption d'outils de vérification formelle comme EasyCrypt peut renforcer la confiance et réduire les vulnérabilités. Pour les chercheurs, étendre ce travail à la vérification du code source réel des gestionnaires de mots de passe (par exemple, via la décompilation ou l'exécution symbolique) serait précieux. Les utilisateurs devraient exiger transparence et garanties formelles de la part des fournisseurs de gestionnaires de mots de passe. Cette approche s'aligne sur la tendance plus large des méthodes formelles en sécurité, comme le préconise le National Institute of Standards and Technology (NIST) dans ses directives pour la validation des modules cryptographiques.

9. Applications futures et perspectives

Le cadre de vérification formelle peut être étendu à d'autres fonctionnalités des gestionnaires de mots de passe, telles que le stockage et le remplissage automatique des mots de passe. L'intégration dans des pipelines d'intégration continue pourrait permettre une vérification automatique du code de génération de mots de passe. Les travaux futurs pourraient également explorer la résistance aux canaux auxiliaires et la génération aléatoire résistante aux ordinateurs quantiques. Alors que les gestionnaires de mots de passe deviennent omniprésents, les garanties formelles seront essentielles pour établir la confiance des utilisateurs et répondre aux exigences réglementaires (par exemple, RGPD, eIDAS).

10. Références