1.概述

  • HTTPS是在HTTP的基础上建立SSL加密层。
  • 对数据进行加密,是HTTP协议的安全版。
  • HTTPS建立一个信息安全通道,来保证数据的安全。
  • HTTPS并非是一种新的协议,只是HTTP通道接口部分用SSL和TLS协议代替。
  • 通常,HTTP直接和TCP通信,当使用SSL时,则演变成先和SSL通信,再由SSL与TCP通信。 # 2.HTTPS HTTP 优缺点 ## 1.HTTP的缺点
  • 通信使用明文,内容容易被窃听。
  • 无法证明报文的完整性,所以可能遭篡改。
  • 不验证通信方的身份,有可能伪装。

2.HTTPS的优点

  • 数据隐私性:内容经过非对称加密,每个连接生成一个唯一的加密密钥。
  • 数据完整性:内容传入经过完整性校验。
  • 身份认证:第三方无法伪造服务器(客户端)身份。
  • 利于SEO,百度、Google搜索引擎优先索引HTTPS网页。

3.对称加密+非对称加密(HTTPS采用这种方式)

  • 图例
  • 使用对称密钥的好处是加密的效率比较快。
  • 使用非对称加密的好处是可以让传输的途中不能被破解(即使拦截到,也获取不到私钥,无法解密)
  • 充分利用两者的优势,在交换密钥环节用非对称加密,建立通道交换报文阶段用对称加密

4.解决报文可能篡改的问题—数字签名

  • 相信大家对接过微信或者支付宝已经其他第三方的接口时就会发现有一个数字签名的字段
  • 数字签名能确定确实是发送方签名并发出的,因为别人假冒不了发送方的签名。
  • 数字签名能确定消息的完整性,证明数据是否被篡改过

1.数字签名的生成流程

1.生成

  • 1.将一段文本先用Hash函数生成消息摘要
  • 2.用发送者的私钥加密生成数字签名,与原文一块发送给接受者
  • 3.接受者校验

2.校验

  • 1.使用发送者的公钥解密摘要信息
  • 2.用HASH函数对收到的原文产生摘要信息,与传送过来的摘要信息对比
  • 3.如果相同则收到的信息完整
  • 4.如果不相同则被修改过

5.解决通信方身份可能被伪装的问题–数字证书

  • 数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上

6.HTTPS 工作流程

  • 流程图
  • 1.Client发起一个HTTPS的请求,根据RFC2818的规定,Client知道需要连接Server的443端口(默认)
  • 2.Server把配置好的公钥证书(public key certificate)返回给客户端
  • 3.Client验证公钥证书:比如有效期、证书的用途是否匹配Client请求的站点、是不是在CRL吊销列表里面、它的上级证书是否有效。这是一个递归的过程,直到验证到根证书(操作系统内置的Root证书或者Client内置的Root证书)。如果通过则继续,不通过则警告。
  • 4.Client使用伪随机数生成器生成加密所使用的对称密钥,然后用证书的公钥加密这个对称密钥,发给server
  • 5.Server使用自己的私钥(private key)解密这个信息,得到对称密钥。Client和Server双方都有了对称密钥。
  • 6.Server使用对称密钥加密 “明文内容A”,发送给Client。
  • 7.Client使用对称密钥解密相映的密文,得到”明文内容A”。
  • 8.Client再次发起HTTPS请求,使用对称密钥加密请求的”明文内容B”,然后Server使用对称密钥解密密文,得到”明文内容B”。

如有侵权行为,请点击这里联系我删除

如发现疑问或者错误点击反馈

备注