REST Resource: hashList

Ресурс: Хэшлист

Список хэшей, идентифицируемых по имени.

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.
}
Поля
name

string

Имя хеш-списка. Обратите внимание, что глобальный кэш — это также просто хэш-список, на который можно ссылаться здесь.

version

string ( bytes format)

Версия хэш-списка. Клиент НЕ ДОЛЖЕН манипулировать этими байтами.

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

partialUpdate

boolean

Если это правда, это частичная разница, содержащая дополнения и удаления на основе того, что уже есть у клиента. Если значение false, это полный хэш-список.

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

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

compressedRemovals

object ( RiceDeltaEncoded32Bit )

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

minimumWaitDuration

string ( Duration format)

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

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

metadata

object ( HashListMetadata )

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

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

object ( RiceDeltaEncoded32Bit )

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

additionsEightBytes

object ( RiceDeltaEncoded64Bit )

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

additionsSixteenBytes

object ( RiceDeltaEncoded128Bit )

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

additionsThirtyTwoBytes

object ( RiceDeltaEncoded256Bit )

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

checksum сумма поля объединения. Это контрольная сумма отсортированного списка всех хешей, присутствующих в базе данных после применения предоставленного обновления. Это поле «oneof», позволяющее использовать несколько алгоритмов хеширования. Сервер также может пропустить это поле (в случае, если обновления не были предоставлены), чтобы указать, что клиент должен использовать существующую контрольную сумму. checksum может быть только одной из следующих:
sha256Checksum

string ( bytes format)

Отсортированный список всех хэшей, снова хешированный с помощью SHA256.

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

РайсDeltaEncoded32Bit

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

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

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

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.

РайсDeltaEncoded64Bit

То же, что и 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.

РайсDeltaEncoded128Bit

То же, что и 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.

РайсDeltaEncoded256Bit

То же, что и 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.

HashListМетаданные

Метаданные об определенном хеш-списке.

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

enum ( ThreatType )

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

likelySafeTypes[]

enum ( LikelySafeType )

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

mobileOptimized

boolean

Оптимизирован ли этот список для мобильных устройств (Android и iOS).

description

string

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

supportedHashLengths[]

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 Этот сайт, вероятно, достаточно безопасен, поэтому нет необходимости проверять загрузки с него.

длина хеша

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

Перечисления
HASH_LENGTH_UNSPECIFIED Неопределенная длина. Сервер не будет возвращать это значение в ответах клиенту (в поле supportedHashLengths ), но клиенту разрешено отправлять это значение на сервер (в поле desiredHashLength ), и в этом случае сервер выберет значение автоматически. Клиенты ДОЛЖНЫ позволить серверу выбрать значение.
FOUR_BYTES Каждый хеш представляет собой четырехбайтовый префикс.
EIGHT_BYTES Каждый хэш представляет собой восьмибайтовый префикс.
SIXTEEN_BYTES Каждый хэш представляет собой шестнадцатибайтовый префикс.
THIRTY_TWO_BYTES Каждый хеш представляет собой полный хеш длиной тридцать два байта.

Методы

get

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