Argon2 비밀번호 해싱 (Argon2 Password Hashing)
쉽게 풀면
많은 계산기를 동시에 돌려도 저장 공간이 부족하면 소용없게 만드는 방식이라고 생각하면 됩니다. 공격자는 비밀번호를 하나씩 맞춰보기 위해 수많은 계산 장치를 병렬로 돌리는데, Argon2는 각 시도마다 많은 메모리를 필요로 하게 만들어 이런 병렬화를 어렵고 비싸게 만듭니다. 그래서 GPU나 전용 칩을 동원한 공격에도 상대적으로 강한 저항력을 갖습니다. 2015년 비밀번호 해싱 경진대회에서 우승하며 표준적인 대안으로 자리잡았습니다.
왜 중요한가
정보보안학에서 비밀번호 저장 방식의 취약점은 대규모 데이터 유출 사건의 핵심 원인으로 지적되어 왔습니다. Argon2는 메모리 하드(memory-hard) 특성을 통해 기존 함수들의 한계를 보완했기 때문에, 인증 시스템 설계, 자격증명 저장 정책 연구 등에서 최신 권장 방식으로 자주 다뤄집니다.
논문에서는 이렇게 쓰입니다
메모리 하드 특성을 가진 Argon2를 활용해 자격증명 저장의 안전성을 높인 사례입니다.
서로 다른 해싱 함수의 공격 저항성을 비교 분석한 연구에서 활용된 예입니다.
조금 더 깊게 보면
Argon2에는 데이터 의존적 접근을 사용하는 Argon2d, 데이터 독립적 접근을 사용하는 Argon2i, 두 방식을 혼합한 Argon2id 세 가지 변형이 있습니다. 메모리 사용량, 반복 횟수, 병렬도라는 세 가지 매개변수를 조절해 보안 강도와 연산 비용의 균형을 맞출 수 있습니다.
주의할 점
매개변수를 너무 낮게 설정하면 메모리 하드 특성의 이점이 사라지므로, 운영 환경의 하드웨어 자원을 고려해 적절히 설정해야 합니다. 또한 오래된 시스템에서는 라이브러리 지원이 제한적일 수 있습니다.