분류: 개발 도구
htpasswd 생성기
Basic 인증 비밀번호 파일 항목을 로컬에서 생성
Apache htpasswd 줄을 브라우저에서 생성합니다. bcrypt로 Basic 인증 자격 증명을 만들고, 비밀번호를 서버로 보내지 않고 .htpasswd 항목을 복사하거나 내려받으세요.
한 단계 올릴 때마다 공격자가 들여야 할 작업량이 두 배가 되고, 이 페이지가 줄을 만드는 시간도 두 배가 됩니다. 대부분의 서버에는 10~12가 적당합니다.
여기에 결과가 표시됩니다.
bcrypt는 비밀번호를 최대 72바이트까지만 읽고 그 뒤는 무시합니다. 이 페이지에서도, 여러분의 서버에서도 마찬가지입니다.
파일은 웹 루트 바깥에 저장하고 AuthUserFile이 그곳을 가리키게 하세요. 서비스되는 디렉터리 안의 .htpasswd는 다운로드될 수 있습니다.
비밀번호는 이 탭에서 해시됩니다. 어디로도 전송되지 않고 저장되지 않으며, 만들어진 줄도 마찬가지입니다.
이 페이지의 모든 처리는 브라우저에서 이루어집니다. 업로드는 없습니다.
이 도구로 할 수 있는 일
.htpasswd 파일은 `사용자:해시` 형태의 기록이 줄줄이 늘어선 단순한 목록으로, Apache의 Basic 인증이 로그인을 이것과 대조합니다. nginx도 auth_basic_user_file에서 같은 형식을 읽습니다. 이 페이지는 그 기록을 여러분의 기기에서 만듭니다. bcrypt 구현이 탭 안에서 돌기 때문에 비밀번호가 밖으로 나가지 않습니다. bcrypt를 기본값으로 삼은 이유는 의도적으로 느리고 항목마다 솔트가 붙기 때문입니다. 그것이 탈취된 파일을 깨는 비용을 비싸게 만듭니다. 비용 슬라이더는 그것을 얼마나 더 느리게 만들지 정하는 값입니다. SHA-1은 bcrypt를 받아들이기에는 너무 오래된 서버를 위해서만 제공하며, 솔트가 없고 빠르다는 사실을 선택하는 그 자리에 적어 두었습니다.
사용 방법
- 사용자 이름과 비밀번호를 입력하거나 임의 비밀번호를 생성하세요.
- bcrypt를 그대로 두고 비용을 고르세요. 대부분의 서버에는 10~12가 적당합니다.
- 줄을 복사하거나 .htpasswd 파일을 내려받아 웹 루트 바깥에 보관하세요.
개인정보
이 도구는 전부 브라우저 안에서 동작합니다. 입력한 내용은 업로드되거나 저장되거나 공유되지 않으며, 탭을 닫으면 사라집니다.
자주 묻는 질문
- 제 비밀번호가 업로드되나요?
- 아니요. 해시는 브라우저 탭 안에서 계산됩니다. 비밀번호, 솔트, 완성된 줄 어느 것도 전송되거나 기록되거나 저장되지 않습니다.
- 어떤 해시를 골라야 하나요?
- 서버가 정말로 지원하지 못하는 경우가 아니라면 bcrypt입니다. 항목마다 솔트가 붙고 일부러 느리기 때문에, 파일을 훔친 공격자는 추측 한 번마다 실제 시간을 써야 합니다. SHA-1 옵션은 솔트가 없고 빠르게 깨지며 호환성을 위해서만 존재합니다.
- bcrypt 비용은 무엇을 하나요?
- 키 준비 라운드 수의 밑이 2인 로그값이라, 한 단계 올릴 때마다 작업량이 두 배가 됩니다. 공격자에게도, 로그인 시점의 서버에게도 마찬가지입니다. 보통 10~12가 균형점이고, 더 높이면 이 페이지의 처리도 눈에 띄게 느려집니다.
- 결과를 nginx에서 쓸 수 있나요?
- 네. nginx는 auth_basic_user_file에서 같은 파일 형식을 읽고 bcrypt 항목을 지원하므로, 여기서 만든 줄은 Apache와 nginx 모두에서 동작합니다.
- 파일은 어디에 두어야 하나요?
- 서버가 공개하는 디렉터리 바깥에 두고 AuthUserFile이 그 경로를 가리키게 하세요. .htpasswd가 서비스되는 폴더 안에 있으면 누구나 해시를 내려받아 오프라인에서 깰 수 있습니다.