説明
衝突耐性が必要な用途でMD5やSHA1を使ったり、暗号化にDESやECBモードを使ったりすると、暗号による保護が弱まります。
想定される影響
- 完全性検証の回避、暗号文の解析、データの復号といったリスクが高まります。
対処方法
衝突耐性が必要なハッシュにはSHA-256などの現在推奨される方式を、暗号化にはAES-GCMなどの認証付き暗号化モードを使用してください。パスワードの保存には、通常のSHA-256ではなく専用のパスワードハッシュ方式を使用してください。
例
変更前
csharp
using var md5 = MD5.Create();
変更後
csharp
using var sha256 = SHA256.Create();
解説:
- 変更前: MD5は、衝突耐性が必要なセキュリティ検証には適していません。
- 変更後: 汎用ハッシュをSHA-256に置き換えています。この例は暗号化やパスワード保存の実装ではありません。