HTTPS

一、HTTPS工作原理

  1. 客户端通过URL发起HTTPS请求,要求服务器建立SSL链接
  2. 服务器收到客户端的请求后,返回公钥证书
  3. 客户端验证公钥证书是否有效,验证不通过则显示警告信息;验证通过则利用伪随机数生成器生成会话密钥,然后用证书的公钥加密会话密钥并发送给服务器
  4. 服务器通过自己的私钥解密会话密钥。至此,客户端和服务器双方都持有了相同的会话密钥
  5. 服务器和客户端之间通过会话密钥加密双方间的通信

二、HTTPS加密方式

HTTPS使用非对称加密传输一个对称密钥,服务器和客户端使用这个对称密钥来加密解密收发数据;而具体传输数据则是用对称加密的方式。

  • 对称加密DES:加密和解密使用同一个密钥(速度快)
  • 非对称加密RSA:发送端使用公开的公钥加密,接收端使用私密的私钥解密(安全)

三、HTTPS优点和缺点

优点

  • 能够进行信息加密、完整性校验和身份验证,很大程度上避免了HTTP协议容易发生信息窃听、信息篡改、信息劫持的风险。

缺点

  • 握手阶段比较费时,会使页面加载时间延长,增加耗电
  • HTTPS缓存不如HTTP高效,会增加数据开销
  • SSL证书需要费用,功能越强大的证书费用越高
  • SSL证书需要绑定IP,不能在同一个IP上绑定多个域名,ipv4资源支持不了这种消耗

四、HTTPS和HTTP的区别

HTTP:超文本传输协议,TCP协议的一种,用于从WWW服务器传输超文本到本地浏览器的一种网络协议

HTTPS:HTTP+SSL,是HTTP的安全版,加入SSL层实现加密传输和身份认证

区别

  • HTTP传输的数据是未加密的,即明文传输;HTTPS是具有安全性的SSL加密传输协议
  • HTTPS需要使用SSL证书;HTTP不用
  • 端口号不同,HTTP端口号80;HTTPS端口号443
  • HTTPS基于传输层;HTTP基于应用层

五、HTTPS中间人攻击及其防范

MITM中间人攻击:攻击者相当于一个介入通信的传话员,攻击者知道通信双方的所有通信内容且可以任意增加、删除、修改双方的通信内容,而双方对此并不知情。

通信过程安全性的保证(自下而上)

  1. 公钥的正确性:双方通信采用非对称加密的方式,非对称加密中私钥不会传递,而公钥是公开的 。

  2. 数字证书的正确性:公钥由对方在通信初始提供,但很容易被中间人替换,因此发送公钥的时候也要提供对应的数字证书,用于验证公钥来自于对方而不是中间人。

  3. 上级CA证书的正确性:数字证书由上级CA签发给个人或组织,上级CA用自己的私钥给个人证书签名,保证证书的公钥不被篡改。

  4. 根证书的私钥不被泄露或其公钥不被篡改:上级CA证书也是由其上级CA签发的,这条信任链一直延续到根证书,而根证书是自签名的。

  5. 设备分发到消费者手中之前不被恶意修改:根证书一般通过操作系统而非网络分发;最初的操作系统应采用原始的当面交流的方式分发。因此,硬件厂商和证书签发机构合作,在设备出厂前在其操作系统中内置签发机构的根证书。

参考:HTTPS 中间人攻击及其防范

powered by Gitbook最后修订时间: 2020-05-15 09:51:35

results matching ""

    No results matching ""