Le Perfect Forward Secrecy : explication et importance en cybersécurité
Le Perfect Forward Secrecy (PFS) sécurise les échanges SSL/TLS en générant des clés uniques pour chaque session. Ainsi, même si une clé privée est compromise, les communications passées et futures restent protégées. Découvrez comment PFS fonctionne et pourquoi il est essentiel pour la cybersécurité.
Table des Matières
Qu'est-ce que le secret parfait en avant ?
Le secret de transmission parfait (PFS), également appelé secret de transmission, est un type de chiffrement qui permet des échanges de clés privées à court terme entre les clients et les serveurs. Le PFS est utilisé dans le cadre de la sécurité de la couche transport (SSL/TLS) et empêche les pirates de déchiffrer les données d'autres sessions, passées ou futures, même si les clés privées utilisées dans une session individuelle sont volées à un moment donné.
Le PFS y parvient en utilisant des clés de session uniques, générées automatiquement à chaque connexion. Les clés ne sont pas générées à partir de connaissances préalables, ce qui élimine le besoin de les stocker à long terme et empêche l'accès aux données sensibles à l'aide de clés existantes qui ont été compromises.
Les pirates sont donc incapables d'obtenir la clé de session par décryptage sans intervenir au niveau fondamental, avec l'accord sur la clé et le mécanisme d'échange, ce qui nécessite beaucoup plus d'efforts que les autres méthodes d'attaque.
Le PFS est pris en charge par tous les principaux navigateurs Internet et est généralement considéré comme une fonctionnalité de sécurité. La plupart des systèmes d'exploitation modernes prennent en charge le PFS et ce depuis un certain temps. Par exemple, la dernière version de Windows à ne pas prendre en charge le PFS était Windows XP.
La croissance du PFS devrait se poursuivre à mesure que de plus en plus de géants de la technologie en imposent l'adoption à leurs clients. Google l'utilise avec Gmail et d'autres produits depuis des années maintenant, et Apple a fait de la confidentialité persistante parfaite, au sein d'iOS, une exigence sur l'App Store en 2017. Lors de l'introduction de TLS 1.3, l'Internet Engineering Task Force (IETF) a rendu obligatoire la confidentialité persistante parfaite, n'autorisant que les suites de chiffrement qui la proposaient. C'est un élément important de l'avenir de la cryptographie, et pour cause.
Comment fonctionne le PFS
Étant donné que le PFS utilise des clés de session uniques, les pirates ne peuvent visualiser les données spécifiques à un échange particulier que s'ils récupèrent les clés privées de cet échange. Cette segmentation des sessions SSL/TLS réduit considérablement le risque de violation grave des données par ce vecteur.
Par conséquent, les acteurs malveillants seront moins susceptibles de cibler un serveur utilisant le PFS, car leurs efforts se traduiront par un accès à beaucoup moins de données, sans garantie que les données récupérées seront la cible visée jusqu'à ce qu'ils les décryptent à l'aide des clés volées.
En pratique, le PFS fonctionne grâce aux organisations qui changent de clés de session à chaque fois qu'un service est utilisé, par exemple, chaque fois qu'un visiteur se rend sur une page cryptée, peut-être pour des raisons financières ou d'identification. Le PFS est également utilisé dans la messagerie. Un nouvel ensemble de clés de session peut être utilisé pour chaque message envoyé, ce qui permet de segmenter complètement les informations recueillies.
La méthode privilégiée pour déchiffrer une session PFS consiste à utiliser un agent installé sur le serveur lui-même. Il existe d'autres méthodes, mais elles présentent des inconvénients qui doivent être résolus avant de pouvoir être utilisées en toute sécurité.
L'installation d'un agent sur un serveur intègre un logiciel tiers qui collecte les clés de chiffrement et offre une visibilité sans interruption de la session SSL/TLS.
Quels algorithmes de chiffrement l'utilisent ?
Le SSL/TLS est réalisé par l'échange de clés via des processus cryptographiques convenus appelés suites de chiffrement. L'accord pour établir ces paramètres de connexion est appelé handshake.
Pour que la confidentialité persistante soit mise en œuvre, un type de chiffrement conforme doit être utilisé. Actuellement, deux algorithmes d'échange de clés fonctionneront :
- Diffie-Hellman éphémère (DHE)
- Diffie-Hellman à courbe elliptique éphémère (ECDHE)
Les algorithmes spécifiques utilisés changeront probablement à mesure que de meilleures méthodes seront découvertes, mais l'un des principes les plus importants de le PFS est que les échanges de clés doivent être éphémères, ce qui signifie que les clés de session ne sont utilisables qu'une seule fois. Celles-ci sont également appelées clés éphémères. Elles sont basées sur des valeurs aléatoires créées lors de chaque échange, de sorte qu'elles sont uniques à cet échange et ne seront plus valables à la fin de celui-ci. Toutes les informations cryptées sont ensuite supprimées et de nouveaux paramètres sont créés pour la session suivante.
En plus de limiter l'exposition des données une fois qu'une clé est compromise, la conception de l'échange de clés Diffie-Hellman garantit que la clé de session ne peut pas être obtenue par force brute. Comme la clé de session est créée par des méthodes cryptographiques indépendantes et non partagées, la clé privée du serveur est pratiquement inutile. La clé publique correspondante de la paire n'est jamais utilisée pour crypter les données.
L'objectif principal de le PFS
Le PFS empêche la prolifération des risques sur plusieurs sessions SSL/TLS.
Auparavant, un acteur malveillant ciblant une connexion couramment utilisée entre un client et un serveur pouvait enregistrer le trafic chiffré aussi longtemps qu'il le souhaitait, en attendant de pouvoir mettre la main sur la clé privée. Ensuite, une fois celle-ci acquise, il pouvait revenir en arrière et déchiffrer tout ce qui avait été enregistré. Le PFS limite considérablement ce phénomène.
Avant le PFS, cette vulnérabilité était courante et potentiellement dévastatrice. La vulnérabilité Heartbleed d'OpenSSL, découverte en 2012 et annoncée publiquement en 2014, en est un exemple clair.
Avec le bogue Heartbleed, les attaquants ont indiqué au serveur qu'ils allaient lui envoyer un message de demande de pulsation de 64 Ko, mais ils ont envoyé à la place un message beaucoup plus court. Le serveur répondait par le message le plus court, mais comme il s'attendait à répondre par un message plus long, il complétait le reste du message avec les données qui se trouvaient dans sa mémoire. Cela a eu des conséquences dévastatrices, car l'attaque pouvait être répétée à plusieurs reprises pour collecter de grandes quantités de données. Les données pouvaient contenir n'importe quoi dans le serveur ; les mots de passe, les informations personnelles, les données de session et même la clé privée du serveur étaient à la portée du pirate.
Comme une requête heartbeat est un événement de routine, elle n'est jamais enregistrée dans le système. Cela pose non seulement un problème pour l'enquête judiciaire sur le piratage, mais rend le piratage impossible à découvrir sans le chercher spécifiquement.
Si la clé privée du serveur était l'un des éléments compromis par la violation, les attaques pourraient également intercepter et déchiffrer toutes les sessions SSL/TLS qui se sont produites sans que les participants ne s'en rendent compte.
Les utilisateurs de PFS ne s'inquiètent pas seulement des acteurs malveillants, mais aussi d'autres types de surveillance. Après la révélation par Edward Snowden des programmes d'espionnage de la National Security Agency (NSA), de nombreuses organisations considèrent le PFS comme une étape nécessaire pour limiter l'espionnage et la surveillance par le gouvernement.
Une solution pour l'avenir
Si le développement actuel du traitement technologique suit la loi de Moore ou si le saut vers l'informatique quantique est réalisé à grande échelle, de nombreux algorithmes cryptographiques et bonnes pratiques seront dépassés et rendus obsolètes. Cela exposera tout ce que le cryptage protège et pourrait mettre en danger les données héritées. De nombreux experts ont fait part de leurs inquiétudes quant au fait que des individus et des nations du monde entier collectent des données dans le but de les décrypter ultérieurement, lorsque le traitement les rendra triviales.
Le PFS empêche complètement cette stratégie. Il ne transmet aucune de ses clés de session sur le réseau, mais utilise plutôt des méthodes de chiffrement symétrique qui génèrent des clés de session indépendamment par le biais d'équations d'authentification complexes effectuées par les deux parties.
Une autre option pour aider à prévenir ce problème est l'utilisation de la cryptographie quantique, un domaine en développement.
Comment obtenir une confidentialité persistante parfaite
Activer la prise en charge de le PFS sur un serveur est simple, et la plupart des serveurs modernes sont déjà configurés pour cela. Si ce n'est pas le cas, vous pouvez généralement le faire en quatre étapes simples :
- Allez dans la configuration du protocole SSL
- Ajoutez les protocoles SSL
- Définissez un chiffrement SSL compatible avec le PFS
- Redémarrez votre serveur
La confidentialité persistante parfaite peut être réalisée sur la plupart des serveurs web, y compris Apache, Nginx, RSA et autres.