During the SSL/TLS handshake, and just after completing the key exchange phase, each of the client and the server derives a pair of keys for encryption and authentication/integrity protection from the master secret such as :

  • Kc = encryption key for data sent from client to server
  • Mc = MAC key for data sent from client to server
  • Ks = encryption key for data sent from server to client
  • Ms = MAC key for data sent from server to client

Since the server and client are using a symmetric cryptosystem for encrypting/decrypting exchanged data, how would the server; using his key Ks; decrypt an encrypted message Kc{message} sent by the client since both are not using the same key for encryption/decryption (i.e. Kc#Ks) ? Same question applies for MAC integrity check.

  • Read wikipedia again. Or google SSL for dummies. – mootmoot Jul 25 '17 at 14:25
  • "symmetric" means both sides use the same key... – schroeder Jul 25 '17 at 14:30
  • That was my assumption actually. I thought asymmetric crypto is used to exchange keys while symmetric crypto is used for data encryption/decryption. I have read in many articles SSL/TLS uses a hybrid cryptosystem of both. It is even mentioned in Wikipedia en.wikipedia.org/wiki/Transport_Layer_Security – sasuke_X220 Jul 25 '17 at 14:49
  • yes, that is correct - what is your question? – schroeder Jul 25 '17 at 15:18

My guess is that you either not fully understand which keys get derived from the master key on both sides or that you don't understand the concept of symmetric encryption. I.e. one of these points might not have been clear enough to you:

  • Client and server share the same master secret.
  • Client and server derive Kc, Mc, Ks, Ms from this master key. Since the master key is the same the values for Kc, Mc, Ks, Ms are the same too at client and server.
  • Symmetric encryption means that the same key as used for encryption and decryption. This means client encrypts with Kc and server decrypts the cipher text with the same Kc. And the same is done with Ks for messages encrypted by the server and decrypted by the client.
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.