1. CA(证书颁发机构)概念
CA(Certificate Authority) 是负责颁发和管理数字证书的权威机构。数字证书用于验证公钥的合法性,确保通信双方的身份可信。CA 的主要职责包括:
- 颁发证书:CA 为实体(如个人、服务器)颁发数字证书,证书中包含实体的公钥和身份信息。
- 验证身份:CA 在颁发证书前会验证申请者的身份,确保证书的真实性。
- 吊销证书:如果证书不再安全(如私钥泄露),CA 可以吊销证书并发布吊销列表(CRL)。
2. 公钥和私钥概念
公钥(Public Key) 和 私钥(Private Key) 是非对称加密算法中的一对密钥,用于加密和解密数据。
- 公钥:可以公开分享,用于加密数据或验证签名。任何人都可以用公钥加密数据,但只有对应的私钥才能解密。
- 私钥:必须严格保密,用于解密数据或生成签名。只有私钥的持有者才能解密用公钥加密的数据,或生成可以被公钥验证的签名。
非对称加密 的核心思想是:公钥和私钥是成对生成的,用公钥加密的数据只能用对应的私钥解密,反之亦然。
3. TCP 和 TLS 加密
TCP(Transmission Control Protocol) 是传输层协议,负责在网络上可靠地传输数据。TLS(Transport Layer Security) 是加密协议,用于在 TCP 之上提供安全通信。
TLS 加密过程
TLS 通过以下步骤建立安全连接并进行加密通信:
-
TCP 连接建立:
- 客户端和服务器首先通过 TCP 三次握手建立连接。
-
TLS 握手:
- 客户端Hello:客户端向服务器发送支持的 TLS 版本、加密套件列表和一个随机数。
- 服务器Hello:服务器选择 TLS 版本、加密套件,并发送自己的随机数和数字证书(包含服务器的公钥)。
- 验证证书:客户端验证服务器的证书是否由可信的 CA 颁发,确保证书的合法性。
- 密钥交换:客户端生成一个预主密钥(Pre-Master Secret),用服务器的公钥加密后发送给服务器。服务器用私钥解密得到预主密钥。
- 生成会话密钥:客户端和服务器使用预主密钥和之前的随机数生成对称加密的会话密钥(Session Key),用于后续的加密通信。
-
加密通信:
- 客户端和服务器使用会话密钥进行对称加密通信。对称加密比非对称加密效率更高,适合大量数据的加密传输。
-
连接关闭:
- 通信结束后,双方关闭 TLS 连接,会话密钥被丢弃,确保每次会话使用不同的密钥。
4. 加密过程总结
- 非对称加密:用于 TLS 握手阶段的密钥交换,确保预主密钥的安全传输。
- 对称加密:用于 TLS 握手后的通信,使用会话密钥加密数据,保证通信的机密性和完整性。
- 数字证书:用于验证服务器的身份,确保证书的合法性。