← Hash, MD5, mots de passe et certificats TLS

Module 10 / 12 · 90 min

10. Nom du service et validation TLS

Vérifier que le pair authentifié correspond à la destination attendue.

Lessons, exercises and questions in this path are in French. The interface follows the site language.

Your progress will appear here when JavaScript is active.

Progress and best score are stored only in this browser. No account is needed; clearing browser data removes them. Module times are estimates including exercises.

Comprendre le mécanisme

Une chaîne approuvée ne suffit pas si le certificat n’identifie pas le service demandé. La vérification d’identité compare le nom de référence issu du contrat de connexion aux identifiants appropriés du certificat selon les règles applicables, notamment les SAN. Les règles de wildcard sont contraintes ; une simple recherche de sous-chaîne dans le nom n’est pas une validation. Une adresse IP demande également le type d’identifiant correspondant.

Raisonner et vérifier

Ne désactivez pas verify_peer ou la vérification de nom pour résoudre une erreur de certificat. Corrigez le nom, la chaîne ou le magasin de confiance du laboratoire. SNI aide le serveur à sélectionner un certificat mais ne remplace pas la décision du client. Les tests doivent distinguer mauvaise chaîne, mauvais nom et expiration afin de rendre la correction précise.

Référence de destination

Le nom de référence vient de la destination attendue. La vérification doit conserver le contrat du client. Le nom attendu vient de l’URL ou du contrat de connexion maîtrisé par le client. Ne remplacez pas cette attente par le nom que le certificat annonce simplement pour faire réussir la comparaison.

Understand this common mistake

Le serveur peut choisir librement le nom que le client doit attendre.

La vérification doit conserver le contrat du client.

SAN

Les SAN portent des identifiants selon des règles précises. Une comparaison approximative peut accepter un autre service. Les subjectAltName portent des identifiants typés. Appliquez les règles de correspondance du protocole client ; l’affichage convivial du subject ne suffit pas à résumer l’identité utilisable pour la destination.

Understand this common mistake

Une sous-chaîne du nom suffit à tout contrôle TLS.

Une comparaison approximative peut accepter un autre service.

Adresse IP

Une IP demande l’identifiant de type approprié. La nature de l’identifiant compte. Une connexion attendue vers une adresse IP demande un identifiant IP conforme au profil applicable. Une chaîne DNS contenant des chiffres n’est pas automatiquement équivalente à une identité IP dans un SAN.

Understand this common mistake

Tout nom DNS contenant les chiffres de l’IP suffit.

La nature de l’identifiant compte.

SNI et sélection

SNI aide à sélectionner un contexte serveur. La sélection et la vérification sont distinctes. SNI permet au serveur de choisir son contexte et son certificat. Il ne constitue pas la vérification cliente de ce certificat ; les deux étapes ont des responsabilités différentes.

Understand this common mistake

SNI valide à lui seul le certificat côté client.

La sélection et la vérification sont distinctes.

Wildcards limitées

Les wildcards ont une portée contrainte. Les règles ne sont pas une recherche de sous-chaîne. Un certificat générique ne couvre pas arbitrairement tous les sous-domaines et profondeurs. Vérifiez les règles du client et les noms concrets utilisés plutôt que déduire une couverture illimitée du caractère étoile.

Understand this common mistake

Un wildcard correspond librement à tout nom mondial.

Les règles ne sont pas une recherche de sous-chaîne.

Échec fermé

Un mauvais nom doit provoquer un refus. Le pair doit correspondre au service attendu. Le nom api-b ne correspond pas à un certificat qui identifie uniquement api-a. Le bon comportement est un refus, même si l’autorité et les dates du certificat sont valides.

Understand this common mistake

Une chaîne valide autorise n’importe quel nom demandé.

Le pair doit correspondre au service attendu.

Réparer sans contourner

La correction doit conserver verify_peer et le contrôle de nom. Cela retire précisément la garantie recherchée. Corrigez DNS, URL ou certificat selon la cause puis conservez verify_peer et le contrôle du nom. Une option de désactivation permanente transformerait une erreur visible en faiblesse silencieuse.

Understand this common mistake

Désactiver les vérifications résout la propriété d’identité.

Cela retire précisément la garantie recherchée.

Autorité de laboratoire

Un laboratoire peut utiliser une autorité locale maîtrisée. Des clés de test suffisent à vérifier les comportements. Une CA locale maîtrisée permet des tests reproductibles sur des noms de développement. Limitez son périmètre et sa clé privée ; ne l’installez pas partout comme solution universelle aux erreurs de confiance.

Understand this common mistake

Un laboratoire doit utiliser des clés privées de production.

Des clés de test suffisent à vérifier les comportements.

Causes distinctes

Une expiration et un mauvais nom sont des causes distinctes. Identifier la cause permet de restaurer le bon contrôle. Testez séparément certificat expiré, autorité inconnue et nom incorrect. Un message générique de connexion échouée ne suffit pas à choisir la bonne réparation ou à démontrer chaque frontière.

Understand this common mistake

Toute erreur TLS exige le même correctif aveugle.

Identifier la cause permet de restaurer le bon contrôle.

Redirection

Une redirection peut demander une nouvelle validation de destination. Chaque connexion doit rejoindre le pair attendu. Une redirection vers une autre destination ouvre une nouvelle connexion et une nouvelle décision de confiance. Réévaluez aussi la politique SSRF et les credentials transmis au lieu de suivre aveuglément la cible.

Understand this common mistake

Le certificat du premier hôte valide tous les hôtes suivants.

Chaque connexion doit rejoindre le pair attendu.

Atelier guidé : lire, expliquer et vérifier le code

Destination : https://api-b.example.test
Certificat valide, SAN : DNS:api-a.example.test
Vérification de nom : activée

La chaîne du certificat est supposée valide mais son SAN ne désigne pas la destination attendue. Identifiez précisément cette différence puis proposez un certificat ou une URL conforme au contrat. Le fait de désactiver le contrôle de nom ferait disparaître le symptôme en supprimant la garantie recherchée.

La validation du nom complète celle du chemin. Le client ne doit pas réécrire sa confiance vers le nom reçu. Aucun format de corps ne décide de la validation TLS. Le nom attendu n’est pas identifié par ce SAN.

Travail pratique : Présentez au client local un certificat approuvé pour service-a.test alors qu’il demande service-b.test.

Critères de correction : Observez le refus de nom avec une chaîne autrement correcte. Corrigez le certificat ou la destination attendue, puis ajoutez un test de non-régression qui conserve toutes les vérifications.

Worked example

Destination attendue : api.example.test
Chaîne approuvée + identité d’un autre service → refus

La possession d’un certificat valide pour un nom différent n’établit pas l’identité demandée.

Practical exercise

Présentez au client local un certificat approuvé pour service-a.test alors qu’il demande service-b.test.

View a suggested solution

Observez le refus de nom avec une chaîne autrement correcte. Corrigez le certificat ou la destination attendue, puis ajoutez un test de non-régression qui conserve toutes les vérifications.

Verification checklist

  • Nom de référence maîtrisé.
  • SAN et règles applicables.
  • Aucune désactivation des vérifications.

Knowledge check

Related lesson: 10. Nom du service et validation TLS ↗
Une chaîne valide pour un autre nom suffit-elle ?

Reference documentation ↗

Module validation

101 questions, local practice target of 75%. Suggested duration of 150 minutes, with no enforced deadline. Questions and choices are shuffled; corrections appear after submission. The quick lesson check and the final course exam remain separate exercises.

Start or resume the 101 questions →