REST Resource: hashList

Recurso: HashList

Es una lista de hashes identificados por su nombre.

Representación 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

Es el nombre de la lista de hashes. Ten en cuenta que la caché global también es solo una lista de hash y se puede consultar aquí.

version

string (bytes format)

Es la versión de la lista de hashes. El cliente NO DEBE manipular esos bytes.

String codificada en base64.

partialUpdate

boolean

Cuando es verdadero, se trata de un diff parcial que contiene adiciones y eliminaciones según lo que ya tiene el cliente. Cuando es falso, esta es la lista de hash completa.

Si es falso, el cliente DEBE borrar cualquier versión almacenada localmente de esta lista de hashes. Esto significa que la versión que tiene el cliente está muy desactualizada o que se cree que los datos del cliente están dañados. El campo compressedRemovals estará vacío.

Cuando es verdadero, el cliente DEBE aplicar una actualización incremental quitando elementos y, luego, agregando otros.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Es la versión codificada con Rice-delta de los índices de eliminación. Dado que cada lista de hash tiene menos de 2^32 entradas, los índices se tratan como números enteros de 32 bits y se codifican.

minimumWaitDuration

string (Duration format)

Los clientes deben esperar al menos este tiempo para volver a obtener la lista de hashes. Si se omite o es cero, los clientes DEBEN recuperar los datos de inmediato porque indica que el servidor tiene una actualización adicional para enviar al cliente, pero no pudo hacerlo debido a las restricciones especificadas por el cliente.

Una duración en segundos con hasta nueve dígitos decimales, que terminan en “s”. Ejemplo: "3.5s".

sha256Checksum

string (bytes format)

Es la lista ordenada de todos los hashes, con un nuevo hash SHA256. Es la suma de verificación de la lista ordenada de todos los hashes presentes en la base de datos después de aplicar la actualización proporcionada. En el caso de que no se hayan proporcionado actualizaciones, el servidor omitirá este campo para indicar que el cliente debe usar la suma de verificación existente.

String codificada en base64.

metadata

object (HashListMetadata)

Son los metadatos sobre la lista de hashes. El método hashList.get no propaga este campo, pero el método ListHashLists sí lo hace.

Campo de unión compressed_additions. Es la versión codificada con Rice-delta de las adiciones. Las longitudes de los prefijos hash de los elementos agregados son uniformes en todos los elementos agregados de la lista. compressed_additions puede ser solo uno de los parámetros siguientes:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Las adiciones de 4 bytes.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Las adiciones de 8 bytes

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Las adiciones de 16 bytes.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

Las adiciones de 32 bytes.

RiceDeltaEncoded32Bit

Son los datos codificados de Rice-Golomb. Se usa para los hashes o los índices de eliminación. Se garantiza que cada hash o índice aquí tiene la misma longitud, y esta longitud es exactamente de 32 bits.

En general, si ordenamos todas las entradas de forma lexicográfica, observaremos que los bits de orden superior no suelen cambiar con tanta frecuencia como los bits de orden inferior. Esto significa que, si también consideramos la diferencia adyacente entre las entradas, los bits de orden superior tienen una alta probabilidad de ser cero. Esto aprovecha la alta probabilidad de cero eligiendo esencialmente una cierta cantidad de bits; es probable que todos los bits más significativos que este sean cero, por lo que usamos la codificación unaria. Observa el campo riceParameter.

Nota histórica: La codificación Rice-delta se usó por primera vez en la versión 4 de esta API. En la versión 5, se realizaron dos mejoras significativas: en primer lugar, la codificación Rice-delta ahora está disponible con prefijos de hash de más de 4 bytes; en segundo lugar, los datos codificados ahora se tratan como big-endian para evitar un costoso paso de clasificación.

Representación JSON
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValue

integer (uint32 format)

Es la primera entrada en los datos codificados (hashes o índices) o, si solo se codificó un prefijo de hash o un índice, el valor de esa entrada. Si el campo está vacío, la entrada es cero.

riceParameter

integer

Es el parámetro de Golomb-Rice. Se garantiza que este parámetro se encuentra entre 3 y 30, inclusive.

entriesCount

integer

Es la cantidad de entradas que se codifican con codificación delta en los datos codificados. Si solo se codificó un número entero, este será cero y el valor único se almacenará en firstValue.

encodedData

string (bytes format)

Son los deltas codificados con el codificador de Golomb-Rice.

String codificada en base64.

RiceDeltaEncoded64Bit

Es igual que RiceDeltaEncoded32Bit, excepto que codifica números de 64 bits.

Representación JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValue

string

Es la primera entrada en los datos codificados (hashes) o, si solo se codificó un prefijo de hash, el valor de esa entrada. Si el campo está vacío, la entrada es cero.

riceParameter

integer

Es el parámetro de Golomb-Rice. Se garantiza que este parámetro se encuentra entre 35 y 62, inclusive.

entriesCount

integer

Es la cantidad de entradas que se codifican con codificación delta en los datos codificados. Si solo se codificó un número entero, este será cero y el valor único se almacenará en firstValue.

encodedData

string (bytes format)

Son los deltas codificados con el codificador de Golomb-Rice.

String codificada en base64.

RiceDeltaEncoded128Bit

Es igual que RiceDeltaEncoded32Bit, excepto que codifica números de 128 bits.

Representación JSON
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValueHi

string

Son los 64 bits superiores de la primera entrada en los datos codificados (hashes). Si el campo está vacío, los 64 bits superiores son todos ceros.

firstValueLo

string (uint64 format)

Son los 64 bits inferiores de la primera entrada en los datos codificados (hashes). Si el campo está vacío, los 64 bits inferiores son todos cero.

