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

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

Если это так, клиент ОБЯЗАН выполнить инкрементальное обновление, сначала удалив, а затем добавив данные.

compressedRemovals

object ( RiceDeltaEncoded32Bit )

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

minimumWaitDuration

string ( Duration format)

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

Длительность в секундах, содержащая до девяти знаков после запятой, заканчивающаяся на « s ». Пример: "3.5s" .

sha256Checksum

string ( bytes format)

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

Строка, закодированная в формате Base64.

metadata

object ( HashListMetadata )

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

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

object ( RiceDeltaEncoded32Bit )

Сложение 4 байтов.

additionsEightBytes

object ( RiceDeltaEncoded64Bit )

8-байтовые сложения.

additionsSixteenBytes

object ( RiceDeltaEncoded128Bit )

Добавление 16 байт.

additionsThirtyTwoBytes

object ( RiceDeltaEncoded256Bit )

Добавление 32 байт.

RiceDeltaEncoded32Bit

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

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

Историческая справка: кодировка Райса-дельта впервые была использована в версии 4 этого API. В версии 5 были внесены два существенных улучшения: во-первых, кодировка Райса-дельта теперь доступна для хеш-префиксов длиннее 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.

Хэш-списМетаданные

Метаданные, относящиеся к конкретному хеш-списку.

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 .

LikelySafeType

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

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

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

HashLength

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

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

Методы

get

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