PFS a attiré l'attention dans notre service d'audit en raison de sa capacité innée à limiter notre exposition si quelqu'un vole notre clé privée .
Certaines de ces préoccupations proviennent de cette réponse , qui semble impliquer que tous les clients Web ne prennent pas en charge les PFS. Avant de rendre les PFS obligatoires sur notre serveur, je voudrais prendre votre compte et préparer les incompatibilités.
PFS en SSL implique que le serveur fonctionne, pour chaque nouvelle session, un échange de clé Diffie-Hellman et une signature, de sorte que le coût de la CPU de la poignée de main sur Le serveur est à peu près doublé par rapport à une suite Cipher non-PFS. Mais il est assez rafreint que le coût de la CPU de la poignée de main est non négligeable (clients qui ouvrent plusieurs connexions utilisent la poignée de main abrégée qui utilise uniquement une cryptographie symétrique et un ordinateur de base a suffisamment de puissance pour gérer plusieurs centaines de centaines de poignées de main complètes par seconde avec un seul processeur. coeur). Je suggère de faire une référence en contexte.
Néanmoins avec SSL, il n'y a pas de suite Cipher PFS-capable définie qui prend également en charge le cryptage RC4. En dehors de cela, tous les navigateurs Web non archaroélogiques actuellement déployés accepteront les suites ciphères "DHE" (qui rendent PFS) afin qu'il n'y ait pas de problème d'interopérabilité ici; La question est plutôt de savoir si vous voulez que vous souhaitiez RC4 ou non: vous devez équilibrer la peur du compromis clé ultérieur (par rapport auxquels PFS ajoute une certaine protection) avec la peur des attaques choisies-ciIphertext (c'est-à-dire la bête, auxquelles les suites Cipher de RC4 semblent immunes).
L'équilibreur d'exploitation ou de chargement pourrait Signaler des statistiques de suites ciphères, mais je ne parierais pas dessus. Vous pouvez effectuer des tests avec openssl (l'exécutable de la ligne de commande, avec le s_client
commande). Vous pouvez également utiliser n'importe quel analyseur de protocole décent tel que Wireshark , qui peut vous indiquer quelle suite Ciphher est utilisée sur une connexion donnée (l'identifiant de la suite Cipher est envoyé "dans le clair" dans le cadre des étapes initiales de la poignée de main, il est donc facile de l'attraper avec un renifleur).
L'interopérabilité était une question dans le passé, en particulier dans IPSec. SSL est un peu plus facile, mais tous les clients ne le soutiennent pas. Si je voulais vérifier mon trafic, je serais probablement tcpdump sur un port de span et écrire un script pour rechercher la suite ciphérienne acceptée dans la poignée de main, en supposant que nous parlions SSL.
Quels pièges ou erreurs courantes devrais-je être au courant avant de la mettre en œuvre? Quelque chose d'administrateur, spécifique à la mise en œuvre ou spécifique à la plate-forme? Quelques-uns que le printemps à l'esprit.
Il existe deux algorithmes d'échange de clés utilisées dans le secrétaire avant TLS. DHE et ECDHE. Pour avancer le secret avec la gamme la plus large de clients, vous devez prendre en charge les deux. Vous devriez généralement préférer ECDHE sur DHE car il fonctionne mieux et pour la compatibilité avec Java 7 (voir ci-dessous).
Secrecy obligatoire avant exclut Internet Explorer (n'importe quelle version) sur Windows XP. Je m'attends à ce que la même chose soit vraie de tout ce qui utilise les fenêtres intégrées à la pile SSL/TLS sur XP.
Pour DHE, vous devez vous assurer d'utiliser des paramètres DH forts. Vous devez utiliser des paramètres DH générés sur mesure avec au moins 2048 bits Prime (la sécurité d'un DH Prime est comparable à une clé RSA de la même longueur).
Java 6 et 7 Pause Si vous négociez un Ciphersuite DHE et utilisez des paramètres DH de plus de 1024 bits. Ceci est un problème particulièrement acutut avec Java 6 car il ne prend pas en charge ECDHE.
Avant de rendre les PFS obligatoires sur notre serveur, je voudrais prendre votre compte et préparer les incompatibilités.
Une option pourrait être de rendre les ciphersuites de secrétaire avancé préférés mais non obligatoires et configurez votre serveur pour vous connecter à quel ciphersuite est utilisé pour chaque connexion. Vous pouvez ensuite consulter vos journaux et déterminer le nombre de clients que vous perdrez si vous avez mandaté le secret vers l'avant.
Y a-t-il des idées fausses sur ce que PFS peut et ne peut pas faire? Notre service d'audit pourrait-il avoir besoin d'une vérification de la réalité?
Fondamentalement, ce que le secret avancé empêche une personne qui a volé votre clé en l'utilisant pour déchiffrer passivement le trafic. En particulier sans Secrecy avant, quelqu'un qui surveillait et stocke votre trafic et vole plus tard votre clé peut revenir en arrière et déchiffrer le trafic qu'ils capturé précédemment.
Quel secret ne fera pas que Secrecy ne fera pas d'empêcher une personne qui a volé votre clé de l'utiliser pour vous imiter (et agissez comme un homme au milieu ou remplacez votre serveur avec le leur).
Secrecy avant ne vous aidera pas si le cryptage symétrique est cassé. La cryptographie utilisée pour l'échange de clés de secrétaire avant pourrait également être potentiellement cassée (voir le commentaire sur les paramètres DH ci-dessus).
Les avantages de PFS limité par la demande? (Web vs SMTP, etc.)
Les avantages sont les mêmes mais vous pouvez bien constater que le soutien des clients n'est pas aussi commun.