Aller au contenu

Confidentialité persistante : Perfect Forward Secrecy (PFS), ou forward secrecy

Cryptographie

Propriété d'un protocole de chiffrement qui garantit que la compromission ultérieure d'une clé à long terme ne permet pas de déchiffrer les sessions passées. Chaque session utilise des clés éphémères, négociées puis détruites, qu'aucune clé stockée ne permet de reconstituer.

Schéma de séquence entre trois acteurs, Client, Serveur et Attaquant. Le client envoie une clé publique éphémère au serveur. Le serveur répond par sa clé publique éphémère, signée avec sa clé longue durée. Le client envoie ensuite du trafic chiffré avec la clé de session dérivée. À la fin de la session, les clés éphémères sont détruites des deux côtés. Plus tard, l'attaquant vole la clé longue durée du serveur, mais le trafic enregistré reste indéchiffrable.

Principe : Les clés de session naissent d'un échange Diffie-Hellman éphémère (DHE, ECDHE) et ne sont jamais transmises ni conservées. La clé privée longue durée du serveur ne sert qu'à signer cet échange, donc à authentifier, pas à chiffrer.

Menace visée : Elle contre le scénario « enregistrer aujourd'hui, déchiffrer demain » : le trafic capturé reste illisible même après le vol de la clé du serveur. L'expérience montre qu'une clé privée finit toujours par sortir, via une sauvegarde oubliée ou un disque revendu ; sans confidentialité persistante, cette fuite déchiffre aussi des années d'archives, avec effet rétroactif et sans supplément.

En pratique : TLS 1.3 l'impose en supprimant l'échange de clés RSA statique. En TLS 1.2, elle dépend des suites choisies, et des tickets de session conservés trop longtemps peuvent rouvrir la brèche.

Limites : Elle ne protège pas une session en cours si l'une des extrémités est compromise. Elle ne résiste pas non plus à un attaquant capable de casser l'échange lui-même, d'où l'arrivée d'échanges hybrides post-quantiques.

Ce qui arrive si on s'en passe

Sans confidentialité persistante, les clés de session dépendent d'une clé à long terme : soit elles en sont dérivées, soit elles transitent chiffrées par elle, comme dans un échange RSA statique. Un attaquant qui enregistre aujourd'hui du trafic chiffré peut le conserver sans le lire, puis tout déchiffrer le jour où cette clé privée est compromise (vol du serveur, sauvegarde mal protégée, saisie légale, faiblesse découverte plus tard dans l'algorithme). Une seule compromission ouvre alors toutes les sessions passées qui ont été capturées, et pas seulement la session en cours. Révoquer et remplacer le certificat protège les échanges suivants, mais ne rend pas confidentiel ce qui a déjà été enregistré. L'exposition remonte ainsi sur toute la durée de vie de la clé, ce qui rend son ampleur difficile à mesurer après coup.

Explication de la marmotte

Imagine que tu échanges des lettres codées avec une amie, et qu'un curieux photocopie toutes vos enveloppes en espérant découvrir un jour votre code. Si vous utilisez toujours le même code, le jour où il le trouve, il relit d'un coup toutes vos anciennes lettres. Avec la confidentialité persistante, vous inventez un nouveau code secret pour chaque conversation, puis vous le jetez à la fin. Même si quelqu'un vole plus tard votre carnet de secrets, les codes déjà détruits n'y figurent plus : les vieilles photocopies restent illisibles pour toujours.

Où ce terme est utilisé

← Tout le glossaire