Weak Message Authentication Code (MAC) Algorithms Supported
脆弱なメッセージ認証コード (MAC) アルゴリズムがサポートされています
説明
この脆弱性は、サーバーが MD5 や SHA1 などの脆弱または非推奨のメッセージ認証コード (MAC) アルゴリズムを 1 つ以上サポートしていることを示します。これらのアルゴリズムには既知のセキュリティの脆弱性があり、現代の用途では安全ではないと見なされています。
脆弱な MAC アルゴリズムには以下が含まれる可能性があります。
- MD5: 衝突攻撃に対して脆弱です。
- SHA1: 衝突攻撃、誕生日攻撃などに対して脆弱です。
- MD5-MAC: 衝突攻撃に対して脆弱な MD5 ハッシュアルゴリズムに基づいています。
- SHA-1-MAC: 衝突攻撃などの既知の脆弱性を持つ SHA-1 ハッシュアルゴリズムに基づいています。
- HMAC-MD5: その脆弱性を継承する MD5 を使用した HMAC 構成。
- HMAC-SHA1: SHA-1 を使用した HMAC 構成。これも衝突攻撃により弱いことが示されています。
- RC4-MAC: RC4 ストリーム暗号に基づいており、その出力におけるバイアスを含む様々な理由から安全ではないと見なされています。
- CBC-MAC: Cipher Block Chaining MAC は、適切なパディングで使用されない場合、または基盤となるブロック暗号が弱い場合に脆弱になる可能性があります。
- CMAC with weak block ciphers: CMAC (Cipher-based Message Authentication Code) は AES のような強力なブロック暗号を使用する場合は安全ですが、弱い暗号 (DES など) で使用すると脆弱性につながる可能性があります。
- Poly1305 with weak key lengths: Poly1305 は一般的に安全ですが、弱い、または小さいキーサイズを使用すると、そのセキュリティが損なわれる可能性があります。
- GMAC (Galois Message Authentication Code): Galois/Counter Mode (GCM) で使用する場合は一般的に安全ですが、誤用や誤った実装は脆弱性につながる可能性があります。
- KMAC: SHA-3 に基づいていますが、不十分なキー長での使用は安全性を損なう可能性があります。
これらのアルゴリズムには、攻撃者によって悪用される可能性のある様々な弱点があり、以下につながる可能性があります。
- 衝突攻撃: 同じハッシュ出力を生成する 2 つの異なる入力を見つけること。これにより、ハッシュ関数の完全性が損なわれます。
- 原像攻撃: ハッシュ値が与えられた場合に、そのハッシュを生成する入力を見つけること。これにより、ハッシュ関数の一方向性が破られます。
- 伸長攻撃:
message1自体を知らなくても、hash(message1)とmessage1の長さだけからhash(message1 || message2)を計算する能力。 - メッセージ認証コードの偽造: 多くの場合、基盤となるアルゴリズムの弱点を悪用して、秘密鍵を知らなくてもメッセージの有効な MAC を作成すること。
Example Scenario: 攻撃者は、SHA1 の弱点を悪用して、同じ MAC を生成する 2 つの異なるメッセージを作成する可能性があります。これにより、攻撃者は認証されたメッセージを偽造することができ、不正な操作やデータの改ざんにつながる可能性があります。
これらの脆弱な MAC アルゴリズムのサポートは、様々なセキュリティ標準やベストプラクティスに違反しており、PCI DSS などの規制への準拠に影響を与える可能性があります。
推奨事項
脆弱な MAC アルゴリズムに関連するリスクを軽減するために、以下の推奨事項を検討してください。
- 脆弱な MAC アルゴリズムの無効化:
- MD5 や SHA1 などの脆弱な MAC アルゴリズムのサポートを無効にします。
-
SHA256、SHA384、または SHA512 のような強力な MAC アルゴリズムのみを有効にします。
-
強力な暗号スイートの構成:
- 強力な MAC アルゴリズムを組み込んだ暗号スイートを使用します。
-
脆弱な MAC アルゴリズムを使用する暗号スイートを無効にします。
-
安全な TLS 構成の実装:
- Mozilla の SSL Configuration Generator や OWASP の TLS Cheat Sheet によって提供されるような、TLS 構成の業界ベストプラクティスに従います。
-
SSL Labs の SSL Server Test などのツールを使用して、TLS 構成を定期的にテストします。
-
HTTP Strict Transport Security (HSTS) の使用:
-
HSTS を実装して、クライアントが常に HTTPS を使用してサーバーに接続するようにし、ダウングレード攻撃を防ぎます。
-
TLS 1.3 の検討:
- 可能であれば、デフォルトでより安全な MAC アルゴリズムを使用する TLS 1.3 のサポートを有効にします。
一般的な Web サーバーの構成例:
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
リンク
標準
- 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