Subject: [TLS] TLS 1.2 test clients?

From: Paul Hoffman <[email-masked]>
Date: Mon, 31 Jan 2011 08:35:36 -0800

Greetings again. I would like to test how servers react to a TLS client 
that only does TLS 1.2. There are two browsers that can be put into this 
state (IE under Win 7, and Opera), but neither give very good 
diagnostics when a failure occurs. Further, Wireshark doesn't give good 
dumps for TLS 1.2.

Thus, if anyone here has a TLS 1.2 client that has reasonable debugging 
of the TLS handshake and can do trivial HTTP (just send a "GET /" and 
receive the response would be fine) after setting up a tunnel, I'd 
greatly appreciate it. Also, if anyone has a Wireshark plugin (?) that 
brings its TLS decoding up to 1.2, that would be great as well.

--Paul Hoffman, Director
--VPN Consortium

---

From: Adam Langley <[email-masked]>
Date: Mon, 31 Jan 2011 12:54:11 -0500

On Mon, Jan 31, 2011 at 11:35 AM, Paul Hoffman <[email-masked]> wrote:
> Thus, if anyone here has a TLS 1.2 client that has reasonable debugging of
> the TLS handshake and can do trivial HTTP (just send a "GET /" and receive
> the response would be fine) after setting up a tunnel, I'd greatly
> appreciate it. Also, if anyone has a Wireshark plugin (?) that brings its
> TLS decoding up to 1.2, that would be great as well.

