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, это частичный diff, содержащий добавления и удаления на основе того, что уже есть у клиента. Если false, это полный список хешей.

Если false, клиент ДОЛЖЕН удалить любую локально сохраненную версию для этого списка хэшей. Это означает, что либо версия, которой владеет клиент, серьезно устарела, либо данные клиента считаются поврежденными. Поле compressedRemovals будет пустым.

Если задано значение true, клиент ДОЛЖЕН применить инкрементное обновление, применив удаления, а затем добавления.

compressedRemovals

object ( RiceDeltaEncoded32Bit )

Версия индексов удаления, закодированная с помощью Rice-delta. Поскольку каждый хэш-список определенно содержит менее 2^32 записей, индексы рассматриваются как 32-битные целые числа и кодируются.

minimumWaitDuration

string ( Duration format)

Клиенты должны ждать по крайней мере это время, чтобы снова получить список хэшей. Если пропущено или равно нулю, клиенты ДОЛЖНЫ извлечь немедленно, поскольку это указывает на то, что у сервера есть дополнительное обновление для отправки клиенту, но это невозможно из-за ограничений, указанных клиентом.

Длительность в секундах с дробной частью до девяти цифр, заканчивающаяся на ' s '. Пример: "3.5s" .

sha256Checksum

string ( bytes format)

Отсортированный список всех хэшей, снова хэшированных с помощью SHA256. Это контрольная сумма для отсортированного списка всех хэшей, присутствующих в базе данных после применения предоставленного обновления. В случае, если обновления не были предоставлены, сервер пропустит это поле, чтобы указать, что клиент должен использовать существующую контрольную сумму.

Строка в кодировке base64.

metadata

object ( HashListMetadata )

Метаданные о списке хешей. Это не заполняется методом hashList.get , но заполняется методом ListHashLists .

Поле объединения compressed_additions . Версия дополнений, закодированная с помощью дельта-кода Райса. Длины префиксов хеша дополнений одинаковы для всех дополнений в списке. compressed_additions может быть только одним из следующих:
additionsFourBytes

object ( RiceDeltaEncoded32Bit )

4-байтовые дополнения.

additionsEightBytes

object ( RiceDeltaEncoded64Bit )

8-байтовые дополнения.

additionsSixteenBytes

object ( RiceDeltaEncoded128Bit )

16-байтовые дополнения.

additionsThirtyTwoBytes

object ( RiceDeltaEncoded256Bit )

32-байтовые дополнения.

RiceDeltaEncoded32Bit

Данные, закодированные по Райсу-Голомбу. Используется для хэшей или индексов удаления. Гарантируется, что каждый хэш или индекс здесь имеет одинаковую длину, и эта длина составляет ровно 32 бита.

Вообще говоря, если мы отсортируем все записи лексикографически, мы обнаружим, что биты более высокого порядка, как правило, не меняются так часто, как биты более низкого порядка. Это означает, что если мы также возьмем смежную разницу между записями, биты более высокого порядка имеют высокую вероятность быть нулевыми. Это использует эту высокую вероятность нуля, по сути выбирая определенное количество бит; все биты более значимые, чем это, вероятно, будут нулевыми, поэтому мы используем унарное кодирование. Смотрите поле riceParameter .

Историческая справка: кодировка Rice-delta впервые была использована в версии V4 этого API. В версии V5 были сделаны два существенных улучшения: во-первых, кодировка Rice-delta теперь доступна с префиксами хэша длиннее 4 байтов; во-вторых, закодированные данные теперь обрабатываются как big-endian, чтобы избежать дорогостоящего этапа сортировки.

JSON-представление
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Поля
firstValue

integer ( uint32 format)

Первая запись в закодированных данных (хэши или индексы) или, если был закодирован только один префикс хеша или индекс, значение этой записи. Если поле пустое, запись равна нулю.

riceParameter

integer

Параметр Голомба-Райса. Этот параметр гарантированно находится в диапазоне от 3 до 30 включительно.

entriesCount

integer

Количество записей, которые дельта-кодированы в закодированных данных. Если было закодировано только одно целое число, это будет ноль, и одно значение будет сохранено в firstValue .

encodedData

string ( bytes format)

Закодированные дельты, закодированные с помощью кодера Голомба-Райса.

Строка в кодировке base64.

RiceDeltaEncoded64Bit

То же, что и RiceDeltaEncoded32Bit за исключением того, что кодирует 64-битные числа.

JSON-представление
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Поля
firstValue

string

Первая запись в закодированных данных (хэшах) или, если был закодирован только один префикс хеша, значение этой записи. Если поле пустое, запись равна нулю.

riceParameter

integer

Параметр Голомба-Райса. Этот параметр гарантированно находится в диапазоне от 35 до 62 включительно.

entriesCount

integer

Количество записей, которые дельта-кодированы в закодированных данных. Если было закодировано только одно целое число, это будет ноль, и одно значение будет сохранено в firstValue .

encodedData

