REST Resource: hashList

Recurso: HashList

Uma lista de hashes identificados pelo nome.

Representação 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.
}
Campos
name

string

O nome da lista de hash. Observe que o cache global também é apenas uma lista de hash e pode ser consultada aqui.

version

string (bytes format)

A versão da lista de hash. O cliente NÃO PODE manipular esses bytes.

Uma string codificada em base64.

partialUpdate

boolean

Quando verdadeiro, esta é uma comparação parcial que contém adições e remoções com base no que o cliente já tem. Quando falso, essa é a lista de hash completa.

Quando falso, o cliente PRECISA excluir qualquer versão armazenada localmente dessa lista de hash. Isso significa que a versão que o cliente possui está seriamente desatualizada ou os dados do cliente podem estar corrompidos. O campo compressedRemovals vai ficar vazio.

Quando verdadeiro, o cliente PRECISA aplicar uma atualização incremental aplicando remoções e adições.

compressedRemovals

object (RiceDeltaEncoded32Bit)

A versão codificada pelo Rice-delta dos índices de remoção. Como cada lista de hash definitivamente tem menos de 2^32 entradas, os índices são tratados como números inteiros de 32 bits e codificados.

minimumWaitDuration

string (Duration format)

Os clientes precisam esperar pelo menos esse tempo para receber a lista de hash novamente. Se omitido ou zero, os clientes DEVEM buscar imediatamente porque indica que o servidor tem uma atualização adicional a ser enviada ao cliente, mas não pode ser devido a restrições especificadas pelo cliente.

Duração em segundos com até nove dígitos fracionários, terminando em "s". Exemplo: "3.5s".

metadata

object (HashListMetadata)

Metadados sobre a lista de hash. Isso não é preenchido pelo método hashList.get, mas pelo método ListHashLists.

Campo de união compressed_additions. A versão das adições codificada em delta de arroz. Os comprimentos de prefixo de hash das adições são uniformes em todas as adições na lista. É o desired_hash_length enviado pelo cliente ou um valor escolhido pelo servidor se o cliente omitir esse campo. compressed_additions pode ser apenas de um dos tipos a seguir:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

As adições de 4 bytes.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

As adições de 8 bytes.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

As adições de 16 bytes.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

As adições de 32 bytes.

Campo de união checksum. Essa é a soma de verificação da lista classificada de todos os hashes presentes no banco de dados após a aplicação da atualização fornecida. Este é um "oneof" para permitir vários algoritmos de hash. Também é possível que o servidor omita esse campo (caso nenhuma atualização tenha sido fornecida) para indicar que o cliente deve usar a soma de verificação existente. checksum pode ser apenas de um dos tipos a seguir:
sha256Checksum

string (bytes format)

A lista classificada de todos os hashes, com hash novamente com SHA256.

Uma string codificada em base64.

RiceDeltaEncoded32bits

Os dados codificados por Rice-Golomb. Usado para hashes ou índices de remoção. É garantido que cada hash ou índice aqui tenha o mesmo comprimento, que é de exatamente 32 bits.

De modo geral, se classificarmos todas as entradas lexicograficamente, descobriremos que os bits de ordem superior tendem a não mudar com a mesma frequência que os bits de ordem inferior. Isso significa que, se também considerarmos a diferença adjacente entre entradas, os bits de ordem superior terão uma alta probabilidade de serem zero. Isso explora essa alta probabilidade de zero basicamente escolhendo um certo número de bits; todos os bits mais significativos que isso provavelmente serão zero, por isso usamos codificação unária. Consulte o campo riceParameter.

Observação histórica: a codificação Rice-delta foi usada pela primeira vez na V4 desta API. Duas melhorias significativas foram feitas na V5: em primeiro lugar, a codificação Rice-delta agora está disponível com prefixos de hash com mais de 4 bytes; Depois, os dados codificados são tratados como big-endian para evitar uma etapa de classificação dispendiosa.

Representação JSON
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValue

integer (uint32 format)

A primeira entrada nos dados codificados (hashes ou índices) ou, se apenas um único prefixo de hash ou índice tiver sido codificado, o valor dessa entrada. Se o campo estiver vazio, a entrada será zero.

riceParameter

integer

O parâmetro Golomb-Rice. Esse parâmetro está entre 3 e 30, inclusive.

entriesCount

integer

O número de entradas codificadas em delta nos dados codificados. Se apenas um número inteiro for codificado, ele será zero e o valor único será armazenado em firstValue.

encodedData

string (bytes format)

Os deltas codificados usando o codificador Golomb-Rice.

Uma string codificada em base64.

RiceDeltaEncoded64bits

Igual a RiceDeltaEncoded32Bit, mas codifica números de 64 bits.

Representação JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValue

string

A primeira entrada nos dados codificados (hashes) ou, se apenas um único prefixo de hash tiver sido codificado, o valor dessa entrada. Se o campo estiver vazio, a entrada será zero.

riceParameter

integer

O parâmetro Golomb-Rice. Esse parâmetro está entre 35 e 62.

entriesCount

integer

O número de entradas codificadas em delta nos dados codificados. Se apenas um número inteiro for codificado, ele será zero e o valor único será armazenado em firstValue.

encodedData

string (bytes format)

Os deltas codificados usando o codificador Golomb-Rice.

Uma string codificada em base64.

RiceDeltaEncoded128bits

Igual a RiceDeltaEncoded32Bit, mas codifica números de 128 bits.

Representação JSON
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValueHi

string

Os 64 bits superiores da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os 64 bits mais altos serão todos zero.

firstValueLo

string (uint64 format)

