Cryptology Academy · Leçon

SRP : protocole de mot de passe sécurisé à distance

Comprenez comment SRP permet au client et au serveur de s’authentifier mutuellement sans que le serveur stocke les mots de passe.

Leçon 2 sur 413 étapes

SRP : protocole de mot de passe sécurisé à distance est une leçon Cryptology Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Cryptology Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Cryptology Academy comprend 4 leçons au total.

Présentation et historique de SRP

Le protocole Secure Remote Password (SRP) a été mis au point par Tom Wu à Stanford et publié sous la forme de la RFC 2945 en 2000, une version améliorée, SRP-6a, ayant été définie ultérieurement. SRP permet une authentification mutuelle fondée sur un mot de passe partagé sans jamais transmettre le mot de passe lui-même, même sous forme chiffrée.

Le serveur stocke un vérificateur, pas un mot de passe

Lors de l’inscription à SRP, le client calcule un vérificateur de mot de passe v = g^x mod N, où x = H(salt || password) et N est un grand nombre premier sûr. Le serveur ne stocke que le sel et le vérificateur v. Même si la base de données du serveur est compromise, le vérificateur stocké ne révèle pas directement le mot de passe.

Génération de la clé de session SRP

Lors de la connexion SRP, le client et le serveur effectuent tous deux un échange de type Diffie-Hellman qui génère une clé de session partagée. Le calcul effectué de chaque côté intègre la valeur dérivée du mot de passe ; la clé de session obtenue ne peut donc être calculée correctement que par une personne qui connaît respectivement le mot de passe et le vérificateur.

Authentification mutuelle dans SRP

SRP fournit une authentification mutuelle : le client prouve qu’il connaît le mot de passe et le serveur prouve qu’il détient le vérificateur légitime. Cela empêche les attaques d’hameçonnage dans lesquelles un faux serveur tenterait de recueillir des informations sur le mot de passe, car un faux serveur ne peut pas terminer correctement l’échange SRP sans le véritable vérificateur.

Calcul du vérificateur

Le vérificateur est calculé comme v = g^x mod N où x = H(salt || password), g est un générateur et N est un nombre premier sûr de 2048 bits ou plus. Le problème du logarithme discret rend pratiquement impossible le calcul de x à partir de v. Le mot de passe ne peut être vérifié qu’en menant à bien l’échange SRP complet.

Améliorations de SRP-6a

SRP-6a corrige les faiblesses des conceptions SRP-3 et SRP-6 originales en introduisant un paramètre multiplicateur k = H(N, g) et en modifiant l’ordre des calculs effectués par le client et le serveur. Ces changements empêchent certaines attaques de devinette permettant de tester deux hypothèses pour le coût d’une seule et garantissent que la contribution du serveur est liée dès le début du protocole.

SRP dans les systèmes en production

SRP a connu un déploiement important dans le monde réel. Apple utilise SRP pour synchroniser le trousseau iCloud et permettre aux appareils de récupérer ses données sans révéler le mot de passe du compte aux serveurs d’Apple. 1Password a utilisé SRP dans son modèle d’authentification afin d’empêcher l’exposition des identifiants côté serveur.

SRP empêche l’hameçonnage

Comme SRP génère une clé de session qui lie à la fois le mot de passe et le vérificateur du serveur, un serveur d’hameçonnage ne peut pas terminer correctement l’échange SRP. Une connexion à un site d’hameçonnage via SRP échouera à l’authentification, ce qui fournit une protection intégrée contre l’hameçonnage, absente de la soumission traditionnelle de mots de passe.

Limites de SRP

SRP est coûteux en calcul et nécessite une exponentiation modulaire sur de grands entiers (d’au moins 2048 bits). Sa mise en œuvre correcte est complexe, car la validation des paramètres comporte de nombreuses subtilités qui ont entraîné des vulnérabilités. Le protocole nécessite également un canal sécurisé (TLS) pour empêcher l’écoute passive de l’échange lui-même.

Suites cryptographiques TLS-SRP

La RFC 5054 définit des suites cryptographiques TLS-SRP qui intègrent directement l’authentification mutuelle SRP à l’échange TLS. Cela élimine le besoin de certificats de serveur tout en fournissant une authentification mutuelle chiffrée. Toutefois, TLS-SRP a été peu adopté en pratique, car FIDO2 et OPAQUE se sont imposés comme des alternatives plus modernes.

SRP face aux alternatives modernes

Bien que SRP ait été révolutionnaire, des alternatives modernes comme OPAQUE offrent de meilleures garanties de sécurité (notamment une résistance au précalcul), et FIDO2 et les clés d’accès éliminent entièrement les mots de passe. Pour les nouveaux systèmes, OPAQUE ou FIDO2 sont préférables, mais SRP reste un choix valable pour les systèmes qui nécessitent une authentification mutuelle par mot de passe sans vulnérabilité à l’hameçonnage.

Vérification du vérificateur SRP

Dans SRP, que stocke le serveur à la place du mot de passe de l’utilisateur ?

Récapitulatif de la leçon : authentification SRP

SRP stocke un vérificateur de mot de passe, et non le mot de passe, génère une clé de session partagée au moyen d’un échange de type DH et fournit une authentification mutuelle résistante à l’hameçonnage. SRP-6a améliore la version originale en résistant aux attaques de devinette. Le trousseau iCloud d’Apple et 1Password utilisent SRP en production. OPAQUE et FIDO2 sont les successeurs modernes à privilégier pour les nouveaux systèmes.

Gratuit pour commencer

Apprends Cryptology Academy avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
67
Leçons
261

Questions Fréquemment Posées

La leçon « SRP : protocole de mot de passe sécurisé à distance » est-elle gratuite ?

Oui — le texte complet de « SRP : protocole de mot de passe sécurisé à distance » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Cryptology Academy, passe à CoddyKit PRO. Le cours Cryptology Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « SRP : protocole de mot de passe sécurisé à distance » ?

Comprenez comment SRP permet au client et au serveur de s’authentifier mutuellement sans que le serveur stocke les mots de passe. Tu pratiques Cryptology Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Cryptology Academy ?

Aucune expérience préalable n'est requise. Cryptology Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « SRP : protocole de mot de passe sécurisé à distance » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Cryptology Academy ?

Oui. Chaque leçon Cryptology Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Le problème fondamental de l’authentification par mot de passe
  2. SRP : protocole de mot de passe sécurisé à distance
  3. Protocoles PAKE et leurs propriétés
  4. Authentification sans mot de passe : WebAuthn et FIDO2
← Retour à Cryptology Academy