riceParameter

integer

Es el parámetro de Golomb-Rice. Se garantiza que este parámetro se encuentra entre 99 y 126, inclusive.

entriesCount

integer

Es la cantidad de entradas que se codifican con codificación delta en los datos codificados. Si solo se codificó un número entero, este será cero y el valor único se almacenará en firstValue.

encodedData

string (bytes format)

Son los deltas codificados con el codificador de Golomb-Rice.

String codificada en base64.

RiceDeltaEncoded256Bit

Es igual que RiceDeltaEncoded32Bit, excepto que codifica números de 256 bits.

Representación JSON
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Campos
firstValueFirstPart

string

Son los primeros 64 bits de la primera entrada de los datos codificados (hashes). Si el campo está vacío, los primeros 64 bits son todos ceros.

firstValueSecondPart

string (uint64 format)

Bits del 65 al 128 de la primera entrada en los datos codificados (hashes). Si el campo está vacío, los bits del 65 al 128 son todos cero.

firstValueThirdPart

string (uint64 format)

Bits del 129 al 192 de la primera entrada en los datos codificados (hashes). Si el campo está vacío, los bits del 129 al 192 son todos cero.

firstValueFourthPart

string (uint64 format)

Son los últimos 64 bits de la primera entrada en los datos codificados (hashes). Si el campo está vacío, los últimos 64 bits son todos ceros.

riceParameter

integer

Es el parámetro de Golomb-Rice. Se garantiza que este parámetro se encuentra entre 227 y 254, inclusive.

entriesCount

integer

Es la cantidad de entradas que se codifican con codificación delta en los datos codificados. Si solo se codificó un número entero, este será cero y el valor único se almacenará en firstValue.

encodedData

string (bytes format)

Son los deltas codificados con el codificador de Golomb-Rice.

String codificada en base64.

HashListMetadata

Son los metadatos sobre una lista de hashes en particular.

Representación JSON
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "description": string,
  "hashLength": enum (HashLength)
}
Campos
threatTypes[]

enum (ThreatType)

Lista sin ordenar. Si no está vacío, especifica que la lista de hashes es un tipo de lista de amenazas y enumera el tipo de amenazas asociadas con los hashes o los prefijos de hash en esta lista. Puede estar vacío si la entrada no representa una amenaza, es decir, en el caso de que represente un tipo probablemente seguro.

likelySafeTypes[]

enum (LikelySafeType)

Lista sin ordenar. Si no está vacío, especifica que la lista de hashes representa una lista de hashes probablemente seguros y enumera las formas en que se consideran probablemente seguros. Este campo se excluye mutuamente con el campo threatTypes.

description

string

Es una descripción legible sobre esta lista. Está escrito en inglés.

hashLength

enum (HashLength)

Es la longitud de hash admitida para esta lista de hashes. Cada lista de hash admitirá exactamente una longitud. Si se introduce una longitud de hash diferente para el mismo conjunto de tipos de amenazas o tipos seguros, se introducirá como una lista separada con un nombre distinto y un conjunto de longitud de hash respectivo.

ThreatType

Tipos de amenazas

Enums
THREAT_TYPE_UNSPECIFIED Tipo de amenaza desconocido. Si el servidor devuelve este valor, el cliente debe ignorar el objeto FullHashDetail que lo contiene.
MALWARE

Es el tipo de amenaza de software malicioso. Un software malicioso es cualquier software o aplicación que se diseña específicamente para dañar una computadora, un dispositivo móvil, el software que lo ejecuta o a los usuarios. Su objetivo es llevar a cabo una acción malintencionada, como instalar software dañino (por ejemplo, virus) o programas sin el consentimiento del usuario.

Puedes obtener más información en este vínculo.

SOCIAL_ENGINEERING

Es el tipo de amenaza de ingeniería social. Las páginas de ingeniería social pretenden falsamente actuar en nombre de un tercero con la intención de confundir a los usuarios para que realicen una acción con la que solo confiarían en un agente real de ese tercero. El phishing es un tipo de ingeniería social que engaña al usuario para que realice la acción específica de proporcionar información, como credenciales de acceso.

Puedes obtener más información en este vínculo.

UNWANTED_SOFTWARE Es el tipo de amenaza de software no deseado. El software no deseado es cualquier software que no cumple con los Principios de Software de Google, pero no es software malicioso.
POTENTIALLY_HARMFUL_APPLICATION Es el tipo de amenaza de aplicación potencialmente dañina que usa Google Play Protect para Play Store.

LikelySafeType

Tipos de sitios que probablemente sean seguros.

Ten en cuenta que SearchHashesResponse intencionalmente no contiene LikelySafeType.

Enums
LIKELY_SAFE_TYPE_UNSPECIFIED Desconocido.
GENERAL_BROWSING Es probable que este sitio sea lo suficientemente seguro para la navegación general. También se conoce como caché global.
CSD Es probable que este sitio sea lo suficientemente seguro como para que no sea necesario ejecutar modelos de detección del cliente ni verificaciones de protección de contraseñas.
DOWNLOAD Es probable que este sitio sea lo suficientemente seguro como para que no sea necesario verificar las descargas.

HashLength

Es la longitud de los hashes en una lista de hashes.

Enums
HASH_LENGTH_UNSPECIFIED Longitud sin especificar.
FOUR_BYTES Cada hash es un prefijo de cuatro bytes.
EIGHT_BYTES Cada hash es un prefijo de ocho bytes.
SIXTEEN_BYTES Cada hash es un prefijo de dieciséis bytes.
THIRTY_TWO_BYTES Cada hash es un hash completo de treinta y dos bytes.

Métodos

get

Obtiene el contenido más reciente de una lista de hash.