HTTPS原理-HTTPS是如何保障安全

2016-09-26 16:12:47
IT动态
  HTTPS是secure http也就是HTTP的安全升级版。稍微了解网络基础的同学都知道,HTTP是应用层协议,位于HTTP协议之下是传输协议TCP。TCP负责传输,HTTP则定义了数据如何进行包装。

HTTPS原理-HTTPS是如何保障安全
 

  HTTPS相对于HTTP有哪些不同呢?其实就是在HTTP跟TCP中间加多了一层加密层TLS/SSL。

  什么是TLS/SSL?

  通俗的讲,TLS、SSL其实是类似的东西,SSL是个加密套件,负责对HTTP的数据进行加密。TLS是SSL的升级版。现在提到HTTPS,加密套件基本指的是TLS。

  传输加密的流程

  原先是应用层将数据直接给到TCP进行传输,现在改成应用层将数据给到TLS/SSL,将数据加密后,再给到TCP进行传输。将数据加密后再传输,而不是任由数据在复杂而又充满危险的网络上明文裸奔,在很大程度上确保了数据的安全。这样的话,即使数据被中间节点截获,坏人也看不懂。

  HTTPS是如何加密数据的

  对安全或密码学基础有了解的同学,应该知道常见的加密手段。一般来说,加密分为对称加密、非对称加密(也叫公开密钥加密)。

  对称加密

  对称加密的意思就是,加密数据用的密钥,跟解密数据用的密钥是一样的。

  对称加密的优点在于加密、解密效率通常比较高。缺点在于,数据发送方、数据接收方需要协商、共享同一把密钥,并确保密钥不泄露给其他人。此外,对于多个有数据交换需求的个体,两两之间需要分配并维护一把密钥,这个带来的成本基本是不可接受的。

  非对称加密

  非对称加密的意思就是,加密数据用的密钥(公钥),跟解密数据用的密钥(私钥)是不一样的。

  什么叫做公钥呢?其实就是字面上的意思——公开的密钥,谁都可以查到。因此非对称加密也叫做公开密钥加密。

  相对应的,私钥就是非公开的密钥,一般是由网站的管理员持有。

  公钥、私钥两个有什么联系呢?

  简单的说就是,通过公钥加密的数据,只能通过私钥解开。通过私钥加密的数据,只能通过公钥解开。

  很多同学都知道用私钥能解开公钥加密的数据,但忽略了一点,私钥加密的数据,同样可以用公钥解密出来。而这点对于理解HTTPS的整套加密、授权体系非常关键。
 

  问题一:公钥如何获取

  这里要涉及两个非常重要的概念:证书、CA(证书颁发机构)。

  证书

  可以暂时把它理解为网站的身份证。这个身份证里包含了很多信息,其中就包含了上面提到的公钥。

  也就是说,当小明、小王、小光等用户访问XX的时候,再也不用满世界的找XX的公钥了。当他们访问XX的时候,XX就会把证书发给浏览器,告诉他们说,乖,用这个里面的公钥加密数据。

  这里有个问题,所谓的“证书”是哪来的?这就是下面要提到的CA负责的活了。

  CA(证书颁发机构)

  强调两点:

  可以颁发证书的CA有很多(国内外都有)。

  只有少数CA被认为是权威、公正的,这些CA颁发的证书,浏览器才认为是信得过的。比如VeriSign。(CA自己伪造证书的事情也不是没发生过。。。)

  证书颁发的细节这里先不展开,可以先简单理解为,网站向CA提交了申请,CA审核通过后,将证书颁发给网站,用户访问网站的时候,网站将证书给到用户。

  至于证书的细节,同样在后面讲到。

  问题二:数据传输仅单向安全

  上面提到,通过私钥加密的数据,可以用公钥解密还原。那么,这是不是就意味着,网站传给用户的数据是不安全的?

  答案是:是!!!(三个叹号表示强调的三次方)

  看到这里,可能你心里会有这样想:用了HTTPS,数据还是裸奔,这么不靠谱,还不如直接用HTTP来的省事。

  但是,为什么业界对网站HTTPS化的呼声越来越高呢?这明显跟我们的感性认识相违背啊。

  因为:HTTPS虽然用到了公开密钥加密,但同时也结合了其他手段,如对称加密,来确保授权、加密传输的效率、安全性。

  概括来说,整个简化的加密通信的流程就是:

  小明访问XX,XX将自己的证书给到小明(其实是给到浏览器,小明不会有感知)

  浏览器从证书中拿到XX的公钥A

  浏览器生成一个只有自己自己的对称密钥B,用公钥A加密,并传给XX(其实是有协商的过程,这里为了便于理解先简化)

  XX通过私钥解密,拿到对称密钥B

  浏览器、XX 之后的数据通信,都用密钥B进行加密

  注意:对于每个访问XX的用户,生成的对称密钥B理论上来说都是不一样的。比如小明、小王、小光,可能生成的就是B1、B2、B3.

 

申请免费试学

上一篇:第一页
下一篇:新手学习Android开发的十大误区

分享:
  • 相关推荐
  • 就业学员
  • 学员作品
动态
报名须知
热门课程
返回顶部
咨询热线 0755-86191118