知識ベース — 前提知識と概念整理
Knowledge Base · 各ラボから参照される基礎
KB1
認証の基礎
識別と認証と認可の違い、3要素認証、パスワードの保管、セッション管理、ログインエラーメッセージの設計。
KB2
認証攻撃と防御
ユーザ列挙の手法、レスポンス時間からの漏洩、ブルートフォース、クレデンシャル・スタッフィング、レート制限、MFA。
Phase 1 — 基礎
Apprentice / Practitioner · 認証脆弱性の主要パターン
01
Username Enumeration — ログインエラーメッセージから会員特定
うつろい EC のログイン画面が「ユーザ不在」と「パスワード違い」で別メッセージを返す。8件の候補リストから会員4名を特定する。
02
タイミング攻撃 — エラーは統一されたが応答時間で漏洩
エラーメッセージは統一されたが、bcrypt 検証の有無による応答時間の差からユーザの存在/不在を判別できる。
03
ブルートフォース — レート制限なしのログイン
列挙したアカウントに対して、よくあるパスワード候補を総当たり。レート制限がないため、簡単な辞書で数秒で破れる。
04
2要素認証コードの総当たり
6桁の TOTP コードを検証するエンドポイントにレート制限がなく、100万通り総当たりで突破できる。
05
パスワードリセット token の予測
リセット token が
base64(timestamp + user_id) という予測可能な値で生成されており、攻撃者が他人の token を再現できる。