Aller au contenu principal

3. Authentification du client

Ce document définit un mécanisme d'authentification du client nommé d'après le type de certificat client impliqué : ECDSA_sign. Le mécanisme ECDSA_sign est utilisable avec n'importe lequel des algorithmes d'échange de clés ECC non anonymes décrits dans la section 2 ainsi qu'avec d'autres algorithmes d'échange de clés non anonymes (non ECC) définis dans TLS.

Notez que les certificats clients avec des clés publiques EdDSA utilisent également ce mécanisme.

Le serveur peut demander une authentification client basée sur l'ECC en incluant ce type de certificat dans son message CertificateRequest. Le client doit vérifier s'il possède un certificat approprié pour la méthode suggérée par le serveur et s'il est prêt à l'utiliser pour l'authentification.

Si ces conditions ne sont pas remplies, le client DEVRAIT (SHOULD) envoyer un message Certificate client ne contenant aucun certificat. Dans ce cas, le ClientKeyExchange DOIT (MUST) être envoyé comme décrit à la section 2, et le CertificateVerify NE DOIT PAS (MUST NOT) être envoyé. Si le serveur exige une authentification du client, il peut répondre par une alerte d'échec de poignée de main fatal.

Si le client possède un certificat approprié et est prêt à l'utiliser pour l'authentification, il doit envoyer ce certificat dans le message Certificate du client (selon la section 5.6) et prouver la possession de la clé privée correspondant à la clé certifiée. Le processus de détermination d'un certificat approprié et de preuve de possession est différent pour chaque mécanisme d'authentification et est décrit ci-dessous.

NOTE : Il est permis à un serveur de demander (et au client d'envoyer) un certificat client d'un type différent de celui du certificat serveur.

3.1. ECDSA_sign

Pour utiliser ce mécanisme d'authentification, le client DOIT (MUST) posséder un certificat contenant une clé publique capable de faire de l'ECDSA ou de l'EdDSA.

Le client prouve la possession de la clé privée correspondant à la clé certifiée en incluant une signature dans le message CertificateVerify comme décrit à la section 5.8.