6.3. Confidentialité persistante
La confidentialité persistante (également appelée "confidentialité persistante parfaite" ou "PFS" et définie dans [RFC4949]) est une défense contre un attaquant qui enregistre des conversations chiffrées où les clés de session ne sont chiffrées qu'avec les clés à long terme des parties communicantes. Si l'attaquant parvient à obtenir ces clés à long terme à un moment ultérieur, les clés de session et donc l'ensemble de la conversation pourraient être déchiffrées. Dans le contexte de TLS et DTLS, une telle compromission de clés à long terme n'est pas entièrement invraisemblable. Elle peut se produire, par exemple, en raison de:
-
Un client ou un serveur attaqué par un autre vecteur d'attaque, et la clé privée récupérée.
-
Une clé à long terme récupérée d'un dispositif qui a été vendu ou autrement mis hors service sans effacement préalable.
-
Une clé à long terme utilisée sur un dispositif comme clé par défaut [Heninger2012].
-
Une clé générée par un tiers de confiance comme une CA, et ensuite récupérée de celle-ci soit par extorsion soit par compromission [Soghoian2011].
-
Une percée cryptographique, ou l'utilisation de clés asymétriques de longueur insuffisante [Kleinjung2010].
-
Attaques d'ingénierie sociale contre les administrateurs système.
-
Collection de clés privées à partir de sauvegardes insuffisamment protégées.
La confidentialité persistante garantit dans de tels cas qu'il n'est pas possible pour un attaquant de déterminer les clés de session même si l'attaquant a obtenu les clés à long terme quelque temps après la conversation. Elle protège également contre un attaquant qui est en possession des clés à long terme mais reste passif pendant la conversation.
La confidentialité persistante est généralement obtenue en utilisant le schéma Diffie-Hellman pour dériver les clés de session. Le schéma Diffie-Hellman fait en sorte que les deux parties maintiennent des secrets privés et envoient des paramètres sur le réseau sous forme de puissances modulaires sur certains groupes cycliques. Les propriétés du soi-disant problème du logarithme discret (DLP) permettent aux parties de dériver les clés de session sans qu'un espion puisse le faire. Il n'existe actuellement aucune attaque connue contre le DLP si des paramètres suffisamment grands sont choisis. Une variante du schéma Diffie-Hellman utilise les courbes elliptiques au lieu de l'arithmétique modulaire initialement proposée.
Malheureusement, de nombreuses suites de chiffrement TLS/DTLS ont été définies qui ne présentent pas de confidentialité persistante, par exemple TLS_RSA_WITH_AES_256_CBC_SHA256. Ce document préconise donc l'utilisation stricte de chiffrements avec confidentialité persistante uniquement.