Blog | G5 Cyber Security

TLS Client Certificates: Detectable?

TL;DR

Yes, an eavesdropper can detect if a TLS client-side certificate is being used during the TLS handshake. While the contents of the certificate are encrypted in transit, the fact that a certificate is presented at all is visible. This is because the handshake process differs when a certificate is involved.

Understanding the Handshake

TLS (Transport Layer Security) establishes a secure connection between a client and server. The handshake is how this happens. When using a client-side certificate, an extra step is added to the standard handshake process. This difference is what allows detection.

How Eavesdroppers Detect Certificate Use

  1. Standard TLS Handshake: The client sends a ‘ClientHello’ message. The server responds with a ‘ServerHello’, certificate, and other information.
  2. TLS with Client Certificate: The client still sends a ‘ClientHello’. However, the server will respond with a request for the client’s certificate before sending its own. This is typically indicated by a specific TLS extension or message type.

An eavesdropper monitoring network traffic can see this extra exchange and deduce that a client certificate is being used.

Steps to Verify Detection

  1. Packet Capture: Use a tool like Wireshark to capture the TLS handshake between your client and server.
  2. Filter for TLS Handshake Messages: In Wireshark, use a filter such as ssl or tls to isolate TLS traffic.
  3. Examine the Handshake Sequence: Look for the ‘Certificate Request’ message from the server if a client certificate is being used. This message isn’t present in standard handshakes without certificates.

Here’s an example of filtering in Wireshark:

filter: ssl.handshake.type == 13

(Where ’13’ represents the Certificate Request handshake message type)

Mitigation Strategies

Completely hiding certificate use is difficult, but you can make detection harder:

Important Considerations

Exit mobile version