REST Resource: hashList

リソース: HashList

名前で識別されるハッシュのリスト。

JSON 表現
{
  "name": string,
  "version": string,
  "partialUpdate": boolean,
  "compressedRemovals": {
    object (RiceDeltaEncoded32Bit)
  },
  "minimumWaitDuration": string,
  "sha256Checksum": string,
  "metadata": {
    object (HashListMetadata)
  },

  // Union field compressed_additions can be only one of the following:
  "additionsFourBytes": {
    object (RiceDeltaEncoded32Bit)
  },
  "additionsEightBytes": {
    object (RiceDeltaEncoded64Bit)
  },
  "additionsSixteenBytes": {
    object (RiceDeltaEncoded128Bit)
  },
  "additionsThirtyTwoBytes": {
    object (RiceDeltaEncoded256Bit)
  }
  // End of list of possible types for union field compressed_additions.
}
フィールド
name

string

ハッシュリストの名前。グローバル キャッシュもハッシュリストであり、ここで参照できることに注意してください。

version

string (bytes format)

ハッシュリストのバージョン。クライアントはこれらのバイトを操作してはなりません。

Base64 でエンコードされた文字列。

partialUpdate

boolean

true の場合、これはクライアントがすでに持っている内容に基づく追加と削除を含む部分的な差分です。false の場合、これは完全なハッシュリストです。

false の場合、クライアントは、このハッシュリストのローカルに保存されているバージョンをすべて削除する必要があります。これは、クライアントが保持しているバージョンが大幅に古くなっているか、クライアント データが破損していると見なされていることを意味します。compressedRemovals フィールドは空になります。

true の場合、クライアントは削除してから追加を行うことで、増分更新を適用する必要があります。

compressedRemovals

object (RiceDeltaEncoded32Bit)

削除インデックスの Rice-delta エンコード バージョン。各ハッシュリストには 2^32 個未満のエントリしかないため、インデックスは 32 ビットの整数として扱われ、エンコードされます。

minimumWaitDuration

string (Duration format)

クライアントは、この時間以上待ってからハッシュリストを再度取得する必要があります。省略されているかゼロの場合、サーバーにクライアントに送信する追加の更新があるが、クライアント指定の制約により送信できなかったことを示しているため、クライアントは直ちにフェッチする必要があります。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

sha256Checksum

string (bytes format)

すべてのハッシュの並べ替えられたリスト。SHA256 で再度ハッシュ化されています。これは、指定された更新を適用した後、データベースに存在するすべてのハッシュの並べ替えられたリストのチェックサムです。更新が提供されていない場合、サーバーは既存のチェックサムを使用する必要があることを示すために、このフィールドを省略します。

Base64 でエンコードされた文字列。

metadata

object (HashListMetadata)

ハッシュリストに関するメタデータ。これは hashList.get メソッドによって設定されるのではなく、ListHashLists メソッドによって設定されます。

共用体フィールド compressed_additions。追加の Rice-delta エンコード バージョン。追加のハッシュ プレフィックスの長さは、リスト内のすべての追加で一律です。これは、クライアントから送信された desired_hash_length か、クライアントがそのフィールドを省略した場合は、サーバーによって選択された値です。compressed_additions は次のいずれかになります。
additionsFourBytes

object (RiceDeltaEncoded32Bit)

4 バイトの追加。

additionsEightBytes

object (RiceDeltaEncoded64Bit)

8 バイトの加算。

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

16 バイトの追加。

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

32 バイトの追加。

RiceDeltaEncoded32Bit

Rice-Golomb でエンコードされたデータ。ハッシュまたは削除インデックスに使用されます。ここでは、すべてのハッシュまたはインデックスの長さが同じであることが保証され、この長さは 32 ビットです。

一般に、すべてのエントリを辞書順に並べ替えると、上位ビットは下位ビットほど頻繁に変更されないことがわかります。つまり、エントリ間の隣接する差も取得すると、上位ビットはゼロになる可能性が高くなります。これは、基本的に一定数のビットを選択することで、ゼロの確率が高いことを利用します。これより上位のビットはすべてゼロである可能性が高いため、単一値エンコードを使用します。riceParameter フィールドを確認します。

歴史的な注記: Rice-delta エンコードは、この API の V4 で初めて使用されました。V5 では、2 つの重要な改善が加えられました。1 つ目は、4 バイトを超えるハッシュ プレフィックスで Rice-delta エンコードを使用できるようになったことです。2 つ目は、コストのかかる並べ替えステップを回避するために、エンコードされたデータがビッグエンディアンとして扱われるようになったことです。

