// HACKER NEWS — CYBERSECURITY
Has anybody seen my keys? A key-hierarchy strategy for rack-level security
There are many different types of secrets inside an oxide rack. At the
base of the system we have the DeviceId and Alias keys stored on the
RoT and used for platform identity and measurement signing for attestation
respectively [RFD 36]. These keys along with a 3rd RoT hosted keypair used for
authenticating ephemeral Diffie-Hellman agreement provide the ability for sleds
to form secure sprockets sessions for application layer messages [RFD 238].
These sprockets sessions provide each sled the ability to confidentially share
information in a point- to-point fashion, where the integrity of messages is
protected, the authenticity of the endpoint and the attestation of its running
software is guaranteed.
In order to provide the rack-level security guarantees such that an attacker
cannot walk off with a subset of sleds or drives and recover any useful
information, we have designed a Trust Quorum [RFD 238].
The primary protection mechanism behind the trust quorum is shamir secret
sharing. A shared rack-level secret which is used as a key-derivation source
for other keys used to protect storage at rest. The rack secret is split into
N unique key shares by a dealer process and distributed over sprockets
sessions to each bootstrap agent along with the unique platform identities of
the N trust quorum members. These platform identities are baked into the public
key certificates on the RoT to allow verification that an entity is who they say
they are. After distribution of this information, bootstrap agents can establish
sprockets connections to other bootstrap agents, verify membership in the group
(via the exchanged certs), and retrieve K-1 shares from other agents such
that they can reconstruct the rack secret from K shares. Importantly, without
obtaining K shares, no information about the rack secret can be learned.
As described in [RFD 238], individual shares are store unencrypted on each
sled’s M.2 drives. An attacker would have to steal at least K of these drives
to reconstruct the rack secret, which is infeasble without significant time and
disruption during physical access. In the future we plan to "seal" these secrets
with the help of our root of trust (RoT) such that they are only decrypted on
sled boot. Sealing would mean that an attacker would have to steal K whole
sleds and be able to boot them to recover the rack secret. The weight of K
sleds makes this prohibitive for a casual attacker.
With this rack secret we have a shared secret that is only available when
enough of the N sleds in the group are plugged into the same rack and trust
each other enough to distribute shares to each other. From this shared secret,
we can do things like derive or wrap individual encryption keys for each
individual U.2 device, and independently derive rack level root certificates
for internal services.
What physical or logical restrictions prevent the encrypted data from being moved?
What is the key-hierarchy used to protect that data
Which keys are derived from which secrets and keys?
These questions are critical to the security of our rack, and our determinations
may evolve given our experiences of with the current solution and more time to
think of and implement solutions necessary to harden and expand our posture.
For now, though, this RFD must deliver strong enough answers to allow us to
best protect our data at rest and move onto our other security goals in the
near future.
Our rack-level key-hierarchy starts at the root with the Rack Secret. Each
member of the trust quorum can learn enough shares to recompute the rack
secret. The rack secret itself is not a key, and so we must derive keys from
it via a key derivation
function (KDF) that can be used for vaious purposes required by our rack.
What keys we derive, and what keys are derived from those keys, and what keys
any of them may wrap, is hard to determine without more information about what
data is actually being protected by keys in our system. To help construct our
key hiera