SD-16
🧪 암호연산 (설계)
설계단계 보안설계 · 보안기능
위험도: 상💡 쉽게 말하면
약한 암호 알고리즘을 쓰면, 이미 풀이법이 공개된 자물쇠를 채우는 것과 같습니다. AES-GCM, SHA-256 이상의 검증된 알고리즘을 쓰고 MD5/DES/ECB 같은 취약 방식은 배제하며 난수는 안전한 생성기(CSPRNG)로 설계해야 합니다.
약한 암호 알고리즘을 쓰면, 이미 풀이법이 공개된 자물쇠를 채우는 것과 같습니다. AES-GCM, SHA-256 이상의 검증된 알고리즘을 쓰고 MD5/DES/ECB 같은 취약 방식은 배제하며 난수는 안전한 생성기(CSPRNG)로 설계해야 합니다.
🎯 직접 해보기 — 공격을 실행해 보세요
아래에서 시스템 상태를 취약 또는 안전(조치 적용)으로 바꾼 뒤 공격 실행을 눌러, 같은 공격이 어떻게 다르게 끝나는지 직접 확인하세요.
# 취약한 알고리즘으로 암호화된 데이터를 깨려 한다
# [공격 실행] 버튼을 누르면 시작합니다.
📋 설정 비교 (왜 막혔나?)
✗ 취약한 설정
# 설계 결정
MD5/SHA1/DES, ECB 모드 사용
예측가능 난수(rand)
→ 복호화·위조 가능
✓ 안전한 설정
# 설계 결정
AES-GCM/SHA-256↑, 안전 모드
CSPRNG 난수 사용
→ 암호 강도 확보
🔧 조치 방법
- 검증된 표준 알고리즘(AES, SHA-256 이상)과 안전 운용모드를 표준으로 지정합니다.
- 취약 알고리즘/모드(MD5, SHA1, DES, ECB)를 배제하도록 설계합니다.
- 키·IV·토큰은 암호학적 난수(CSPRNG)로 생성하도록 설계합니다.
✅ 점검 체크리스트
- 표준 알고리즘이 지정됨
- 취약 알고리즘이 배제됨
- CSPRNG 사용이 설계됨
점검기준: 개발보안 설계기준 2.6 암호연산