Un groupe de recherche nommé SMACK a publié une vulnérabilité connue sous le nom de FREAK qui peut être utilisée pour une attaque de type man-in-the-middle (MITM). Cette vulnérabilité est due à un vieux fantôme créé par le gouvernement américain (la NSA, plus précisément) qui, il y a plusieurs années, a convaincu plusieurs organisations d'utiliser des clés plus faibles, appelées clés d'exportation, pour tout logiciel destiné à être utilisé en dehors des frontières des États-Unis. Bien que l'utilisation de clés fortes soit largement répandue aujourd'hui, plusieurs serveurs prennent toujours en charge les clés plus faibles.
Le groupe a découvert que cette vulnérabilité peut être exploitée en utilisant un client et en établissant une connexion via une clé faible. Une fois que la clé est générée par le serveur, elle est réutilisée jusqu'à ce que le serveur soit redémarré, ce qui peut potentiellement prendre des mois. Le groupe a réussi à craquer cette clé de serveur faible en 7,5 heures en utilisant Amazon EC2. Une fois cette clé craquée, toutes les communications peuvent potentiellement être dégradées pour utiliser des clés faibles et faire l'objet de MITM.
L'attaque vise principalement les clients OpenSSL (par exemple Android) et les clients TLS/SSL d'Apple (Safari) en conjonction avec des serveurs web vulnérables, mais pas Firefox, Chrome ou IE.
Comment puis-je désactiver manuellement certaines ou toutes les suites de chiffrement non sécurisées du côté client, par exemple en modifiant certains fichiers de configuration dans Safari, en utilisant une extension Safari appropriée ou en modifiant directement les binaires pour corriger immédiatement la vulnérabilité, en particulier dans les anciennes versions de Safari qui ne sont probablement pas mises à jour par Apple ? Est-ce possible ?
Les suites de chiffrement en question sont :
CipherSuite TLS_RSA_EXPORT_WITH_RC4_40_MD5 = { 0x00,0x03};
CipherSuite TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0x00,0x06};
CipherSuite TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x08};
CipherSuite TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x0B};
CipherSuite TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x0E};
CipherSuite TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x11};
CipherSuite TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x14};
CipherSuite TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = { 0x00,0x17};
CipherSuite TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = { 0x00,0x19};
et peut-être un peu plus.