Я хочу связать зашифрованный текст с его контекстом
Современные режимы шифрования поддерживают связанные данные , которые аутентифицируются, но не шифруются. Это можно использовать для привязки зашифрованного текста к определенному контексту.
Примеры привязки зашифрованного текста к связанным данным включают:
Шифрование базы данных ячейка за ячейкой (или столбец за столбцом). Это гарантирует, что зашифрованный текст ячейки действителен только в этой конкретной ячейке. Это не позволяет злоумышленнику перемещать зашифрованный текст из одной ячейки в другую. В этом примере зашифрованный текст должен быть привязан к column_id
и row_id
для данной ячейки базы данных.
Хранение зашифрованных текстов в разных клиентах позволяет обнаруживать неправильное поведение, если клиент A предоставляет зашифрованный текст клиента B для расшифровки. Здесь зашифрованный текст должен быть привязан к имени клиента.
В Tink есть несколько вариантов привязки зашифрованного текста к его контексту:
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2024-10-26 UTC.
[null,null,["Последнее обновление: 2024-10-26 UTC."],[[["Modern encryption techniques can authenticate additional data without encrypting it, ensuring data integrity and context."],["This \"associated data\" links ciphertext to its specific location or user, preventing unauthorized use or manipulation."],["Tink offers multiple encryption options, including AEAD, Streaming AEAD, Deterministic AEAD, and Hybrid Encryption, that support binding ciphertext to its context for enhanced security."],["Developers can utilize associated data to prevent attacks like ciphertext movement or unauthorized decryption by ensuring the ciphertext remains tied to its intended context."]]],["Encryption modes utilize associated data to authenticate but not encrypt, binding ciphertexts to specific contexts. This prevents ciphertext misuse. Examples include binding database cell data to `column_id` and `row_id` or binding data to a client's name. Tink offers this functionality through AEAD, Streaming AEAD, Deterministic AEAD with an associated data input and Hybrid encryption with a context info parameter. Decryption fails if the correct associated data is not provided.\n"]]