Saya ingin melindungi data terstruktur

Tink API mengambil blob biner arbitrer sebagai input. Artinya, jika ingin mengenkripsi data terstruktur, misalnya buffering protokol, Anda harus mengenkode data terlebih dahulu.

Mengenkripsi protobuf

Untuk mengenkripsi:

  1. Menserialisasikan protobuf ke array byte.
  2. Mengenkripsi byte serial, lalu menyimpan atau mengirim ciphertext yang dihasilkan. Gunakan:

Untuk mendekripsi:

  1. Mendekripsi ciphertext tersebut.
  2. Jika Langkah 1 berhasil, lakukan deserialisasi protobuf.

Melindungi protobuf dari modifikasi tidak sah

Dalam sebagian besar kasus, lebih baik mengenkripsi protobuf daripada otentikasi saja.

Untuk melindungi protobuf dari modifikasi tidak sah:

  1. Menserialisasikan protobuf ke array byte.
  2. Menandatangani atau mengautentikasi byte yang diserialisasi. Gunakan:
  3. Menyimpan byte yang diserialisasi bersama dengan tanda tangan (atau MAC).

Untuk memverifikasi:

  1. Mendapatkan protobuf serial dan tanda tangannya (atau MAC).
  2. Verifikasi tanda tangan (atau MAC).
  3. Melakukan deserialisasi protobuf.

Perhatikan bahwa tanda tangan atau MAC yang valid tidak menjamin bahwa data diformat dengan benar. Implementasi yang mengurai data akan selalu mengharapkan bahwa data mungkin rusak.

Melindungi beberapa item data

Untuk melindungi beberapa item data, gunakan metode serialisasi. Menambahkan semua item data ke protobuf, dan mengenkripsi (atau mengautentikasi) data seperti yang dijelaskan di atas.

Anda juga dapat melakukan serialisasi sebagai berikut:

serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN

Terakhir, enkripsi (atau autentikasi) array byte yang dihasilkan.