JSON 表現
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
フィールド
firstValue

integer (uint32 format)

エンコードされたデータ(ハッシュまたはインデックス)の最初のエントリ。1 つのハッシュ プレフィックスまたはインデックスのみがエンコードされている場合は、そのエントリの値。フィールドが空の場合、エントリはゼロになります。

riceParameter

integer

Golomb-Rice パラメータ。このパラメータは 3 ~ 30 の範囲内であることが保証されます。

entriesCount

integer

エンコードされたデータでデルタ エンコードされるエントリの数。1 つの整数のみがエンコードされている場合、これは 0 になり、1 つの値が firstValue に保存されます。

encodedData

string (bytes format)

Golomb-Rice コーダを使用してエンコードされたエンコード済みデルタ。

Base64 でエンコードされた文字列。

RiceDeltaEncoded64Bit

RiceDeltaEncoded32Bit と同じですが、64 ビット数をエンコードします。

JSON 表現
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
フィールド
firstValue

string

エンコードされたデータ(ハッシュ)の最初のエントリ。または、1 つのハッシュ接頭辞のみがエンコードされている場合は、そのエントリの値。フィールドが空の場合、エントリはゼロになります。

riceParameter

integer

Golomb-Rice パラメータ。このパラメータは 35 ~ 62 の範囲内であることが保証されます。

entriesCount

integer

エンコードされたデータでデルタ エンコードされるエントリの数。1 つの整数のみがエンコードされている場合、これは 0 になり、1 つの値が firstValue に保存されます。

encodedData

string (bytes format)

Golomb-Rice コーダを使用してエンコードされたエンコード済みデルタ。

Base64 でエンコードされた文字列。

RiceDeltaEncoded128Bit

RiceDeltaEncoded32Bit と同じですが、128 ビットの数値をエンコードします。

JSON 表現
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
フィールド
firstValueHi

string

エンコードされたデータの最初のエントリの上位 64 ビット(ハッシュ)。フィールドが空の場合、上位 64 ビットはすべて 0 です。

firstValueLo

string (uint64 format)

エンコードされたデータ(ハッシュ)の最初のエントリの下位 64 ビット。フィールドが空の場合、下位 64 ビットはすべて 0 になります。

riceParameter

integer

Golomb-Rice パラメータ。このパラメータは 99 ~ 126 の範囲内であることが保証されています。

entriesCount

integer

エンコードされたデータでデルタ エンコードされるエントリの数。1 つの整数のみがエンコードされている場合、これは 0 になり、1 つの値が firstValue に保存されます。

encodedData

string (bytes format)

Golomb-Rice コーダを使用してエンコードされたエンコード済みデルタ。

Base64 でエンコードされた文字列。

RiceDeltaEncoded256Bit

RiceDeltaEncoded32Bit と同じですが、256 ビットの数値をエンコードします。

JSON 表現
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
フィールド
firstValueFirstPart

string

エンコードされたデータの最初のエントリの最初の 64 ビット(ハッシュ)。フィールドが空の場合、最初の 64 ビットはすべてゼロになります。

firstValueSecondPart

string (uint64 format)

エンコードされたデータの最初のエントリの 65 ~ 128 ビット(ハッシュ)。フィールドが空の場合、65 ~ 128 ビットはすべてゼロになります。

firstValueThirdPart

string (uint64 format)

エンコードされたデータ(ハッシュ)の最初のエントリの 129 ~ 192 ビット。フィールドが空の場合、129 ~ 192 ビットはすべてゼロになります。

firstValueFourthPart

string (uint64 format)

エンコードされたデータの最初のエントリの最後の 64 ビット(ハッシュ)。フィールドが空の場合、最後の 64 ビットはすべて 0 になります。

riceParameter

integer

Golomb-Rice パラメータ。このパラメータは 227 ~ 254 の範囲内であることが保証されています。

entriesCount

integer

エンコードされたデータでデルタ エンコードされるエントリの数。1 つの整数のみがエンコードされている場合、これは 0 になり、その値は firstValue に保存されます。

encodedData

string (bytes format)

Golomb-Rice コーダを使用してエンコードされたエンコード済みデルタ。

Base64 でエンコードされた文字列。

HashListMetadata

特定のハッシュリストに関するメタデータ。

