J'ai remarqué qu'un certain nombre d'outils de surveillance de paquets de réseau sur le marché semblent aujourd'hui avoir à peu près les mêmes paramètres de configuration recommandés que ceux décrits ci-dessous:
Désactiver Diffie Hellman à Apache
Essentiellement, ils prétendent que la surveillance du réseau d'Apache ou IIS ne peut pas fonctionner pour le trafic TLS à moins que le Diffie-Hellman Cipher soit désactivé à Apache. Qu'est-ce qui me confond est comment cela ne cesse pas de casser TLS dans ce cas ? Comment l'échange clé est-il toujours sécurisé dans ce cas?
Si Apache utilise une autre suite asymétrique de chiffrement asymétrique pour un échange de clé, par exemple, qu'est-ce que Diffie-Hellman fournit exactement l'outil de surveillance ici?
TL, DR: L'utilisation de ce produit strictement aussi recommandé viole probablement vos règles de conformité. Ce n'est pas à cause de l'aspect Diffie-Hellman, mais je ne l'utiliserais toujours pas, en partie parce que l'aspect DH témoigne d'une architecture non sécurisée et en partie parce que d'autres aspects de la documentation témoignent d'un manque d'inquiétude pour la sécurité.
Il y a plusieurs façons différentes une poignée de main TLS peut fonctionner. Considérant le cas commun où le serveur est prêt à parler à quiconque, mais le client souhaite parler à un serveur spécifique, la poignée de main a deux objectifs fonctionnels:
L'échange de clé a un objectif de sécurité, qui est celui d'un Man-in-Middle capable d'observer et de modifier la communication ne peut pas imiter le serveur ou obtenir la clé de session.
Le serveur envoie d'abord sa clé publique au client, ainsi que des données supplémentaires (certificats) qui permettent au client de vérifier que la clé publique est la bonne pour ce serveur, grâce à [~ # ~ ~] PKI [~ # ~] . À ce stade, le client connaît la clé publique du serveur légitime (sinon il détecte qu'il a été envoyé une fausse clé et ferme la connexion), mais elle ne peut toujours pas faire confiance à ce qu'elle reçoit depuis qu'un attaquant aurait pu modifier les données. .
Après cela, il y a trois façons d'aller. (Voir aussi Quel mécanisme d'échange de clé doit être utilisé dans TLS? Pour une discussion plus technique.)
RSA
dans leur nom mais pas DHE
. catégorie ApacheRSA
désigne ces ciphersuites.DHE
dans leur nom (y compris ECDHE
). Le E
in DHE
signifie "Ephemeral", car l'algorithme Diffie-Hellman est utilisé pour générer une clé de session à usage unique. La partie signature peut être RSA
ou ECDSA
. catégorie ApacheEDH
désigne ces ciphersuites.Envisagez maintenant de ce qui se passe si l'attaquant peut observer le trafic mais ne le modifiez pas et connaît en outre la clé privée du serveur. Avec la première méthode, ils peuvent déchiffrer le paquet contenant la clé de session cryptée. Avec la deuxième méthode, ils ne peuvent rien faire. Un attaquant actif qui connaît la clé de signature du serveur peut imiter le serveur pendant la poignée de main, ce qui entraîne une session TLS valide entre le serveur et l'attaquant et une autre session TLS valide entre l'attaquant et le client. Mais un attaquant qui ne peut pas ou ne modifiera pas le trafic ne peut pas faire cela.
Cette propriété de la deuxième méthode est appelée Secrecy en avant parfait (PFS), car si l'attaquant parvient à enregistrer le trafic, puis parvient à obtenir la clé du serveur, ils ne pourront toujours pas déchiffrer le trafic enregistré. Ils auraient besoin de connaître les parties secrètes de l'échange de clé Diffie-Hellman, mais les participants les effacent dès que la poignée de main est terminée.
Cette centrale veut apparemment surveiller le trafic que le serveur est servi, mais ne le transmet pas activement. Il aurait besoin de connaître la clé privée du serveur, sinon l'ensemble est inutile. Donc, les instructions sont de désactiver tous les ciphersuites qui utilisent Ephemeral Diffie-Hellman, c'est-à-dire tous les ciphersuites avec PFS et gardez uniquement ceux qui ne sont que celles-cryptage.
C'est un moyen terrible moyen de surveiller le trafic, car c'est une sécurité dégradante. PFS n'est pas nécessaire pour assurer la sécurité de base de TLS, mais c'est une bonne chose puisqu'elle limite l'impact d'une clé privée compromise. En particulier, une clé privée devient inutile une fois que le certificat correspondant a expiré ou a été révoqué (en supposant que les clients vérifient correctement l'expiration et la révocation). Sans PFS, une vieille sauvegarde fuite permet de décrypter l'ancien trafic. De plus, cette configuration nécessite une copie de la clé privée du serveur dans une autre case, ce qui augmente le risque que la clé privée fuit.
Le bon endroit pour surveiller le trafic serait sur le serveur lui-même, entre l'application et le point final TLS. Je suppose que ce produit est conçu de cette manière car il facilite le déploiement, mais c'est un design terrible.
En plus de désactiver les PFS, ces instructions permettent aux chiffres d'exportation, à des chiffres à faible sécurité tels que le seul DES et SSLV2. Je ne sais pas quel âge ce produit est, mais même en 2005, qui est lorsque Apache 2.2 et RHEL4 (mentionné sur la page Web du produit) est sorti, les trois étaient obsolètes, pour être activé que si vous n'aviez vraiment absolument pas eu à parler aux anciens clients. Permettant à l'une de ces trois aujourd'hui violerait toute norme de conformité cryptographique.