Choose a default theme

You can change your theme from the menu

Argon2

Earlier revision · 1View current content

Argon2는 비밀번호 해싱 등에 사용하는 메모리 집약적 함수이다. 비밀번호 추측에 필요한 계산 비용을 높이기 위해 메모리와 반복 횟수, 병렬 처리 정도를 매개변수로 다룬다. RFC 9106은 Argon2id와 관련 변형을 설명한다.

분야

메모리 비용을 조절하는 비밀번호 해시 함수

비밀번호를 검증하는 방식

가입 시 비밀번호와 솔트, 비용 매개변수로 검증값을 계산한다. 로그인에서는 입력한 비밀번호에 같은 설정을 적용해 저장된 값과 비교한다. 원래 비밀번호를 복호화해서 꺼내는 방식과 다르다. 솔트는 비밀번호별로 구분되도록 사용하며 일반적으로 검증에 필요한 정보와 함께 보관한다.

메모리와 시간 비용

비용을 높이면 공격자의 반복 추측에도 더 많은 자원이 필요하지만 정상 로그인 요청에도 비용이 든다. 따라서 서버 메모리와 동시에 처리할 로그인 수, 허용 지연을 함께 검토한다. 요청 하나의 계산 시간만 보고 비용을 정하면 동시 요청에서 자원이 부족해질 수 있다.

변형과 매개변수

Argon2d·Argon2i·Argon2id는 메모리 접근 방식과 설계상 균형이 다르다. RFC 9106은 Argon2id를 중심 선택지로 제시한다. 라이브러리의 기본값이 모든 서비스에 맞는다고 가정하지 말고 구현 버전과 설정을 기록한다.

운영 예시

비밀번호 검증값과 알고리즘·버전·비용 정보를 함께 관리하면 향후 정책 변경 시 기존 값의 상태를 판단할 수 있다. 로그인 성공 때 새 비용으로 재계산하는 전략을 사용할 수 있지만, 갱신 절차와 실패 처리를 설계해야 한다. Argon2 사용과 별개로 로그인 시도 제한과 계정 보호도 필요하다.

참고 자료

관련 기술 비교

암호 알고리즘

암호화

AES · RSA

해시·인증

SHA-256 · HMAC

비밀번호 해싱

Argon2