130 likes | 426 Views
TLS-PSK Handshakes and the UIM. Phil Hawkes phawkes@qualcomm.com QUALCOMM Australia. TLS-PSK Key Generation. Chosen by Client. TLS-RSA-PSK EncryptedPreMasterSecret. Randomly generated by Client and Server. TLS-PSK 0...0. TLS-DHE-PSK Resulting DH key. PSK. Premaster _secret.
E N D
TLS-PSK Handshakes and the UIM Phil Hawkes phawkes@qualcomm.com QUALCOMM Australia
TLS-PSK Key Generation Chosen by Client TLS-RSA-PSK EncryptedPreMasterSecret Randomly generated by Client and Server TLS-PSK 0...0 TLS-DHE-PSK Resulting DH key PSK Premaster _secret other_secret = + Initial Client_random, Server_random Master _secret PRF Client_random, Server_random PRF If session resumed then use new client_random, server_random here session secrets: cipher keys integrity keys, IV’s MD5 Handshake_messages PRF SHA-1 Verify_data
Session Secret Generation Model Computed or Stored in ME Chosen by ME TLS-RSA-PSK EncryptedPreMasterSecret Randomly generated by ME and Server TLS-PSK 0...0 TLS-DHE-PSK Resulting DH key PSK Premaster _secret other_secret = + Initial Client_random, Server_random Master_secret PRF Client_random, Server_random PRF Computed or Stored In UIM session secrets MD5 Handshake_messages PRF SHA-1 Verify_data
Notes • UIM doesn’t care if pure PSK, or RSA or DHE etc is added. • UIM must be present for • Session secret generation and • Verify_data generation • Resuming a TLS session • PSK may be re-used for multiple TLS sessions
MS H-PS (Session-A) Long-term key Computed or Stored in ME Premaster _secret other_secret LCS_UIM_HPS_ TLS_PSK = + Initial Client_random, Server_random PRF Master_secret Client_random, Server_random PRF Computed or Stored In UIM session secrets MD5 Handshake_messages PRF SHA-1 Verify_data
Long-term key MS PDE (Session-B) Computed or Stored in ME LCS_UIM_PDE_ROOT_KEY SQN check, etc LCS_UIM_PDE_TLS_PSK_INFO, LCS_UIM_PDE_TLS_PSK_RAND f3 Not expired, etc Premaster _secret = + LCS_UIM_PDE_TLS_PSK other_secret Initial Client_random, Server_random PRF Master_secret Client_random, Server_random PRF Computed or Stored In UIM session secrets MD5 Handshake_messages PRF SHA-1 Verify_data
Model 1 (Very BAD) Computed or Stored in ME Chosen by ME TLS-RSA-PSK EncryptedPreMasterSecret Randomly generated by ME and Server TLS-PSK 0...0 TLS-DHE-PSK Resulting DH key Computed or Stored In UIM PSK Premaster _secret other_secret + = Premaster_secret Initial Client_random, Server_random Master_secret PRF Client_random, Server_random PRF session secrets MD5 Handshake_messages PRF SHA-1 Verify_data
Problems with Model 1 ME Handshake abilities: • ME can steal and distribute • Master_secret (only used in single TLS session) • Premaster_secret (can use in multiple TLS sessions) Consequences if PSK used more than once: • Other users can start new TLS sessions: YES • Other users can resume this TLS session: YES
Model 2 (BAD) Computed or Stored in ME Chosen by ME TLS-RSA-PSK EncryptedPreMasterSecret Randomly generated by ME and Server TLS-PSK 0...0 TLS-DHE-PSK Resulting DH key Computed or Stored In UIM PSK Premaster _secret other_secret + = Initial Client_random, Server_random Master_secret PRF Master_secret Client_random, Server_random PRF session secrets MD5 Handshake_messages PRF SHA-1 Verify_data
Model 2 Analysis ME Handshake abilities: • ME can steal and distribute • Master_secret (only used in single TLS session) Consequences if PSK used more than once: • Other users can start new TLS sessions: NO • Other users can resume this TLS session: YES
Model 3 (GOOD) Computed or Stored in ME Chosen by ME TLS-RSA-PSK EncryptedPreMasterSecret Randomly generated by ME and Server TLS-PSK 0...0 TLS-DHE-PSK Resulting DH key PSK Premaster _secret other_secret = + Initial Client_random, Server_random Master_secret PRF Client_random, Server_random PRF Computed or Stored In UIM session secrets MD5 Handshake_messages PRF SHA-1 Verify_data
Model 3 Analysis ME Handshake abilities: • None Consequences if PSK used more than once: • Other users can start new TLS sessions: NO • Other users can resume this TLS session: NO