はじめに
――「全員を疑う」のではなく、「怪しい時だけ強く守る」認証設計
毎回パスワード+MFA。
安全だけど、正直しんどい。
そこで登場するのが リスクベース認証 です。
これは新しい認証方式ではありません。
認証を“判断”に進化させる設計思想です。
「このログイン、どれくらい怪しい?」
→ その答えで、要求する認証強度を変える
この記事では、リスクベース認証を
考え方・仕組み・評価要素・実務での使いどころ
という観点で解説します。
リスクベース認証とは
リスクベース認証(RBA) とは、
ログインや操作の「リスク」を動的に評価し、
その結果に応じて認証の厳しさを変える仕組み
です。
重要ポイント
- 認証を減らす技術ではない
- 認証を出し分ける技術
なぜ必要なのか
従来の認証の問題
- 全ユーザに同じ厳しさ
- 安全だがUXが悪い
- 攻撃者も正規ユーザも同じ扱い
「平時」と「異常時」を区別できない
リスクベース認証の基本フロー
- ユーザ操作を検知
- リスク要素を収集
- リスクスコアを算出
- スコアに応じて対応を分岐
分岐例
- 低リスク → そのまま通す
- 中リスク → 追加認証
- 高リスク → 拒否 or アラート
リスク評価に使われる主な要素
1. デバイス要素
- 端末指紋(OS / ブラウザ / 解像度)
- 過去に使った端末か
- 端末変更の有無
いつものスマホ?それとも突然の別人?
2. ロケーション要素
- IPアドレス
- 国・地域
- VPN / Tor 利用有無
5分前は東京、今は海外。速すぎる。
3. 振る舞い要素
- 入力速度
- マウス操作
- タイピングリズム
操作の癖は、意外と嘘をつかない。
4. 時間・状況要素
- 普段使わない時間帯
- 深夜の重要操作
- 短時間での連続試行
5. アカウント状態
- 過去の失敗履歴
- パスワード変更直後
- セキュリティイベント発生後
リスクスコアの考え方
多くの実装では:
総合リスク = 要素A × 重み + 要素B × 重み + ...
そして:
- スコア < X → 通過
- X ≤ スコア < Y → ステップアップ認証
- スコア ≥ Y → ブロック
⚠️重要
スコアは絶対値ではなく相対評価
ステップアップ認証(Step-up Authentication)
リスクが上がった時だけ、
認証を“追加”するのが王道です。
例
- 追加OTP
- 生体認証再要求
- FIDO / パスキー
- 再ログイン
普段は楽、怪しい時だけ厳しい。
リスクベース認証の強み
- UXを大きく損なわない
- 攻撃を早期に検知
- ゼロトラストと相性が良い
限界と注意点
❌ 魔法ではない
- 正常ユーザも誤検知される
- 攻撃者は学習してくる
❌ ブラックボックス化しやすい
- なぜ弾かれたか分からない
- 説明性が重要
❌ 単体防御にはならない
- あくまで「判断層」
- 認証方式そのものの代替ではない
実務での正しい使い方
おすすめ構成
ベース認証:
パスキー / MFA
判断レイヤ:
リスクベース認証
対応:
ステップアップ or ブロック
👉 RBA は「司令塔」
よくある失敗例
- 全イベントでスコア計算(重すぎ)
- 追加認証が多すぎてUX崩壊
- 誤検知時の救済フローなし
まとめ
リスクベース認証は、
- 認証方式ではない
- セキュリティポリシーの実装
覚えておくべき結論はこれ
リスクベース認証とは
「全員を疑う」のではなく
「疑うべき瞬間を見逃さない」こと