boltlabs-inc / key-mgmt-spec

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

Select TLS config and setup details #22

Open indomitableSwan opened 2 years ago

indomitableSwan commented 2 years ago

TLS config details should be specified and implementation updates propagated to the appropriate repositories. We do not want to use the default configuration for TLS, which provides for a way for the end points to negotiate a ciphersuite protocol.

Instead, we should select an appropriately strong ciphersuite and mandate a minimum version of TLS 1.3. We also need a plan for incremental updates, i.e. we should ensure that

The TLS dependency details are tucked away in the transport crate. We use the rustls crate for the baseline protocol and the tokio_rustls crate to make it asynchronous.

Should I look for more configuration details here? A quick look suggests that we use the library defaults for configuring our server, which are described by rusttls here:

If used, this will enable all safe supported cipher suites (DEFAULT_CIPHER_SUITES), all safe supported key exchange groups (ALL_KX_GROUPS) and all safe supported protocol versions (DEFAULT_VERSIONS).

These are safe defaults, useful for 99% of applications.

_Originally posted by @marsella in https://github.com/boltlabs-inc/key-mgmt-spec/pull/20#discussion_r920098067_

We should also decide on our use of PKI and PSKs for session resumption. Some considerations:

LordQ1 commented 2 years ago

Swan says that we do need this ticket, but we do not need it for the Passive Keys release. Removing it from the release.