피드로 돌아가기
Dev.toSecurity
원문 읽기
Plain Text 저장 배제를 통한 현대적 인증 시스템의 암호학적 설계 분석
The Internet's Biggest Lie: Your Password Is Never Actually Verified
AI 요약
Context
단순 비밀번호 비교 방식은 Database Breach 발생 시 모든 사용자 계정이 즉시 노출되는 치명적 취약점 내포. 데이터베이스 내 평문 저장으로 인한 대규모 계정 탈취 및 Credential Stuffing 공격에 무방비한 구조적 한계 존재.
Technical Solution
- TLS Handshake를 통한 Client-Server 간 암호화 터널 생성으로 네트워크 구간 내 스니핑 방지
- Cryptographic Hash Function 기반의 One-way 연산을 통해 원본 비밀번호 복구 불가능한 형태의 Hash 값 저장
- 사용자별 고유 Random Value인 Salt 추가를 통해 동일 비밀번호에 대한 서로 다른 Hash 값을 생성함으로써 Rainbow Table 공격 무력화
- Public-key Cryptography 기반의 Passkey 도입으로 Private Key를 사용자 기기에 격리하여 서버 측 유출 가능성 원천 차단
- 원본 비밀번호의 메모리 체류 시간을 최소화하여 런타임 내 정보 노출 가능성 제거
실천 포인트
- 비밀번호 저장 시 반드시 Salt가 포함된 강한 Hash 알고리즘 적용 여부 확인 - 전송 계층 보안을 위한 HTTPS 및 최신 TLS 버전 강제 적용 검토 - Phishing 및 Credential Stuffing 방지를 위한 Passwordless(Passkey) 도입 가능성 분석 - 데이터베이스 설계 시 비밀번호 원문이 로그나 임시 테이블에 기록되지 않는지 검증