説明
System.Random は予測可能なため、トークン、コード、セッション識別子、鍵、nonceなど、セキュリティ上重要な値には使用しないでください。
想定される影響
- トークンの予測、認証の回避、セッション識別子の推測。
対処方法
セキュリティ上重要な値には、RandomNumberGenerator などの暗号学的に安全な乱数生成器を使用してください。
例
変更前
csharp
var token = new Random().Next();
変更後
csharp
var token = RandomNumberGenerator.GetBytes(32);
解説:
- 変更前:
System.Randomは予測可能であり、トークン、セッション識別子、認証コード、鍵、nonce、パスワードなど、セキュリティ上重要な値には適していません。 - 変更後:
RandomNumberGeneratorなど、暗号学的に安全な乱数源を使用してください。