Local List Mode

クライアントがこのモードで Google セーフ ブラウジング v5 を使用することを選択した場合、クライアントの動作は v4 Update API と同様ですが、v5 の改善された API サーフェスを使用します。クライアントは、ホスト サフィックス/パス プレフィックス URL 式の SHA256 ハッシュ プレフィックスとしてフォーマットされた一連の脅威リストをローカル データベースに保持します。クライアントが特定の URL をチェックするたびに、ローカルの脅威リストを使用してチェックが実行されます。一致した場合にのみ、クライアントはサーバーに接続してチェックを続行します。

上記と同様に、クライアントは永続ストレージに保存する必要のないローカル キャッシュも保持します。

ローカル脅威リストの URL チェック手順

この手順は、クライアントがリアルタイム モードの手順を使用していて、値 UNSURE を返す場合にも実行されます。

このプロシージャは、単一の URL u を受け取り、SAFE または UNSAFE を返します。

  1. expressions を、URL u によって生成されたサフィックス/プレフィックス式のリストとします。
  2. expressionHashes をリストとします。このリストの要素は、expressions の各式の SHA256 ハッシュです。
  3. expressionHashPrefixes をリストとします。このリストの要素は、expressionHashes 内の各ハッシュの最初の 4 バイトです。
  4. expressionHashPrefixes の各 expressionHashPrefix について:
    1. ローカル キャッシュで expressionHashPrefix を検索します。
    2. キャッシュ エントリが見つかった場合:
      1. 現在の時刻が有効期限より大きいかどうかを判断します。
      2. 大きい場合:
        1. 見つかったキャッシュ エントリをローカル キャッシュから削除します。
        2. ループを続行します。
      3. それより大きくない場合:
        1. この特定の expressionHashPrefixexpressionHashPrefixes から削除します。
        2. expressionHashes 内の対応する完全なハッシュがキャッシュ エントリにあるかどうかを確認します。
        3. 見つかった場合は、UNSAFE を返します。
        4. 見つからない場合は、ループを続行します。
    3. キャッシュにエントリが見つからない場合は、ループを続行します。
  5. expressionHashPrefixes の各 expressionHashPrefix について:
    1. ローカルの脅威リスト データベースで expressionHashPrefix を検索します。
    2. expressionHashPrefix がローカルの脅威リスト データベースにない場合は、expressionHashPrefixes から削除します。
  6. RPC SearchHashes または REST メソッド hashes.search を使用して、expressionHashPrefixes を Google セーフ ブラウジング v5 サーバーに送信します。エラー(ネットワーク エラー、HTTP エラーなど)が発生した場合は、SAFE を返します。それ以外の場合、レスポンスは SB サーバーから受信した response とします。これは、脅威の性質(ソーシャル エンジニアリング、マルウェアなど)を特定する補助情報とキャッシュの有効期限 expiration を含む完全なハッシュのリストです。
  7. response の各 fullHash について:
    1. expiration とともに fullHash をローカル キャッシュに挿入します。
  8. response の各 fullHash について:
    1. isFoundexpressionHashesfullHash を検索した結果とします。
    2. isFound が False の場合は、ループを続行します。
    3. isFound が True の場合は、UNSAFE を返します。
  9. SAFE を返します。