REST Resource: hashList

Recurso: HashList

Una lista de hashes identificados por su nombre.

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

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

version

string (bytes format)

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

String codificada en base64.

partialUpdate

boolean

Cuando es verdadero, esta es una diferencia parcial que contiene adiciones y eliminaciones basadas en lo que el cliente ya tiene. Cuando es falso, esta es la lista de hash completa.

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

Cuando es verdadero, el cliente DEBE aplicar una actualización incremental aplicando eliminaciones y luego adiciones.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Es la versión codificada Rice-delta de los índices de eliminación. Dado que cada lista de hash definitivamente 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 hash. Si se omite o si se omite, los clientes DEBEN recuperarse de inmediato porque indica que el servidor tiene una actualización adicional que se enviará al cliente, pero no podría hacerlo debido a las restricciones que especifica el cliente.

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

metadata

object (HashListMetadata)

Metadatos sobre la lista de hashes No se propaga con el método hashList.get, sino con el método ListHashLists.

Campo de unión compressed_additions. La versión codificada de Rice-delta de las adiciones. Las longitudes del prefijo de hash de las adiciones son uniformes en todas las adiciones de la lista. Es el desired_hash_length que envía el cliente o un valor que elige el servidor si el cliente omitió ese campo. compressed_additions puede ser solo uno de los siguientes:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Las incorporaciones 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.

Campo de unión checksum. Esta es la suma de verificación para la lista ordenada de todos los hashes presentes en la base de datos después de aplicar la actualización proporcionada. Este es un campo "uno de" que permite varios algoritmos de hash. También es posible que el servidor omita este campo (en el caso de que no se hayan proporcionado actualizaciones) para indicar que el cliente debe usar la suma de verificación existente. Las direcciones (checksum) solo pueden ser una de las siguientes opciones:
sha256Checksum

string (bytes format)

Es la lista ordenada de todos los hashes, con la codificación hash de nuevo con SHA256.

String codificada en base64.

RiceDeltaEncoded32Bit

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

En términos generales, si ordenamos todas las entradas de manera lexicográfica, veremos que los bits de orden superior tienden a no cambiar con tanta frecuencia como los bits de orden inferior. Esto significa que, si también tomamos la diferencia adyacente entre las entradas, los bits de orden superior tienen una alta probabilidad de ser cero. Se aprovecha la alta probabilidad de cero mediante la elección de un cierto número de bits. Es probable que todos los bits más significativos sean cero, por lo que usamos una codificación unaria. Consulta 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 V5, se hicieron dos mejoras importantes: en primer lugar, la codificación Rice-delta ahora está disponible con prefijos hash de más de 4 bytes; en segundo lugar, los datos codificados ahora se tratan como big-endian para evitar un paso de clasificación costoso.

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

integer (uint32 format)

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

riceParameter

integer

El parámetro Golomb-Rice. Se garantiza que este parámetro será de entre 3 y 30, inclusive.

entriesCount

integer

El número de entradas que están codificadas 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)

Los deltas codificados que se codifican con el codificador Golomb-Rice.

String codificada en base64.

RiceDeltaEncoded64Bit

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

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

string

La primera entrada de 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

El parámetro Golomb-Rice. Se garantiza que este parámetro será de entre 35 y 62, inclusive.

entriesCount

integer

El número de entradas que están codificadas 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)

Los deltas codificados que se codifican con el codificador Golomb-Rice.

String codificada en base64.

RiceDeltaEncoded128Bit

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

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

string

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 cero.

firstValueLo

string (uint64 format)

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

riceParameter

integer

El parámetro Golomb-Rice. Se garantiza que este parámetro estará entre 99 y 126, inclusive.

entriesCount

integer

El número de entradas que están codificadas 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)

Los deltas codificados que se codifican con el codificador Golomb-Rice.

String codificada en base64.

RiceDeltaEncoded256Bit

Igual que RiceDeltaEncoded32Bit, excepto que esto 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

Los primeros 64 bits de la primera entrada en los datos codificados (hashes). Si el campo está vacío, los primeros 64 bits son iguales a cero.

firstValueSecondPart

string (uint64 format)

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

firstValueThirdPart

string (uint64 format)

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

firstValueFourthPart

string (uint64 format)

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 cero.

riceParameter

integer

El parámetro Golomb-Rice. Se garantiza que este parámetro estará entre 227 y 254, inclusive.

entriesCount

integer

El número de entradas que están codificadas 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)

Los deltas codificados que se codifican con el codificador Golomb-Rice.

String codificada en base64.

HashListMetadata

Metadatos sobre una lista de hash en particular

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

enum (ThreatType)

Lista sin ordenar. Si no está vacío, especifica que la lista de hash es un tipo de lista de amenazas y enumera el tipo de amenazas asociadas con los hash o sus prefijos en esta lista. Puede estar vacía 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 hash representa una lista de hashes probablemente seguros y enumera las formas en que se consideran probables. Este campo es mutuamente excluyente con el campo ThreatTypes.

mobileOptimized

boolean

Si esta lista está optimizada para dispositivos móviles (iOS y Android).

description

string

Es una descripción legible sobre esta lista. Escrita en inglés.

supportedHashLengths[]

enum (HashLength)

Las longitudes de hash admitidas para esta lista de hashes. Cada lista de hash admitiría al menos una longitud. Por lo tanto, este campo no estará vacío.

ThreatType

Tipos de amenazas.

Enumeradores
THREAT_TYPE_UNSPECIFIED Tipo de amenaza desconocido. Si el servidor la muestra, el cliente ignorará por completo el FullHashDetail que lo contiene.
MALWARE

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

Tipo de amenaza de ingeniería social. Las páginas de ingeniería social pretenden 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 verdadero de ese tercero. La suplantación de identidad (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 Tipo de amenaza de software no deseado. Se denomina software no deseado a cualquier software que no cumpla con los Principios de software de Google, pero que no sea software malicioso.
POTENTIALLY_HARMFUL_APPLICATION Tipo de amenaza de la aplicación potencialmente dañina que usa Google Play Protect para Play Store.

LikelySafeType

Tipos de sitios probablemente seguros.

Ten en cuenta que SearchHashesResponse no contiene LikelySafeType de forma intencional.

Enumeradores
LIKELY_SAFE_TYPE_UNSPECIFIED Desconocido.
GENERAL_BROWSING Es probable que este sitio sea lo suficientemente seguro para la navegación general. Esto 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 revisar las descargas.

HashLength

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

Enumeradores
HASH_LENGTH_UNSPECIFIED Longitud no especificada. El servidor no mostrará este valor en respuestas al cliente (en el campo supportedHashLengths), pero el cliente puede enviar este valor al servidor (en el campo desiredHashLength), en cuyo caso el servidor elegirá un valor automáticamente. Los clientes DEBEN dejar que el servidor elija un valor.
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

Obtener el contenido más reciente de una lista de hash