Does TLS always use the same algorithms for both client to server and server to client communication or can they be different?

E.g. is it possible that the client uses AES256 to cipher the data before sending it, while the server employs RC4?


The cipher used is the same in both directions and thus the encryption algorithm is the same too. In detail: the client proposes some ciphers it is willing to use and the server picks one of these ciphers and sends it back to the client.

  • I wonder if there's any utility in such a disparity of cipher suite usage. I can't think of one, but it is an interesting concept to mull over. – Polynomial Dec 30 '16 at 20:25
  • 1
    @Polynomial Just guessing: One small embedded device with a hardware AES engine, one with hardware RC4? – Max Ried Dec 30 '16 at 20:46
  • @SteffenUllrich Is this a technical limitation of the standard or is it just that it is always done that way, eg best practice? – Max Ried Dec 30 '16 at 20:47
  • 1
    Another potential security challenge is that ciphers have generally been studied as secure when used in isolation. If you re-use the same key for two different ciphers you may open yourself up to some very interesting security holes. – Polynomial Dec 30 '16 at 22:10
  • 2
    @Polynomial: SSL/TLS uses different keys (and IVs when applicable) in each direction anyway; see crypto.stackexchange.com/questions/1139/… . For completeness: if client authentication is used, which is fairly rare, the (publickey) algorithm for client auth is independent of that for server auth. – dave_thompson_085 Dec 31 '16 at 7:47

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.