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
We never require a Flag Day (a single time when everyone has to upgrade at the same time).
We prevent rollback attacks: if TLS 2.0 or a new ciphersuite comes out because someone find a security flaw in the old one, an adversary should not be able to trick Alice and Bob (who each support the new better one) to nonetheless negotiate the old one.
We should also decide on our use of PKI and PSKs for session resumption. Some considerations:
Need to be very careful in how you handle certificate signing. We can use a custom certificate issuer and use 2-way certs where possible (e.g., the remote client in key-mgmt).
The implementation must trust only the custom cert issuer.
For deployment, we must have a plan to handle handle the issuer key with extreme care.
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
_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: