CCA normally uses key tokens that are designed solely for the purposes
of protecting the key value and carrying metadata associated with
the key to control its use by CCA cryptographic functions. The remote
key loading design introduces a new type of key token called an RKX
key token. The purpose of this token is somewhat different, and its
use is connected directly with the Remote Key Export callable service
added to CCA of the remote key loading design.
The RKX key token uses a special structure that binds the token
to a specific trusted block, and allows sequences of Remote Key Export
calls to be bound together as if they were an atomic operation. This
allows a series of related key-management operations to be performed
using the Remote Key Export callable service. These capabilities
are made possible by incorporating these three features into the RKX
key token structure:
- The key is enciphered using a variant of the MAC key that is in
the trusted block. A fixed, randomly-derived variant is applied to
the key prior to it being used. As a result, the enciphered key is
protected against disclosure since the trusted block MAC key is itself
protected at all times.
- The structure includes the rule ID contained in the trusted block
rule that was used to create the key. A subsequent call to the Remote
Key Export callable service can use this key with a trusted block
rule that references this rule ID, effectively chaining use of the
two rules together securely.
- A MAC is computed over the encrypted key and the rule ID, using
the same MAC key that is used to protect the trusted block itself.
This MAC guarantees that the key and the rule ID cannot be modified
without detection, providing integrity and binding the rule ID to
the key itself. In addition, the MAC will only verify if the RKX key
token is used with the same trusted block that created the token,
thus binding the key to that specific trusted block.
This figure shows a simplified conceptual view of the RKX key token
structure.
Figure 1. Simplified RKX key-token structure