文章目录
协议定义
由图可知, TLS协议从在TCP协议建立连接完成之后, 然后开始TLS握手协议;由图可知,TLS 握手阶段经历 ClientHello, ServerHello,Certificate, ServerHelloDone, ClientKeyExchange, ChangeCipherSpec阶段;
那么TLS 协议格式是什么样的?又是完成传输安全的目标的?
ContentType | ||
十六进制 | 十进制 | 含义 |
0×14 | 20 | ChangeCipherSpec |
0×15 | 21 | Alert |
0×16 | 22 | Handshake |
0×17 | 23 | Application |
0×18 | 24 | Heartbeat |
Version | |||
十六进制 | Major | Minor | 含义 |
0x0300 | 0x03 | 0x00 | SSL 3.0 |
0x0301 | 0x03 | 0x01 | TLS 1.0 |
0x0302 | 0x03 | 0x02 | TLS 1.1 |
0x0304 | 0x03 | 0x04 | TLS 1.3 |
TLS 采用非对称加密和对称加密结合的方式保证传输安全, 它以非对称加密的方式产生对成加密的临时密钥
TLS Handshake protocol MessageType | ||
十六进制 | 十进制 | 含义 |
0x00 | 0 | HelloRequest |
0x01 | 1 | ClientHello |
0x02 | 2 | ServerHello |
0x04 | 4 | NewSessionTicket |
0x08 | 8 | EncryptedExtensions |
0x0b | 11 | Certificate |
0x0c | 12 | ServerKeyExchange |
0x0d | 13 | CertificateRequest |
0x0e | 14 | ServerHelloDone |
0x0f | 15 | CertificateVerify |
0x10 | 16 | ClientKeyExchange |
0x14 | 20 | Finished |
抓包分析
ClientHello
- Random: 客户端随机数
- Cipher Suites: 供服务端选择的加密算法列表
ServerHello
- Random: 服务端随机数
- Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
Certificate
Server Key Exchange
Client Key ExChange
New Session Ticket
证书
X.509
X.509 是公钥基础设施(PKI)的标准格式。 X.509证书就是基于国际电信联盟(ITU)制定的X.509标准的数字证书。X.509证书主要用于识别互联网通信和计算机网络中的身份,保护数据传输安全。证书是个好东西,就是贵!!
证书链
根认证机构的建立
单级认证机构证书签署
二级及以上认证机构的建立
由图可知,证书签署的流程是
证书品牌
系统内置信任证书
申请Let’s Encrypt 证书
// 通过DNS验证域名所有权,申请通配符证书
certbot certonly --manual --preferred-challenges dns -d *.richard.pub -d richard.pub --server https://acme-v02.api.letsencrypt.org/directory
certbot certificates