セーフ ブラウジング API を使用すると、クライアント アプリケーションで、常に更新される Google の安全でないウェブリソースのリストに照らし合わせて、リアルタイムまたはリストベースの URL チェックを実行できます。安全でないウェブリソースの例としては、ソーシャル エンジニアリング サイト(フィッシング サイトや詐欺サイト)や、マルウェアまたは望ましくないソフトウェアをホストするサイトがあります。セーフ ブラウジング リストに記載されている URL は安全ではないとみなされます。
URL がセーフ ブラウジング リストにあるかどうかを判断するために、クライアントは urls.search または hashes.search のいずれかを使用できます。
新機能
データの鮮度
従来、セーフ ブラウジング クライアントは、潜在的な脅威との照合に使用される脅威リストを定期的にダウンロードしていました。脅威の量と速度が時間の経過とともに増加したため、これらのローカル脅威リストは最新の脅威に対して効果が薄くなっています。
このギャップを埋めるため、V4 で以前に利用可能だった allow-by-default プロトコルではなく、プロトコルを check-by-default に切り替える機能を導入します。これは、「グローバル キャッシュ」と呼ばれる、安全な可能性の高いサイトのリストをダウンロードする機能を導入することで実現されます。URL がグローバル キャッシュにない場合、クライアントは API でチェックを実行して、その URL が脅威かどうかを判断する必要があります。
このサービスでは、デフォルトでチェックを実行できるだけでなく、データの鮮度も向上しているため、新しい脅威に対する保護をほぼリアルタイムで迅速に提供できます。
IP プライバシー
Safe Browsing API は、ネットワーキングの基本的なニーズと DoS 対策の目的でのみ IP アドレスを使用します。
プライバシーをさらに保護するため、セーフ ブラウジングの Oblivious HTTP Gateway API というコンパニオン API を導入しました。これは、Oblivious HTTP を使用して、エンドユーザーの IP アドレスを Google から隠します。この仕組みでは、共謀しないサードパーティがユーザー リクエストの暗号化されたバージョンを処理し、それを Google に転送します。そのため、サードパーティは IP アドレスにのみアクセスでき、Google はリクエストのコンテンツにのみアクセスできます。サードパーティが Oblivious HTTP リレー(Fastly のこのサービスなど)を運用し、Google が Oblivious HTTP ゲートウェイを運用します。これは省略可能なコンパニオン API です。Google セーフ ブラウジングと組み合わせて使用すると、エンドユーザーの IP アドレスが Google に送信されなくなります。
詳細については、Safe Browsing Oblivious HTTP Gateway API のドキュメントをご覧ください。
検索方法
URL のリアルタイム チェックに使用できるさまざまな方法について説明します。
urls.search
クライアント アプリケーションからセーフ ブラウジング サービスに URL を送信して、URL に関連付けられている脅威があるかどうかを確認できます。
メリット
- シンプルな URL チェック: 実際の URL を含むリクエストを送信すると、サーバーは関連する脅威(存在する場合)とともに URL を返します。
デメリット
- URL の機密性なし: リクエストには、チェック対象の未加工の URL が含まれています。
メリットとデメリットが要件に合っている場合は、使いやすい urls.search の使用を検討してください。
メソッドの使用に関する利用規約を確認します。hashes.search とは異なります。
hashes.search
クライアント アプリケーションが、サービスの実際の URL を明らかにすることなく、一連の URL に既知の脅威があるかどうかを確認できるようにします。これは、URL のハッシュ プレフィックスのみを提供することで実現されます。レスポンスには、既知の脅威のフルハッシュとシャード ハッシュ プレフィックスが含まれます。
メリット
- URL の機密性: ハッシュ化された URL の 4 バイトのハッシュ プレフィックスのみがリクエストに含まれます。
- 互換性: クライアントが URL の正規化とハッシュ化を処理するため、このメソッドは、リアルタイム モードやローカル リスト モードなど、ローカル データベースを使用するモードとシームレスに統合されます。
デメリット
- 複雑な URL のチェック: URL の正規化、サフィックス/プレフィックス式の作成、SHA256 ハッシュの計算を行い、このメソッドにリクエストを送信し、安全でないリストまたはグローバル キャッシュのローカルコピーと比較する方法を認識している必要があります。
URL の機密性を優先する必要があり、リアルタイム モードまたはローカルリスト モードの使用を検討している場合は、hashes.search を使用することをおすすめします。
HashList メソッド
これらのメソッドを使用すると、クライアントは安全でないリストとグローバル キャッシュのハッシュ バージョンをダウンロードして保存できます。クライアントは、この情報を使用して、問題の URL のリアルタイム検索を実行するかどうかを判断できます。
これらのメソッドは、リアルタイム モードとローカル リストモードの動作に不可欠です。
これらのメソッドの使用方法について詳しくは、ローカル データベースのページをご覧ください。
リクエストの例
このセクションでは、HTTP API を直接使用してセーフ ブラウジングにアクセスする例をいくつか紹介します。通常は、生成された言語バインディングを使用することをおすすめします。これは、エンコードとデコードを便利な方法で自動的に処理するためです。そのバインディングのドキュメントをご覧ください。
urls.search を使用した HTTP リクエストの例:
GET https://safebrowsing.googleapis.com/v5alpha1/urls:search?key=INSERT_YOUR_API_KEY_HERE&urls=testsafebrowsing.appspot.com/
hashes.search を使用した HTTP リクエストの例:
GET https://safebrowsing.googleapis.com/v5/hashes:search?key=INSERT_YOUR_API_KEY_HERE&hashPrefixes=WwuJdQ
hashLists.batchGet を使用した HTTP リクエストの例:
GET https://safebrowsing.googleapis.com/v5/hashLists:batchGet?key=INSERT_YOUR_API_KEY_HERE&names=se&names=mw-4b
レスポンス本文はすべて、デコード可能なプロトコル バッファ形式のペイロードです。