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 增量编码的删除索引版本。由于每个哈希列表的条目数肯定少于 2^32,因此编号会被视为 32 位整数并进行编码。

minimumWaitDuration

string (Duration format)

客户端至少应等待此时长才能再次获取哈希列表。如果省略或为零,客户端应立即提取,因为这表示服务器有其他更新要发送给客户端,但由于客户端指定的约束条件而无法发送。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

sha256Checksum

string (bytes format)

所有哈希值的排序列表,已使用 SHA256 再次进行哈希处理。这是应用所提供更新后数据库中存在的所有哈希的排序列表的校验和。如果未提供任何更新,服务器将忽略此字段,以指示客户端应使用现有校验和。

使用 base64 编码的字符串。

metadata

object (HashListMetadata)

有关哈希列表的元数据。此值不会由 hashList.get 方法填充,而是由 ListHashLists 方法填充。

联合字段 compressed_additions。使用 Rice 增量编码的添加内容。列表中所有添加项的哈希前缀长度均相同。它是客户端发送的 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 中,我们进行了两项重大改进:首先,现在可以使用长度超过 4 个字节的哈希前缀进行 Rice-delta 编码;其次,编码后的数据现在被视为大端字节序,以避免耗时的排序步骤。

JSON 表示法
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
字段
firstValue

integer (uint32 format)

编码数据(哈希或索引)中的第一个条目,或者如果仅编码了单个哈希前缀或索引,则为该条目的值。如果该字段为空,则条目为零。

riceParameter

integer

Golomb-Rice 参数。此参数的值保证介于 3 到 30 之间(包括这两个数值)。

entriesCount

integer

在编码后的数据中采用增量编码的条目数量。如果仅编码了一个整数,则此值将为零,并且单个值将存储在 firstValue 中。

encodedData

string (bytes format)

使用 Golomb-Rice 编码器编码的编码增量。

使用 base64 编码的字符串。

RiceDeltaEncoded64Bit

RiceDeltaEncoded32Bit 相同,但此属性会编码 64 位数字。

JSON 表示法
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
字段
firstValue

string

编码数据(哈希)中的第一个条目,或者如果仅编码了单个哈希前缀,则为该条目的值。如果该字段为空,则条目为零。

riceParameter

integer

Golomb-Rice 参数。此参数保证介于 35 到 62 之间(包括这两个数值)。

entriesCount

integer

在编码后的数据中采用增量编码的条目数量。如果仅编码了一个整数,则此值将为零,并且单个值将存储在 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

Golomb-Rice 参数。此参数保证介于 99 到 126 之间(包括这两个数值)。

entriesCount

integer

在编码后的数据中采用增量编码的条目数量。如果仅编码了一个整数,则此值将为零,并且单个值将存储在 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

Golomb-Rice 参数。此参数保证介于 227 到 254 之间(包括这两个数值)。

entriesCount

integer

在编码后的数据中采用增量编码的条目数量。如果仅编码了一个整数,则此值将为零,并且单个值将存储在 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)

此哈希列表支持的哈希长度。每个哈希列表都至少支持一种长度。因此,此字段不会为空。

hashLength

enum (HashLength)

此哈希列表支持的哈希长度。每个哈希列表都将仅支持一种长度。如果为同一组威胁类型或安全类型引入了不同的哈希长度,则会将其作为一个单独的列表引入,并设置不同的名称和相应的哈希长度。

ThreatType

威胁类型。

枚举
THREAT_TYPE_UNSPECIFIED 威胁类型未知。如果服务器返回此值,客户端应完全忽略封闭的 FullHashDetail
MALWARE

恶意软件威胁类型。恶意软件是指符合以下特征的所有软件或移动应用:蓄意危害计算机、移动设备、计算机/移动设备上运行的软件或计算机/移动设备用户。恶意软件会表现出各种恶意行为,其中包括:未经用户同意就擅自安装软件,以及安装病毒等有害软件。

如需了解详情,请参阅此处

SOCIAL_ENGINEERING

社会工程学威胁类型。社交工程页面会谎称代表第三方行事,意图混淆观看者,诱使他们执行某项操作,而观看者只会信任该第三方的真实代理人。钓鱼式攻击是一种社会工程攻击,会诱骗观看者执行提供信息(例如登录凭据)的特定操作。

如需了解详情,请参阅此处

UNWANTED_SOFTWARE 垃圾软件威胁类型。垃圾软件是指不符合 Google 的软件准则但不是恶意软件的任何软件。
POTENTIALLY_HARMFUL_APPLICATION Google Play 保护机制针对 Play 商店使用的潜在有害应用威胁类型。

LikelySafeType

可能安全的网站类型。

请注意,SearchHashesResponse 有意不包含 LikelySafeType

枚举
LIKELY_SAFE_TYPE_UNSPECIFIED 未知。
GENERAL_BROWSING 此网站可能足够安全,可供一般浏览。这也称为全局缓存。
CSD 此网站可能足够安全,因此无需运行客户端检测模型或密码保护检查。
DOWNLOAD 此网站可能足够安全,因此无需检查从该网站下载的内容。

HashLength

哈希列表中的哈希的长度。

枚举
HASH_LENGTH_UNSPECIFIED 未指定长度。服务器不会在向客户端的响应中返回此值(在 supportedHashLengths 字段中),但客户端可以将此值发送给服务器(在 desiredHashLength 字段中),在这种情况下,服务器会自动选择一个值。客户端应让服务器选择一个值。
FOUR_BYTES 每个哈希都是一个四字节前缀。
EIGHT_BYTES 每个哈希都是一个八字节前缀。
SIXTEEN_BYTES 每个哈希都是一个 16 字节的前缀。
THIRTY_TWO_BYTES 每个哈希都是一个 32 字节的全哈希。

方法

get

获取哈希列表的最新内容。