Which security principle makes sure that sender cant deny sending of message?

HTTP supports two user authentication schemes: Basic Access Authentication and Digest Access Authentication. Basic Access Authentication is neither safe nor secure, as the username/password is sent in cleartext. Digest Access Authentication scheme is better. In the digest scheme, password is not sent, instead a digest of password is sent. Eavesdroppers cannot recover the password from the digest intercepted. Furthermore, a server's nounce is used to deter replay attack, as the digest value taken with the server's nounce is valid only for that particular session. The digest scheme, however, does not ensure message confidentiality, message integrity and non-repudiation.

Secure Socket Layout [SSL] is probably the best answer to HTTP security. This chapter briefly touches the SSL. SSL is an advanced topic, which cannot be covered in one chapter and deserves a book by itself.

Introduction to SSL/TLS

Secure Socket Layer [SSL], also known as Transfer Layer Security [TLS], is a security protocol that implements three cryptographic assurances: user authentication, message confidentiality and message integrity. SSL/TLS uses public key cryptography for authentication and exchange of a shared secret session key. It then uses secret session key to encrypt the messages to assure confidentiality. It also uses message digest to assure message integrity.

SSL/TLS does not assure non-repudiation. It is because SSL/TLS uses secret key cryptography for message exchange, which cannot assure non-repudiation. It is because the secret key is shared by both parties. Consequently, both parties can produce the ciphertext and you cannot pin-point who actually sent the message.

SSL/TLS is meant for client-server communication and not for peer-to-peer network. SSL/TLS is usually run below the HTTP and on top of TCP/IP for secure exchange between an HTTP server and HTTP client. SSL/TLS can also be used for other application protocols, such as FTP, SMTP and VPN.

SSL was developed by Netscape. The original SSL version 2 [SSLv2] specification was released in 1994, and deployed on Netscape Navigator v1.1 in March 1995. Netscape released SSL version 3 [SSLv3] in late 1995 to plug the security holes in SSLv2.

In May 1996, IETF [Internet Engineering Task Force] formed a Transport Layer Security [TLS] committee for standardize the SSL. IETF published the TLS version 1 [TLSv1] as RFC 2246 in 1999. TLSv1 is based on SSLv3, which is often regarded as SSLv3.1.

Installing & Configuring HTTP with SSL [HTTPS]

[TODO]

Pre-requisite - Basic Cryptography

To understand SSL, you need some basic cryptographic knowledge of public key, secret key, message digest, and digital certificate.

The above illustration shows the process of encryption and decryption, which can be expressed using the following equations.

C = E[M, KE]
M' = D[C, KD]
Ideally, M' = M

Secret Key Cryptography [Symmetric Cryptography]

In secret key cryptography, the encryption key [KE] and decryption key [KD] are the same, i.e.,

KE = KD

Problems:

  • How to send the secret key across the network?
  • Secret key cryptography does not assure non-repudiation, as both parties have the secret key and could produce the ciphertext. You cannot pin-point who produce it.

Advantage: Fast.

Examples: DES [56-bit], 3DES [112-bit], AES [128-bit].

Public Key Cryptography [Asymmetric Cryptography]

In public key cryptography, a matching pair of keys is used; one for encryption and the other for decryption. One of the key is called the public key [can be published or sent over the network and known to all users]. The other is called the private key [kept secretly by the owner].

KE ≠ KD

In some public-key algorithms, such as RSA, both keys can be used for encryption. In other algorithms, one key is for encryption only and the other for decryption.

To assure message confidentiality: The sender first asks for the receiver's public key. He then uses the receiver's public key to encrypt the message. Only the intended receiver has the matching private key to decrypt the ciphertext and recover the plaintext. This assures message confidentiality.

To assure authentication and non-repudiation: the sender uses his private key to encrypt the message. The receiver uses the sender's public key to decrypt the ciphertext. Since only the sender holds the private key to produce this ciphertext, the message has to come from this sender and no one else [authentication]. The sender cannot deny he had sent the message, because no one else can produce this message [non-repudiation].

Advantage: Solve the key distribution problem for secret key cryptography. Pubic key can be published, and private key must be secretly kept.

