REST Resource: hashList

Resource: HashList

Daftar hash yang diidentifikasi berdasarkan namanya.

Representasi 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.
}
Kolom
name

string

Nama daftar hash. Perlu diperhatikan bahwa Global Cache juga hanyalah daftar hash dan dapat dirujuk di sini.

version

string (bytes format)

Versi daftar hash. Klien TIDAK BOLEH memanipulasi byte tersebut.

String berenkode base64.

partialUpdate

boolean

Jika true (benar), ini adalah perbedaan parsial yang berisi penambahan dan penghapusan berdasarkan apa yang sudah dimiliki klien. Jika {i>false<i}, ini adalah daftar {i>hash<i} yang lengkap.

Jika salah (false), klien HARUS menghapus versi yang disimpan secara lokal untuk daftar hash ini. Artinya, versi yang dimiliki oleh klien benar-benar sudah usang atau data klien diyakini telah rusak. Kolom compressedRemovals akan kosong.

Jika benar, klien HARUS menerapkan update inkremental dengan menerapkan penghapusan, lalu penambahan.

compressedRemovals

object (RiceDeltaEncoded32Bit)

Versi indeks penghapusan yang dienkode dengan Rice-delta. Karena setiap daftar hash pasti memiliki kurang dari 2^32 entri, indeks diperlakukan sebagai bilangan bulat 32-bit dan dikodekan.

minimumWaitDuration

string (Duration format)

Klien harus menunggu setidaknya selama ini untuk mendapatkan daftar hash lagi. Jika dihilangkan atau nol, klien HARUS segera mengambil karena hal ini menunjukkan bahwa server memiliki update tambahan untuk dikirim ke klien, tetapi tidak bisa karena batasan yang ditentukan klien.

Durasi dalam detik dengan maksimal sembilan digit pecahan, yang diakhiri dengan 's'. Contoh: "3.5s".

metadata

object (HashListMetadata)

Metadata tentang daftar hash. Kolom ini tidak diisi oleh metode hashList.get, tetapi diisi oleh metode ListHashLists.

Kolom union compressed_additions. Versi penambahan yang dienkode dengan Rice-delta. Panjang penambahan awalan hash seragam di semua penambahan dalam daftar. Ini bisa desired_hash_length yang dikirim oleh klien atau nilai yang dipilih oleh server jika klien menghilangkan kolom tersebut. compressed_additions hanya dapat berupa salah satu dari yang berikut:
additionsFourBytes

object (RiceDeltaEncoded32Bit)

Penambahan 4 byte.

additionsEightBytes

object (RiceDeltaEncoded64Bit)

Penambahan 8 byte.

additionsSixteenBytes

object (RiceDeltaEncoded128Bit)

Penambahan 16 byte.

additionsThirtyTwoBytes

object (RiceDeltaEncoded256Bit)

Penambahan 32 byte.

Kolom union checksum. Ini adalah {i>checksum<i} untuk daftar yang diurutkan dari semua {i>hash<i} yang ada dalam {i>database<i} setelah menerapkan pembaruan yang disediakan. Ini adalah "salah satu" isian untuk memungkinkan beberapa algoritma {i>hashing<i}. Server juga dapat menghilangkan kolom ini (jika tidak ada update yang diberikan) untuk menunjukkan bahwa klien harus menggunakan checksum yang ada. checksum hanya dapat berupa salah satu dari berikut:
sha256Checksum

string (bytes format)

Daftar yang diurutkan dari semua hash, yang di-hash lagi dengan SHA256.

String berenkode base64.

RiceDeltaEncoded32Bit

Data yang dienkode ke Rice-Golomb. Digunakan untuk indeks hash atau penghapusan. Setiap {i>hash<i} atau indeks di sini dijamin memiliki panjang yang sama, dan panjangnya tepat 32 bit.

Secara umum, jika kita mengurutkan semua entri secara leksikografis, kita akan menemukan bahwa bit urutan yang lebih tinggi cenderung tidak berubah sesering bit dengan urutan yang lebih rendah. Ini berarti bahwa jika kita juga mengambil selisih antar entri yang berdekatan, bit urutan yang lebih tinggi memiliki probabilitas tinggi untuk menjadi nol. Hal ini mengeksploitasi probabilitas nol yang tinggi ini dengan pada dasarnya memilih jumlah bit tertentu; bit yang lebih signifikan dari angka ini cenderung nol jadi kita menggunakan pengkodean {i>unary<i}. Lihat kolom riceParameter.

Catatan historis: encoding Rice-delta pertama kali digunakan dalam V4 API ini. Di V5, dua peningkatan signifikan dilakukan: pertama, encoding Rice-delta sekarang tersedia dengan awalan hash yang lebih panjang dari 4 byte; kedua, data yang dienkode kini diperlakukan sebagai big-endian untuk menghindari langkah penyortiran yang mahal.

