弱い暗号の使用

C#での弱い暗号の使用

説明

衝突耐性が必要な用途で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に置き換えています。この例は暗号化やパスワード保存の実装ではありません。

参考資料