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.