3

When researching some TLS compliant software I found some mentions of DES-CBC3. Further research shows that it is probably simply a name of OpenSSL for 3DES-EDE-CBC (under section "CIPHER SUITE NAMES" which I cannot directly link to).

It seems to me that executing 3DES-EDE in CBC mode is significantly different from performing DES-CBC three times so the name doesn't make any sense.

I've got the following related questions:

  1. Is the string DES-CBC3 only specific to (software using) OpenSSL?
  2. Is it somehow tied to a specific version of SSL / TLS?
  3. (Optionally) Does anybody know why it is called DES-CBC3?
  • Now I've thought about it some more I guess that originally the code for CBC and DES EDE was mixed, using a separate part to implement single DES. So that could explain the name - but it remains nothing more than an educated guess. – Maarten Bodewes Jun 13 '16 at 11:45
  • Are we still talking about DES encryption in 2016 ? ;-) – Little Code Jun 13 '16 at 13:52
  • @LittleCode I'm also following the TLS 1.3 draft RFC's, if that makes you more comfortable ;) – Maarten Bodewes Jun 13 '16 at 16:27
  • ;-) ... well, the Mozilla Cipher recommended list (at least the "intermediate compatability" version) does state "DES-CBC3-SHA and EDH-RSA-DES-CBC3-SHA are maintained for backward compatibility with clients that do not support AES.". So I'll let you go, for now ! ;-) – Little Code Jun 13 '16 at 16:59
  • For what it's worth: you should not use 3DES (or any other cipher with a 64-bit block size) for SSL/TLS, VPNs, or anything else that will have long-lived connections and/or transmit a lot of data, especially if any of it is predictable (which, for example, is the case with HTTPS). The reason is that birthday attacks on the small block size are now possible with modern computing hardware. See sweet32.info – CBHacking Apr 28 '17 at 4:50
5

DES-CBC3, is a shorthand for a few suites in OpenSSL (that doesn't always have an exact one to one mapping between the name used and the suite used, it constructs it from the name and the type of key used for authentication). Nowadays, this name almost always means a suite documented in RFC 6101 where it is called, a slightly better name : SSL_RSA_WITH_3DES_EDE_CBC_SHA. I have no idea how OpenSSL came with its shorthand (and I suspect it dates from before OpenSSL was OpenSSL), but it's a pretty bad one.

The RFC name gives you the hint that it's using 3DES (Triple-DES) in EDE mode.

3DES-EDE is using 3 56 bit keys, the first used in Encryption, the second in Decryption, the third in Encryption. This construct has the advantage that if all three keys are identical, you have DES, which is nice as it permits to reuse the same hardware to do DES and 3DES.

To answer each point

  1. Only OpenSSL calls it that, not the name used in the actual standard
  2. Valid from SSLv3 and up
  3. You'd need to read the history of OpenSSL back when it was libeay, this is extremely old code, this was likely a mistake but it stuck.

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.