설명
비밀번호를 SHA-256 같은 빠른 해시로 저장하거나 비밀번호 해셔의 반복 횟수를 낮게 설정하면 공격자가 오프라인에서 빠르게 대입 공격을 수행할 수 있습니다.
잠재적 영향
- 데이터베이스 유출 시 비밀번호가 빠르게 복구되어 계정 탈취와 권한 상승으로 이어질 수 있습니다.
해결 방법
ASP.NET Core PasswordHasher, bcrypt, Argon2, scrypt, 또는 충분한 반복 횟수와 salt를 사용하는 PBKDF2를 사용합니다.
예시
변경 전
csharp
return SHA256.HashData(Encoding.UTF8.GetBytes(password));
변경 후
csharp
var hasher = new PasswordHasher<User>();
return hasher.HashPassword(user, password);
설명:
- 변경 전: 빠른 해시와 낮은 비밀번호 해셔 작업 계수는 공격자가 오프라인에서 효율적으로 크래킹할 수 있으므로 비밀번호 저장에 적합하지 않습니다.
- 변경 후: 강한 반복 횟수와 비밀번호별 솔트를 적용한 ASP.NET Core PasswordHasher, bcrypt, Argon2, scrypt 또는 PBKDF2를 사용하세요.