作者:图灵天宜 • 2019月12月23日
现代网站有很多种协议,如http,https等。每一种都有自身的特点。今天就给大家介绍其中的一种:https协议。https协议是ssl证书加上http协议构成的一种可以进行加密传输和身份认证的网络协议。那https协议有哪些优点?
https协议是目前的网络技术中具有安全性最高的网络传输协议。https协议由ssl+http协议构成,也比http拥有更高的安全性。这个协议可以对用户和服务器进行认证,以保证将数据发给正确的用户。
并且,https协议还可以在传输中有效的防止数据遭到窃取和改变。
https协议对搜索引擎更加友好
https协议的网站在搜索引擎中更容易受到青睐,国内最大的搜索引擎百度对于https的站点进行了平台支持、抓去支持、展现支持等等扶持手段。比如平台支持,百度站长平台可以完美支持https协议的网站进行验证,并且为这些网站提供了相应的数据接口,这样可以在第一时间对https网站进行接受。
http协议的优点
效率高
限制每个连接只有一个请求的无连接状态,在服务器处理完客户的请求,并收到客户的反应,即断开,通过这种方式可以节省传输时间。
简单快速
当服务器客户端请求服务时,只需传送请求方法和路径。请求方法常用的GET,HEAD,POST。每种方法规定了客户端与服务器联系的是不同的类型。因为简单的 HTTP 协议,通信速度很快。
灵活
HTTP 允许任何类型的数据对象的传输,输入被传输的内容类型进行标记。
无状态
HTTP 协议是无状态的协议,没有一个国家是没有协议的事务处理和存储能力。如果该状态是指由于缺乏必要前述信息的后续处理中,它必须被重传,这可能导致在数据传输增加了每个连接。另一方面,当不需要在服务器上的快速响应的先验信息。
https网站的评价相比更高
鉴于https协议的安全性更高,所以网站的评价也会相应的变高,这样对于网站页面的体验也会更好。
Http协议的缺点
- 有被窃听的风险,Http通信使用明文,传输过程中没有任何的保证措施,可能会被窃听
- 在传输过过程中,不验证通信方的身份,这中间就有可能被遭遇伪装
- Http只是对报文进行了解析,并没有对其进行完整的校验,所以无法验证报文的完整形,可能被遭篡改
Https协议的特点
Https简介
Https并不是一个崭新的协议,而是在http的基础上发展而来,意为http Secure.相当于是Http的升级版。它主要是为了解决http协议安全性不足的问题而诞生的。在使用https之后,访问浏览器的时候前缀由http变为https,现在我们看到网站都采用https的协议比比皆是,比如:如下都是https的网站:
可见https已经深刻的渗入到我们的经常访问的网站中了,而关于它,本篇博文就来探讨一下http协议如何变为https.
Http+加密+认证+完整性保护=https
Https的通信端口由SSL和TSL代替了,它是一种应用层协议。一般的情况下http直接和Tcp进行通信,当使用了SSL之后,就会变成先和SSL通信,SSL再和Tcp进行通信,原理图如下:
当采用了SSL协议之后,Http协议就具备了加密、证书、完整性保护三大功能,SSL是独立于Http存在的,它是现存的广泛使用的网络安全技术。
三:Https协议采用的加密技术
SSL采用的加密技术
SSL采用的加密技术叫做“共享密钥加密”,也叫作“对称密钥加密”,这种加密方法是这样的,比如客户端向服务器发送一条信息,首先客户端会采用已知的算法对信息进行加密,比如MD5或者Base64加密,接收端对加密的信息进行解密的时候需要用到密钥,中间会传递密钥,(加密和解密的密钥是同一个),密钥在传输中间是被加密的。这种方式看起来安全,但是仍有潜在的危险,一旦被窃听,或者信息被挟持,就有可能破解密钥,而破解其中的信息。因此“共享密钥加密”这种方式存在安全隐患:
3.3.2:非对称密钥加密
“非对称加密”使用的时候有两把锁,一把叫做“私有密钥”,一把是“公开密钥”,使用非对象加密的加密方式的时候,服务器首先告诉客户端按照自己给定的公开密钥进行加密处理,客户端按照公开密钥加密以后,服务器接受到信息再通过自己的私有密钥进行解密,这样做的好处就是解密的钥匙根本就不会进行传输,因此也就避免了被挟持的风险。就算公开密钥被窃听者拿到了,它也很难进行解密,因为解密过程是对离散对数求值,这可不是轻而易举就能做到的事。以下是非对称加密的原理图:
四:Https的安全通信机制
Https采用混合机制的加密方式
https则综合了公开密钥加密和共享密钥加密的两种方式,充分利用两者的优势,在最初的连接的时候使用非对称密钥的加密方式保证连接的安全性,之后稳定的通讯采用对称加密的方式,稳定的通讯是指确保交换的密钥是安全的。
非称加密方式的缺点
公开密钥加密固然比共享密钥加密的方式提升了一个档次,但是它也存在两个问题:
第一个是:如何保证接收端向发送端发出公开秘钥的时候,发送端确保收到的是预先要发送的,而不会被挟持。只要是发送密钥,就有可能有被挟持的风险。
第二个是:非对称加密的方式效率比较低,它处理起来更为复杂,通信过程中使用就有一定的效率问题而影响通信速度
https的证书机制
在上面中我们讲了非对称加密的缺点,其中第一个就是公钥很可能存在被挟持的情况,无法保证客户端收到的公开密钥就是服务器发行的公开密钥。此时就引出了公开密钥证书机制。数字证书认证机构是客户端与服务器都可信赖的第三方机构。证书的具体传播过程如下:
1:服务器的开发者携带公开密钥,向数字证书认证机构提出公开密钥的申请,数字证书认证机构在认清申请者的身份,审核通过以后,会对开发者申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将密钥放在证书里面,绑定在一起
2:服务器将这份数字证书发送给客户端,因为客户端也认可证书机构,客户端可以通过数字证书中的数字签名来验证公钥的真伪,来确保服务器传过来的公开密钥是真实的。一般情况下,证书的数字签名是很难被伪造的,这取决于认证机构的公信力。一旦确认信息无误之后,客户端就会通过公钥对报文进行加密发送,服务器接收到以后用自己的私钥进行解密。
关于客户端证书
客户端证书是进行客户端认证的,证明服务器正在通信的客户端是安全的。但是使用客户端证书使用存在以下几个问题:
1:使用客户端证书,客户得自己安装证书,客户端证书是需要进行付费购买的,且每张证书对应到用户意味着需要支付用户数量对等的费用,这叫给用户带来了间接的问题。
2:客户端证书存在另一个问题是,客户端证书只能证明客户端的存在,而不能证明用户本人的真实有效。
五:为什么还有很多网站不使用Https?
Https既然如此安全可靠,为什么还有很多WEB网站不使用Https的协议?
这其中的原因有以下几点:
加密通信会消耗一定的cpu和服务器资源,如果每次通信都加密,就会消耗更多的资源
如果所有的信息都采用https加密,这无疑是一种浪费。非敏感信息就算被窃取了,也无伤大雅。可以在其传输敏感信息的时候,采用https协议进行加密
购买证书的开销也是一笔很大的费用。向认证机构购买证书,证书价格会根据不同的认证机构略有不同,而一般的授权需要折合人民币600多元。
六:总结
在本片中http协议出发,主要介绍了https协议,并对其加密机制进行了简介,梳理其优缺点及其使用场景。作为一名java开发者,应该对https有所了解,明白其背后的机制,不用深究其细节,此乃本篇博文的初衷。
所以,综合考虑之下,对于https协议的升级还是十分合适且必要的。https协议在数据安全和搜索引擎优化方面都会给网站提供很多正面的帮助。
当然,https协议虽好,但如果想要进行http协议的改造的话,还要注意一些问题。
ssl证书需要一些额外的开支
天下没有免费的午餐,对于功能强大的ssl证书来说,当然也是如此。作为https协议的重要组成部分,ssl证书中是有一部分功能十分强大的证书需要一定的费用。而具体的数额也是根据ssl证书的功能决定的,功能越强,费用也就越高。当然,ssl证书也有一些可以免费使用的,但是比起付费证书,就会缺少很多强大的功能。
https的安装需要一定的技术支持
https协议的安装还是需要一些专业技术的,申请好的ssl证书是一个压缩文件,这就需要懂得相关知识的专业人员进行安装,如果想要对http协议进行改造而又不会的话,就千万不要乱动,如果想要尝试的话最好提前备份网站。