Disadvantage:

  • Computational Intensive. Public key cryptography is very much slower compared with secret key cryptography. A solution is to use public key to exchange a secret key, which is fast in encryption.
  • Man-in-the-middle Attack: A person in between intercept all messages and replaced by ciphertext encrypted using his own key. Both sender and receiver will not be able to notice. A solution is to use a digital certificate.

Examples: RSA [1024-bit], DH [Diffie-Hellman]

Digital Certificate

The purpose of digital certificate is to ascertain the public key belongs to someone who claim who does. The certificate contains the name of the person [or the organization], together with the public key. A Certificate Authority [CA] signs [i.e., encrypts] the certificate using its private key. Consequently, the certificate can only be decrypted using CA's public key. CAs are considered trustworthy and their public key are pre-installed into the browser.

To solve the practical problem of having one single CA [or a few CAs] to sign all the certificates, CAs are organized in hierarchy. The root CA, whose public key is pre-installed inside the browser, signs the certificate of sub-CAs. The sub-CAs can sign the certificate of sub-sub-CAs. The sub-sub-CAs can then sign the certificate of end-users. Because of this hierarchical structure, the certificate verification process involves a chain of certificates, all the way back to a root CA.

Message Digest:

A message digest is a function [H] that takes an input [

KE = KD
0] and outputs a fixed-length string [
KE = KD
1], which is the characteristic of the message. That is,
KE = KD
2. The function H is often called a one-way hash function and must fulfill two properties: irreversibility and collision-resistance. Irreversibility means that given
KE = KD
0, it is easy to compute
KE = KD
1. On the other hand, given
KE = KD
1, it is computational infeasible to recover
KE = KD
0. Collision-resistance means that it is very difficult to find two messages with the same digest value. It is even harder to find another message, which produces a given digest value. A small change in the message produces a totally different digest value.

Example: SHA-1 [160-bit], MD5 [128-bit].

Message Authentication Code [MAC]

MAC is a special digest, which incorporate a key into the computation of the digest. The MAC value is dependent on both the message and the key.

Example: Hashed MAC [HMAC]

Pseudo-Random Function [PRF]

A PRF takes 3 arguments: a secret [presumably random], a fixed ASCII string called label, and a seed [presumably random, but public], as denoted as PRF[secret, label, seed]. The purpose of the label is to allow PRF to generate different keys from the same secret. The output of PRF is an arbitrary-length string off pseudo-random bytes. PRF[][0..47] refers to the first 48 bytes of the PRF output.

How SSL Works

There are two phases in a SSL session: handshaking and data transfer. The handshaking must be completed before data transfer can take place in a secure manner. The handshaking involves two steps: ciphersuit negotiation and key exchange. In ciphersuit negotiation, the client and server establish the cryptographic algorithms and parameters to be used for the session. They then establish a session key during key exchange.

Handshaking - Ciphersuit Negotiation

The client and the server first negotiate the cryptographic parameters to be used for the session. These parameters, collectively called ciphersuit, consist of:

  • SSL protocol version to be used: e.g., TLSv1, SSLv3, SSLv2.
  • Key exchange method: e.g., RSA [1024-bit], DH.
  • Secret key cipher method: e.g., 3DES, DES [56-bit].
  • Digest method: e.g., SHA-1 [160-bit], MD5 [128-bit].
  • Data compression method: e.g., PKZip, gzip.

Ciphersuit negotiation is necessary because different client and server may have different cryptographic capability, and must first establish their common [lowest] denominator.

Handshaking - Key Exchange

Once the ciphersuit to be used are negotiated and agree-upon, the client and server will establish a session key:

  1. The client uses server's public key to encrypt a secret and sends to the server.
  2. Only the server has the matching private key to decrypt the secret [not the Eavesdroppers].
  3. The client and server then use this secret to generate a session key independently and simultaneously.
  4. This session key would then be used for secure communication for this particular communication session.

SSL Session in Details

Handshaking - Ciphersuit Negotiation

Client sends a plaintext

