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,
  "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.
}
Campos
name

string

O nome da lista de hashes. O cache global também é apenas uma lista de hashes e pode ser referenciado aqui.

version

string (bytes format)

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

Uma string codificada em base64.

partialUpdate

boolean

Quando verdadeiro, é uma diferença parcial que contém adições e exclusões com base no que o cliente já tem. Quando é falso, é a lista de hashes completa.

Quando é falso, o cliente PRECISA excluir qualquer versão armazenada localmente para essa lista de hashes. Isso significa que a versão do cliente está desatualizada ou que os dados do cliente estão corrompidos. O campo compressedRemovals vai ficar vazio.

Quando verdadeiro, o cliente PRECISA aplicar uma atualização incremental removendo e adicionando itens.

compressedRemovals

object (RiceDeltaEncoded32Bit)

A versão codificada em delta-Rice dos índices de remoção. Como cada lista de hashes 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 hashes novamente. Se for omitido ou zero, os clientes PRECISAM buscar imediatamente, porque isso indica que o servidor tem uma atualização adicional a ser enviada ao cliente, mas não pode devido às restrições especificadas pelo cliente.

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

sha256Checksum

string (bytes format)

A lista classificada de todos os hashes, hash novamente com SHA256. 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. Se nenhuma atualização for fornecida, o servidor vai omitir esse campo para indicar que o cliente precisa usar a soma de verificação atual.

Uma string codificada em base64.

metadata

object (HashListMetadata)

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

Campo de união compressed_additions. A versão codificada Rice-delta de adições. As extensões do 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 tiver omitido 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.

RiceDeltaEncoded32Bit

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

De modo geral, se você classificar todas as entradas lexicograficamente, vai descobrir que os bits de ordem mais alta tendem a não mudar com a mesma frequência que os de ordem mais baixa. Isso significa que, se também considerarmos a diferença adjacente entre as entradas, os bits de ordem mais alta têm uma alta probabilidade de serem zero. Isso aproveita essa alta probabilidade de zero escolhendo essencialmente um determinado número de bits. Todos os bits mais significativos do que esse valor provavelmente serão zero, então usamos a codificação unária. Consulte o campo riceParameter.

Observação histórica: a codificação Rice-delta foi usada pela primeira vez na versão 4 desta API. Na V5, duas melhorias significativas foram feitas: primeiro, a codificação Rice-delta agora está disponível com prefixos de hash maiores que 4 bytes. Segundo, os dados codificados agora são tratados como big-endian para evitar uma etapa de classificação custosa.

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 ou índice 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 precisa estar entre 3 e 30.

entriesCount

integer

O número de entradas codificadas 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)

As deltas codificadas usando o codificador Golomb-Rice.

Uma string codificada em base64.

RiceDeltaEncoded64Bit

Igual a RiceDeltaEncoded32Bit, exceto por codificar 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 foi codificado, o valor dessa entrada. Se o campo estiver vazio, a entrada será zero.

riceParameter

integer

O parâmetro Golomb-Rice. Esse parâmetro precisa estar entre 35 e 62.

entriesCount

integer

O número de entradas codificadas 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)

As deltas codificadas usando o codificador Golomb-Rice.

Uma string codificada em base64.

RiceDeltaEncoded128Bit

Igual a RiceDeltaEncoded32Bit, exceto que 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 superiores 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. Esse parâmetro precisa estar entre 99 e 126.

entriesCount

integer

O número de entradas codificadas 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)

As deltas codificadas usando o codificador Golomb-Rice.

Uma string codificada em base64.

RiceDeltaEncoded256Bit

Igual a RiceDeltaEncoded32Bit, exceto por codificar 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 bits de 65 a 128 da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os bits de 65 a 128 serão todos zero.

firstValueThirdPart

string (uint64 format)

Os bits de 129 a 192 da primeira entrada nos dados codificados (hashes). Se o campo estiver vazio, os bits de 129 a 192 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 precisa estar entre 227 e 254.

entriesCount

integer

O número de entradas codificadas 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)

As deltas codificadas 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)
  ],
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ],
  "hashLength": enum (HashLength)
}
Campos
threatTypes[]

enum (ThreatType)

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

likelySafeTypes[]

enum (LikelySafeType)

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

description

string

Uma descrição legível por humanos sobre essa lista. Escrita em inglês.

supportedHashLengths[]
(deprecated)

enum (HashLength)

As comprimentos de hash compatíveis para essa lista de hashes. Cada lista de hashes oferece suporte a pelo menos um comprimento. Portanto, esse campo não vai ficar vazio.

hashLength

enum (HashLength)

O comprimento do hash aceito para essa lista de hashes. Cada lista de hashes oferece suporte a exatamente um comprimento. Se um comprimento de hash diferente for introduzido para o mesmo conjunto de tipos de ameaça ou de segurança, ele será introduzido como uma lista separada com um nome distinto e o respectivo comprimento de hash definido.

ThreatType

Tipos de ameaças.

Enums
THREAT_TYPE_UNSPECIFIED Tipo de ameaça desconhecido. Se isso for retornado pelo servidor, o cliente vai ignorar completamente o FullHashDetail que o contém.
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 fingem agir em nome de terceiros com a intenção de confundir os espectadores para que realizem uma ação em que confiariam apenas em um agente real desse terceiro. O phishing é um tipo de engenharia social que engana o usuário para que ele realize 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 adere aos Princípios de Software do Google, mas não é malware.
POTENTIALLY_HARMFUL_APPLICATION Tipo de ameaça de app potencialmente nocivo usado pelo Google Play Protect para a Play Store.

LikelySafeType

Tipos de sites provavelmente seguros.

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

Enums
LIKELY_SAFE_TYPE_UNSPECIFIED Desconhecido.
GENERAL_BROWSING Esse site provavelmente é seguro para 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 por senha.
DOWNLOAD Esse site provavelmente é seguro o suficiente para que os downloads dele não precisem ser verificados.

HashLength

O comprimento dos hashes em uma lista de hashes.

Enums
HASH_LENGTH_UNSPECIFIED Comprimento não especificado. O servidor não vai retornar esse valor nas respostas ao cliente (no campo supportedHashLengths), mas o cliente pode enviar esse valor ao servidor (no campo desiredHashLength). Nesse caso, o servidor vai escolher um valor automaticamente. Os clientes precisam 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

Receba o conteúdo mais recente de uma lista de hashes.