Learning
토픽 25 / 210·암호학

비밀번호 해싱

비밀번호 해싱

사용자 비밀번호를 평문이 아닌 해시 형태로 저장하기 위해 솔트를 추가하고 의도적으로 느린 해시 함수를 사용하여 무차별 대입 공격과 레인보우 테이블 공격을 방어하는 보안 기법

특징: 의도적으로 느림, 솔트 필수, 레인보우 테이블 방어

구성요소: 비밀번호, 솔트(랜덤 데이터), 느린 해시 함수, 비용 파라미터

기술요소: Argon2id(최우선 권장), bcrypt(권장), PBKDF2(권장), scrypt(권장)

솔트: 랜덤 데이터(16바이트+), 비밀 아님, 해시와 함께 저장, 동일 비밀번호도 다른 해시

Argon2: PHC 2015 우승, Argon2d/i/id 변종, 메모리/반복/병렬성 파라미터

bcrypt: cost factor 10~12+, CPU 집약적

권장설정: Argon2id(메모리 19MB+/반복 2회+), bcrypt(cost 10~12), PBKDF2(600,000회)

절대금지: 평문 저장, MD5/SHA-1 단독, 솔트 없음, 고정/짧은 솔트

적용사례: 웹 서비스 비밀번호 저장, 앱 인증, DB 계정 관리

비교: Argon2(최신/메모리) vs bcrypt(CPU) vs PBKDF2(HMAC), 일반해시(빠름/취약) vs 비밀번호해시(느림/안전)

연관: 해시 함수, 인증, 레인보우 테이블 공격