最新の暗号化モードでは、認証されていても暗号化されていない関連データがサポートされています。これを利用して、暗号テキストを特定のコンテキストにバインドできます。
暗号テキストを関連データにバインドする例を以下に示します。
データベースをセルごと(または列ごと)に暗号化する。これにより、セルの暗号テキストはその特定のセルでのみ有効になります。これにより、攻撃者は暗号テキストをあるセルから別のセルに移動できません。この例では、暗号テキストは指定されたデータベース セルの
column_id
とrow_id
にバインドされている必要があります。暗号テキストを別のクライアントに保存すると、クライアント A がクライアント B の暗号テキストを復号用に提供している場合に、誤動作を検出できます。ここでは、暗号テキストはクライアントの名前にバインドする必要があります。
Tink には、暗号テキストをコンテキストにバインドするためのオプションがいくつかあります。
AEAD、ストリーミング AEAD、確定的 AEAD はすべて、関連する平文のデータ入力を平文として受け入れます。関連するデータが暗号テキストとともに指定されていない場合、復号は失敗します。
ハイブリッド暗号化は、コンテキスト情報パラメータを使用して同じ機能を提供します。