Si vous envisagez d’utiliser des connexions TLS/SSL, il est crucial de garantir la sécurité des clés de session, même si la clé privée est compromise.
Perfect Forward Secrecy (PFS) vient à la rescousse en permettant le contrôle des clés de chiffrement, empêchant les attaquants d’accéder aux messages précédents.
Lisez la suite pour comprendre le secret de transmission parfait (PFS) et comment l’activer à votre avantage.
Points clés à retenir:
|
Activation de la confidentialité de transmission parfaite
Perfect Forward Secrecy (PFS) est un schéma de chiffrement qui modifie les clés pour chiffrer et déchiffrer les informations.
Il interdit également aux pirates de déchiffrer les données des sessions précédentes ou futures, même s’ils volent à un moment donné les clés privées utilisées dans une session individuelle.
Qu’est-ce qu’une clé privée ? |
Par conséquent, les pirates ne peuvent pas accéder à la clé de session par décryptage sans interagir au préalable avec le processus de négociation et d’échange de clé. Cela nécessite beaucoup plus de travail que les autres cyber-attaque méthodes.
Tous majeurs navigateurs Web PSF de support. Google l’utilise depuis des années avec Gmail, et Apple l’a fait en iOS une exigence sur l’App Store en 2017.
Alors que de plus en plus d’entreprises forcent l’adoption par les clients, la croissance des PFS devrait se poursuivre. Comprendre comment fonctionne le secret de transmission parfait peut vous aider à sécuriser les communications passées et futures.
Comprendre le fonctionnement du secret de transmission parfait
La mise en œuvre du secret de transmission parfait est une technique permettant de réduire les risques de vol de la clé privée d’un serveur.
Il a surmonté ses vulnérabilités en utilisant un algorithme d’échange de clés appelé Ephemeral Diffie-Hellman (DHE) ou Ephemeral Elliptic Curve Diffie-Hellman (ECDHE).
Si le client souhaite communiquer avec le serveur, il génère un secret préprimaire et le chiffre avec la clé spéciale du serveur. Le reste de la conversation est crypté avec cette clé secrète préprimaire par les deux utilisateurs.
Les seules personnes qui peuvent déchiffrer ce dont le client et le serveur ont discuté sont celles qui connaissent la clé d’origine du serveur.
Lorsque des acteurs malveillants tentent d’attaquer, ils ne peuvent lire les données liées à un certain échange que s’ils récupèrent les clés privées de cet échange.
En raison de la complexité des calculs mathématiques impliqués dans la production d’une clé de session unique, même une attaque par force brute pour pirater la clé ne peut pas être effectuée efficacement.
Sans PFS, les acteurs malveillants peuvent espionner la communication du serveur sans être détectés. La raison en est que le serveur utilise la même clé pour chiffrer chaque secret pré-primaire avec chaque client.
L’un des avantages de Perfect Forward Secrecy est qu’il offre une protection nettement supérieure en générant des clés de session uniques pour chaque transaction.
Même si un pirate obtient une clé privée pour une transaction, il ne peut voir que les données de cet échange.
PFS diminue la quantité d’informations vulnérables si un piratage réussit, réduisant ainsi la probabilité de les pirates tenter d’accéder à des données sécurisées sur le serveur.
Si les pirates parviennent à casser la clé privée, le travail requis peut être insuffisant pour les données limitées auxquelles ils peuvent accéder.
Bon à savoir! La mise en œuvre de Perfect Forward Secrecy (PFS) avec l’échange de clés Ephemeral Diffie-Hellman ou Ephemeral Elliptic Curve Diffie-Hellman garantit que même si un pirate parvient à déchiffrer la clé privée, l’effort requis peut ne pas valoir les données limitées auxquelles il peut accéder, ce qui rend les serveurs avec PFS des cibles moins attractives pour les cyberattaques. |
Cependant, bien qu’il n’y ait aucune garantie que personne ne tentera d’obtenir un accès non autorisé à vos serveurs, cela fait de vous une cible moins attrayante.
Configuration NGINX
NGINX est un logiciel open source que vous pouvez utiliser pour :
- service Web,
- proxy inverse,
- mise en cache,
- diffusion multimédia en continu, et
- équilibrage de charge, entre autres.
Il a commencé comme un serveur Web destiné à une stabilité et des performances maximales.
Votre serveur Web et votre bibliothèque SSL/TLS doivent prendre en charge la cryptographie à courbe elliptique (ECC) avant de configurer votre serveur NGINX pour Forward Secrecy.
C’est une technique utilisée pour sécuriser les applications et peut réduire leur impact informatique.
L’ECC est une clé plus petite qui peut assurer la sécurité des appareils dotés de faibles ressources de calcul et de mémoire.
Voici comment activer PFS via NGINX :
Étape 1: Localisez votre configuration SSL, en supposant que /etc/nginx est le répertoire de base.
grep -r protocole_ssl /etc/nginx |
- La commande projettera les blocs serveur disponibles.
- Ouvrez le bloc serveur pour lequel Forward Secrecy est activé.
Étape 2: Ajoutez ces lignes à la configuration.
protocoles_ssl TLSv1.2 TLSv1.1 TLSv1 ; ssl_prefer_server_ciphers sur; |
Étape 3: Définissez le chiffrement SSL en fonction de la compatibilité de votre navigateur. Vous avez l’embarras du choix, mais le chiffrement actuellement recommandé est :
SSL_ciphers ‘EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH’; |
Étape 4: En utilisant ceci, redémarrez Nginx :
redémarrage du service sudo nginx |
Étape 5 : Utilisez Discovery pour tester votre configuration afin de vous assurer que Forward Secrecy est activé.
Étape 6 : Après cela, vous avez maintenant défini avec succès le Forward Secrecy.
Comparé à d’autres serveurs Web, NGINX est plus sécurisé et a une base de code plus petite. Un serveur Web et un serveur proxy inverse peuvent être utilisés avec NGINX.
Paramétrage d’Apache
Apache est le serveur Web qui gère les requêtes HTTP et sert les actifs et les informations en ligne.
Il est fréquemment utilisé avec les éléments suivants :
- Moteur de base de données MySQL,
- le langage de script PHP, et
- d’autres langages de script populaires comme Python et Perl.
Voici comment activer PFS via Apache :
Étape 1: Localisez votre configuration de protocole SSL à l’aide de ce
grep -i -r “SSLEngine” /etc/apache |
- La commande projettera les hôtes virtuels disponibles.
- Ouvrez l’hôte virtuel pour lequel Forward Secrecy est activé.
Étape 2: Ajoutez ces lignes à la configuration.
Protocole SSL tous -SSLv2 -SSLv3 SSLHonorCipherOrder sur |
Étape 3: Définissez le chiffrement SSL :
SSL_ciphers ‘EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH’; |
Étape 4: À l’aide de ceci, redémarrez Apache :
Étape 5 : Utilisez Discovery pour tester votre configuration afin de vous assurer que Forward Secrecy est activé.
Étape 6 : Après cela, vous avez maintenant défini avec succès le Forward Secrecy.
Votre serveur doit donner la priorité à certaines méthodes de sécurité pour qu’elles fonctionnent. Si le serveur privilégie une autre forme de sécurité, c’est celle-ci qui sera utilisée.
Si vous adoptez le secret de transmission parfait, vous devez désactiver toutes les autres méthodes de sécurité. Cela est dû à une vulnérabilité SSL/TLS connue sous le nom d’attaque FREAK.
Qu’est-ce qu’une attaque FREAK ? Une attaque FREAK (Factoring RSA Export Keys) était une vulnérabilité de sécurité qui affectait certaines implémentations SSL/TLS. Il a été découvert en 2015 mais a depuis été atténué. |
Les attaquants peuvent exploiter la vulnérabilité pour intercepter les connexions HTTPS entre les clients et les serveurs sensibles et les forcer à utiliser une cryptographie « de qualité export », qui peut ensuite être déchiffrée ou manipulée.
Il est également important de désactiver les identifiants de session ou les tickets de session de longue durée. Ceux-ci conservent les informations relatives à la session pendant de longues périodes après la session de l’utilisateur.
Parfois, les tickets de session peuvent rester dans la mémoire d’un serveur jusqu’au redémarrage du système.
Le PSF offre une sécurité pour que le droit à la correspondance privée ne soit pas violé.
L’importance du secret de transmission parfait
Dans un monde idéal où chaque organisation ou personne suit les meilleures pratiques de gestion des clés sécurisées, PFS n’est pas nécessaire et le secret de transmission aurait été acceptable.
Cependant, étant donné que les cybercriminels sont à la recherche de moyens plus sophistiqués pour obtenir les clés privées des utilisateurs afin de déchiffrer les données de sessions précédemment interceptées, cela signifie que les clés privées du serveur sont susceptibles d’être compromises.
Le secret de transmission parfait protège les futures compromissions des clés secrètes ou des mots de passe des sessions précédentes.
Il garantit également que les sessions et les communications précédemment enregistrées et chiffrées ne pourront plus être consultées et déchiffrées à l’avenir par un attaquant qui compromettrait les clés secrètes à long terme.
C’est pourquoi le déchiffrement de PFS ne se fait qu’en installant un agent sur le serveur ou en acheminant le trafic via un ensemble de dispositifs d’inspection TLS.
Bon à savoir! Perfect Forward Secrecy (PFS) protège contre le décryptage futur des sessions et des communications précédemment enregistrées par des attaquants, protégeant les clés secrètes ou les mots de passe contre la compromission et garantissant que les données restent sécurisées même si les clés privées du serveur sont violées. |
Conclusion
Auparavant, la complexité de la mise en œuvre était un obstacle à l’établissement d’un secret de transmission parfait. La mise en œuvre d’équilibreurs de charge modernes et d’autres solutions packagées est plus facile que jamais.
Avec un certificat ECC pour négocier un cryptage SSL/TLS rapide avec PFS et un certificat RSA comme sauvegarde pour la compatibilité avec les anciens navigateurs, il peut implémenter PFS de manière optimale.
L’utilisation de PFS aidera à sécuriser les sessions passées et futures. Non seulement il sécurise les sessions en cours, mais il sécurise également le passé et l’avenir.