JSON 表現
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ],
  "hashLength": enum (HashLength)
}
フィールド
threatTypes[]

enum (ThreatType)

順序なしリスト。空でない場合、ハッシュリストが脅威リストの一種であることを指定し、このハッシュリスト内のハッシュまたはハッシュ プレフィックスに関連付けられている脅威の種類を列挙します。エントリが脅威を表していない場合(安全なタイプである可能性が高い場合)は空になります。

likelySafeTypes[]

enum (LikelySafeType)

順序なしリスト。空でない場合、ハッシュリストは安全と思われるハッシュのリストを表し、安全と思われる理由を列挙します。このフィールドは、threatTypes フィールドと相互に排他的です。

description

string

このリストに関する説明(人が読める形式)。英語で記述されている。

supportedHashLengths[]
(deprecated)

enum (HashLength)

このハッシュリストでサポートされているハッシュの長さ。各ハッシュリストは、少なくとも 1 つの長さをサポートします。そのため、このフィールドは空になりません。

hashLength

enum (HashLength)

このハッシュリストでサポートされているハッシュの長さ。各ハッシュリストは 1 つの長さのみをサポートします。同じ脅威タイプまたは安全なタイプのセットに異なるハッシュ長が導入されている場合は、個別のリストとして導入され、それぞれ名前とハッシュ長が設定されます。

ThreatType

脅威の種類。

列挙型
THREAT_TYPE_UNSPECIFIED 不明な脅威の種類。サーバーがこれを返した場合、クライアントは囲んでいる FullHashDetail を完全に無視します。
MALWARE

マルウェアの脅威の種類。マルウェアとは、ソフトウェアまたはモバイルアプリであり、特にパソコン、モバイル デバイス、それらで実行されているソフトウェア、パソコンやモバイル デバイスのユーザーに対して有害な影響を与えることを目的として設計されたものを指します。マルウェアは、ユーザーの同意なしにソフトウェアをインストールする、ウイルスなどの有害なソフトウェアをインストールするなど、悪意のある動作を示します。

詳細につきましては、こちらをご覧ください。

SOCIAL_ENGINEERING

ソーシャル エンジニアリングの脅威の種類。ソーシャル エンジニアリング ページは、視聴者を混乱させて、視聴者がその第三者の正当なエージェントだけを信頼するようなアクションを実行させる意図で、第三者の代理として行動していると偽って表示します。フィッシングは、閲覧者をだまして、ログイン認証情報などの情報を提供する特定のアクションを実行させるソーシャル エンジニアリングの一種です。

詳細につきましては、こちらをご覧ください。

UNWANTED_SOFTWARE 望ましくないソフトウェアの脅威の種類。望ましくないソフトウェアとは、Google のソフトウェア原則に準拠していないがマルウェアではないソフトウェアのことです。
POTENTIALLY_HARMFUL_APPLICATION Google Play ストア向けの Google Play プロテクトで使用される、有害な可能性があるアプリの脅威の種類。

LikelySafeType

安全と思われるサイトの種類。

SearchHashesResponse には意図的に LikelySafeType が含まれていません。

列挙型
LIKELY_SAFE_TYPE_UNSPECIFIED 不明。
GENERAL_BROWSING このサイトは、一般的なブラウジングには十分に安全であると考えられます。これはグローバル キャッシュとも呼ばれます。
CSD このサイトは安全である可能性が高いため、クライアントサイド検出モデルやパスワード保護チェックを実行する必要はありません。
DOWNLOAD このサイトは安全である可能性が高いため、サイトからのダウンロードを確認する必要はありません。

HashLength

ハッシュリスト内のハッシュの長さ。

列挙型
HASH_LENGTH_UNSPECIFIED 長さは指定されていません。サーバーは、クライアントへのレスポンス(supportedHashLengths フィールド)でこの値を返しません。ただし、クライアントは、この値をサーバー(desiredHashLength フィールド)に送信できます。この場合、サーバーは値を自動的に選択します。クライアントは、サーバーに値を選択させる必要があります。
FOUR_BYTES 各ハッシュは 4 バイトのプレフィックスです。
EIGHT_BYTES 各ハッシュは 8 バイトのプレフィックスです。
SIXTEEN_BYTES 各ハッシュは 16 バイトのプレフィックスです。
THIRTY_TWO_BYTES 各ハッシュは 32 バイトの完全なハッシュです。

メソッド

get

ハッシュリストの最新のコンテンツを取得します。