説明
MD5とSHA-1は、衝突耐性を必要とするセキュリティ用途のハッシュには不適切です。DESとRC4を、新たなデータの暗号化に使用しないでください。
想定される影響
- パスワード解析、署名検証の回避、暗号文の解読が容易になるおそれがあります。
対処方法
一般的なセキュリティ用途のハッシュにはSHA-256以上を、暗号化には検証されたAEAD方式を使用してください。パスワードの保存には、ソルトと適切な計算コストを設定したArgon2id、bcrypt、PBKDF2などの専用方式を使用してください。
例
変更前
c
unsigned char out[MD5_DIGEST_LENGTH];
MD5(data, len, out);
変更後
c
unsigned char out[SHA256_DIGEST_LENGTH];
SHA256(data, len, out);
解説:
- 変更前: MD5をセキュリティ用途のハッシュに使っています。
- 変更後: MD5をSHA-256に置き換えています。SHA-256を1回呼ぶだけでは、パスワード保存用のハッシュ処理やデータ暗号化の代わりにはなりません。