Uma chave de sessão é uma chave simétrica de uso único usada para criptografar todas as mensagens em uma sessão de comunicação. Um termo estreitamente relacionado é chave de criptografia de tráfego ou TEK, que se refere a qualquer chave simétrica que é usada para criptografar mensagens de tráfego. Tipicamente, as TEKs são alteradas freqüentemente, em alguns sistemas diariamente e em outros para cada mensagem.
As chaves de sessão introduzem complexidades em um sistema de criptos. No entanto, elas também ajudam em alguns problemas reais, e é por isso que são utilizadas. Há duas razões principais para o uso de chaves de sessão:
- Primeiro, vários ataques criptanalíticos são facilitados à medida que mais texto criptografado com uma chave específica está disponível. Ao limitar o número de mensagens criptografadas usando uma única chave, esses ataques se tornam mais difíceis.
- Em segundo lugar, muitos outros bons algoritmos de criptografia exigem que as chaves sejam distribuídas com segurança antes que a criptografia possa ser usada. Todos os algoritmos de chaves secretas simétricas têm esta propriedade indesejável. Há outros algoritmos que não exigem a distribuição segura de chaves secretas, mas são lentos demais para serem práticos para a criptografia de mensagens longas (ver Criptografia de chaves públicas). Usando um destes algoritmos "assimétricos" para distribuir uma chave secreta criptografada para outro algoritmo de chave simétrica, mais rápido, é possível melhorar consideravelmente o desempenho geral.
Como todas as chaves criptográficas, as chaves de sessão devem ser escolhidas para que sejam imprevisíveis por um atacante. No caso usual, isto significa que elas devem ser escolhidas de forma aleatória. A não escolha adequada das chaves de sessão (ou qualquer chave) é uma grande desvantagem em qualquer sistema criptográfico.