ssllabs / ssllabs-scan

A command-line reference-implementation client for SSL Labs APIs, designed for automated and/or bulk testing.
https://www.ssllabs.com/projects/ssllabs-apis/
Apache License 2.0
1.7k stars 242 forks source link

Android 7.0 does not support 384 bit EC curves (only secp256r1 supported) #742

Open saepurusass opened 5 years ago

saepurusass commented 5 years ago

SSLLabs shows that sites that use EC certificate and EC cipher with 384bits is OK with Android 7.0 but that is not correct.

Android 7.0 has a bug and because of that it only supports secp256r1 curve (based on information I have found). Android 5.x, 6.x and 7.1+ all work, the problem only affects Android 7.0

There is a lot of information here: https://stackoverflow.com/questions/39133437/sslhandshakeexception-handshake-failed-on-android-n-7-0

Please note that when talking about HTTPS it depends on what browser you are using. Issue affects Androud 7.0 SSL stack. Every application that uses Android SSL stack is affected. Chrome for example uses it's own SSL stack and Chrome is not affected. You can access sites with other curves with Chrome.

I stumbled on that problem when trying to access my email account on Android 7.0 device after upgrading server SSL certificate to EC 384bit certificate. It works on my every other device(6.x, 8.x) just no way to get it to work on Android 7.0

So this is a bug and at the same time it is not... depends. If you change Android 7.0 to "Android 7.0 + Chrome (version)" then it is correct. But any browser/app using Android 7.0 SSL stack does not work and it would be incorrect to say that Android 7.0 works with anything else than secp256r1 curve.

ArchangeGabriel commented 5 years ago

SSL Labs only reports Chrome status, not Android SSL stack one. Almost everything is false about it then, for instance X25519 is only supported starting Android 8.0 in the SSL Stack.

saepurusass commented 5 years ago

In that case is is wrong to say you test Android version x.y. You test Chrome version x.y. It only depends which is the latest version of Chrome available under specific OS version.

schildbach commented 4 years ago

SSL Labs should rename all the Android simulations to "Chrome on Android" (or similar), to avoid further confusion.