취약한 암호 사용

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으로 교체합니다. 이 예시는 암호화나 비밀번호 저장 구현이 아닙니다.

참조