http和https的区别?

http超文本传输协议,https是安全版的http

http和https的区别?

  1. http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议
  2. 连接方式不同,端口不同,http是80,https是443
  3. https需要到CA申请证书
  4. http连接很简单,是无状态的;https协议是由SSL/TLS+HTTP协议构建的

http缺点:

通讯使用明文不加密,内容可能被窃听
不验证通信方身份,可能遭到伪装
无法验证报文完整性,可能被篡改
https就是http加上加密处理+认证+完整性保护

https的安全基础是SSL,SSL位于tcp/ip协议与各应用层协议之间,为数据通信提供安全支持。

SSL协议可以分为两层:SSL记录协议,建立在传输层协议(TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持;SSL握手协议,建立在SSL记录协议之上,用于实际的数据传输开始之前,通讯双方进行身份认证,协商加密算法,交换加密密钥等。

https设计目标:数据保密性、数据完整性、身份校验安全性

https://blog.csdn.net/qq_35642036/article/details/82788421

https原理:

  • 客户端将他支持的算法列表和一个用作产生密钥的随机数发送给服务器
  • 服务端从算法列表中选择一种加密算法,将它和一份包含服务器公用秘钥的证书发送给客户端,该证书还包含用于认证目的的服务器标识,同时还提供了一个用作产生密钥的随机数
  • 客户端对服务器证书进行验证,并抽取服务器的公用密钥,然后产生一个随机密码串,并且使用服务器的密钥对其加密,然后将加密后的信息发送给服务端
  • 客户端与服务端根据随机密码串pre-master key以及客户端和服务端的随机数值独立计算出加密和MAC密钥,参考DH密钥交换算法
  • 客户端将所有握手消息的MAC值发送给服务端
  • 服务端将所有握手消息的MAC值发送给客户端