プロキシが古いパスワードを受け付けるのは、その末尾が変わったときです。あるいはパスワードファイルの移行が、長いパスワードを使うアカウントを突然壊します。全員のパスワードを短くする前に、ハッシュ形式を調べてください。

Apache の htpasswd -d は旧来の crypt() ハッシュを選びます。文書化されている DES の制限は、パスワードの有効文字が八文字であることです。この制限は形式に属するもので、Squid におけるパスワードの普遍的な八文字ルールではありません。

NCSA ヘルパーは保存されたパスワード表現を読み、そのヘルパーとプラットフォームが対応する形式で与えられた値を検証します。ファイルを「htpasswd 形式」と呼んでも、過去と現在のすべてのヘルパーが、あらゆる htpasswd オプションが生成するあらゆるハッシュアルゴリズムを受け入れる保証にはなりません。

表現を意図的に移行する

保護されたバックアップを保管し、既存のエントリが使っている形式を特定します。代替アルゴリズムを選ぶ前に、インストール済みヘルパーのマニュアルとディストリビューションのビルドを確認してください。

次に、実際のアカウントが使うのと同じヘルパーと同じプロキシ経路で、承認済みの小さなテストアカウントを検証します。生成側がファイルを書き込めたからといって、読み込む側のヘルパーがそれを検証できるとは限りません。有効文字が古い境界を超えるテストパスワードを使ってください。

形式の変更には通常、実際のパスワードかパスワードの再設定が必要です。その情報が一度も保持されていなければ、旧来のハッシュを元のパスワード全体のより強いハッシュに変換することはできません。

最後に、移行の失敗とキャッシュされた認証を区別してください。すでに認証済みのクライアントは、新しい検証が失敗する場合でもしばらく動作を続けることがあります。 展開は、新しい認証と既存のセッションの両方を考慮して計画してください。

バグ報告にパスワードファイルを公開しないでください。アルゴリズムのマーカーと合成アカウントのほうが、実ユーザーのハッシュより有用な証拠になるのが普通です。

関連記事