string ( bytes format)

Закодированные дельты, закодированные с помощью кодера Голомба-Райса.

Строка в кодировке 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

Параметр Голомба-Райса. Этот параметр гарантированно находится в диапазоне от 99 до 126 включительно.

entriesCount

integer

Количество записей, которые дельта-кодированы в закодированных данных. Если было закодировано только одно целое число, это будет ноль, и одно значение будет сохранено в firstValue .

encodedData

string ( bytes format)

Закодированные дельты, закодированные с помощью кодера Голомба-Райса.

Строка в кодировке 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

Параметр Голомба-Райса. Этот параметр гарантированно находится в диапазоне от 227 до 254 включительно.

entriesCount

integer

Количество записей, которые дельта-кодированы в закодированных данных. Если было закодировано только одно целое число, это будет ноль, и одно значение будет сохранено в firstValue .

encodedData

string ( bytes format)

Закодированные дельты, закодированные с помощью кодера Голомба-Райса.

Строка в кодировке base64.

HashListMetadata

Метаданные о конкретном списке хэшей.

JSON-представление
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "description": string,
  "hashLength": enum (HashLength)
}
Поля
threatTypes[]

enum ( ThreatType )

Неупорядоченный список. Если не пустой, это указывает, что список хешей является своего рода списком угроз, и это перечисляет виды угроз, связанных с хэшами или префиксами хешей в этом списке хешей. Может быть пустым, если запись не представляет угрозы, т. е. в случае, если она представляет вероятный безопасный тип.

likelySafeTypes[]

enum ( LikelySafeType )

Неупорядоченный список. Если не пусто, это указывает, что список хешей представляет собой список вероятных безопасных хешей, и это перечисляет способы, которыми они считаются вероятно безопасными. Это поле является взаимоисключающим с полем threatTypes.

description

string

Человекочитаемое описание этого списка. Написано на английском языке.

hashLength

enum ( HashLength )

Поддерживаемая длина хеша для этого списка хешей. Каждый список хешей будет поддерживать ровно одну длину. Если для того же набора типов угроз или безопасных типов вводится другая длина хеша, она будет введена как отдельный список с отдельным именем и соответствующим набором длины хеша.

Тип угрозы

Виды угроз.

Перечисления
THREAT_TYPE_UNSPECIFIED Неизвестный тип угрозы. Если это возвращено сервером, клиент должен полностью проигнорировать прилагаемый FullHashDetail .
MALWARE

Тип угрозы вредоносного ПО. Вредоносное ПО — это любое программное обеспечение или мобильное приложение, специально разработанное для нанесения вреда компьютеру, мобильному устройству, программному обеспечению, которое оно запускает, или его пользователям. Вредоносное ПО демонстрирует вредоносное поведение, которое может включать установку программного обеспечения без согласия пользователя и установку вредоносного программного обеспечения, такого как вирусы.

Более подробную информацию можно найти здесь .

SOCIAL_ENGINEERING

Тип угрозы социальной инженерии. Страницы социальной инженерии ложно заявляют, что действуют от имени третьей стороны с целью сбить зрителей с толку и заставить их выполнить действие, которому они доверяют только настоящему агенту этой третьей стороны. Фишинг — это тип социальной инженерии, который обманом заставляет зрителей выполнить определенное действие по предоставлению информации, например, учетных данных для входа.

Более подробную информацию можно найти здесь .

UNWANTED_SOFTWARE Нежелательное ПО — тип угрозы. Нежелательное ПО — это любое ПО, которое не соответствует принципам Google в отношении ПО, но не является вредоносным ПО.
POTENTIALLY_HARMFUL_APPLICATION Потенциально опасный тип угрозы приложения , используемый Google Play Protect для Play Store .

ВероятноБезопасныйТип

Типы потенциально безопасных сайтов.

Обратите внимание, что SearchHashesResponse намеренно не содержит LikelySafeType .

Перечисления
LIKELY_SAFE_TYPE_UNSPECIFIED Неизвестный.
GENERAL_BROWSING Этот сайт, скорее всего, достаточно безопасен для общего просмотра. Это также известно как глобальный кэш.
CSD Этот сайт, скорее всего, достаточно безопасен, поэтому нет необходимости запускать модели обнаружения на стороне клиента или проверки защиты паролем.
DOWNLOAD Вероятно, этот сайт достаточно безопасен, поэтому нет необходимости проверять загрузки с него.

HashLength

Длина хешей в списке хешей.

Перечисления
HASH_LENGTH_UNSPECIFIED Длина не указана.
FOUR_BYTES Каждый хеш представляет собой четырехбайтовый префикс.
EIGHT_BYTES Каждый хеш представляет собой восьмибайтовый префикс.
SIXTEEN_BYTES Каждый хеш представляет собой шестнадцатибайтовый префикс.
THIRTY_TWO_BYTES Каждый хеш представляет собой полный хеш размером тридцать два байта.

Методы

get

Получить последнее содержимое списка хешей.