Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can a TLS 1.2 server/client get by with just TLS_RSA_WITH_AES_128_CBC_SHA?

Tags:

ssl

tls1.2

I'm updating an embedded TLS 1.0 implementation to TLS 1.2 (devices with 1MB of code space or less, and no OS). At this point, I have AES-128 and AES-256 CBC ciphers working with SHA-1 and SHA-256 digests for a minimal implementation. The library cannot negotiate an SSLv2, SSLv3, TLS 1.0 or TLS 1.1 connection.

I felt this would be sufficient, given that RFC 5246 states, "TLS_RSA_WITH_AES_128_CBC_SHA is now the mandatory to implement cipher suite."

Yet as I read various postings on security blogs, I'm seeing recommendations that would have users disable that suite, and (for example) only allow the ECDHE_RSA or DHE_RSA variants.

So my question is whether devices using our library will interoperate with modern web browsers (as a server) and modern https/smtps/pop servers (as a client). Are there TLS 1.2 clients/servers that fail to negotiate a TLS_RSA_WITH_AES_128_CBC_SHA connection?

like image 979
tomlogic Avatar asked Jan 22 '16 23:01

tomlogic


People also ask

What version of TLS is used by client?

1. Click on: Start -> Control Panel -> Internet Options 2. Click on the Advanced tab 3. Scroll to the bottom and check the TLS version described in steps 3 and 4: 4.

How do I know if TLS 1.2 is compatible?

Browse to Tools → Internet options → Advanced. 2. Under Security section, you will see a list of SSL and TLS protocols supported. Enable Use TLS 1.2 if present.

How do I know if a client supports TLS version?

If the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client\Enabled is present, value should be 1. Check if TLS 1.2 is set as the default secure protocol in WinHTTP for Windows versions Windows Server 2008 R2, Windows Server 2012, and Windows 7.

Is TLS 1.2 Vulnerable?

Many of the major vulnerabilities in TLS 1.2 had to do with older cryptographic algorithms that were still supported. TLS 1.3 drops support for these vulnerable cryptographic algorithms, and as a result it is less vulnerable to cyber attacks.


1 Answers

I am not sure there are currently many servers supporting TLS that would fail negotiating TLS_RSA_WITH_AES_128_CBC_SHA with TLSv1.2 as it is THE mandatory cipher suite for TLSv1.2.

However there are things to keep in mind:

  • TLS_RSA_WITH_3DES_EDE_CBC_SHA is mandatory for TLSv1.0 and TLSv1.1 but due to security reasons it is no longer supported by every server,
  • Mozilla recommends (and it is not the only one) to favor AES128 instead of AES256,
  • Perfect Forward Secrecy (PFS), allowed by DHE or ECDHE is now a must-have feature.

So if I can provide you with 4 cipher suites (the same number than you have), I would say these ones from the strongest to the weakest:

  1. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  2. TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  3. TLS_RSA_WITH_AES_128_GCM_SHA256
  4. TLS_RSA_WITH_AES_128_CBC_SHA

I would say that these 4 cipher suites bring enough security and compatibility with TLSv1.2 servers.

Now the question of supporting only TLSv1.2 is another question, but if you have enough space, I recommend you to add TLSv1.0 too (TLSv1.1 does not provide extra compatibility).

PS: The reason why AES128 is favored instead of AES256 is that some people think the extra security added by AES256 is (for now) worthless and that AES128 seems to be more resistant to timing attacks.

like image 124
Jyo de Lys Avatar answered Sep 29 '22 18:09

Jyo de Lys