HTTPS协议简述
HTTPS 协议简介
HTTPS 是 HTTP + Security 的组合,即在 HTTP 的基础上加入了安全性机制,主要通过加密传输、身份认证和数据完整性保护来确保通信的安全性。
为了实现这一目标,HTTPS 引入了 加密技术,包括对称加密、非对称加密和数字证书机制。
1. 对称加密
概念
对称加密是一种加密方式,服务器和客户端共用一个密钥。信息通过密钥进行加密和解密,密钥本身也需要在双方之间传递。
优点
- 算法简单,效率高。
缺陷
- 密钥分发问题:服务器需要将密钥发送给客户端。如果密钥以明文形式传输,可能被黑客劫持,导致通信内容被篡改或窃取。
2. 非对称加密
概念
非对称加密使用一对公钥和私钥,其中:
- 公钥:可公开,用于加密数据。
- 私钥:仅自己保管,用于解密数据。
工作流程
- 服务器生成一对公钥和私钥,并将公钥发送给客户端。
- 客户端随机生成一个对称加密的密钥,并用服务器的公钥对其加密。
- 加密后的对称加密密钥传回服务器,服务器用私钥解密,获取该密钥。
- 后续通信使用该对称加密密钥进行加密和解密,提升效率。
优点
- 解决了密钥明文传输的问题,确保密钥的安全性。
缺陷
- 中间人攻击:
如果黑客拦截了服务器的公钥,并伪造一对公钥和私钥传递给客户端,那么客户端会用伪造的公钥加密数据,黑客可以解密这些数据,窃取或篡改后再传给服务器。
核心问题在于:客户端无法确认公钥的真实来源。
3. CA 机构与数字证书
概念
CA(Certificate Authority)是数字证书认证机构,用于解决公钥来源不明的问题。
服务器的公钥需要由 CA 进行签名,生成 数字证书,数字证书可以帮助客户端验证公钥的真实性。
工作流程
- 服务器生成证书申请
- 服务器将自己的公钥和其他信息(如域名)提交给 CA 机构,申请签名。
- CA 签名
- CA 使用自己的私钥对服务器提交的信息进行签名,并生成数字证书。
- 数字证书包含服务器的公钥、域名信息、有效期,以及 CA 的签名。
- 客户端验证证书
- 客户端收到服务器的数字证书后,会用 CA 的公钥验证签名是否有效。
- 如果验证成功,则说明服务器的公钥是可信的;否则,提示用户证书异常。
优点
- 确保公钥的来源可信,防止中间人攻击。
缺陷
- CA 机构可能被人为控制,若 CA 对黑客签发虚假证书,也可能导致安全问题。
4. HTTPS 的完整工作流程
- 客户端发起 HTTPS 请求,服务器返回数字证书。
- 客户端验证证书:检查证书的合法性,包括签名有效性和域名匹配。
- 验证通过后,客户端生成对称加密密钥,用服务器公钥加密后发送给服务器。
- 服务器用私钥解密,获取对称加密密钥。
- 后续通信使用对称加密进行加密和解密。
5. 补充机制:签名服务器
签名服务器可以进一步增强安全性,避免 CA 单点故障或人为控制的问题。具体原理较复杂,常结合区块链技术,实现分布式的可信签名。