フィッシング耐性のある認証を成立させるものは何か
生体認証を使っているというだけでフィッシング耐性が得られるわけではありません。攻撃者が別のサイトで得た証明を正規アプリケーションへ中継・再利用できないよう、認証結果と正しいオリジンを暗号学的に結び付けることが重要です。
1. パスワードとワンタイムコードは中継されやすい
攻撃者が正規サイトになりすましたフィッシングサイトやプロキシを用意すると、利用者が入力したパスワードやTOTPコードをリアルタイムで転送できます。
2. 生体認証だけではフィッシング耐性にならない
指紋や顔認証はローカルで本人の承認を確認する手段です。しかし「何を承認したか」が正規アプリと結び付いていなければ、攻撃者の用意した要求を承認してしまう余地があります。
3. オリジンバインディングで正しいアプリに紐付ける
チャレンジを登録済みのオリジンに関連付けます。偽サイト上で取得した承認を別の正規オリジンへそのまま使えないことが重要です。
4. デバイス紐付け鍵が秘密情報を保護する
秘密鍵をSecure EnclaveやTEEなどの保護領域に保存し、秘密鍵をデバイス外へ出さずに署名します。生体認証テンプレートもデバイス内で処理します。
5. 短寿命の署名付きアサーションでリプレイの価値を下げる
アサーションには発行先、利用者、オリジン、有効期限などの必要なクレームを含め、受信側が署名とクレームを検証します。
6. アプリと認証サーバー間の認証も必要
リライングアプリは認証サービスに対して自身を認証する必要があります。API署名や認証情報を適切に管理してください。
7. ユーザーには分かりやすい文脈が必要
利用者がどのアプリのアクセス要求を承認しているか判断できるよう、表示するオリジンやアプリ名の信頼性を確保してください。
8. フィッシング耐性は他のアクセス制御に代わらない
認証が強くても、端末の信頼性、リソースの認可、セッション管理、監査、復旧の仕組みは別途必要です。
9. パスキーとWebAuthnとの関係
WebAuthn/パスキーはブラウザーネイティブのフィッシング耐性方式です。ZTXBASはサーバーを介してデバイスで承認し、署名付きJWTをアプリに返す方式で、用途によって補完的に利用できます。
10. 導入モデルも評価する
オンラインサービスへの依存、オンプレミス運用、切断環境での利用、鍵の管理、認証ログ、復旧手順を評価してください。
11. 実践的な評価チェックリスト
認証先オリジンが暗号学的に検証されるか、秘密鍵がデバイス外へ出ないか、アサーションに有効期限があるか、署名とaudienceなどのクレームを検証するか、失効・復旧できるかを確認してください。
ZTXBASがこれらを適用する方法
ZTXBASは登録済みオリジン、デバイス鍵、ローカル生体認証、ES256 JWT、公開JWKSを組み合わせます。独自アプリへ無料で導入でき、ZTXGateではライセンス付きライブラリ機能として統合できます。
関連ガイドと次のステップ
ZTNAの仕組み · VPNからZTNAへの移行 · ZTNA導入ガイド · セルフホスト型とクラウド型ZTNA · フィッシング耐性のある認証