HTTP——学习笔记(6)https

HTTP+加密+认证+完整性保护=HTTPS

 

HTTP是一种新协议吗?:

不是,HTTPS只是HTTP通信接口部分用SSL和TLS协议代替而已

HTTP中,身处应用层的HTTP直接和TCP通信。而在使用了SSL时,则变成HTTP先和SSL通信,再由SSL和TCP通信,在采用了SSL之后,HTTP就拥有了HTTPS的加密,证书和完整性保护这些功能

 

只有在HTTP协议中才可以使用SSL协议吗?:

SSL是独立于HTTP的协议,不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。

 

SSL的具体加密方法?:

SSL采用一种叫做公开密钥加密的加密处理方式

  这里说一下近代的加密方式,加密算法公开,而密钥保密。

  共享密钥加密(对称密钥加密):发送端需要把密钥发送给接收端,这里就存在安全性问题,密钥的发送也需要安全保密,不然被窃取到了,窃听者既有了公开的加密算法,又有了密钥,破解密钥轻而易举,那么我们就需要把密钥安全的发送到接收端,但是我们如果可以把密钥安全的发送给接收端,那我们就可以安全地把数据发送过去,那还要密钥干什么呢?所以现在采用的加密方式摒弃了之前的,公开加密算法,保护密钥的方式。

  公开密钥加密(非对称密钥加密):使用两把密钥,一把叫做私有密钥,另一把叫做公开密钥,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。

  优缺点:公开密钥加密明显安全性要更高一些,但是公开密钥加密的处理速度要比共享密钥加密慢。

 

HTTPS采用的加密方式?:

HTTPS采用共享密钥加密和公开密钥加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。

在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式

 

公开密钥的安全性似乎是完美的,是这样吗?:

  不是,公开密钥加密方式还是存在一些问题。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥。或许在公开密钥传输途中,真正的公开密钥已经被攻击者替换掉了。

  但是这种不完美是由解决办法的,可以使用由数字证书认证机构(CA)和其相关机关颁发的公开密钥证书。数字证书的业务流程是这样的:

    首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。

    服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。

    接到证书的客户端可以使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的。

    此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件很困难的事,因此,多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。

 

SSL慢吗?:

由于HTTPS还需要做服务器,客户端,双方加密及解密处理,因此会消耗CPU和内存等硬件资源,SSL通信部分消耗网络资源。而SSL通信部分又因为要对通信进行处理,所以时间上又延长了。

HTTPS比HTTP要慢2到100倍,目前并没有根本解决这一问题的方案,可以使用SSL加速器这种(专用服务器)硬件来改善该问题。该硬件为SSL通信专用硬件,相对软件来讲,能够提高数倍SSL的计算速度。仅在SSL处理时发挥SSL加速器的功效,以分担负载。

 

为什么所有的WEB网站不一直使用HTTPS?:

如上一条所说,如果所有网站都使用HTTPS,则请求处理速度会十分十分十分慢,并且购买证书也需要钱,所以不包含个人信息的网站没有必要使用HTTPS

 

posted @ 2016-11-14 21:01  ljuyi  阅读(315)  评论(0编辑  收藏  举报