Summary#
비밀번호 해시를 Argon2id로 이전할 때 핵심은 기존 해시를 검증할 수 있는 기간을 통제하면서, 성공적으로 확인한 비밀번호만 새 정책으로 재해시하는 것이다. 로그인 시 점진적 재해시는 활성 계정을 자연스럽게 이전하지만, 로그인하지 않는 계정의 레거시 해시는 그대로 남는다. 따라서 구현은 재해시 경로뿐 아니라 파라미터 기록, 동시 갱신 방지, 휴면 계정 처리, 레거시 검증 종료 기준까지 포함해야 한다. (cheatsheetseries.owasp.org)
Key Points#
- 검증 후 재해시: 저장된 해시의 형식에 맞는 검증기로 입력 비밀번호를 확인한다. 검증에 성공했고 해시 알고리즘이나 비용 파라미터가 현재 정책보다 오래된 경우에만, 이번에 입력받은 원문 비밀번호로 Argon2id 해시를 생성한다. 실패한 로그인에서 해시를 바꾸거나, 기존 해시 문자열을 원문 비밀번호처럼 취급하지 않는다. OWASP는 다음 인증 시 재해시하는 방식을 일반적인 업그레이드 경로로 설명한다. (cheatsheetseries.owasp.org)
- 해시별로 검증 정보를 보존: 계정마다 알고리즘과 비용 파라미터를 식별할 수 있어야 한다. Argon2id의 메모리(
m), 패스 수(t), 병렬도(p) 및 버전을 기록하고, 레거시 해시에도 해당 검증에 필요한 형식·비용 정보를 유지한다. 배포 시 전역 설정만 바꾸고 기존 해시를 새 설정으로 검증하려 하면 로그인이 실패할 수 있다. NIST는 이전을 위해 해시 방식과 비용 계수의 참조를 비밀번호별로 저장하도록 권고한다. (pages.nist.gov) - 동시 갱신을 안전하게 처리: 검증과 새 해시 계산 사이에 비밀번호 재설정이나 다른 로그인이 일어날 수 있다. 재해시 저장은 “읽었던 해시가 여전히 현재 해시일 때만 교체”하는 조건부 갱신으로 설계하고, 조건이 맞지 않으면 나중에 생성한 해시로 최신 자격 증명을 덮어쓰지 않는다. 이는 자료의 직접 규정이라기보다, 검증 후 별도 쓰기를 수행하는 흐름에서 도출되는 구현상 안전장치다. (cheatsheetseries.owasp.org)
- 비용은 운영 환경에서 검증: Argon2id 파라미터를 정책 버전으로 관리하되, 새 목표값은 실제 로그인 부하에서 지연과 메모리 사용량을 측정해 정한다. 비용을 높이면 정상 인증뿐 아니라 대량 로그인 시도에 따른 자원 소모도 커진다. OWASP는 Argon2id 최소 구성으로 메모리 19 MiB, 반복 2회, 병렬도 1을 제시하면서도 대상 시스템에서의 벤치마크를 강조한다. (cheatsheetseries.owasp.org)
- 레거시 폐기 조건을 별도로 정하기: 새 계정 생성·비밀번호 변경·재설정에는 새 정책을 적용하고, 남은 레거시 해시의 수를 추적한다. 로그인하지 않아 재해시되지 않는 계정에는 일정 시점 이후 기존 해시를 만료·삭제하고 재설정을 요구하는 방안을 검토한다. 모든 계정이 이전되거나 재설정 대상이 되기 전에는 레거시 검증 코드를 제거할 수 없다. (cheatsheetseries.owasp.org)
Cautions#
- 점진적 재해시는 완료 시한을 보장하지 않는다. 휴면 계정은 로그인하지 않는 한 기존 해시로 남는다. 만료·재설정 기준과 사용자 지원 영향을 사전에 결정해야 한다. (cheatsheetseries.owasp.org)
- 해시 중첩은 직접 이전과 다르다. 기존 해시를 Argon2id의 입력으로 감싸는 방식은 원문 비밀번호 없이 일괄 전환할 수 있지만, OWASP는 크래킹 위험에 관한 주의를 제시하며 다음 로그인 때 원문 비밀번호의 직접 해시로 교체하도록 설명한다. 이를 기본적인 이전 완료 상태로 간주하지 않는다. (cheatsheetseries.owasp.org)
- 환경별 결정 사항은 확인되지 않았다. 현재 레거시 알고리즘, bcrypt 입력 길이 처리, 비밀번호 정규화·인코딩, 배포 중 구버전 서버의 Argon2id 검증 가능 여부, 목표 파라미터와 휴면 계정 기한은 제시되지 않았다. 이 값들을 확인하지 않고 일률적인 컷오버 날짜나 파라미터를 확정해서는 안 된다. (cheatsheetseries.owasp.org)
Sources#
- https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html
- https://pages.nist.gov/800-63-4/sp800-63b.html
- https://www.rfc-editor.org/info/rfc9106/
Sagwan Revalidation 2026-10-15T00:53:42Z#
- verdict:
ok - note: 점진적 재해시와 레거시 폐기 권고가 여전히 유효하며, 수치도 최소 구성으로 명시돼 있다.
Sagwan Revalidation 2026-10-17T20:33:35Z#
- verdict:
ok - note: 점진적 재해시와 레거시 폐기 지침은 여전히 유효하며, 수치는 최소 구성으로 명시돼 있다.