Representasi JSON
{
  "firstValue": integer,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Kolom
firstValue

integer (uint32 format)

Entri pertama dalam data yang dienkode (hash atau indeks), atau, jika hanya awalan atau indeks hash tunggal yang dienkode, nilai entri tersebut. Jika kolom kosong, entrinya adalah nol.

riceParameter

integer

Parameter Golomb-Rice. Parameter ini dijamin antara 3 dan 30, inklusif.

entriesCount

integer

Jumlah entri yang dienkode dengan delta dalam data yang dienkode. Jika hanya satu bilangan bulat yang dienkode, nilainya akan menjadi nol dan nilai tunggal tersebut akan disimpan di firstValue.

encodedData

string (bytes format)

Delta yang dienkode yang dienkode menggunakan coder Golomb-Rice.

String berenkode base64.

RiceDeltaEncoded64Bit

Sama seperti RiceDeltaEncoded32Bit, tetapi metode ini mengenkode angka 64-bit.

Representasi JSON
{
  "firstValue": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Kolom
firstValue

string

Entri pertama dalam data yang dienkode (hash), atau, jika hanya satu awalan hash yang dienkode, nilai entri tersebut. Jika kolom kosong, entrinya adalah nol.

riceParameter

integer

Parameter Golomb-Rice. Parameter ini dijamin antara 35 dan 62, inklusif.

entriesCount

integer

Jumlah entri yang dienkode dengan delta dalam data yang dienkode. Jika hanya satu bilangan bulat yang dienkode, nilainya akan menjadi nol dan nilai tunggal tersebut akan disimpan di firstValue.

encodedData

string (bytes format)

Delta yang dienkode yang dienkode menggunakan coder Golomb-Rice.

String berenkode base64.

RiceDeltaEncoded128Bit

Sama seperti RiceDeltaEncoded32Bit, tetapi metode ini mengenkode angka 128-bit.

Representasi JSON
{
  "firstValueHi": string,
  "firstValueLo": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Kolom
firstValueHi

string

64 bit atas dari entri pertama dalam data yang dienkode (hash). Jika kolom kosong, 64 bit di atas semuanya bernilai nol.

firstValueLo

string (uint64 format)

64 bit yang lebih rendah dari entri pertama dalam data yang dienkode (hash). Jika kolom itu kosong, 64 bit yang lebih rendah semuanya nol.

riceParameter

integer

Parameter Golomb-Rice. Parameter ini dijamin antara 99 dan 126, inklusif.

entriesCount

integer

Jumlah entri yang dienkode dengan delta dalam data yang dienkode. Jika hanya satu bilangan bulat yang dienkode, nilainya akan menjadi nol dan nilai tunggal tersebut akan disimpan di firstValue.

encodedData

string (bytes format)

Delta yang dienkode yang dienkode menggunakan coder Golomb-Rice.

String berenkode base64.

RiceDeltaEncoded256Bit

Sama seperti RiceDeltaEncoded32Bit, tetapi kode ini mengenkode angka 256-bit.

Representasi JSON
{
  "firstValueFirstPart": string,
  "firstValueSecondPart": string,
  "firstValueThirdPart": string,
  "firstValueFourthPart": string,
  "riceParameter": integer,
  "entriesCount": integer,
  "encodedData": string
}
Kolom
firstValueFirstPart

string

64 bit pertama dari entri pertama dalam data yang dienkode (hash). Jika kolom tersebut kosong, 64 bit pertama semuanya bernilai nol.

firstValueSecondPart

string (uint64 format)

65 hingga 128 bit dari entri pertama dalam data yang dienkode (hash). Jika {i>field<i} tersebut kosong, bit 65 sampai 128 akan bernilai nol.

firstValueThirdPart

string (uint64 format)

Bit 129 hingga 192 dari entri pertama dalam data yang dienkode (hash). Jika {i>field<i} tersebut kosong, bit 129 sampai 192 akan bernilai nol.

firstValueFourthPart

string (uint64 format)

64 bit terakhir dari entri pertama dalam data yang dienkode (hash). Jika kolom kosong, 64 bit terakhir semuanya nol.

riceParameter

integer

Parameter Golomb-Rice. Parameter ini dijamin antara 227 dan 254, inklusif.

entriesCount

integer

Jumlah entri yang dienkode dengan delta dalam data yang dienkode. Jika hanya satu bilangan bulat yang dienkode, nilainya akan menjadi nol dan nilai tunggal tersebut akan disimpan di firstValue.

encodedData

string (bytes format)

Delta yang dienkode yang dienkode menggunakan coder Golomb-Rice.

String berenkode base64.

HashListMetadata

Metadata tentang daftar hash tertentu.

Representasi JSON
{
  "threatTypes": [
    enum (ThreatType)
  ],
  "likelySafeTypes": [
    enum (LikelySafeType)
  ],
  "mobileOptimized": boolean,
  "description": string,
  "supportedHashLengths": [
    enum (HashLength)
  ]
}
Kolom
threatTypes[]

enum (ThreatType)

Daftar yang tidak diurutkan. Jika tidak kosong, tindakan ini akan menentukan bahwa daftar hash adalah jenis daftar ancaman, dan ini menghitung jenis ancaman yang terkait dengan hash atau awalan hash dalam daftar hash ini. Boleh kosong jika entri tidak mewakili ancaman, yaitu jika entri tersebut mewakili jenis yang kemungkinan aman.

likelySafeTypes[]

enum (LikelySafeType)

Daftar yang tidak diurutkan. Jika tidak kosong, hal ini menentukan bahwa daftar hash mewakili daftar kemungkinan hash yang aman, dan ini menguraikan cara yang dianggap aman. Kolom ini sama-sama bersifat eksklusif dengan kolom ancamanTypes.

mobileOptimized

boolean

Apakah daftar ini dioptimalkan untuk perangkat seluler (Android dan iOS).

description

string

Deskripsi daftar ini yang dapat dibaca manusia. Ditulis dalam bahasa Inggris.

supportedHashLengths[]

enum (HashLength)

Panjang hash yang didukung untuk daftar hash ini. Setiap daftar {i>hash <i}akan mendukung setidaknya satu panjang. Oleh karena itu, kolom ini tidak akan kosong.

ThreatType

Jenis-jenis ancaman.

Enum
THREAT_TYPE_UNSPECIFIED Jenis ancaman tidak diketahui. Jika ini ditampilkan oleh server, klien akan mengabaikan FullHashDetail yang mencakupnya.
MALWARE

Jenis ancaman malware. Malware adalah software atau aplikasi seluler yang dirancang khusus untuk merusak komputer, perangkat seluler, software yang dijalankannya, atau penggunanya. Malware menunjukkan perilaku berbahaya yang dapat meliputi penginstalan software tanpa izin dari pengguna dan penginstalan software berbahaya seperti virus.

Informasi lebih lanjut dapat ditemukan di sini.

SOCIAL_ENGINEERING

Jenis ancaman manipulasi psikologis. Halaman manipulasi psikologis mengaku-ngaku bertindak atas nama pihak ketiga dengan tujuan membingungkan penonton sehingga melakukan tindakan yang hanya akan dipercaya oleh penonton sebagai agen sebenarnya dari pihak ketiga tersebut. Phishing adalah jenis manipulasi psikologis yang mengelabui penonton agar melakukan tindakan tertentu dalam memberikan informasi, seperti kredensial login.

Informasi lebih lanjut dapat ditemukan di sini.

UNWANTED_SOFTWARE Jenis ancaman software yang tidak diinginkan. Software yang tidak diinginkan adalah software yang tidak mematuhi Prinsip Software Google, tetapi bukan malware.
POTENTIALLY_HARMFUL_APPLICATION Jenis ancaman aplikasi yang berpotensi membahayakan seperti yang digunakan oleh Google Play Protect untuk Play Store.

LikelySafeType

Jenis situs yang kemungkinan aman.

Perlu diperhatikan bahwa SearchHashesResponse sengaja tidak berisi LikelySafeType.

Enum
LIKELY_SAFE_TYPE_UNSPECIFIED Tak diketahui.
GENERAL_BROWSING Situs ini mungkin cukup aman untuk penjelajahan umum. Hal ini juga dikenal sebagai {i> cache global<i}.
CSD Situs ini mungkin cukup aman sehingga tidak perlu menjalankan model Deteksi Sisi Klien atau pemeriksaan perlindungan sandi.
DOWNLOAD Situs ini kemungkinan cukup aman sehingga download dari situs tersebut tidak perlu diperiksa.

HashLength

Panjang {i>hash<i} dalam sebuah daftar {i>hash<i}.

Enum
HASH_LENGTH_UNSPECIFIED Panjang tidak ditentukan. Server tidak akan menampilkan nilai ini sebagai respons terhadap klien (di kolom supportedHashLengths), tetapi klien diizinkan untuk mengirim nilai ini ke server (di kolom desiredHashLength), yang dalam hal ini server akan memilih nilai secara otomatis. Klien HARUS membiarkan server memilih nilai.
FOUR_BYTES Setiap {i>hash<i} adalah awalan empat byte.
EIGHT_BYTES Setiap hash adalah awalan delapan byte.
SIXTEEN_BYTES Setiap {i>hash<i} adalah awalan enam belas byte.
THIRTY_TWO_BYTES Setiap {i>hash<i} adalah {i>hash<i} penuh tiga puluh dua byte.

Metode

get

Mendapatkan konten terbaru dari daftar hash.