Une clé de session est une clé symétrique à usage unique utilisée pour crypter tous les messages d'une session de communication. Un terme étroitement lié est celui de clé de cryptage du trafic ou CET, qui désigne toute clé symétrique utilisée pour crypter les messages de trafic. Généralement, les CET sont modifiées fréquemment, dans certains systèmes quotidiennement et dans d'autres pour chaque message.

Les clés de session introduisent des complexités dans un cryptosystème. Cependant, elles permettent également de résoudre certains problèmes réels, c'est pourquoi elles sont utilisées. Il y a deux raisons principales à l'utilisation des clés de session :

  • Premièrement, plusieurs attaques cryptanalytiques sont rendues plus faciles grâce à la disponibilité d'un plus grand nombre de textes chiffrés avec une clé spécifique. En limitant le nombre de messages cryptés avec une seule clé, ces attaques sont rendues plus difficiles.
  • Deuxièmement, de nombreux algorithmes de cryptage, par ailleurs bons, exigent que les clés soient distribuées de manière sûre avant de pouvoir être utilisées. Tous les algorithmes symétriques à clé secrète ont cette propriété indésirable. Il existe d'autres algorithmes qui ne nécessitent pas une distribution sécurisée des clés secrètes, mais ils sont trop lents pour être pratiques pour le chiffrement de longs messages (voir Cryptographie à clé publique). En utilisant un de ces algorithmes "asymétriques" pour distribuer une clé secrète chiffrée pour un autre algorithme à clé symétrique plus rapide, il est possible d'améliorer considérablement les performances globales.

Comme toutes les clés cryptographiques, les clés de session doivent être choisies de manière à être imprévisibles par un attaquant. Dans le cas habituel, cela signifie qu'elles doivent être choisies au hasard. Le fait de ne pas choisir correctement les clés de session (ou toute autre clé) est un inconvénient majeur dans tout système de cryptographie.