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)

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

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

sha256Checksum

string (bytes format)

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

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

metadata

object (HashListMetadata)

ハッシュリストに関するメタデータ。これは hashList.get メソッドでは入力されませんが、ListHashLists メソッドでは入力されます。

共用体フィールド compressed_additions。追加の Rice-delta エンコード バージョン。追加のハッシュ プレフィックスの長さは、リスト内のすべての追加で同じです。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)

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

riceParameter

integer

ゴロムライス パラメータ。このパラメータは 3 ~ 30 の範囲で指定する必要があります。

entriesCount

integer

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

encodedData

string (bytes format)

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

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

RiceDeltaEncoded64Bit

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

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

string

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

riceParameter

integer

ゴロムライス パラメータ。このパラメータは 35 ~ 62 の範囲で指定する必要があります。

entriesCount

integer

エンコードされたデータでデルタ エンコードされたエントリの数。単一の整数のみがエンコードされた場合、これは 0 になり、単一の値が 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 ビットはすべてゼロになります。

firstValueLo

string (uint64 format)

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

riceParameter

integer

ゴロムライス パラメータ。このパラメータは 99 ~ 126 の範囲内であることが保証されています。

entriesCount

integer

エンコードされたデータでデルタ エンコードされたエントリの数。単一の整数のみがエンコードされた場合、これは 0 になり、単一の値が 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 ビットはすべてゼロになります。

riceParameter

integer

ゴロムライス パラメータ。このパラメータは 227 ~ 254 の範囲で指定する必要があります。

entriesCount

integer

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

encodedData

string (bytes format)

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

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

HashListMetadata

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

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

enum (ThreatType)

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

likelySafeTypes[]

enum (LikelySafeType)

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

description

string

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

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 長さが指定されていません。
FOUR_BYTES 各ハッシュは 4 バイトの接頭辞です。
EIGHT_BYTES 各ハッシュは 8 バイトの接頭辞です。
SIXTEEN_BYTES 各ハッシュは 16 バイトのプレフィックスです。
THIRTY_TWO_BYTES 各ハッシュは 32 バイトのフルハッシュです。

メソッド

get

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