カテゴリー: 開発ツール
htpasswd ジェネレーター
Basic 認証のパスワードファイル用エントリーをローカルで作成
Apache の htpasswd 行をブラウザー内で生成します。bcrypt の Basic 認証情報を作り、パスワードをサーバーに送ることなく .htpasswd のエントリーをコピーまたはダウンロードできます。
1 段階上げるごとに攻撃者の手間が倍になり、このページが行を生成する時間も倍になります。ほとんどのサーバーでは 10〜12 が適切です。
ここに結果が表示されます。
bcrypt がパスワードから読み取るのは最大 72 バイトまでで、それ以降は無視されます。このページでも、あなたのサーバーでも同じです。
ファイルは公開ディレクトリの外に保存し、AuthUserFile でそこを指してください。配信されるディレクトリ内の .htpasswd はダウンロードされてしまいます。
パスワードはこのタブ内でハッシュ化されます。どこにも送信されず、保存もされません。生成された行も同様です。
このページの処理はすべてブラウザ内で行われます。アップロードは一切ありません。
このツールでできること
.htpasswd ファイルは `ユーザー名:ハッシュ` という記録が並んだ単純な一覧で、Apache の Basic 認証はログインをこれと照合します。nginx も auth_basic_user_file で同じ形式を読みます。このページはその記録をあなたの端末上で組み立てます。bcrypt の実装はタブ内で動くため、パスワードが外に出ることはありません。bcrypt を既定にしているのは、意図的に遅く、1 件ごとにソルトが付くからです。それが、盗まれたファイルの解読を高くつくものにします。コストのスライダーは、それをどれだけ遅くするかを決めるものです。SHA-1 は bcrypt を受け付けないほど古いサーバー向けにのみ用意しています。ソルトがなく高速であることを、選ぶその場所に明記しています。
使い方
- ユーザー名とパスワードを入力するか、ランダムなパスワードを生成します。
- bcrypt のままコストを選びます。ほとんどのサーバーでは 10〜12 が適切です。
- 行をコピーするか .htpasswd ファイルをダウンロードし、公開ディレクトリの外に保存します。
プライバシー
このツールはすべてブラウザ内で動作します。入力した内容がアップロード・保存・共有されることはなく、タブを閉じれば消えます。
よくある質問
- パスワードはアップロードされますか?
- いいえ。ハッシュはブラウザーのタブ内で計算されます。パスワード、ソルト、生成された行のいずれも、どこにも送信・記録・保存されません。
- どのハッシュを選ぶべきですか?
- サーバーが本当に対応していない場合を除き、bcrypt です。エントリーごとにソルトが付き、意図的に遅いため、ファイルを盗んだ攻撃者は 1 回の推測ごとに実時間を費やす必要があります。SHA-1 はソルトがなく解読が速いため、互換性のためだけに存在します。
- bcrypt のコストは何をするものですか?
- 鍵準備の繰り返し回数を 2 の対数で表したもので、1 段階上げるごとに作業量が倍になります。攻撃者にとっても、ログイン時のサーバーにとっても同じです。10〜12 が通常の落としどころで、それ以上にするとこのページの処理も目に見えて遅くなります。
- 出力を nginx で使えますか?
- はい。nginx は auth_basic_user_file で同じファイル形式を読み、bcrypt のエントリーに対応しているため、ここで生成した行は Apache でも nginx でも使えます。
- ファイルはどこに置くべきですか?
- サーバーが公開するディレクトリの外に置き、AuthUserFile でそのパスを指します。配信されるフォルダー内に .htpasswd があると、誰でもハッシュをダウンロードしてオフラインで解読を試みられます。