KE = KD
8 message and suggests some cryptographic parameters [collectively called ciphersuit] to be used for their communication session. The
KE = KD
8 message also contains a 32-byte random number denoted as
KE ≠ KD
0. For example,

Client_Hello:
  Protocol Version:  TLSv1 if you can, else SSLv3.
  Key Exchange: RSA if you can, else Diffe-Hellman.
  Secret Key Cipher Method:  3DES if you can, else DES.
  Message Digest: SHA-1 if you can, else MD5.
  Data Compression Method:  PKZip if you can, else gzip.
  Client Random Number: 32 bytes.

The stronger method [in terms of security] shall precede the weaker one, e.g. RSA [1024-bit] precedes DH, 3DES precedes DES, SHA-1 [160-bit] precedes MD5 [128-bit].

Server responds with a plaintext

KE ≠ KD
1 to state the ciphersuit of choice [server decides on the ciphersuit]. The message also contains a 32-byte random number denoted as
KE ≠ KD
2. For example,

Server_Hello:
  Protocol Version:  TLSv1.
  Key Exchange: RSA.
  Secret Key Cipher Method:  DES.
  Message Digest: SHA-1.
  Data Compression Method:  PKZip.
  Server Random Number: 32 bytes.

Handshaking - Key Exchange

The server sends its digital certificate to the client, which is supposedly signed by a root CA. The client uses the root CA's public key to verify the server's certificate [trusted root-CAs' public key are pre-installed inside the browser]. It then retrieves the server's public key from the server's certificate. [If the server's certificate is signed by a sub-CA, the client has to build a digital certificate chain, leading to a trusted root CA, to verify the server's certificate.]

The server can optionally request for the client's certificate to authenticate the client. In practice, server usually does not authenticate the client. This is because:

  • Server authenticates client by checking the credit card in an e-commerce transaction.
  • Most clients do not have a digital certificate.
  • Authentication via digital certificate takes time and the server may lose an impatient client.

The next step is to establish the Session Key:

  1. The client generates a 48-byte [384-bit] random number called
    KE ≠ KD
    3, encrypts it using the verified server's public key and sends it to the server.
  2. Server decrypts the
    KE ≠ KD
    3 using its own private key. Eavesdroppers cannot decrypt the
    KE ≠ KD
    3, as they do not possess the server's private key.
  3. Client and server then independently and simultaneously create the session key, based on the
    KE ≠ KD
    3,
    KE ≠ KD
    0 and
    KE ≠ KD
    2. Notice that both the server and client contribute to the session key, through the inclusion of the random number exchange in the hello messages. Eavesdroppers can intercept
    KE ≠ KD
    0 and
    KE ≠ KD
    2 as they are sent in plaintext, but cannot decrypt the
    KE ≠ KD
    3.
  4. In a SSL/TLS session, the session key consists of 6 secret keys [to thwart crypto-analysis]. 3 secret keys are used for client-to-server messages, and the other 3 secret keys are used for server-to-client messages. Among the 3 secret keys, one is used for encryption [e.g., DES secret key], one is used for message integrity [e.g., HMAC] and one is used for cipher initialization. [Cipher initialization uses a random plaintext called Initial Vector [IV] to prime the cipher pump.]
  5. Client and server use the
    KE ≠ KD
    3 [48-byte random number created by the client and exchange securely],
    KE ≠ KD
    0,
    KE ≠ KD
    2, and a pseudo-random function [PRF] to generate a
    Client_Hello:
      Protocol Version:  TLSv1 if you can, else SSLv3.
      Key Exchange: RSA if you can, else Diffe-Hellman.
      Secret Key Cipher Method:  3DES if you can, else DES.
      Message Digest: SHA-1 if you can, else MD5.
      Data Compression Method:  PKZip if you can, else gzip.
      Client Random Number: 32 bytes.
    5. They can use the
    Client_Hello:
      Protocol Version:  TLSv1 if you can, else SSLv3.
      Key Exchange: RSA if you can, else Diffe-Hellman.
      Secret Key Cipher Method:  3DES if you can, else DES.
      Message Digest: SHA-1 if you can, else MD5.
      Data Compression Method:  PKZip if you can, else gzip.
      Client Random Number: 32 bytes.
    5,
    KE ≠ KD
    0,
    KE ≠ KD
    2, and the pseudo-random function [PRF] to generate all the 6 shared secret keys. Once the secret keys are generated, the
    KE ≠ KD
    3 is no longer needed and should be deleted.
  6. From this point onwards, all the exchanges are encrypted using the session key.
  7. The client sends Finished handshake message using their newly created session key. Server responds with a Finished handshake message.

Message Exchange

Client and server can use the agreed-upon session key [consists of 6 secret keys] for secure exchange of messages.

Sending messages:

  1. The sender compresses the message using the agreed-upon compression method [e.g., PKZip, gzip].
  2. The sender hashes the compressed data and the secret HMAC key to make an HMAC, to assure message integrity.
  3. The sender encrypts the compressed data and HMAC using encryption/decryption secret key, to assure message confidentiality.

Retrieve messages:

  1. The receiver decrypts the ciphertext using the encryption/decryption secret key to retrieve the compressed data and HMAC.
  2. The receiver hashes the compressed data to independently produce the HMAC. It then verifies the generated HMAC with the HMAC contained in the message to assure message integrity.
  3. The receiver un-compresses the data using the agreed-upon compression method to recover the plaintext.

The following diagram shows the sequence of the SSL messages for a typical client/server session.

A SSL Session Trace

We could use OpenSSL's

Server_Hello:
  Protocol Version:  TLSv1.
  Key Exchange: RSA.
  Secret Key Cipher Method:  DES.
  Message Digest: SHA-1.
  Data Compression Method:  PKZip.
  Server Random Number: 32 bytes.
0 [with debug option] to produce a SSL session trace.

> openssl s_client ?
[Display the available options]

The following command turns on the debug option and forces the protocol to be TLSv1:

> openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
   
Loading 'screen' into random state - done
CONNECTED[00000760]
   
write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
0060 - 00 06 00 03 01                                    .....
0066 - 
   
read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
0000 - 16 03 01 00 2a                                    ....*
  
read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
002a - 
   
read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
0000 - 16 03 01 02 05                                    .....
   
read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
0000 - 15 03 01 00 18                                    .....
   
read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
   
closed
  
write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.

Trace Analysis

The data to be transmitted is broken up into series of fragments. Each fragment is protected for integrity using HMAC. [more]

Each SSL record begins with a 5-byte header:

  • Byte 0: Record Content Type. Four Content Types are defined, as follows:Content TypeHex CodeDescription
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    1
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    2The record carries a handshaking message
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    3
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    4Encrypted Application Data
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    5
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    6To indicate a change in encryption methods.
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    7
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    8To signal various types of errors
  • Byte 1 & 2: SSL version [0x0301 for TLSv1, 0x0300 for SSLv3].
  • Byte 3 & 4: The record length, excluding the 5-byte header.

Let us begin looking into the handshake message contained within a SSL record [of Content Type

Server_Hello:
  Protocol Version:  TLSv1.
  Key Exchange: RSA.
  Secret Key Cipher Method:  DES.
  Message Digest: SHA-1.
  Data Compression Method:  PKZip.
  Server Random Number: 32 bytes.
2]. The handshake message has a 4-byte header:

  • Byte 0: Handshake Type, as follows:Handshake TypeHex Code
    > openssl s_client ?
    [Display the available options]
    0
    > openssl s_client ?
    [Display the available options]
    1
    > openssl s_client ?
    [Display the available options]
    2
    > openssl s_client ?
    [Display the available options]
    3
    > openssl s_client ?
    [Display the available options]
    4
    > openssl s_client ?
    [Display the available options]
    5
    > openssl s_client ?
    [Display the available options]
    6
    > openssl s_client ?
    [Display the available options]
    7
    > openssl s_client ?
    [Display the available options]
    8
    > openssl s_client ?
    [Display the available options]
    9
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    0
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    1
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    2
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    3
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    4
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    5
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    6
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    7
    > openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
       
    Loading 'screen' into random state - done
    CONNECTED[00000760]
       
    write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
    0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
    0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
    0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
    0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
    0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
    0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
    0060 - 00 06 00 03 01                                    .....
    0066 - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 00 2a                                    ....*
      
    read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
    0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
    0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
    0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
    002a - 
       
    read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
    0000 - 16 03 01 02 05                                    .....
       
    read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
    0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
    0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
    0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
    0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
    0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
    0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
    0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
    0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
    0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
    0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
    00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
    00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
    00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
    00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
    00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
    00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
    0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
    0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
    0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
    0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
    0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
    0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
    0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
    0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
    0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
    0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
    0000 - 15 03 01 00 18                                    .....
       
    read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
    0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
    0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
       
    closed
      
    write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
    0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
    0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
    8
    Server_Hello:
      Protocol Version:  TLSv1.
      Key Exchange: RSA.
      Secret Key Cipher Method:  DES.
      Message Digest: SHA-1.
      Data Compression Method:  PKZip.
      Server Random Number: 32 bytes.
    6
  • Byte 1 - 3: The message length, excluding the 3-byte header.

Hence, a

> openssl s_client ?
[Display the available options]
2 record will begin with a 5-byte record header, followed by a 4-byte handshake message header. For example,

KE = KD
8

The first handshake message is always sent by the client, called

> openssl s_client ?
[Display the available options]
2 message. In this message, the client tells the server its preferences in terms of protocol version, ciphersuit, and compression method. The client also includes a 32-byte random number [
KE ≠ KD
0] in the message, which is made up of a 4-byte GMT Unix time [seconds since 1970], plus another 28 random bytes.

You must refer to RFC2246 for the structure of the

KE = KD
8 message.

BytesLenValueDescription00116Record Content Type - Handshake Message01-02203 01SSL version - TLSv103-04200 61Record Length05101Handshake Type - Client_Hello06-08300 00 5dMessage Length [0x61-4 = 0x5d]09-0A203 01Client preferred version [client_version] - TLSv10B-0E440 44 35 27GMT TimeClient_Random0C-2A285c ... 7228 random bytes2B100Session ID Length 0 [for resuming the session]2C-2D200 36Ciphersuit Length - 27 choices [2-byte each]2E-6354....The 27 Ciphersuits [See Table]64101Compression Method Length - 165100Compression Method: NULL.

Ciphersuit Code used in

KE = KD
8 and KE6 messages is tabulated as follows:

Cipher SuiteAuthKey ExchangeEncryptionHashCodeRSA_WITH_NULL_MD5RSARSANULLMD50001RSA_WITH_NULL_SHARSARSANULLSHA0002RSA_EXPORT_WITH_RC4_40_MD5RSARSA_EXPORTRC4_40MD50003RSA_WITH_RC4_128_MD5RSARSARC4_128MD50004RSA_WITH_RC4_128_SHARSARSARC4_128SHA0005RSA_EXPORT_WITH_RC2_CBC_40_MD5RSARSA_EXPORTRC2_40_CBCMD50006RSA_WITH_IDEA_CBC_SHARSARSAIDEA_CBCSHA0007RSA_EXPORT_WITH_DES40_CBC_SHARSARSA_EXPORTDES40_CBCSHA0008RSA_WITH_DES_CBC_SHARSARSADES_CBCSHA0009RSA_WITH_3DES_EDE_CBC_SHARSARSA3DES_EDE_CBCSHA000ADH_DSS_EXPORT_WITH_DES40_CBC_SHARSADH_DSS_EXPTDES_40_CBCSHA000BDH_DSS_WITH_DES_CBC_SHADSSDHDES_CBCSHA000CDH_DSS_WITH_3DES_EDE_CBC_SHADSSDH3DES_EDE_CBCSHA000DDH_RSA_EXPORT_WITH_DES40_CBC_SHARSADH_EXPORTDES_40_CBCSHA000EDH_RSA_WITH_DES_CBC_SHARSADHDES_CBCSHA000FDH_RSA_WITH_3DES_EDE_CBC_SHADSSDH3DES_EDE_CBCSHA0010DHE_DSS_EXPORT_WITH_DES40_CBC_SHADSSDH_EXPORTRC4_40SHA0011DHE_DSS_WITH_DES_CBC_SHADSSDHERC4_128SHA0012DHE_DSS_WITH_3DES_EDE_CBC_SHADSSDHEDES_40_CBCSHA0013DHE_RSA_EXPORT_WITH_DES40_CBC_SHARSADHE_EXPORTDES_CBCSHA0014DHE_RSA_WITH_DES_CBC_SHARSADHDES_CBCSHA0015DHE_RSA_WITH_3DES_EDE_CBC_SHARSADHE3DES_EDE_CBCSHA0016DH_anon_EXPORT_WITH_RC4_40_MD5-DH_EXPORTRC4_40MD50017DH_anon_WITH_RC4_128_MD5-DHRC4_128MD50018DH_anon_EXPORT_WITH_DES40_CBC_SHA-DH_EXPORTDES_40_CBCSHA0019DH_anon_WITH_DES_CBC_SHA-DHDES_CBCSHA001ADH_anon_WITH_3DES_EDE_CBC_SHA-DH3DES_EDE_CBCSHA001B

KE6

In response to the

> openssl s_client ?
[Display the available options]
2 message, the server returns a
> openssl s_client ?
[Display the available options]
4 message to tell the client its choice of protocol version, ciphersuit and compression method. The server also includes a 32-byte random number [
KE ≠ KD
2] in the message.

BytesLenValueDescription00116Record Content Type - Handshake Message01-02203 01SSL version - TLSv103-04200 2aRecord Length05102Handshake Type - Server_Hello06-08300 00 26Message Length09-0A203 01Protocol Version Chosen - TLSv10B-0E440 44 35 27GMT Time [sec since 1970]Server_Random0C-2A28cc ... b928 random bytes2B100Session ID Length 0 [for resuming the session]2C-2D200 16Ciphersuit Chosen:
DHE_RSA_WITH_3DES_EDE_CBC_SHA2E100Compression Method Chosen: NULL.

Certificate

The certificate message consists of a chain of X.509 certificates in the correct order. The first certificate belongs to the server, and the next certificate contains the key that certifies the first certificate [i.e., the server's certificate], and so on. The client uses the server's public key [contained inside the server's certificate] to either encrypt the pre_master_secret or verify the server_key_exchange, depending on which ciphersuit is used.

BytesLenValueDescription00116Record Content Type - Handshake Message01-02203 01SSL version - TLSv103-04202 05Record Length0510bHandshake Type - certificate06-08300 02 01Message Length09-0B300 01 feCertificate LengthCertificates [to be traced]

The X.509 certificate structure can be found from the ITU recommendation X.509 "The directory - Authentication Framework".

KD1

KD2

This is an empty message indicating that the server has sent all the handshaking messages. This is needed because the server can send some optional messages after the certificate message.

BytesLenValueDescription00116Record Content Type - Handshake Message01-02203 01SSL version - TLSv103-04200 04Record Length0510eHandshake Type - Server_Hello_Done[check the last 3 bytes]

KD3

The

> openssl s_client -connect localhost:443 -CAfile ca.crt -debug -tls1
   
Loading 'screen' into random state - done
CONNECTED[00000760]
   
write to 00988EB0 [009952C8] [102 bytes => 102 [0x66]]
0000 - 16 03 01 00 61 01 00 00-5d 03 01 40 44 35 27 5c   ....a...]..@D5'\
0010 - 5a e8 74 26 e9 49 37 e2-06 3b 1c 6d 77 37 d1 ae   Z.t&.I7..;.mw7..
0020 - 44 07 86 47 98 fa 84 1a-8d f4 72 00 00 36 00 39   D..G......r..6.9
0030 - 00 38 00 35 00 16 00 13-00 0a 00 33 00 32 00 2f   .8.5.......3.2./
0040 - 00 07 00 66 00 05 00 04-00 63 00 62 00 61 00 15   ...f.....c.b.a..
0050 - 00 12 00 09 00 65 00 64-00 60 00 14 00 11 00 08   .....e.d.`......
0060 - 00 06 00 03 01                                    .....
0066 - 
   
read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
0000 - 16 03 01 00 2a                                    ....*
  
read from 00988EB0 [00990ABD] [42 bytes => 42 [0x2A]]
0000 - 02 00 00 26 03 01 40 44-35 27 cc ef 2b 51 e1 b0   ...&..@D5'..+Q..
0010 - 44 1f ef c4 83 72 df 37-4f 9b 2b dd 11 50 13 87   D....r.7O.+..P..
0020 - 91 0a a2 d2 28 b9 00 00-16                        ....[....
002a - 
   
read from 00988EB0 [00990AB8] [5 bytes => 5 [0x5]]
0000 - 16 03 01 02 05                                    .....
   
read from 00988EB0 [00990ABD] [517 bytes => 517 [0x205]]
0000 - 0b 00 02 01 00 01 fe 00-01 fb 30 82 01 f7 30 82   ..........0...0.
0010 - 01 60 02 01 01 30 0d 06-09 2a 86 48 86 f7 0d 01   .`...0...*.H....
0020 - 01 04 05 00 30 4d 31 0b-30 09 06 03 55 04 06 13   ....0M1.0...U...
0030 - 02 55 53 31 10 30 0e 06-03 55 04 0b 13 07 74 65   .US1.0...U....te
0040 - 73 74 31 30 31 31 0c 30-0a 06 03 55 04 03 13 03   st1011.0...U....
0050 - 63 68 63 31 1e 30 1c 06-09 2a 86 48 86 f7 0d 01   chc1.0...*.H....
0060 - 09 01 16 0f 63 68 63 40-74 65 73 74 31 30 31 2e   ....chc@test101.
0070 - 63 6f 6d 30 1e 17 0d 30-34 30 32 32 36 30 36 35   com0...040226065
0080 - 36 35 34 5a 17 0d 30 35-30 32 32 35 30 36 35 36   654Z..0502250656
0090 - 35 34 5a 30 3b 31 0b 30-09 06 03 55 04 06 13 02   54Z0;1.0...U....
00a0 - 55 53 31 0c 30 0a 06 03-55 04 03 13 03 63 68 63   US1.0...U....chc
00b0 - 31 1e 30 1c 06 09 2a 86-48 86 f7 0d 01 09 01 16   1.0...*.H.......
00c0 - 0f 63 68 63 40 74 65 73-74 31 30 31 2e 63 6f 6d   .chc@test101.com
00d0 - 30 81 9f 30 0d 06 09 2a-86 48 86 f7 0d 01 01 01   0..0...*.H......
00e0 - 05 00 03 81 8d 00 30 81-89 02 81 81 00 cd e4 9e   ......0.........
00f0 - 7c b6 d2 34 4e d3 53 46-25 c7 53 88 25 60 e6 46   |..4N.SF%.S.%`.F
0100 - db 64 3a 73 61 92 ac 23-92 cd 2c 94 a9 8f c6 7f   .d:sa..#..,.....
0110 - 47 73 c0 d9 8d 34 b7 2c-dd c9 86 bd 82 6f ce ac   Gs...4.,.....o..
0120 - d8 e2 ba 0f e5 f5 3a 67-2c 89 1a 1b 03 eb 21 85   ......:g,.....!.
0130 - 28 e3 29 98 84 ed 46 75-82 fa 0f 30 a3 a9 a5 71   [.]...Fu...0...q
0140 - 46 4c d6 0d 17 c4 19 fd-44 fb e2 18 46 a6 9d ab   FL......D...F...
0150 - 91 de 6b a1 7f fe 30 06-28 5d d8 d3 29 00 c3 1d   ..k...0.[]..]...
0160 - 4c 13 00 61 8f f3 85 51-f5 68 d8 69 25 02 03 01   L..a...Q.h.i%...
0170 - 00 01 30 0d 06 09 2a 86-48 86 f7 0d 01 01 04 05   ..0...*.H.......
0180 - 00 03 81 81 00 29 fd bf-5a ed 70 8f 53 a4 e9 14   .....]..Z.p.S...
0190 - 4c 5e ba 84 c6 54 1b f2-c0 3c c4 30 0f 7f 12 80   L^...T... 5 [0x5]]
0000 - 15 03 01 00 18                                    .....
   
read from 00988EB0 [00990ABD] [24 bytes => 24 [0x18]]
0000 - a5 47 51 bd aa 0f 9b e4-ac d4 28 f2 d0 a0 c8 fa   .GQ.......[.....
0010 - 2c d4 e5 e4 be c5 01 85-                          ,.......
   
closed
  
write to 00988EB0 [009952C8] [29 bytes => 29 [0x1D]]
0000 - 15 03 01 00 18 d4 19 b9-59 88 88 c0 c9 38 ab 5c   ........Y....8.\
0010 - 98 8c 43 fd b8 9e 14 3d-77 5e 4c 68 03            ..C....=w^Lh.
6 message contains the
KE ≠ KD
3 when RSA key exchange is used. The
KE ≠ KD
3 is 48-byte, consists of protocol version [2 bytes] and 46 random bytes.

BytesLenValueDescription00116Record Content Type - Handshake Message01-02203 01SSL version - TLSv103-04200 86Record Length05110Handshake Type - Client_Key_Exchange06-08300 00 82Message Lengthpre_master_secret [130 bytes]: encrypted using server's public key
extracted from the server's certificate

Server_Hello:
  Protocol Version:  TLSv1.
  Key Exchange: RSA.
  Secret Key Cipher Method:  DES.
  Message Digest: SHA-1.
  Data Compression Method:  PKZip.
  Server Random Number: 32 bytes.
5

BytesLenValueDescription00114Record Content Type - Change_Cipher_Spec01-02203 01SSL version - TLSv103-04200 01Record Length05101??

KD8

Server_Hello:
  Protocol Version:  TLSv1.
  Key Exchange: RSA.
  Secret Key Cipher Method:  DES.
  Message Digest: SHA-1.
  Data Compression Method:  PKZip.
  Server Random Number: 32 bytes.
5

Unknown Handshaking Message [D4] - to check

Server_Hello:
  Protocol Version:  TLSv1.
  Key Exchange: RSA.
  Secret Key Cipher Method:  DES.
  Message Digest: SHA-1.
  Data Compression Method:  PKZip.
  Server Random Number: 32 bytes.
3

Client-to-Server - the HTTP request message: H1

Server-to-Client - the HTTP response message

Server_Hello:
  Protocol Version:  TLSv1.
  Key Exchange: RSA.
  Secret Key Cipher Method:  DES.
  Message Digest: SHA-1.
  Data Compression Method:  PKZip.
  Server Random Number: 32 bytes.
7

Comparison of TLS v1, SSL v3 and SSL v2

The TLS v1 specification stated, "TLS v1 and SSL v3 are very similar". Some of minor differences include minor changes in HMAC calculation, ciphersuit support, and pseudo-random number generation. TLS v1 can be regarded as SSL v3.1.

SSL v2 has a big security hole in the negotiation of the ciphersuit [and should not be used]. The attacker can convince the client and server to use a weaker encryption than what they are capable of. This is called "ciphersuit rollback" attack.

What is the feature of security where sender can't deny After sending the data?

Nonrepudiation provides proof of the origin, authenticity and integrity of data. It provides assurance to the sender that its message was delivered, as well as proof of the sender's identity to the recipient. This way, neither party can deny that a message was sent, received and processed.

What are the 4 principles of security?

The Principles of Security can be classified as follows:.
Confidentiality: The degree of confidentiality determines the secrecy of the information. ... .
Authentication: Authentication is the mechanism to identify the user or system or the entity. ... .
Integrity: ... .
Non-Repudiation: ... .
Access control: ... .
Availability:.

What prevents either sender or receiver from denying a transmitted message?

Nonrepudiation: Nonrepudiation is a process that prevents either sender or receiver from denying a transmitted message.

What are the 5 basic principles of security and their meaning?

The U.S. Department of Defense has promulgated the Five Pillars of Information Assurance model that includes the protection of confidentiality, integrity, availability, authenticity, and non-repudiation of user data.

Chủ Đề