Qu'est-ce qu'une clé de session ? Clés de session et négociations TLS

Le protocole TLS (historiquement connu sous le nom de « SSL ») utilise à la fois la cryptographie asymétrique/à clé publique et symétrique, et de nouvelles clés pour le cryptage symétrique doivent être générées pour chaque session de communication. Ces clés sont appelées « clés de session ».

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Découvrez ce qu'est une session, ce qu'est une clé et quand de nouvelles clés de session doivent être créées
  • Comprendre les différences entre la cryptographie asymétrique et symétrique
  • Découvrez comment le protocole de chiffrement SSL/TLS utilise les deux types de cryptographies.

Copier le lien de l'article

Qu'est-ce qu'une clé de session ?

Une clé de session est toute clé cryptographique symétrique utilisée pour chiffrer une seule session de communication.En d'autres termes, il s'agit d'une clé temporaire qui n'est utilisée qu'une seule fois, pendant un laps de temps donné, pour le cryptage et le décryptage de données entre deux parties ; les futures conversations entre les deux parties seraient cryptées avec des clés de session différentes.Une clé de session est comme un mot de passe que quelqu'un réinitialise à chaque fois qu'il se connecte.

Dans le protocole TLS(historiquement connu sous le nom de « SSL » ), les deux parties communicantes (le client et le serveur) génèrent des clés de session au début de toute session de communication, pendant la poignée de main TLS.La RFC officielle pour TLS n'appelle pas ces clés « clés de session », mais fonctionnellement, c'est exactement ce qu'elles sont.

Qu'est-ce qu'une session ?

Une session est essentiellement une conversation entre deux parties. Une session se déroule sur un réseau et commence lorsque deux appareils se reconnaissent mutuellement et ouvrent une connexion virtuelle. Elle se termine lorsque les deux appareils ont obtenu les informations qu'ils ont besoin d'obtenir l'un de l'autre et envoient les messages « fclose_notify », mettant fin à la connexion, un peu comme si deux personnes s'envoient des SMS et arrêtent la conversation en se disant : « À plus ». La connexion peut également expirer en raison de l'inactivité, comme lorsque deux personnes s'envoient des SMS et cessent simplement de se répondre.

Clés de session - trois sessions avec chacune une nouvelle clé

Une session peut être un ensemble de périodes définies, ou elle peut durer aussi longtemps que les deux parties communiquent. Dans le premier cas, la session expirera après un certain temps. Dans le cadre du chiffrement TLS, les deux appareils devront alors échanger des informations et générer de nouvelles clés de session pour rouvrir la connexion.

Qu'est-ce qu'une clé cryptographique ?

En cryptographie, il est courant de parler de clés (généralement un court morceau de données) pour désigner les entrées spéciales d'un algorithme cryptographique.Les clés les plus courantes sont celles qui sont utilisées pour le cryptage des données ; toutefois, il existe d'autres types de clés pour différents usages.

Un algorithme de cryptage des données utilise une clé (secrète) pour convertir un message en un texte chiffré, c'est-à-dire une version brouillée et illisible du message. On peut récupérer le message original à partir du texte chiffré en utilisant une clé de déchiffrement.

Dans un algorithme de cryptage symétrique, les clés de cryptage et de décryptage sont les mêmes. Ainsi, toute personne détenant la clé secrète peut crypter et décrypter des données, et c'est pourquoi le terme de clés symétriques est souvent utilisé.

En revanche, dans un algorithme de cryptage asymétrique, également connu sous le nom de cryptage à clé publique, il existe deux clés : l'une est publique et ne peut être utilisée que pour le cryptage des données, tandis que l'autre reste privée et n'est utilisée que pour le décryptage des textes chiffrés.

Le protocole HTTPS utilise-t-il une cryptographie symétrique ou asymétrique ?

HTTPS, qui est HTTP en combinaison avec le protocole TLS, utilise les deux types de cryptographie.Toutes les communications via TLS commencent par une poignée de main TLS.La cryptographie asymétrique est essentielle au bon fonctionnement de la poignée de main TLS.

Au cours d'une poignée de main TLS, les deux dispositifs de communication établissent les clés de session, qui seront utilisées pour le cryptage symétrique pendant le reste de la session (sauf si les dispositifs choisissent de mettre à jour leurs clés pendant la session). En général, les deux dispositifs de communication sont un client, ou un dispositif utilisateur tel qu'un ordinateur portable ou un smartphone, et un serveur, c'est-à-dire tout serveur web qui héberge un site web. (Pour en savoir plus, voir Qu'est-ce que le modèle client-serveur ?)

Dans la poignée de main TLS, le client et le serveur :

  • Négocier les algorithmes cryptographiques à utiliser (en toute sécurité grâce à la cryptographie asymétrique).
  • Authentifier l'identité du serveur par rapport à son certificat TLS (en utilisant la cryptographie asymétrique).

Qu'est-ce que le « master secret » dans une poignée de main TLS ? Quel est le rapport avec les clés de session ?

Le secret maître est le résultat de la combinaison, via un algorithme, d'une chaîne de données aléatoires envoyée par le client, de données aléatoires envoyées par le serveur et d'une autre chaîne de données appelée « premaster secret ». Le client et le serveur ont chacun ces trois messages, ils devraient donc arriver au même résultat pour le secret principal.

Le client et le serveur utilisent ensuite le secret principal pour calculer plusieurs clés de session à utiliser uniquement dans cette session. Ils devraient se retrouver avec les mêmes clés de session.

Pour en savoir plus sur le fonctionnement de TLS : . Que se passe-t-il lors d'une poignée de main TLS ?