确保Web安全的https

一.为什么要有HTTPS

      1.HTTP的缺点

         虽然http具有方便和优秀的一面,但是HTTP并非只有好的一面,HTTP也具有不足之处,举例如下:

         (1).在通信使用中使用不加密的明文传输,内容可能会遭到窃听

         (2).不验证通信方的身份,所以有可能会遭遇伪装,也就是说任何人都可以发起请求

           (3).无法验证报文的完整性,所以使得通信内容可能已经遭到篡改

在上面的阐述中,为了应对这些漏洞可能带来的风险,普遍使用加密技术来来防止窃听保护信息,加密的对象可以有这么几个:通信的加密和内容的加密。

二.什么是HTTPS

      1.HTTPS的定义:HTTP+加密+认证+完整性保护=HTTPS

           如果在HTTP协议通信过程中使用未经加密的明文,比如在Web页面中输入个人信息和密码,如果这条通信线路遭遇窃听,那么个人信息的密码就暴露了。此外,对于HTTP来说,不管是服务器还是客户端都是没有办法确认通信方的,所以说实际的通信可能并不是和预想的通信方在进行通信,并且还要考虑到接受的报文可能在通信途中已经遭到篡改的情况。

           所以,为了解决上述问题,我们需要在HTTP中再加入加密处理和认证等机制,我们把添加了加密以及认证机制的HTTP称为HTTPS。

三.加密的方式

      1.通信的加密 

          HTTP协议中没有加密机制,但是可以通过和SSL(安全层套阶层)或者TLS(安全层传输协议)的组合使用,加密HTTP的通信内容。如果使用了SSL,不仅可以提供加密处理,还使用了一种被称为证书的手段,可以用于确定方。

          SSL采用了一种叫做公开密钥加密的处理方式,公开密钥加密使用了一对非对称的密钥,一把叫做私有密钥,另一把叫做公开密钥。私有密钥不能让其他任何人知道,而公开密钥可以随意发布,任何人都可以获得。使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息之后,再使用自己的私有密钥进行解密,使用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。

      2.内容的加密

           由于HTTP协议中没有加密机制,那么就可以对HTTP协议传输的内容本身加密,也就是把HTTP报文里所含的内容进行加密处理,在这种情况下,客户端需要对HTTP报文进行加密处理后再发送请求。但是前提是要求客户端和服务器同时具备加密和解密机制,但是该方式不同于SSL和TLS用于整个通信线路的加密,所以内容仍然有被篡改的风险。

四.公开密钥的认证环节

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

        为了解决上述出现的问题,可以使用由数字证书认证机构和其相关机关颁发的公开密钥证书。

        数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上。服务器会将这份由数字证书从认证机构颁发的公钥证书发送给客户端,用来进行公开密钥加密方式通信,公钥证书也可以叫做数字证书或者直接称为证书。

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

五.用于确认客户端的客户端证书

       HTTPS中还可以使用客户端证书,用客户端证书来进行客户端认证,用以证明服务器正在通信的对方始终是预料之内的客户端。但是客户端证书存在几个问题,其中的一个就是证书的获取和发布。

       如果想要获取证书,用户需要自行安装客户端证书,但是客户端证书是需要付费购买的,且每张证书对应到每位用户也就意味着 需支付和用户数对等的费用,此外,安装客户端证书本身也充满了挑战。

       客户端证书存在的另一个问题点是,客户端证书毕竟只是用来证明客户端的实际存在,而不能用来证明用户本人的真实性,也就是说,只要是获得了安装有客户端证书的计算机的使用权限,也就意味着同时拥有了客户端证书的使用权限。

六.为什么不一直使用HTTPS

       既然HTTPS那么安全可靠,为什么所有的Web网站不一直使用HTTPS?

       其中一个原因是,与纯文本通信相比,加密通信会消耗更多的CPU以及内存资源。如果每次通信都加密的话,会消耗相当多的资源。所有,如果是非敏感信息则使用HTTP通信,只有包含个人信息等敏感数据时,才利用HTTPS加密通信。特别是每当那些访问量较多的Web网站在进行加密处理时,它们所承受的负载时比较庞大的,在进行加密处理时,也并非对所有的信息都进行加密处理,而是仅仅在那些信息需要加密时,才加以处理,从而节约资源。

       另外一个原因是,如果想要进行HTTPS通信,证书是必不可少的,而使用的证书必须向证书认证机构购买,所以,对于一些购买证书并不合算的个人和网站来说,可能只会选择HTTP通信。

     

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值