Современные режимы шифрования поддерживают связанные данные , которые аутентифицируются, но не шифруются. Это можно использовать для привязки зашифрованного текста к определенному контексту.
Примеры привязки зашифрованного текста к связанным данным включают:
Шифрование базы данных ячейка за ячейкой (или столбец за столбцом). Это гарантирует, что зашифрованный текст ячейки действителен только в этой конкретной ячейке. Это не позволяет злоумышленнику перемещать зашифрованный текст из одной ячейки в другую. В этом примере зашифрованный текст должен быть привязан к
column_id
иrow_id
для данной ячейки базы данных.Хранение зашифрованных текстов в разных клиентах позволяет обнаруживать неправильное поведение, если клиент A предоставляет зашифрованный текст клиента B для расшифровки. Здесь зашифрованный текст должен быть привязан к имени клиента.
В Tink есть несколько вариантов привязки зашифрованного текста к его контексту:
AEAD , Streaming AEAD и детерминированный AEAD принимают связанный ввод данных вместе с открытым текстом. Расшифровка завершается неудачно, если связанные данные не предоставляются с зашифрованным текстом.
Гибридное шифрование предоставляет ту же функцию, используя параметр контекстной информации .