Saya ingin melindungi data terstruktur

Tink API menggunakan blob biner arbitrer sebagai input. Ini berarti bahwa jika Anda ingin mengenkripsi data terstruktur, seperti buffering protokol, Anda perlu melakukan enkode data terlebih dahulu.

Mengenkripsi protobuf

Untuk mengenkripsi:

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

Untuk mendekripsi:

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

Melindungi protobuf dari gangguan

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

Untuk melindungi protobuf dari modifikasi:

  1. Menserialisasikan protobuf ke array byte.
  2. Menandatangani atau mengautentikasi byte yang diserialisasi. Penggunaan:
  3. Menyimpan {i>byte<i} 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 itu benar diformat. Implementasi yang mengurai data harus selalu mengharapkan bahwa data mungkin rusak.

Melindungi beberapa item data

Untuk melindungi beberapa item data, gunakan metode serialisasi. Tambahkan semua data item ke protobuf, dan mengenkripsi (atau mengautentikasi) seperti 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.