HTTP与HTTPS比较

原创 2016年05月31日 22:42:45

一、简要介绍概念

HTTP

    超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTPS

    HTTPS是基于HTTP开发的,它是以安全为目标的HTTP通道,简单讲是HTTP的安全版。它使用安全套接字层(SSL)进行信息交换。

二、HTTPS和HTTP的区别

    第一:HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。

    第二:HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。如下图所示:


     第三:HTTP和HTTPS使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。

     HTTP的连接很简单,是无状态的,他的传输是明文的,例如


     HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全

简单可理解为:


三、HTTPS流程介绍

以SSL为例说一下这种安全机制的流程:

当我们打开一个https的网页时,步骤如下:

    1. 客户端通过SSL协议把服务器需要的客户端的SSL版本信息,加密算法设置,会话数据,发送给服务器。

    2. 服务器通过SSL协议把自己的SSL的版本信息,加密算法设置,会话数据和其他通信需要的信息发给客户端。服务器也把服务器的证书发给客户端,另外如果客户端请求服务器资源需要客户端认证,服务器端就会请求客户端的证书。

    3. 客户端使用这些服务器发来的信息认证服务器。如果服务器不能被认证,那么客户将被提示一个警告,并且通知客户不能建立加密和认证连接。如果服务器被成功认证,客户端将进入第四步。

    4. 使用到目前为止的所有数据生成握手过程。客户端(和服务器合作之下)为会话创建一个pre-master secret(一个用在对称加密密钥生成中的 46 字节的随机数字)。使用服务器的公共密钥加密(在第二步的服务器的证书中获得公共密钥),然后把这个加了密的pre-master secret发送给服务器。

    5. 如果服务器请求客户端认证(在握手过程是可选项),客户端也需要标记一个特殊的数据包,客户端和服务器都知道的。在这个过程中,客户端发送一个通过pre-master secret加密过的标记的数据包和客户端自己的证书给服务器。

    6. 如果服务器请求了客户端的认证,那么服务器就要尝试去认证客户端。(具体的看客户端认证细节)如果客户端认证不通过,会话将被终止。如果客户端被认证通过,服务器将使用私有密钥解密pre-master secret,然后执行一系列步骤生成master secret

    7. 客户端和服务器端使用master secret去生成会话密钥。会话密码是在ssl 会话的时候对称密钥被用来加密,解密信息校验信息完整性的密钥。(检查会话过程中任何数据改变)

    8. 客户端发送一个信息给服务器端,通知服务器端未来的信息将被会话密码加密,然后客户端发送一个单独(加密)信息指示客户端部分的握手会话已经完成。

    9. 服务器发送一个信息通知客户端未来的会话信息将被会话密码加密,然后服务器发送一个单独(加密)信息指示服务器部分的握手部分已经完成

    10. SSL握手结束,开始正式会话。客户端和服务器端使用对称会话密钥加密解密数据并且互相传送校验完整性。

     这是一个正常的操作过程和加密隧道。在任何时候,当内部或者外部触发条件(不是自动就是用户手动),任何一端就要从新协商会话,所有的流程将从新开始。

 四、HTTPS优缺点

    https通信的优点

     1)客户端产生的密钥只有客户端和服务器端能得到;

     2)加密的数据只有客户端和服务器端才能得到明文;

     3)客户端到服务端的通信是安全的。

    https通信的缺点

      HTTPS 一定是繁琐的。本来简单的http协议,一个get一个response。 由于https要还密钥和确认加密算法的需要。单握手就需要6/7 个往返。而且每一次响应或者请求, 都要求客户端和服务端对会话的内容做加密/解密,尽管对称加密/解密效率比较高,可是仍然要消耗过多的CPU

五、HTTPS解决的问题

  第一、信任主机的问题.

  采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。所以目前所有的银行系统网站,关键部分应用都是https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,但是银行更侧重安全。这一点对我们没有任何意义,我们的服务器,采用的证书不管是自己发布的还是从公众的地方发布的,其客户端都是自己人,所以我们也就肯定信任该服务器。

      第二、通讯过程中的数据的泄密和被篡改

  1. 一般意义上的https,就是服务器有一个证书。

  a) 主要目的是保证服务器就是他声称的服务器,这个跟第一点一样。

  b) 服务端和客户端之间的所有通讯,都是加密的。

  i. 具体讲,是客户端产生一个对称的密钥,通过服务器的证书来交换密钥,即一般意义上的握手过程。

  ii. 接下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义,因为他没有密钥,当然篡改也就没有什么意义了。

  2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书。

  a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码,还有一个CA 认证过的身份。因为个人证书一般来说是别人无法模拟的,所有这样能够更深的确认自己的身份。

b) 目前少数个人银行的专业版是这种做法,具体证书可能是拿U盘(即U盾)作为一个备份的载体

 

 

版权声明:本文为博主原创文章,转载请标明来源。

http与https简单比较

http:Hyper Text Transfer Protocol 浏览器访问网址是使用的默认的协议。使用80 port 的协议。 https: Hyper Text Transfer Protoco...
  • RHEL_admin
  • RHEL_admin
  • 2014年06月19日 11:00
  • 482

HTTP与HTTPS的比较

 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读...
  • m0_37173821
  • m0_37173821
  • 2018年02月11日 21:20
  • 30

HTTPS和HTTP的区别

什么是 HTTPS? HTTPS (基于安全套接字层的超文本传输协议 或者是 HTTP over SSL) 是一个 Netscape 开发的 Web 协议。 你也可以说:HTTPS = H...
  • whatday
  • whatday
  • 2014年07月26日 17:01
  • 43357

Android HTTP和HTTPS那点事

先看看网络OSI(Open System Interconnect)模型: CA证书是什么?CA(Certificate Authority)是负责管理和签发证书的第三方权威机构,是所有行业和公...
  • Jo__yang
  • Jo__yang
  • 2016年12月31日 23:09
  • 3315

面试常考点:http和https的区别与联系

感谢原作者,本文转载自http://www.mahaixiang.cn/internet/1233.html 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协...
  • xionghuixionghui
  • xionghuixionghui
  • 2017年03月30日 22:40
  • 1654

tomcat同时支持http和https访问

在server.xml中开启两个connector Connector port="8080" maxHttpHeaderSize="8192"                  ma...
  • qq_27289001
  • qq_27289001
  • 2017年10月18日 23:29
  • 459

HTTPS请求与HTTP兼容

今天升级Xcode 7.0 bata发现网络访问失败。 输出错误信息 The resource could not be loaded because the App Transport Secur...
  • ewq866866
  • ewq866866
  • 2015年11月17日 10:38
  • 3302

经典面试题 Http与Https

Http与Https的区别: 1. HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 2. HTTP 是不安全的,而 HTTPS 是安全的 3. HTTP ...
  • SunShanai
  • SunShanai
  • 2016年08月19日 21:02
  • 4559

HTTP、HTTPS、FTP和TCP的区别

一、概念 HTTP,即超文本传输协议,是 HyperText Transfer Protocol的缩写。浏览网页时在浏览器地址栏中输入的URL前面都是以"http://"开始的。HTTP...
  • scratlc
  • scratlc
  • 2017年03月22日 13:51
  • 384

https与http性能对比--简单说

SSL协议的优点和必要性
  • chinafire525
  • chinafire525
  • 2017年12月27日 14:18
  • 72
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP与HTTPS比较
举报原因:
原因补充:

(最多只允许输入30个字)