Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to test which version of TLS my .NET client is using?

I support a .NET site which (amongst many, MANY, other things) talks to remote APIs from supplier systems.

We want to upgrade to support TLS 1.2 We're hoping to do so as per this question: Are there .NET implementation of TLS 1.2?

But how do I check that this is actually working once I've made the change.

Ideally one of my supplier sites would start using TLS 1.2 ONLY and then my test could just be "can we talk to that supplier now?" But we don't have that. I'm guessing I can do something with a packet sniffer of some sort, but I wouldn't know what I was looking for exactly, nor how to set up the sniffer to be collecting the neccessary data in a readable manner.

Either:

  • Can someone point me in the direction of a comprehensive guide to how to collect that data in Fiddler/WireShark

Or

  • Can someone advise an alternative way to test that the change has worked.
like image 567
Brondahl Avatar asked Dec 14 '15 20:12

Brondahl


People also ask

What version of TLS does .NET core use?

NET Core 2.1 or later, TLS 1.2 is enabled by default.

Does client or server determine TLS version?

During the course of a TLS handshake, the client and server together will do the following: Specify which version of TLS (TLS 1.0, 1.2, 1.3, etc.) they will use. Decide on which cipher suites (see below) they will use.

How do you check if TLS 1.2 is enabled on IIS?

Click the Windows button on the lower left-hand corner of your Desktop. Type "Internet Options" and select Internet Options from the list. Click on the Advanced tab and from there scroll down to the very bottom. Confirm that TLS 1.2 is checked.


2 Answers

If you turn on "CONNECTS" in Fiddler, you can see the TLS/SSL version in Inspectors -> TextView

Screen Capture of TLS Version 1.2 Connect to Google.com


To turn on Connects, go to Rules in the menu bar and remove the check from "Hide CONNECTs"

turn on connects screenshot

Note: Decrypt HTTPs traffic must be disabled

disable decrypt https traffic options screenshot

Reference: Viewing HTTPS Handshakes in Fiddler

like image 85
spottedmahn Avatar answered Sep 17 '22 13:09

spottedmahn


If you capture the connection creation in Wireshark, and examine the first packet from the client, then Wireshark will annotate the fields in the ClientHello struct for you, including the TLS version requested by the client.

Similarly, if you look at the first reply packet from the server, then Wireshark will annotate the fields in the ServerHello struct for you, including the TLS version settled on for the connection.

See this blog post or this one for worked examples.

like image 24
Rich Avatar answered Sep 18 '22 13:09

Rich