Aller au contenu

Weak Message Authentication Code (MAC) Algorithms Supported

Algorithmes de Code d'Authentification de Message (MAC) Faibles Pris en Charge

Description

Cette vulnérabilité indique que le serveur prend en charge un ou plusieurs algorithmes de Code d'Authentification de Message (MAC) faibles ou obsolètes, tels que MD5 ou SHA1. Ces algorithmes présentent des vulnérabilités de sécurité connues et sont considérés comme non sécurisés pour un usage moderne.

Les algorithmes MAC faibles peuvent inclure : - MD5 : Vulnérable aux attaques par collision. - SHA1 : Vulnérable aux attaques par collision, à l'attaque des anniversaires (Birthday Attack), et plus encore. - MD5-MAC : Basé sur l'algorithme de hachage MD5, qui est vulnérable aux attaques par collision. - SHA-1-MAC : Basé sur l'algorithme de hachage SHA-1, qui présente des vulnérabilités connues, notamment des attaques par collision. - HMAC-MD5 : Une construction HMAC utilisant MD5, héritant de ses vulnérabilités. - HMAC-SHA1 : Une construction HMAC utilisant SHA-1, qui s'est également avérée faible en raison des attaques par collision. - RC4-MAC : Basé sur le chiffrement de flux RC4, qui est considéré comme non sécurisé pour diverses raisons, notamment des biais dans sa sortie. - CBC-MAC : Le Cipher Block Chaining MAC peut être vulnérable s'il n'est pas utilisé avec un remplissage (padding) approprié ou si le chiffrement par blocs sous-jacent est faible. - CMAC with weak block ciphers : Bien que CMAC (Cipher-based Message Authentication Code) soit sécurisé lorsqu'il utilise des chiffrements par blocs forts comme AES, son utilisation avec des chiffrements faibles (comme DES) peut entraîner des vulnérabilités. - Poly1305 with weak key lengths : Bien que Poly1305 soit généralement sécurisé, l'utilisation de tailles de clé faibles ou petites peut compromettre sa sécurité. - GMAC (Galois Message Authentication Code) : Bien que généralement sécurisé lorsqu'il est utilisé avec Galois/Counter Mode (GCM), une mauvaise utilisation ou une implémentation incorrecte peut entraîner des vulnérabilités. - KMAC : Bien qu'il soit basé sur SHA-3, son utilisation avec des longueurs de clé insuffisantes peut le rendre non sécurisé.

Ces algorithmes présentent diverses faiblesses qui peuvent être exploitées par des attaquants, pouvant conduire à :

  1. Attaques par collision : Trouver deux entrées différentes qui produisent la même sortie de hachage. Cela compromet l'intégrité de la fonction de hachage.
  2. Attaques par préimage : À partir d'une valeur de hachage, trouver une entrée qui produit ce hachage. Cela brise la propriété unidirectionnelle des fonctions de hachage.
  3. Attaques par extension de longueur : Capacité à calculer hash(message1 || message2) en connaissant seulement hash(message1) et la longueur de message1, sans connaître message1 lui-même.
  4. Falsification des codes d'authentification de message : Créer des MAC valides pour des messages sans connaître la clé secrète, souvent en exploitant des faiblesses dans l'algorithme sous-jacent.

Example Scenario: Un attaquant pourrait exploiter les faiblesses de SHA1 pour créer deux messages différents qui produisent le même MAC. Cela pourrait permettre à l'attaquant de falsifier des messages authentifiés, ce qui pourrait conduire à des actions non autorisées ou à la falsification de données.

La prise en charge de ces algorithmes MAC faibles enfreint diverses normes de sécurité et bonnes pratiques, ce qui peut avoir un impact sur la conformité à des réglementations telles que la norme PCI DSS.

Recommandation

Pour atténuer les risques associés aux algorithmes MAC faibles, tenez compte des recommandations suivantes :

  1. Désactiver les algorithmes MAC faibles :
  2. Désactivez la prise en charge des algorithmes MAC faibles tels que MD5 et SHA1.
  3. N'activez que des algorithmes MAC forts tels que SHA256, SHA384 ou SHA512.

  4. Configurer des suites de chiffrement fortes :

  5. Utilisez des suites de chiffrement qui intègrent des algorithmes MAC forts.
  6. Désactivez les suites de chiffrement qui utilisent des algorithmes MAC faibles.

  7. Implémenter une configuration TLS sécurisée :

  8. Suivez les bonnes pratiques de l'industrie pour la configuration TLS, telles que celles fournies par le générateur de configuration SSL de Mozilla ou le Cheat Sheet TLS de l'OWASP.
  9. Testez régulièrement votre configuration TLS à l'aide d'outils tels que le SSL Server Test de SSL Labs.

  10. Utiliser HTTP Strict Transport Security (HSTS) :

  11. Implémentez HSTS pour vous assurer que les clients se connectent toujours à votre serveur via HTTPS, empêchant ainsi les attaques par repli (downgrade attacks).

  12. Envisager TLS 1.3 :

  13. Si possible, activez la prise en charge de TLS 1.3, qui utilise par défaut des algorithmes MAC plus sécurisés.

Exemples de configurations pour les serveurs web courants :

SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite          ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder     off
SSLSessionTickets       off
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force
New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '1' -PropertyType 'DWord' -Force
New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force

Liens

Normes

  • SOC2_CONTROLS:
    • CC_6_7
    • CC_7_1
  • CCPA:
    • CCPA_1798_150
  • GDPR:
    • ART_32
  • PCI_STANDARDS:
    • REQ_2_3
    • REQ_4_1
    • REQ_6_5
  • HIPAA_CONTROLS:
    • SECURITY252
    • SECURITY212
    • SECURITY213
    • SECURITY255