GnuTLS can do TLS 1.2 and their command line tools can dump pretty
good debugging information. That's what I've used previously for TLS
1.2 matters. (However, you might want to grab the code from git as,
some month's ago, their 1.2 Finished calculation had to be fixed.)

AGL

-- 
Adam Langley [email-masked] http://www.imperialviolet.org

---

From: Simon Josefsson <[email-masked]>
Date: Mon, 31 Jan 2011 20:21:09 +0100

Paul Hoffman <[email-masked]> writes:

> Greetings again. I would like to test how servers react to a TLS
> client that only does TLS 1.2. There are two browsers that can be put
> into this state (IE under Win 7, and Opera), but neither give very
> good diagnostics when a failure occurs. Further, Wireshark doesn't
> give good dumps for TLS 1.2.
>
> Thus, if anyone here has a TLS 1.2 client that has reasonable
> debugging of the TLS handshake and can do trivial HTTP (just send a
> "GET /" and receive the response would be fine) after setting up a
> tunnel, I'd greatly appreciate it. Also, if anyone has a Wireshark
> plugin (?) that brings its TLS decoding up to 1.2, that would be great
> as well.

GnuTLS's gnutls-cli can act as a simple TLS 1.2 client, see transcript
below.

/Simon

jas@latte:~$ gnutls-cli -p 443 www.mikestoolbox.net --priority NORMAL:-VERS-SSL3.0:-VERS-TLS1.1:-VERS-TLS1.0 
Resolving 'www.mikestoolbox.net'...
Connecting to '24.234.114.35:443'...
- Successfully sent 0 certificate(s) to server.
- Ephemeral Diffie-Hellman parameters
 - Using prime: 1024 bits
 - Secret key: 1023 bits
 - Peer's public key: 1024 bits
- Server has requested a certificate.
- Certificate type: X.509
 - Got a certificate list of 2 certificates.
 - Certificate[0] info:
  - subject `C=US,O=Mike's Toolbox,CN=www.mikestoolbox.net', issuer `C=US,O=Mike's Toolbox,CN=Mike's Toolbox Test CA', RSA key 1024 bits, signed using RSA-SHA256, activated `2010-03-05 21:19:00 UTC', expires `2011-03-05 21:19:00 UTC', SHA-1 fingerprint `d250a3f337064b63c8288c6a5bb540af3c44be97'
 - Certificate[1] info:
  - subject `C=US,O=Mike's Toolbox,CN=Mike's Toolbox Test CA', issuer `C=US,O=Mike's Toolbox,CN=Mike's Toolbox Test CA', RSA key 2048 bits, signed using RSA-SHA256, activated `2010-03-05 21:18:59 UTC', expires `2012-03-05 21:18:59 UTC', SHA-1 fingerprint `0e4fa65463bb38397bc24cc3259a803554963c79'
- The hostname in the certificate matches 'www.mikestoolbox.net'.
- Peer's certificate issuer is unknown
- Peer's certificate is NOT trusted
- Version: TLS1.2
- Key Exchange: DHE-RSA
- Cipher: AES-128-CBC
- MAC: SHA256
- Compression: NULL
- Handshake was completed

- Simple Client Mode:

GET / HTTP/1.0

HTTP/1.0 200 Ok
Date: Mon, 31 Jan 2011 19:19:23 GMT
Server: Mike's-Toolbox-Custom-Web-Server/3.7+3.2i
Content-Type: text/plain; charset=utf-8
Content-Length: 4458

******************************************************************
*** Mike's Toolbox Enhanced Multi-Threaded SSL/TLS Test Server ***
***                                                            ***
***               https://www.mikestoolbox.net/                ***
***               https://www.mikestoolbox.org/                ***
***                                                            ***
*** Mike's Toolbox contact info:                               ***
***                                                            ***
***             EMAIL:    [email-masked]               ***
***             WEB:      http://mikestoolbox.com/             ***
***             TWITTER:  @mikestoolbox                        ***
***                                                            ***
*** Copyright (c) 2010 Michael D'Errico, All Rights Reserved   ***
******************************************************************

Connection from:        [80.216.4.108]
Current time:           Mon, 31 Jan 2011 19:19:20 GMT
TLS negotiation time:   0.57711601 seconds

Client Version:         TLS 1.2
Client Random:          4D470B37F2873BC83EF553A79937F35A8F9E9EFB63FAC0B60D0A383B9131D738
Client Random Time:     Mon, 31 Jan 2011 19:19:19 GMT
Client Session ID:      
Client Cipher Suites:   0067  TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
                        0033  TLS_DHE_RSA_WITH_AES_128_CBC_SHA
                        0045  TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
                        006B  TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
                        0039  TLS_DHE_RSA_WITH_AES_256_CBC_SHA
                        0088  TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
                        0016  TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
                        0040  TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
                        0032  TLS_DHE_DSS_WITH_AES_128_CBC_SHA
                        0044  TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
                        006A  TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
                        0038  TLS_DHE_DSS_WITH_AES_256_CBC_SHA
                        0087  TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
                        0013  TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
                        0066  TLS_DHE_DSS_WITH_RC4_128_SHA
                        0090  TLS_DHE_PSK_WITH_AES_128_CBC_SHA
                        0091  TLS_DHE_PSK_WITH_AES_256_CBC_SHA
                        008F  TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
                        008E  TLS_DHE_PSK_WITH_RC4_128_SHA
                        003C  TLS_RSA_WITH_AES_128_CBC_SHA256
                        002F  TLS_RSA_WITH_AES_128_CBC_SHA
                        0041  TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
                        003D  TLS_RSA_WITH_AES_256_CBC_SHA256
                        0035  TLS_RSA_WITH_AES_256_CBC_SHA
                        0084  TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
                        000A  TLS_RSA_WITH_3DES_EDE_CBC_SHA
                        0005  TLS_RSA_WITH_RC4_128_SHA
                        008C  TLS_PSK_WITH_AES_128_CBC_SHA
                        008D  TLS_PSK_WITH_AES_256_CBC_SHA
                        008B  TLS_PSK_WITH_3DES_EDE_CBC_SHA
                        008A  TLS_PSK_WITH_RC4_128_SHA
Client Compression:     0     NULL

Server Version:         TLS 1.2
Server Random:          4D470B37F8BCDF0D263BC2415288665A08E162FD0519E210C14DC2000925D03B
Server Random Time:     Mon, 31 Jan 2011 19:19:19 GMT
Server Session ID:      
Server Cipher Suite:    0067  TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
Server Compression:     0     NULL

Client Extensions
-----------------
Server Name Indication: www.mikestoolbox.net
Max Fragment Length:    16384 bytes
Truncated HMAC:         No
Signature Algorithms:   RSA/SHA-1, DSA/SHA-1, RSA/SHA-256, RSA/SHA-384,
                        RSA/SHA-512
Session Ticket:         Empty
Renegotiation Info:     Empty

Server Extensions
-----------------
Server Name Chosen:     www.mikestoolbox.net
Max Fragment Length:    16384 bytes
Truncated HMAC:         No
Session Ticket:         264 Bytes
Renegotiation Info:     Empty

Security Parameters
-------------------
Client Finished:        0A6A46A0084820AD52F0A3A1
Server Finished:        3C1812F90DCC36207D610831
Master Secret:          A09D0E9AAA1F752776E6DA6C578220671B87CB5A28773575\
                        7EF13C5C658878D35B74C2329D8CA583155FC906E6E0B458

Handshake Details
-----------------
Bytes Sent:             2615
Bytes Received:         325

- Peer has closed the GnuTLS connection
jas@latte:~$

---

From: Xuelei Fan <[email-masked]>
Date: Tue, 01 Feb 2011 12:38:22 +0800

The recent JDK 7 snapshot releases support TLS 1.2 (see 
http://download.java.net/jdk7/). You're able to get and run the very 
simple sample code for simple HTTPS connections from 
http://download.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#HTTPSSample.

If you run Java with "-Djavax.net.debug=all -Dhttps.protocols=TLSv1.2" 
options, you would be able to find the detailed debugging log for 
TLS/SSL handshaking.

About the detained tech guides, please refer to 
http://download.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html.

Xuelei Fan
Java Platform, Oracle

On 2/1/2011 12:35 AM, Paul Hoffman wrote:
> _______________________________________________
> TLS mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/tls