Os 64 bits mais baixos da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os 64 bits mais baixos serão todos zero.

riceParameter

integer

O parâmetro Golomb-Rice. Este parâmetro tem a garantia de estar entre 99 e 126, inclusive.

entriesCount

integer

O número de entradas codificadas em delta nos dados codificados. Se apenas um número inteiro for codificado, ele será zero e o valor único será armazenado em firstValue.

encodedData

string (bytes format)

Os deltas codificados usando o codificador Golomb-Rice.

Uma string codificada em base64.

RiceDeltaEncoded256bits

Igual a RiceDeltaEncoded32Bit, mas codifica números de 256 bits.

Representação JSON
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValueFirstPart

string

Os primeiros 64 bits da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os primeiros 64 bits serão todos zero.

firstValueSecondPart

string (uint64 format)

Os 65 a 128 bits da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os 65 a 128 bits serão todos zero.

firstValueThirdPart

string (uint64 format)

Os 129 a 192 bits da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os 129 a 192 bits serão todos zero.

firstValueFourthPart

string (uint64 format)

Os últimos 64 bits da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os últimos 64 bits serão todos zero.

riceParameter

integer

O parâmetro Golomb-Rice. Esse parâmetro está entre 227 e 254.

entriesCount

integer

O número de entradas codificadas em delta nos dados codificados. Se apenas um número inteiro for codificado, ele será zero e o valor único será armazenado em firstValue.

encodedData

string (bytes format)

Os deltas codificados usando o codificador Golomb-Rice.

Uma string codificada em base64.

HashListMetadata

Metadados sobre uma lista de hash específica.

Representação JSON
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "mobileOptimized": boolean,
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ]
}
Campos
threatTypes[]

enum (ThreatType)

Lista não ordenada. Se não estiver vazio, isto especifica que a lista de hash é um tipo de lista de ameaças e enumera o tipo de ameaças associadas a hashes ou prefixos de hash nessa lista de hash. Poderá estar vazia se a entrada não representar uma ameaça, ou seja, se representar um tipo provável seguro.

likelySafeTypes[]

enum (LikelySafeType)

Lista não ordenada. Se não estiver vazio, isso especifica que a lista de hashes representa uma lista de prováveis hashes seguros e enumera as maneiras como eles são considerados provavelmente seguros. Esse campo é mutuamente exclusivo com o campo ThreatTypes.

mobileOptimized

boolean

Indica se esta lista está otimizada para dispositivos móveis (Android e iOS).

description

string

Uma descrição legível sobre esta lista. em inglês;

supportedHashLengths[]

enum (HashLength)

Os comprimentos de hash aceitos para esta lista de hash. Cada lista de hash aceitaria pelo menos um tamanho. Portanto, este campo não ficará vazio.

ThreatType

Tipos de ameaças.

Enums
THREAT_TYPE_UNSPECIFIED Tipo de ameaça desconhecido. Se ele for retornado pelo servidor, o cliente desconsidera completamente o FullHashDetail.
MALWARE

Tipo de ameaça de malware. Malware é qualquer software ou aplicativo para dispositivos móveis projetado especificamente para causar danos a um computador, dispositivo móvel, bem como a usuários ou outro software. Além disso, o malware apresenta um comportamento malicioso que pode incluir a instalação de software sem o consentimento do usuário e a instalação de software nocivo, como vírus.

Saiba mais aqui.

SOCIAL_ENGINEERING

Tipo de ameaça de engenharia social. As páginas de engenharia social têm a intenção falsa de agir em nome de terceiros com a intenção de confundir os espectadores e fazer com que realizem uma ação em que eles confiam apenas em um agente de verdade. Phishing é um tipo de engenharia social que engana o espectador para que ele execute a ação específica de fornecer informações, como credenciais de login.

Saiba mais aqui.

UNWANTED_SOFTWARE Tipo de ameaça de software indesejado. Software indesejado é qualquer software que não está em conformidade com os Princípios de software do Google, mas não é malware.
POTENTIALLY_HARMFUL_APPLICATION Tipo de ameaça a apps potencialmente nocivo conforme usado pelo Google Play Protect para a Play Store.

LikelySafeType

Tipos de sites provavelmente seguros.

Observe que SearchHashesResponse não contém intencionalmente LikelySafeType.

Enums
LIKELY_SAFE_TYPE_UNSPECIFIED Desconhecido.
GENERAL_BROWSING É provável que este site seja seguro o suficiente para a navegação geral. Isso também é conhecido como cache global.
CSD É provável que esse site seja seguro o suficiente para que não seja necessário executar modelos de detecção do lado do cliente ou verificações de proteção de senha.
DOWNLOAD Este site provavelmente é seguro o suficiente para que os downloads dele não precisem ser verificados.

HashLength

O tamanho dos hashes em uma lista de hashes.

Enums
HASH_LENGTH_UNSPECIFIED Duração não especificada. O servidor não vai retornar esse valor nas respostas ao cliente (no campo supportedHashLengths), mas o cliente tem permissão para enviar esse valor ao servidor (no campo desiredHashLength). Nesse caso, o servidor escolherá um valor automaticamente. Os clientes DEVEM deixar o servidor escolher um valor.
FOUR_BYTES Cada hash é um prefixo de quatro bytes.
EIGHT_BYTES Cada hash é um prefixo de oito bytes.
SIXTEEN_BYTES Cada hash é um prefixo de 16 bytes.
THIRTY_TWO_BYTES Cada hash é um hash completo de 32 bytes.

Métodos

get

Acessa o conteúdo mais recente de uma lista de hash.