Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

certificat et session https etc?

1 réponse
Avatar
Roland Le Franc
Bonjour

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


Merci

1 réponse

Avatar
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.

Quelques info plus détaillées sur :
http://fr.wikipedia.org/wiki/SSL
http://sebsauvage.net/comprendre/ssl/