Client send Client Hello
Secure Sockets Layer
TLSv1.2 Record Layer: Handshake Protocol: Client Hello
Content Type: Handshake (22)
Version: TLS 1.2 (0x0303)
Length: 150
* this is sent to the server
Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 146
Version: TLS 1.2 (0x0303)
Random: 692d0203bef9bea83f4106379abcb072b1fb93ef7b72384b...
Session ID Length: 0
Cipher Suites Length: 26
Cipher Suites (13 suites)
Cipher Suite: TLS_EMPTY_RENEGOTIATION_INFO_SCSV (0x00ff)
Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)
Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
Compression Methods Length: 1
Compression Methods (1 method)
Extensions Length: 79
Extension: signature_algorithms (len=24)
* These define what the certificate needs
Type: signature_algorithms (13)
Signature Hash Algorithms (11 algorithms)
* rsa key exchange, pkcs1(=rsa public ley) and signed with sha512
Signature Algorithm: rsa_pkcs1_sha512 (0x0601)
Signature Algorithm: rsa_pkcs1_sha384 (0x0501)
Signature Algorithm: rsa_pkcs1_sha256 (0x0401)
Signature Algorithm: SHA224 RSA (0x0301)
Signature Algorithm: rsa_pkcs1_sha1 (0x0201)
* ecdaa key exchange, elliptic key secp521r1 and signed with sha512
Signature Algorithm: ecdsa_secp521r1_sha512 (0x0603)
Signature Algorithm: ecdsa_secp384r1_sha384 (0x0503)
Signature Algorithm: ecdsa_secp256r1_sha256 (0x0403)
Signature Algorithm: SHA224 ECDSA (0x0303)
Signature Algorithm: ecdsa_sha1 (0x0203)
Signature Algorithm: SHA1 DSA (0x0202)
Extension: server_name (len=29)
Type: server_name (0)
* This is sni - it sends the name of the channel as part of the
* handshake so the channels certlabl can be used
Length: 29
Server Name Indication extension
Server Name list length: 27
Server Name Type: host_name (0)
Server Name length: 24
* This is the channel name ECRSA1024
Server Name: ecrsa1024.chl.mq.ibm.com
Extension: supported_groups (len=8)
Type: supported_groups (10)
* These are the support elliptic keys
Length: 8
Supported Groups List Length: 6
Supported Groups (3 groups)
Supported Group: secp256r1 (0x0017)
Supported Group: secp384r1 (0x0018)
Supported Group: secp521r1 (0x0019)
The server sends Server Hello down to the client
Handshake Protocol: Server Hello
Handshake Type: Server Hello (2)
Length: 87
* This is a TLS type 1.2 handshake
Version: TLS 1.2 (0x0303)
Random: 843cd311a7291d869aac69e34160113d0b27ea4085134154...
Session ID Length: 32
Session ID: 3f9e94c95dc9e498052704d68e37f5e997fe5b22c9b285b0...
* This is the agreed cipher suite
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
Compression Method: null (0)
Extensions Length: 15
Extension: server_name (len=0)
Type: server_name (0)
Length: 0
Extension: ec_point_formats (len=2)
Type: ec_point_formats (11)
Length: 2
EC point formats Length: 1
Elliptic curves point formats (1)
EC point format: uncompressed (0)
Extension: renegotiation_info (len=1)
Type: renegotiation_info (65281)
Length: 1
Renegotiation Info extension
Handshake Protocol: Certificate
* Here is the server's certificate
Handshake Type: Certificate (11)
Length: 1015
Certificates Length: 1012
Certificates (1012 bytes)
Certificate Length: 530
Certificate: ... (CN=ecec,ON=cpwebuser,...)
* and the CA of the certificate
Certificate Length: 476
Certificate: ... (CN=SSCA256,O=CA,ORG=SSS,C=GB)
Handshake Protocol: Server Key Exchange
Handshake Type: Server Key Exchange (12)
Length: 176
EC Diffie-Hellman Server Params
Handshake Protocol: Certificate Request
* please send me your certificate for authentication
Handshake Type: Certificate Request (13)
Length: 301
Certificate types count: 3
* The certificate can be any of these types
Certificate types (3 types)
Certificate type: RSA Sign (1)
Certificate type: DSS Sign (2)
Certificate type: ECDSA Sign (64)
Signature Hash Algorithms Length: 22
* and any of these algorithms, and signature algorithms
Signature Hash Algorithms (11 algorithms)
Signature Algorithm: rsa_pkcs1_sha512 (0x0601)
Signature Algorithm: rsa_pkcs1_sha384 (0x0501)
Signature Algorithm: rsa_pkcs1_sha256 (0x0401)
Signature Algorithm: SHA224 RSA (0x0301)
Signature Algorithm: rsa_pkcs1_sha1 (0x0201)
Signature Algorithm: ecdsa_secp521r1_sha512 (0x0603)
Signature Algorithm: ecdsa_secp384r1_sha384 (0x0503)
Signature Algorithm: ecdsa_secp256r1_sha256 (0x0403)
Signature Algorithm: SHA224 ECDSA (0x0303)
Signature Algorithm: ecdsa_sha1 (0x0203)
Signature Algorithm: SHA1 DSA (0x0202)
Distinguished Names Length: 271
Distinguished Names (271 bytes)
Handshake Protocol: Server Hello Done
Handshake Type: Server Hello Done (14)
The client sends Certificate, Client Key Exchange, Certificate Verify to the server
Secure Sockets Layer
TLSv1.2 Record Layer: Handshake Protocol: Multiple Handshake Messages
Content Type: Handshake (22)
Version: TLS 1.2 (0x0303)
Length: 1592
Handshake Protocol: Certificate
Handshake Type: Certificate (11)
Length: 1222
Certificates Length: 1219
Certificates (1219 bytes)
* This is the certicate the client has chosen
Certificate Length: 737
Certificate: ..(CN=rsaca256,O=cpwebuser,C=GB)
* and its CA
Certificate Length: 476
Certificate: ... (CN=SSCA256,O=CA,O=SSS,C=GB)
Handshake Protocol: Client Key Exchange
Handshake Type: Client Key Exchange (16)
Length: 98
EC Diffie-Hellman Client Params
Handshake Protocol: Certificate Verify
Handshake Type: Certificate Verify (15)
Length: 260
Signature Algorithm: rsa_pkcs1_sha512 (0x0601)
Signature length: 256
Signature: 80739207ace563c019301a909c0359647c8d7cf65a913c3f...
Wireshark trace for TLS 1.3
Client Hello sent to the server
Secure Sockets Layer
TLSv1.3 Record Layer: Handshake Protocol: Client Hello
Content Type: Handshake (22)
* it says 1.2 as this is the minimum level
Version: TLS 1.2 (0x0303)
Length: 299
Handshake Protocol: Client Hello
Handshake Type: Client Hello (1)
Length: 295
Version: TLS 1.2 (0x0303)
Random: 20eedbdaf7844aa681d073b0e6fa2b8cbe284d39c700a22a...
Session ID Length: 32
Session ID: 513f01bdc6f6de827221c7cf5355f91ecc222f6d5fe882df...
Cipher Suites Length: 36
Cipher Suites (18 suites)
* The list of supported cupher specs
Cipher Suite: TLS_EMPTY_RENEGOTIATION_INFO_SCSV (0x00ff)
* The first one is TLS 1.3
Cipher Suite: TLS_CHACHA20_POLY1305_SHA256 (0x1303)
* The rest are TLS 1.2
Cipher Suite: TLS_AES_256_GCM_SHA384 (0x1302)
...
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
Compression Methods Length: 1
Compression Methods (1 method)
Extensions Length: 186
Extension: supported_versions (len=5)
Type: supported_versions (43)
Length: 5
Supported Versions length: 4
* Both TLS 1.3 and 1.2 are supported
Supported Version: TLS 1.3 (0x0304)
Supported Version: TLS 1.2 (0x0303)
Extension: key_share (len=38)
Type: key_share (51)
Length: 38
Key Share extension
Client Key Share Length: 36
Key Share Entry: Group: x25519, Key Exchange length: 32
Extension: supported_groups (len=12)
* The followin elliptic curve definitions
Type: supported_groups (10)
Length: 12
Supported Groups List Length: 10
Supported Groups (5 groups)
Supported Group: x25519 (0x001d)
Supported Group: secp256r1 (0x0017)
Supported Group: secp384r1 (0x0018)
Supported Group: secp521r1 (0x0019)
Supported Group: x448 (0x001e)
Extension: signature_algorithms (len=36)
* and these certicate types and other parameters
Type: signature_algorithms (13)
Length: 36
Signature Hash Algorithms Length: 34
Signature Hash Algorithms (17 algorithms)
Signature Algorithm: rsa_pkcs1_sha256 (0x0401)
Signature Algorithm: rsa_pkcs1_sha384 (0x0501)
Signature Algorithm: rsa_pkcs1_sha512 (0x0601)
Signature Algorithm: ecdsa_secp256r1_sha256 (0x0403)
Extension: signature_algorithms_cert (len=36)
Type: signature_algorithms_cert (50)
Length: 36
Signature Hash Algorithms Length: 34
Signature Hash Algorithms (17 algorithms)
Signature Algorithm: rsa_pkcs1_sha256 (0x0401)
...
* ECDA key exchange with elliptic curve of this type and sha 256 signature
Signature Algorithm: ecdsa_secp256r1_sha256 (0x0403)
...
Signature Algorithm: SHA224 ECDSA (0x0303)
Signature Algorithm: SHA1 DSA (0x0202)
Extension: ec_point_formats (len=2)
Type: ec_point_formats (11)
Length: 2
EC point formats Length: 1
Elliptic curves point formats (1)
EC point format: uncompressed (0)
Extension: server_name (len=29)
Type: server_name (0)
Length: 29
Server Name Indication extension
Server Name list length: 27
Server Name Type: host_name (0)
Server Name length: 24
* This is the name of the channe ECRSA1024
* a lower case channel name would be in hex
Server Name: ecrsa1024.chl.mq.ibm.com
Server hello
Secure Sockets Layer
TSv1.3 Record Layer: Handshake Protocol: Server Hello
Content Type: Handshake (22)
Version: TLS 1.2 (0x0303)
Length: 122
Handshake Protocol: Server Hello
Handshake Type: Server Hello (2)
Length: 118
Version: TLS 1.2 (0x0303)
Random: dbf0cd129b3cf8185a81ebd7738de2302c252ff6cf0af056...
Session ID Length: 32
Session ID: 513f01bdc6f6de827221c7cf5355f91ecc222f6d5fe882df...
* This is the agreed Cipher Suite
Cipher Suite: TLS_CHACHA20_POLY1305_SHA256 (0x1303)
Compression Method: null (0)
Extensions Length: 46
Extension: supported_versions (len=2)
Type: supported_versions (43)
Length: 2
* This only supports TLS 1.3
Supported Version: TLS 1.3 (0x0304)
Extension: key_share (len=36)
Type: key_share (51)
Length: 36
Key Share extension...
Flow after this, such as the server sending down its certificate, and requesting the client certificate are encypted and not visible in the packets.