REST Resource: hashList

リソース: HashList

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

JSON 表現
{
  "name": string,
  "version": string,
  "partialUpdate": boolean,
  "compressedRemovals": {
    object (RiceDeltaEncoded32Bit)
  },
  "minimumWaitDuration": 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.

  // Union field checksum can be only one of the following:
  "sha256Checksum": string
  // End of list of possible types for union field checksum.
}
フィールド
name

string

ハッシュリストの名前。グローバル キャッシュも単なるハッシュリストであり、ここで参照できます。

version

string (bytes format)

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

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

partialUpdate

boolean

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

false の場合、クライアントはこのハッシュリスト用にローカルに保存されているバージョンを削除しなければなりません。これは、クライアントが所有するバージョンが著しく古くなっているか、クライアントデータが破損していると考えられることを意味します。compressedRemovals フィールドは空になります。

true の場合、クライアントは削除してから追加を適用することで、増分アップデートを適用しなければなりません。

compressedRemovals

object (RiceDeltaEncoded32Bit)

削除インデックスのライスデルタ エンコード バージョン。各ハッシュリストには確実に 2^32 エントリ未満なので、インデックスは 32 ビット整数として扱われ、エンコードされます。

minimumWaitDuration

string (Duration format)

クライアントがハッシュリストを再度取得するには、少なくともここで指定した時間まで待つ必要があります。省略またはゼロの場合、サーバーはクライアントに送信される追加のアップデートがあることを示すため、クライアントはすぐにフェッチすべきです。ただし、クライアント指定の制約により、クライアントはすぐに取得できません。

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

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 バイトの追加値。

共用体フィールド checksum。これは、提供された更新を適用した後のデータベースに存在するすべてのハッシュの並べ替えられたリストのチェックサムです。これは、複数のハッシュ アルゴリズムを許可する「oneof」フィールドです。また、サーバーがこのフィールドを省略して(更新が提供されていない場合)、クライアントが既存のチェックサムを使用する必要があることを示すこともできます。checksum は次のいずれかになります。
sha256Checksum

string (bytes format)

すべてのハッシュの並べ替え済みリスト。SHA256 で再度ハッシュ化されます。

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

RiceDelta エンコード 32 ビット

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

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

過去の注意事項: Rice-delta エンコーディングは、この API の V4 で初めて使用されました。V5 では 2 つの大きな改善が行われました。1 つ目は、4 バイトを超えるハッシュ プレフィックスでライスデルタ エンコードが利用できるようになったことです。2 つ目は、コストのかかる並べ替え手順を回避するために、エンコードされたデータがビッグ エンディアンとして扱われるようになったことです。

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

integer (uint32 format)

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

riceParameter

integer

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

entriesCount

integer

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

encodedData

string (bytes format)

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

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

RiceDelta エンコード 64 ビット

64 ビットの数値をエンコードする点を除き、RiceDeltaEncoded32Bit と同じです。

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

string

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

riceParameter

integer

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

entriesCount

integer

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

encodedData

string (bytes format)

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

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

RiceDeltaEncoded128Bit

128 ビットの数値をエンコードする点を除き、RiceDeltaEncoded32Bit と同じです。

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

string

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

firstValueLo

string (uint64 format)

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

riceParameter

integer

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

entriesCount

integer

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

encodedData

string (bytes format)

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

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

RiceDeltaEncoded256 ビット

256 ビットの数値をエンコードする点を除き、RiceDeltaEncoded32Bit と同じです。

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 ビットはすべてゼロです。

riceParameter

integer

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

entriesCount

integer

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

encodedData

string (bytes format)

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

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

HashListMetadata

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

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

enum (ThreatType)

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

likelySafeTypes[]

enum (LikelySafeType)

順序なしリスト。空でない場合、これはハッシュリストが安全な可能性のあるハッシュのリストを表し、安全であると考えられる方法を列挙することを指定します。このフィールドは、ThreatTypes フィールドと相互に排他的です。

mobileOptimized

boolean

このリストがモバイル デバイス(Android、iOS)向けに最適化されているかどうか。

description

string

このリストに関する人が読める形式の説明。英語で書かれている。

supportedHashLengths[]

enum (HashLength)

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

ThreatType

脅威の種類。

列挙型
THREAT_TYPE_UNSPECIFIED 脅威の種類が不明です。これがサーバーから返された場合、クライアントはそれを含む FullHashDetail を完全に無視します。
MALWARE

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

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

SOCIAL_ENGINEERING

ソーシャル エンジニアリングの脅威の種類。ソーシャル エンジニアリング ページは、閲覧者を混乱させて、そのサードパーティの真の代理人しか信頼できないような、第三者の代理としてふさわしいと偽っています。フィッシングはソーシャル エンジニアリングの一種で、視聴者をだまして、ログイン認証情報などの特定の情報を提供させる特定のアクションを実行させます。

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

UNWANTED_SOFTWARE 望ましくないソフトウェアの脅威の種類。望ましくないソフトウェアとは、Google のソフトウェア原則に準拠していなくても、マルウェアではないソフトウェアのことです。
POTENTIALLY_HARMFUL_APPLICATION 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 バイトのフルハッシュです。

Methods

get

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