설명
System.Random은 예측 가능하므로 토큰, 코드, 세션 식별자, 키, nonce 같은 보안 민감 값에 사용하면 안 됩니다.
잠재적 영향
- 토큰 예측, 인증 우회, 세션 추측이 가능할 수 있습니다.
해결 방법
보안 민감 값에는 RandomNumberGenerator 같은 암호학적으로 안전한 난수 생성기를 사용합니다.
예시
변경 전
csharp
var token = new Random().Next();
변경 후
csharp
var token = RandomNumberGenerator.GetBytes(32);
설명:
- 변경 전: System.Random은 예측 가능하므로 토큰, 세션 식별자, 인증 코드, 키, nonce, 비밀번호 또는 기타 보안에 민감한 값에 사용해서는 안 됩니다.
- 변경 후: 보안에 민감한 값에는 RandomNumberGenerator 또는 다른 암호학적으로 안전한 난수 소스를 사용하세요.