TLS(Transport Layer Security)加密过程是一个复杂的协议,它确保了在互联网上进行的数据传输的安全性。TLS协议的主要目的是为网络通信提供保密性和数据完整性。TLS加密过程可以分为几个关键阶段,主要包括握手协议、密钥交换、数据传输和会话恢复。以下是TLS加密过程的详细步骤:
握手协议(Handshake Protocol):
- 客户端发起连接:客户端向服务器发起一个连接请求,这个请求包含了客户端支持的TLS版本、加密套件列表(包括加密算法和密钥交换算法)以及一个随机数(ClientHello)。
- 服务器响应:服务器回应客户端,确认使用的TLS版本、选择一个加密套件,并提供一个服务器随机数(ServerHello)。服务器还会发送其证书(Certificate),证书中包含了服务器的公钥。
- 证书验证:客户端验证服务器的证书,确保证书是由可信的证书颁发机构(CA)签发的,并且证书中的域名与服务器的域名匹配。
- 密钥交换:客户端使用服务器的公钥加密一个预主密钥(Pre-Master Secret),并将其发送给服务器(ClientKeyExchange)。这个预主密钥是后续生成主密钥(Master Secret)的基础。
- 服务器解密:服务器使用其私钥解密预主密钥。
- 生成主密钥:客户端和服务器各自使用预主密钥、客户端随机数、服务器随机数以及一些其他信息,通过伪随机函数(PRF)生成主密钥(Master Secret)。
- 密钥导出:从主密钥中导出会话密钥(Session Keys),这些密钥用于加密和解密数据。
- 握手完成:客户端和服务器交换ChangeCipherSpec消息,表示之后的所有通信都将使用协商好的密钥进行加密。
- 握手确认:双方发送Finished消息,确认握手过程成功完成。
数据传输(Data Transfer):
- 在握手过程完成后,客户端和服务器开始使用协商好的对称加密算法和密钥进行数据的加密和解密传输。这个阶段称为TLS记录协议(TLS Record Protocol),它负责将应用层数据分割成小块,然后进行加密,最后通过网络发送。
会话恢复(Session Resumption):
- 在某些情况下,为了提高效率,客户端和服务器可能会选择恢复之前的会话,而不是重新进行完整的握手过程。这可以通过使用会话标识符(Session ID)或会话票据(Session Ticket)来实现。
TLS协议的安全性依赖于多种加密技术,包括非对称加密(用于密钥交换)、对称加密(用于数据传输)、消息认证码(用于数据完整性验证)以及数字签名(用于身份验证)。随着技术的发展,TLS协议也在不断更新,目前最新的版本是TLS 1.3,它提供了更高效的握手过程和更强的加密算法。
总结
1.虽然叫非对称加密,但它其实并不是整个过程都是非对称加密,非对称加密只在生成Pre master secret.
之前.而之后就是变成对称加密了。
2.简单的来说, 客户端生成一组随机数作为密钥然后用公钥加密, 这个密钥客户端自己是知道的,但是服务端可以解密且只有服务端可以解密, 由此生成了一个只有客户端和服务端双方知道的密钥, 然后此后的会话再进行对称加密.
3.Pre master secret.预主密钥
非常重要
概念辨析
- 非对称
这个是和对称相对的, 对称指的是双方使用同一把密钥进行加解密. 非对称指的是双方使用两把密钥即一个公钥一个私钥进行加解密。
评论(0)