# Authentification défi-réponse

En sécurité informatique, l'authentification défi-réponse (aussi appelé authentification challenge-réponse ; en anglais, Challenge-response authentication) est une famille de protocoles dans lesquels une partie présente une question (le défi) et une autre partie doit fournir une réponse valide (la réponse) pour être authentifiée.
L'exemple le plus simple d'un protocole défi-réponse est l'authentification par mot de passe, où le défi est de demander le mot de passe et la réponse valide est le mot de passe correct.
De toute évidence, un adversaire qui peut écouter une authentification par mot de passe peut ensuite s'authentifier avec ce mot de passe. Une solution à ce problème consiste à émettre plusieurs mots de passe, chacun d'eux étant associé à un identifiant spécifique. Le vérificateur peut demander le mot de passe associé à un identifiant spécifique, et le demandeur doit fournir ce mot de passe spécifique. En supposant que les mots de passe sont choisis indépendamment, un adversaire qui intercepte une paire de défi-réponse n'a aucun indice lui permettant de trouver la réponse adéquate à un défi différent à un moment différent.
Par exemple, lorsque d'autres méthodes de communications sécuritaires ne sont pas disponibles, les militaires américains utilisent le code AKAC-1553 TRIAD pour authentifier et chiffrer leurs communications. Ce code comprend une liste de défis de trois lettres, chacun étant associé à une réponse de trois lettres. Pour plus de sécurité, une liste de défis n'est valable que pour une période de temps qui est habituellement 24 heures.
Une technique plus intéressante de défi-réponse utilise une fonction pour calculer la réponse à partir du défi. Supposons que Bob contrôle l'accès à une ressource et qu'Alice veut accéder à cette ressource. Pour authentifier Alice, Bob lui lance un défi, supposons que le défi est 520720. Pour s'identifier, Alice doit répondre avec la seule chaîne de caractères qui correspond au défi lancé par Bob. La réponse doit être calculé au moyen d'un algorithme qui doit être connu de Bob et d'Alice.
Il est possible que la réponse appropriée soit aussi simple que "631831" (dans cette illustration, chaque chiffre du défi est augmenté de 1). Cependant, dans une mise en œuvre pratique, la procédure de calcul serait bien plus complexe. Du fait que Bob génère un défi distinct pour chaque tentative d'accès à la ressource, la connaissance préalable d'une réponse à un défi précédent ne serait pas avantageuse pour un individu malintentionné cherchant à usurper l'identité d'un utilisateur légitime.

## Exemple autre que pour le mot de passe

Des protocoles de défi-réponse sont aussi utilisés pour vérifier des choses autres que la connaissance d'un mot de passe ou d'une fonction secrète. Les CAPTCHA, par exemple, sont une sorte défi-réponse qui est une variante du test de Turing, destiné à déterminer si un utilisateur d'une application Web est une personne réelle et non un programme informatique. Le défi envoyé à l'utilisateur est une image déformée d'un texte, et l'utilisateur doit répondre en tapant ce texte. La distorsion du texte est conçue pour rendre la reconnaissance optique de caractères impossible et ainsi empêcher un programme informatique de réussir le défi.