L'authentification par certificat permet de résoudre certains problèmes de l'authentification par clé publique. Avec l'authentification hôte par clé publique, l'administrateur système doit soit ajouter la clé publique hôte de chaque serveur à la liste d'hôtes connus de chaque client, soit faire confiance aux utilisateurs client pour confirmer l'identité de l'hôte correctement lorsqu'ils se connectent à un hôte inconnu. L'authentification par certificat contourne ce problème au moyen d'une tierce partie approuvée, appelée autorité de certification, pour vérifier la validité des informations provenant de l'hôte.
Comme dans le cas de l'authentification par clé publique, l'authentification par certificat utilise des paires clé publique/clé privée pour vérifier l'identité de l'hôte. Toutefois, avec l'authentification par certificat, les clés publiques sont contenues dans des certificats numériques Partie intégrante d'une infrastructure de clés publiques. Les certificats numériques (également appelés certificats X.509) sont émis par une autorité de certification, qui veille à la validité des informations précisées sur le certificat. Chaque certificat contient des informations d’identification relatives à son propriétaire, une copie de la clé publique de son propriétaire (utilisée pour le chiffrement et le déchiffrement des messages et des signatures numériques), ainsi qu’une signature numérique (générée par l’autorité de certification à partir du contenu du certificat). La signature numérique permet à un destinataire de vérifier la fiabilité du certificat en s’assurant qu’il n’a pas été falsifié. et, dans ce cas, deux paires de clés sont utilisées ; l'hôte a une clé privée et l'autorité de certification, une autre. L'hôte obtient un certificat auprès de l'autorité de certification. Ce certificat contient des informations d'identification sur l'hôte, une copie de la clé publique hôte et une Signature numérique Utilisée pour confirmer l'authenticité et l'intégrité d'un message transmis. L'expéditeur détient la clé privée d'une paire de clés et le destinataire, la clé publique. Pour créer la signature, l'expéditeur calcule un hachage à partir du message, puis il chiffre cette valeur à l'aide de sa clé privée. Le destinataire déchiffre la signature à l'aide de la clé publique de l'expéditeur et calcule indépendamment le hachage du message reçu. Si la valeur déchiffrée et la valeur calculée concordent, le destinataire considère que l'expéditeur détient la clé privée et que le message n'a subi aucune altération pendant le transit. créée à l'aide de la clé privée de l'autorité de certification. Il est envoyé au client pendant le processus d'authentification. Pour vérifier l'intégrité des informations provenant de l'hôte, le client doit avoir une copie de la clé publique de l'autorité de certification, contenue dans le certificat racine de l'autorité de certification.
L'installation de certificats racine de l'autorité de certification pour vérifier l'identité de l'hôte présente de nombreux avantages par rapport à l'installation et à la configuration de clés publiques hôte :
Un seul et même certificat émanant d'une autorité de certification peut servir à authentifier plusieurs serveurs.
Les administrateurs peuvent utiliser les stratégies de groupe Windows pour installer des certificats d'autorité de certification sur les clients Windows.
Des certificats racine correspondant à des certificats obtenus de façon commerciale sont peut-être déjà disponibles sur les ordinateurs client. Certains certificats racine utilisés par Internet Explorer sont pré-installés sur les ordinateurs Windows. Pour les connexions SSL/TLS, Reflection recherche les certificats dans cette liste de certificats par défaut.
Au besoin, l'hôte peut obtenir un nouveau certificat auprès de la même autorité de certification, sans qu'aucune modification ne soit nécessaire sur les systèmes client.
L'authentification par certificat du serveur utilise les étapes ci-après :
Le client Secure Shell établit une connexion.
L'hôte envoie son certificat au client.
Le client utilise le certificat racine de l'autorité de certification pour vérifier la validité du certificat du serveur.
REMARQUE :Le client doit déjà avoir une copie du certificat de l'autorité de certification dans la liste racine approuvée. (Un seul et même certificat émanant d'une autorité de certification peut servir à authentifier plusieurs serveurs.)
Le client s'assure que les informations serveur figurant dans le certificat de l'hôte correspondent bien à l'hôte contacté.
Pour confirmer que l'hôte possède la clé privée correspondant à la clé publique du certificat, le client envoie un essai (message arbitraire) au serveur et calcule un Hachage Également appelé « synthèse de message », le hachage ou valeur de hachage est un nombre de longueur fixe généré à partir de données numériques de longueur variable. Le hachage est beaucoup plus petit que les données d'origine et généré par une formule afin qu'il soit statistiquement peu probable que d'autres données produisent la même valeur de hachage. basé sur le texte de ce message.
Le serveur crée une signature numérique en fonction du message d'essai. Le serveur calcule séparément le hachage du message, puis chiffre le hachage calculé à l'aide de sa clé privée. Ensuite, le serveur annexe sa signature numérique à l'essai et renvoie ce message signé au client.
Le client déchiffre la signature à l'aide de la clé publique du serveur et compare le hachage au sien. En cas de correspondance des valeurs, l'authentification hôte aboutit.
REMARQUE :Le client Reflection peut vérifier les certificats de l'hôte à l'aide de la liste de certificats Reflection ou de la liste de certificats Windows.