Tink API 採用任意二進位 blob 做為輸入值。也就是說,如要加密通訊協定緩衝區等結構化資料,就必須先對資料進行編碼。
加密通訊協定緩衝區
加密方式如下:
- 將 protobuf 序列化為位元組陣列。
- 加密序列化位元組,然後儲存或傳送產生的密文。請使用:
解密方式如下:
- 解密密文。
- 如果步驟 1 成功,請取消序列化 Protobuf。
保護通訊協定緩衝區,避免遭到竄改
在大多數情況下,加密 Protobuf 比較適合只進行驗證。
如何防止通訊協定緩衝區遭到竄改:
驗證方法:
- 取得序列化的 protobuf 及其簽名 (或 MAC)。
- 驗證簽章 (或 MAC)。
- 將 Protobuf 反序列化。
請注意,有效的簽名或 MAC 無法保證資料的格式正確無誤。剖析資料的實作應一律預期資料損毀。
保護多個資料項目
如要保護多個資料項目,請使用序列化方法。將所有資料項目新增至 Protobuf,然後依上述方式加密 (或驗證)。
您也可以進行序列化,如下所示:
serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN
最後,加密 (或驗證) 產生的位元組陣列。