未受保护的数据由应用层提供给TLSDatagram Transport Layer Security (DTLS)
- TLS处理加密(用于发送)、解密(用于接收)和完整性检查
- TLS将受保护的数据提供给传输层
- TLS设计为在TCP之上运行
- 但也可以通过UDP实现
协议说明
- 'client hello' 消息:客户端通过向服务器发送“hello”消息来启动握手。该消息将包括客户端支持的 TLS 版本、支持的密码套件以及称为“客户端随机”的随机字节串。
- “Server hello”消息:作为对客户端问候消息的回复,服务器发送一条消息,其中包含服务器的SSL 证书、服务器选择的密码套件和“服务器随机”,即服务器生成的另一个随机字节串。
- 身份验证:客户端使用颁发它的证书颁发机构验证服务器的 SSL 证书。这确认了服务器就是它所说的那个人,并且客户端正在与域的实际所有者进行交互。
- premaster secret:客户端再发送一个随机字节串,即“premaster secret”。premaster secret 是用公钥加密的,只能由服务器用私钥解密。(客户端从服务器的 SSL 证书中获取公钥。)
- 使用的私钥:服务器解密预主密钥。
- 创建会话密钥:客户端和服务器都从客户端随机、服务器随机和预主密钥生成会话密钥。他们应该得到相同的结果。
- 客户端已准备就绪:客户端发送一条使用会话密钥加密的“已完成”消息。
- 服务器准备就绪:服务器发送使用会话密钥加密的“已完成”消息。
- 实现安全对称加密:握手完成,使用会话密钥继续通信。
区别是什么?
- 数据包没有握手头,直接所有数据。
- 整个有效载荷也被加密。•ChangeCipherSpec之后的所有数据包都将被加密(仅记录头为纯文本)
纯文本到TLS纯文本:内容类型、协议版本、长度和片段。
内容类型:change_cipher_spec、alert、handshake、application_data。
TLSPlaintext到TLSCompressized:内容类型(与以前相同)、协议版本(与以前一样)、长度(不同的值)和片段(压缩形式)。
TLS压缩为TLSCiphertext:内容类型、协议版本、长度(不同)、片段+MAC+填充+填充长度(加密)
TLS六个会话状态:
- 会话标识符:服务器选择用于标识活动会话状态的任意字节序列。
- 对等认证(可选):对等方的X509.v3证书
- 压缩方法:用于在加密之前压缩数据的算法
- CipherSpec:指定批量数据加密算法和MAC算法。还定义加密属性,例如哈希大小
- 主密钥:客户端和服务器之间共享的48字节密钥
- 是否可恢复:一个标志,指示会话是否可用于启动新连接(允许会话重用?)
TLS五个连接状态
- 服务器和客户端随机:服务器和客户端为每个连接选择的字节序列
- 服务器(客户端)写入MAC机密:在对服务器(客户机)写入的数据进行MAC操作时使用的机密
- 服务器(客户机)写入密钥:由服务器(客户)加密并由客户机(服务器)解密的数据的批量密码密钥。
- 服务器(客户端)写入IV:用于密码块链接(CBC)
- 服务器(客户端)写入序列号:各方为每个连接的传输/接收消息维护单独的序列号。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |