boltlabs-inc / key-mgmt-spec

Formal specification for the key management project
MIT License
3 stars 2 forks source link

Adjust secure channel to use MACs instead of additional layer of encryption #68

Closed indomitableSwan closed 2 years ago

indomitableSwan commented 2 years ago

The current design uses an additional layer of encryption for messages passed back between client and server. This encryption is used after completion of the OPAQUE handshake and is secured under a key K, where K is a key derived from the shared key that is output from this handshake.

I propose we modify this construction by replacing this layer of encryption with a MAC under the derived key K instead. This design preserves the mutual authentication properties of the original. The consequence of this is that a vulnerability in TLS may affect confidentiality, but not mutual authentication. Given our context, I think this is a reasonable tradeoff that should improve performance. Which is to say, a vulnerability in TLS should not lead to loss of funds/key misuse, which is our primary concern.