クライアント認証は、端末側のセキュリティメカニズムを通じて正当なクライアントを識別し、同時にリクエストに含まれる識別情報を検証して、異常な送信元のクライアントを認識することで、悪意のあるクローラーや自動化ツールの攻撃を防御します。クライアント認証を有効にした後、EdgeOne はクライアントに対して追加の検証(例えば、画像認証コード、人間による検証など)の完了を要求し、有効な認証資格情報を取得します。クライアントはリクエストにこの資格情報を含めることで、リクエストが信頼できる実際のユーザーからのものであることを証明します。このメカニズムにより、正常なユーザーと悪意のある自動化プログラムを効果的に区別し、バックエンド業務インターフェースのセキュリティを保護できます。
適用シーン
クライアント認証は、アクセス元の真正性を検証する必要があるコアビジネスシナリオに適用されます。代表的なユースケースは以下の通りです:
コアビジネスAPI保護:ログイン、登録、注文、決済などの重要なインターフェースに対してクライアント認証を有効にし、エッジノードで自動化スクリプトや悪意のあるクローラーをブロックすることで、クレデンシャルスタッフィング、不正注文、悪意のある登録などの攻撃行為を防止します。正当なユーザーは意識することなく通過でき、高リスクなリクエストは高精度にブロックされます。
モバイルAppのプロトコル不正利用対策:端末側SDKを通じてデバイス環境情報(エミュレーター、Root/脱獄、HOOK注入、再パッケージ化などのリスク特徴)を収集し、プロトコル不正利用リクエストと自動化ツールを識別・ブロックすることで、Appのバックエンドインターフェースを悪意のあるスクリプトによる直接呼び出しから保護します。
ミニプログラム側のリスク制御:クライアント認証SDKコンポーネントを統合し、WeChatミニプログラムのリクエストに対してデバイスフィンガープリントの収集とリスクチャレンジを実行することで、ミニプログラムのデバッグ、エミュレーターでの実行、SDKプロトコルの改ざんなどのリスクを防止します。
Bot管理の詳細検証:EdgeOne Botのインテリジェント分析やレート制限などのセキュリティ機能と連携して使用します。疑わしいBotトラフィックに対してクライアント認証チャレンジをトリガーし、検証を通過した正当なクライアントのみを許可することで、トラフィック識別から端末側検証までの多層防御チェーンを実現します。
クライアント認証を使用する理由
トラフィックから特徴を抽出するクローラー識別方式とは異なり、クライアント認証には以下の特徴があります:
1. クライアント側でリスク制御識別を実行します:クライアント側ではより豊富な環境情報を抽出でき、クライアントの特徴をより正確に識別・判断できます。また、Botをより効果的に識別できます。
2. エッジでの近傍リスク制御処理:EdgeOneはクライアント認証機能をエッジに統合し、リクエストを近傍で処理できるため、クローラートラフィックの処理に伴うバックエンドサービスの負荷消費を最大限に削減します。
3. 複数の認証オプション:複数のリスク制御オプションをサポートし、一度統合した後は、複数のリスク制御オプションから柔軟に選択し、オンラインでリスク制御ポリシーを調整できます。
サポートされるクライアントタイプ
クライアント認証は、さまざまなクライアント環境で認証機能を統合できるように、クロスプラットフォームSDKを提供します。現在、以下のクライアント形式をサポートしています:
ブラウザおよびWebviewクライアント:モバイル端末のWebViewを含む、現代の主要なブラウザ環境です。AJAXフレームワークに基づいて実装されたWebアプリケーション(シングルページアプリケーション)をサポートします。SDKを正常に実行するには、ブラウザがPromise、Fetch、Crypto APIをサポートしている必要があります。サポートされている最低バージョンは以下の通りです:
Chrome ≥ 90
Firefox ≥ 90
Safari ≥ 11
Edge ≥ 90
モバイル端末 WebView(iOS ≥ 11、Android WebView ≥ 67)
Opera ≥ 76
ネイティブiOSおよびAndroidアプリ:iOSおよびAndroidプラットフォームのネイティブSDK(Objective-C、Swift、Androidネイティブアプリをサポート)を提供します。これらのモバイルSDKを通じて、アプリ内にクライアント認証機能を簡単に統合できます。サポートされる最低バージョンは以下の通りです:
iOSシステムバージョン ≥ 12
Androidシステムバージョン ≥ 5.0