現代加密模式支援經過關聯的資料,這類資料會通過驗證,但不會經過加密。這會將密文繫結至特定結構定義。
將密文繫結至相關資料的例子包括:
對儲存格儲存格 (或資料欄逐欄) 加密。這樣可確保儲存格的密文只在該特定儲存格中有效。這可防止攻擊者將密文從一個儲存格移至另一個儲存格。在此範例中,密文應繫結至特定資料庫儲存格的
column_id
和row_id
。如果以用戶端用戶端儲存密文,當用戶端 A 提供用戶端 B 的加密文字以用於解密時,即可偵測出不當行為。在這裡,密文應繫結至用戶端名稱。
Tink 有多種選項可讓密文繫結至背景資訊:
AEAD、Streaming AEAD 和 Deterministic AEAD 都會接受相關聯的資料以及純文字資料。如果未提供含有密文的資料,則解密作業就會失敗。