🍋
Menu
Security

Password Hashing

비밀번호 해싱 (안전한 자격 증명 저장)

평문 비밀번호를 고정 길이의 비가역적 해시 값으로 변환하여 저장하는 과정으로, 데이터베이스가 유출되더라도 원래 비밀번호를 쉽게 복구할 수 없도록 보장합니다.

기술 세부사항

비밀번호 해싱 알고리즘은 무차별 대입 공격에 저항하기 위해 의도적으로 느려야 합니다: bcrypt(1999, 조정 가능한 작업 인자, 184비트 출력), scrypt(2009, 메모리 집약적, GPU 공격 저항), Argon2(2015, Password Hashing Competition 우승, 시간/메모리/병렬성 구성 가능). 각 비밀번호는 레인보우 테이블 공격을 방지하기 위해 고유한 랜덤 솔트와 결합된 후 해싱됩니다. 페퍼(서버 측 비밀)는 추가 보호를 제공합니다. 원시 암호화 해시(SHA-256)는 빠르게 설계되어 GPU에서 초당 수십억 건의 추측이 가능하므로 적합하지 않습니다. OWASP는 Argon2id를 우선 선택으로 권장합니다.

예시

```
Password hashing comparison:

  bcrypt:  $2b$12$salt22chars..hash31chars..
           Cost factor 12 → ~250ms per hash

  argon2id: $argon2id$v=19$m=65536,t=3,p=4$salt$hash
            Memory: 64MB, Iterations: 3, Parallelism: 4

  Never use: MD5, SHA-256 alone (too fast → brute-forceable)
```

관련 도구

관련 용어