- Affected Versions
- All Tink versions
- Affected Key Types
- All Envelope AEAD key types
Description
Envelope encryption uses a third-party provider (such as GCP or AWS) to encrypt a data encryption key (DEK).
It is possible to modify certain parts of the encrypted DEK without detection
when using KmsEnvelopeAead
with AwsKmsAead
or GcpKmsAead
as the remote
provider. This is due to the inclusion of unauthenticated metadata (for instance
version numbers). Modifications to this unauthenticated data are not detected by
the provider.
Note that this violates the adaptive chosen-ciphertext attack property (IND-CCA-2) for this interface, although the ciphertext can still decrypt to the correct DEK. When using this interface don't presume that each DEK only corresponds to a single encrypted DEK.