According to NIST Key Management recommendation "8.1.5.2.2.2 Automated Key Distribution/Key Transport/Key Wrapping", it is required to use a key wrapping key or a public key-transport key to protect symmetric key distribution. Is it still required if the symmetric key is distributed over https connection? In addition, I checked cloud vendor key management system APIs, I found the plaintext encryption key is returned directly without wrapping. Does this mean it is actually not required to wrap the encryption key if https is already used?
1 Answer
In some cases it might not give additional security. But in many cases it will. Look at how the symmetric key is generated.
Very often, the key generating device is not directly connected to the key receiver. In case HTTPS is used, we can split the whole way into 3 parts:
- From the key generating device to the HTTPS client that establishes HTTPS connection
- From HTTPS client to HTTPS server, or TLS termination point
- From HTTPS server to the key receiver
HTTPS is used only on the 2nd part, between HTTPS client and HTTPS server.
The key generating device can be isolated well from the outer world and the key receiver may be not directly reachable via network. Thus you would need to deliver the key from the device where it was generated to the device where HTTPS connection will start, like a proxy to the public internet.
On the destination side, the HTTPS/TLS termination point is not necessarily the key receiver. Very often there is a reverse proxy that forwards the traffic to the actual key receiver. This part may be not encrypted. Or even if it is re-encrypted, still the HTTPS/TLS termination point has access to the plain key and thus is a risk.
If the key generating device encrypts the key with a public key of receiver, then it doesn't matter if the way to the receiver contains insecure parts. Only the receiver will be able to decrypt it.