随笔-生活工作点滴网络IT@程序员猿媛

【网络协议笔记】SSL/TLS/HTTPS 协议整理

2019-07-29  本文已影响0人  58bc06151329

文前说明

作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。

本文仅供学习交流使用,侵权必删。
不用于商业目的,转载请注明出处。

1. SSL/TLS

TLS 与 SSL 的差异

TLS 的主要增强内容

1.1 密钥协商过程(TLS 握手)

TLS 握手过程

1.1.1 客户端发出请求(ClientHello)

Handshake Protocol: Client Hello
    Handshake Type: Client Hello (1)
    Length: 508
    Version: TLS 1.2 (0x0303)
    Random: cdc1f5573df2fa1c629ab466d127cc551ec6bc2b569385ed...
    Session ID Length: 32
    Session ID: b15be15c4c39956f6f5bc3f5bb865efeba69406ea0fcc8b8...
    Cipher Suites Length: 34
    Cipher Suites (17 suites)
    Compression Methods Length: 1
    Compression Methods (1 method)
    Extensions Length: 401
    Extension: Reserved (GREASE) (len=0)
    Extension: extended_master_secret (len=0)
    Extension: renegotiation_info (len=1)
    Extension: supported_groups (len=10)
    Extension: ec_point_formats (len=2)
    Extension: SessionTicket TLS (len=192)
    Extension: application_layer_protocol_negotiation (len=14)
    Extension: status_request (len=5)
    Extension: signature_algorithms (len=20)
    Extension: signed_certificate_timestamp (len=0)
    Extension: key_share (len=43)
    Extension: psk_key_exchange_modes (len=2)
    Extension: supported_versions (len=11)
    Extension: Unknown type 27 (len=3)
    Extension: Reserved (GREASE) (len=1)
    Extension: padding (len=33)

ContentType Dec 说明
ChangeCipherSpec 20 开始加密传输
Alert 21 警告
Handshake 22 握手
Application 23 正常通信
主要版本 次要版本 版本类型
3 0 SSLv3
3 1 TLS 1.0
3 2 TLS 1.1
3 3 TLS 1.2
编号 说明
0 HelloRequest
1 ClientHello
2 ServerHello
11 Certificate
12 ServerKeyExchange
13 CertificateRequest
14 ServerHelloDone
15 CertificateVerify
16 ClientKeyExchange
20 Finished

分析用例

Cipher Suites (17 suites)
    Cipher Suite: Reserved (GREASE) (0xfafa)
    Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301)
    Cipher Suite: TLS_AES_256_GCM_SHA384 (0x1302)
    Cipher Suite: TLS_CHACHA20_POLY1305_SHA256 (0x1303)
    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_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030)
    Cipher Suite: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)
    Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
    Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
    Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d)
    Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
    Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
    Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)

1.1.2 服务器回应(SeverHello)

Handshake Protocol: Server Hello
    Handshake Type: Server Hello (2)
    Length: 77
    Version: TLS 1.2 (0x0303)
    Random: b8a711c2e2c5c83b53257ef8c3b088c265f34377567f22a3...
    Session ID Length: 32
    Session ID: b15be15c4c39956f6f5bc3f5bb865efeba69406ea0fcc8b8...
    Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
    Compression Method: null (0)
    Extensions Length: 5
    Extension: renegotiation_info (len=1)

分析用例

1.1.3 客户端回应(Certificate Verify)

Client Key Exchange

Certificate Verify

ChangeCipherSpec

1.1.4 服务器的最后回应(Server Finish)

TLSv1.2 Record Layer: Change Cipher Spec Protocol: Change Cipher Spec
    Content Type: Change Cipher Spec (20)
    Version: TLS 1.2 (0x0303)
    Length: 1
    Change Cipher Spec Message
TLSv1.2 Record Layer: Application Data Protocol: http-over-tls
    Content Type: Application Data (23)
    Version: TLS 1.2 (0x0303)
    Length: 853
    Encrypted Application Data: 00000000000000016a4554bc0c9c4055ee59e491d861aee9...

1.1.5 密钥(Secret)

PreMaster Secret

Master Secret(主密值)

组成部分
Client write MAC Key
Server write MAC Key
Client write encryption key
Server write encryption key
Client write IV
Server write IV

应用数据传输

密钥的传输

1.1.6 会话缓存握手过程

会话标识 Session ID

会话标识 Session ID 恢复

会话记录 Session Ticket

会话记录 Session Ticket 恢复

2. HTTPS

2.1 HTTPS 加密方式

2.2 证书

证明公钥正确性的数字证书

证明企业真实性的 EV SSL 证书

用以确认客户端的客户端证书

2.3 HTTP 与 HTTPS 的区别

参考资料

https://cloud.tencent.com/developer/article/1115445
https://blog.csdn.net/fw0124/article/details/40875629
https://www.cnblogs.com/NathanYang/p/9183300.html
https://blog.csdn.net/tterminator/article/details/50675540

上一篇 下一篇

猜你喜欢

热点阅读