HTTPS通信

HTTPS 通信

HTTP 是明文传输,在安全上存在风险、容易被窃听、冒充和篡改。


HTTPS

HTTPS 在 HTTP 和 TCP 层之间加入了 SSL/TLS 协议,HTTPS 需要向 CA(证书权威机构)或证书签发机构申请数字证书。


HTTPS 建立连接
  1. Client Hello (告诉服务端可选的 TLS 版本、可选的加密套件(Cipher Suites) 、客户端随机数 R1)

  2. Server Hello(告诉客户端选择的 TLS 版本、加密套件、服务器证书、服务器随机数 R2)

  3. 验证服务器证书(验证证书的合法性,获取证书中的公钥)

  4. 客户端发送随机数(客户端生成随机数 R3,用公钥加密 R3 发送给服务器,用于后续生产会话密钥。客户端根据三个随机数生成会话密钥)

  5. 服务器生成会话密钥,并做最后的回应(服务器收到最后一个随机数,和客户端生成相同的会话密钥)

  6. 客户端与服务器进行加密会话

加密套件

  • 对称加密算法
  • 非对称加密算法
  • hash 算法

客户端验证服务器证书

证书中包含了

服务器公钥、服务器公钥的签名(还包含服务器的主机名,服务器的地区,有效期等)。

证书签发机构的证书(包含公钥、证书签发机构公钥的签名、名字、地区等)。

验证 证书签发机构的证书 的根证书名称。


操作系统中内置了很多根证书,根证书是 CA 认证中心签发的数字证书。 安装根证书代表受 CA 认证中心的信任。 根证书的签发者是它自己本身,下载根证书说明您对该根证书以下所签发的证书都表示信任。 证书包含三部分,分别是:用户的信息,用户的公钥,还有CA中心对该证书里面的信息的签名。


客户端验证

  1. 验证证书的合法性,是否有效
  2. 验证证书中服务器的主机名正确

如果攻击者对证书中的服务器主机名修改了,那么签名机构的公钥验证就会失败。证书签名机构的证书是由根证书进行验证,而根证书是存在于操作系统中的。


Master secret(会话密钥)

客户端加密密钥(用于客户端向服务端发送数据加密数据)

服务端加密密钥(用于服务端向客户端发送数据加密数据)

客户端 MAC secret (message authenticate code)

服务端 MAC secret


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值