Ke ne trouve pas d'explication claire sur l'authentification d'une
session avec certificat...
Auriez vous un lien à me donner?
Je comprends le principe: un client a une clé privée, donne sa clé
publique au serveur dans son certificat. Au moment de
l'authentification, le client signe quelque chose avec sa clé privée et
l'envoie au serveur qui peut vérifier cette signature grace au
certificat du client.
Questions que je me pose: quel est ce quelque chose signé à ce moment,
quels sont les standards habituels
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Arnaud W.
On 24 mar, 09:21, Roland Le Franc wrote:
Je comprends le principe: un client a une clé privée, donne sa clé publique au serveur dans son certificat. Au moment de l'authentification, le client signe quelque chose avec sa clé privée et l'envoie au serveur qui peut vérifier cette signature grace au certificat du client. Questions que je me pose: quel est ce quelque chose signé à ce moment, quels sont les standards habituels
Pour faire simple, comme la signature consiste à chiffrer avec sa clef privée (afin que tout le monde puisse déchiffrer avec la clef publique du certificat), mais que le chiffrement à clef publique est très lent, on ne chiffre qu'un résumé (un haché cryptographique) du message, qui sera envoyé avec le message correspondant, le tout étant chiffré par un algorithme à clef privé (dont la clef a été échangée par un protocole type Diffie-Hellman, utilisant aussi les certificats).
Petit exemple simplifié :
Soit un paquet P à envoyer. A et B deux protagonistes.
1) A et B se mettent d'accord sur une clef privée (et les algorithmes à utiliser...etc).
2) A calcul le haché de P => H(P). A signe, c'est à dire chiffre H(P) avec la clef privée de son certificat => S(H(P)) A chiffre, avec un algorithme à clef privée (ex :AES) et la clef précédemment échangée, le message (compressé ou non) concatén é avec la paquet signé => C(P, S(H(P))) C'est ce que A envoi à B.
3) B déchiffre avec la clef partagée précédemment => il obtient P et S(H(P)). B calcul le haché de P : H'(P) B décrypte le haché de S(H(P)) avec la clef publique de A => H(P) Si H(P) et H'(P) sont identiques, B peut considérer que le paquet P est authentique et provient bien de A, puisque A est le seul à connaitre sa clef privée, dont c'est le seul qui a pu signer le paquet.
En résumé, les certificats servent : - A prouver l'identité de leur propriétaire - A échanger des clefs privées pour d'autres algorithmes (algorithmes à clef privée) - A signer des messages et vérifier ces signatures.
On 24 mar, 09:21, Roland Le Franc <x-k...@hotmail.com> wrote:
Je comprends le principe: un client a une clé privée, donne sa clé
publique au serveur dans son certificat. Au moment de
l'authentification, le client signe quelque chose avec sa clé privée et
l'envoie au serveur qui peut vérifier cette signature grace au
certificat du client.
Questions que je me pose: quel est ce quelque chose signé à ce moment,
quels sont les standards habituels
Pour faire simple, comme la signature consiste à chiffrer avec sa clef
privée (afin que tout le monde puisse déchiffrer avec la clef publique
du certificat), mais que le chiffrement à clef publique est très lent,
on ne chiffre qu'un résumé (un haché cryptographique) du message, qui
sera envoyé avec le message correspondant, le tout étant chiffré par
un algorithme à clef privé (dont la clef a été échangée par un
protocole type Diffie-Hellman, utilisant aussi les certificats).
Petit exemple simplifié :
Soit un paquet P à envoyer. A et B deux protagonistes.
1) A et B se mettent d'accord sur une clef privée (et les algorithmes
à utiliser...etc).
2) A calcul le haché de P => H(P).
A signe, c'est à dire chiffre H(P) avec la clef privée de son
certificat => S(H(P))
A chiffre, avec un algorithme à clef privée (ex :AES) et la clef
précédemment échangée, le message (compressé ou non) concatén é avec la
paquet signé => C(P, S(H(P))) C'est ce que A envoi à B.
3) B déchiffre avec la clef partagée précédemment => il obtient P et
S(H(P)).
B calcul le haché de P : H'(P)
B décrypte le haché de S(H(P)) avec la clef publique de A => H(P)
Si H(P) et H'(P) sont identiques, B peut considérer que le paquet P
est authentique et provient bien de A, puisque A est le seul à
connaitre sa clef privée, dont c'est le seul qui a pu signer le
paquet.
En résumé, les certificats servent :
- A prouver l'identité de leur propriétaire
- A échanger des clefs privées pour d'autres algorithmes (algorithmes
à clef privée)
- A signer des messages et vérifier ces signatures.
Quelques info plus détaillées sur :
http://fr.wikipedia.org/wiki/SSL
http://sebsauvage.net/comprendre/ssl/
Je comprends le principe: un client a une clé privée, donne sa clé publique au serveur dans son certificat. Au moment de l'authentification, le client signe quelque chose avec sa clé privée et l'envoie au serveur qui peut vérifier cette signature grace au certificat du client. Questions que je me pose: quel est ce quelque chose signé à ce moment, quels sont les standards habituels
Pour faire simple, comme la signature consiste à chiffrer avec sa clef privée (afin que tout le monde puisse déchiffrer avec la clef publique du certificat), mais que le chiffrement à clef publique est très lent, on ne chiffre qu'un résumé (un haché cryptographique) du message, qui sera envoyé avec le message correspondant, le tout étant chiffré par un algorithme à clef privé (dont la clef a été échangée par un protocole type Diffie-Hellman, utilisant aussi les certificats).
Petit exemple simplifié :
Soit un paquet P à envoyer. A et B deux protagonistes.
1) A et B se mettent d'accord sur une clef privée (et les algorithmes à utiliser...etc).
2) A calcul le haché de P => H(P). A signe, c'est à dire chiffre H(P) avec la clef privée de son certificat => S(H(P)) A chiffre, avec un algorithme à clef privée (ex :AES) et la clef précédemment échangée, le message (compressé ou non) concatén é avec la paquet signé => C(P, S(H(P))) C'est ce que A envoi à B.
3) B déchiffre avec la clef partagée précédemment => il obtient P et S(H(P)). B calcul le haché de P : H'(P) B décrypte le haché de S(H(P)) avec la clef publique de A => H(P) Si H(P) et H'(P) sont identiques, B peut considérer que le paquet P est authentique et provient bien de A, puisque A est le seul à connaitre sa clef privée, dont c'est le seul qui a pu signer le paquet.
En résumé, les certificats servent : - A prouver l'identité de leur propriétaire - A échanger des clefs privées pour d'autres algorithmes (algorithmes à clef privée) - A signer des messages et vérifier ces signatures.