Key establishment and certificates Flashcards
What is key establishment?
The process of setting up cryptographic keys to protect a subsequent communication session
What does key establishment in TLS use public keys for?
To allow clients and servers to share a new communication key
What phases does key management consist of?
Generation
distribution
storage
destruction
What is key generation?
Process of generating keys, ideally random keys
What is key distribution?
Process of distributing the keys in a secure fashion
What is key storage?
Way of storing keys in such a way that they are available for use, but not to unautherized users
What is key destruction?
Process of destroying a key, as removing it from memory is not always easy
Name 3 types of keys
Long-term
Ephemeral
Session
What are long-term keys?
Intended to be used for a long time (hours, months, years, etc.)
Either symmetric or asymmetric
What are ephemeral keys?
Generated for single use, then deleted (e.g. diffie hellman)
What are session keys?
Used for one communication session (seconds, hours, a day)
Usually symmetric with ciphers such as AES (authenticated encryption)
Sessions should be independent
What does it mean to have independent sessions?
The compromise of one key does not affect other sessions.
What is a typical usage of long-term and ephemeral keys?
Used in establishment of session keys
What are the security goals of key establishment protocols?
Authentication: If a party A completes the protocol and believes the session key Kab is shared with B, then Kab should not be shared with a different party C. Authentication can be mutual or unilateral
Confidentiality: An adversary is unable to obtain the session key accepted by a prticular party
What is mutual authentication?
When both parties achieve the authentication goals
What is unilateral authentication?
The authentication goals are only achieved by one side
What are 3 approaches to key establishment protocols?
Key pre-distribution
Key transport
Key agreement
What is key pre-distribution?
Keys are set in advance.
A trusted authority (TA) generates and distributes long-term keys to all users when they join the system.
The simplest version assigns secret keys for each user pair, this scales poorly
The TA only operates in the pre-distribution phase, and don’t need to be online afterwards
What is key transport?
One party chooses the key and distributes it
A TA shares a long-term shared key with each user
TA generates and sends session keys to users when requested and protected by the long-term keys
TAs must be trusted, and they are a single point of attack
What is key agreement?
Two or more parties contribute to the session key
Usually add authentication with public keys, for example by signing the exchanged messages
What can be a problem with key transport?
Scalability
What is Kerberos?
Example of key transport establishment.
A SSO solution: users only provide username and password once for a session
Kerberos provides access selectively for different online services using individual tickets
Kerberos establishes a session key to deliver confidentiality and integrity services for each service access
How does key transport work with asymmetric cryptography?
- One user chooses key material and sends it encrypted with the other party’s public key
- Each party includes a random nonce to ensure that their key is new
- A key derivation function (KDF) binds the secret key material with other protocol elements to avoid some attacks.
What are some properties of a standard KDF?
Uses HMAC
Can be thought of as a hash function
Describe the Key transport protocol
2 parties: A and B
PKa: A’s public encryption key
Z: Random value generated by B
Kab: Session key
IDa: Identity of A
IDb: Identity of B
A sends IDa and Na to B
B sends IDb, Nb, E(Z, PKa) to A
Kab = KDF(Z, IDa, IDb, Na, Nb)
What is a widely used key agreement protocol?
Diffie-Hellman
What is the usual method of key establishment in TLS today?
TLS includes Diffie-Hellman