パスワード解析・認証情報悪用攻撃

更新日:

用語解説

候補を推測してログインを試すオンライン攻撃、漏えいしたパスワードハッシュを解析するオフライン攻撃、及び別サービスから漏えいした認証情報を再利用する攻撃の総称です。候補の作り方、試行対象、検証場所及び攻撃者が既知の情報を区別して対策します。

■ 試験で押さえるポイント

  • ブルートフォースは一つのアカウント又は取得済みハッシュに対して候補空間を網羅的に試し、辞書攻撃は一般語、頻出パスワード、氏名、規則的な変形等へ候補を絞ります。長さとランダム性が増すほど総当たり空間は急増します。

  • パスワードスプレー/リバースブルートフォースは少数の頻出パスワードを多数の利用者IDへ試し、アカウント単位の連続失敗ロックを避けます。利用者単位だけでなく送信元、組織全体、端末、時間帯等を横断して異常を検知します。

  • パスワードリスト攻撃(credential stuffing)は、他サービスから漏えいした有効なID・パスワードの組を別サービスへ試します。候補を解析する攻撃ではなく、使い回しを突くため、サービスごとに一意なパスワードと多要素認証が重要です。

  • オフライン攻撃では盗んだsalt、ハッシュ値等へ候補を計算して照合でき、オンラインのレート制限が効きません。復号して元に戻すのではなく、候補を同じ関数へ通した結果が一致するかを試します。

  • レインボーテーブルはハッシュ連鎖を事前計算して時間と記憶量を交換する手法です。利用者ごとに十分長いランダムsaltを付ければ同じパスワードでも値が異なり、共通の事前計算表を使いにくくできますが、個別の辞書・総当たり計算までは止めません。

  • 保存時は平文や高速な汎用ハッシュを避け、salt付きの専用password hashing/KDFを適切なコストで使います。pepperを用いる場合はデータベースと分離して保護し、漏えい時には認証情報失効と再設定を行います。

  • オンライン対策は試行回数制限、段階的遅延、侵害済み・頻出パスワードのblocklist、リスクベース検知及び通知を組み合わせます。固定回数で長時間ロックするだけでは、攻撃者によるアカウント停止DoSを招きます。

  • 長く一意なパスワードをパスワードマネージャで生成し、可能ならフィッシング耐性のある多要素認証・パスキーを使います。文字種を機械的に増やすだけ、定期変更だけ又は秘密の質問だけに依存しません。

■ 過去問での着眼点

オンライン推測は認証サーバへ試行し、オフライン解析は漏えいハッシュへ候補を照合し、credential stuffingは漏えい済みの組を別サービスへ再利用します。ブルートフォース、辞書、パスワードスプレー、リスト攻撃及びレインボーテーブルを、固定する値と変化させる値から区別します。saltは事前計算表を無効化するが個別の総当たりを不可能にはしないため、低速KDFと多要素認証も必要です。

例: 攻撃者がPassword1を1万人のIDへ一度ずつ試すのはパスワードスプレー、漏えいした1万人分のID・パスワード組を別サイトへ試すのはcredential stuffingです。利用者単位の5回ロックだけでは前者を十分検知できません。

音声で聞く

同じ分野の用語