sslscan icon indicating copy to clipboard operation
sslscan copied to clipboard

TLS client authentication: missing ciphers

Open tmanninger opened this issue 3 years ago • 4 comments

Hi,

i am using haproxy and sslscan 2.0.10

Before i enabled client certificate authentication, sslscan returned the following ciphers:

  SSL/TLS Protocols:
SSLv2     disabled
SSLv3     disabled
TLSv1.0   disabled
TLSv1.1   disabled
TLSv1.2   enabled
TLSv1.3   enabled

...
  Supported Server Cipher(s):
Preferred TLSv1.3  256 bits  TLS_AES_256_GCM_SHA384        Curve 25519 DHE 253
Accepted  TLSv1.3  256 bits  TLS_CHACHA20_POLY1305_SHA256  Curve 25519 DHE 253
Accepted  TLSv1.3  128 bits  TLS_AES_128_GCM_SHA256        Curve 25519 DHE 253
Preferred TLSv1.2  256 bits  ECDHE-RSA-AES256-GCM-SHA384   Curve 25519 DHE 253
Accepted  TLSv1.2  256 bits  ECDHE-RSA-CHACHA20-POLY1305   Curve 25519 DHE 253
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-GCM-SHA256   Curve 25519 DHE 253
Accepted  TLSv1.2  256 bits  ECDHE-RSA-AES256-SHA384       Curve 25519 DHE 253
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-SHA256       Curve 25519 DHE 253

After i enabled certificate authentication, sslscan is only returning TLSv1.3 ciphers:

  SSL/TLS Protocols:
SSLv2     disabled
SSLv3     disabled
TLSv1.0   disabled
TLSv1.1   disabled
TLSv1.2   enabled
TLSv1.3   enabled

  Supported Server Cipher(s):
Preferred TLSv1.3  256 bits  TLS_AES_256_GCM_SHA384        Curve 25519 DHE 253
Accepted  TLSv1.3  256 bits  TLS_CHACHA20_POLY1305_SHA256  Curve 25519 DHE 253
Accepted  TLSv1.3  128 bits  TLS_AES_128_GCM_SHA256        Curve 25519 DHE 253

I also started a test with https://www.ssllabs.com/ssltest/ , this tools returns all TLSv1.2 + TLSv1.3 ciphers while client authentication is enabled.

Therefore i think, this is a bug.

tmanninger avatar Jun 07 '21 06:06 tmanninger

Do you have a pcap you could share for this? Client certs aren't very common, so this code hasn't really had a huge amount of testing.

rbsec avatar Jun 07 '21 19:06 rbsec

I uploaded 2 pcaps, one without client auth (which returns the correct ciphers) and one with client auth (which returns only TLSv1.3 ciphers)

sslscan_pcaps.zip

tmanninger avatar Jun 08 '21 06:06 tmanninger

Thanks. I'm afraid I don't have a huge amount of time for this project at the moment, but I'll take a look at these when I get a chance and see if I can work out what's going wrong.

rbsec avatar Jun 11 '21 07:06 rbsec

I had a look into this earlier in the week and I couldn't see anything obviously wrong in the pcap files. The client certificate stuff is all just using built-in OpenSSL functionality, so there's not much custom stuff we're doing with it.

I don't have a haproxy instance to test against, but the badssl.com client certificate sites seemed to work fine with sslcsan for me. Do they work correctly with the version you're running, or is that broken as well?

Thanks

rbsec avatar Jul 02 '21 13:07 rbsec