什么是Https?是怎么运行的发布时间:2020/7/28 17:28:02 阅读次数:

  

http协议大家可能都耳熟能详了,但是它有一系列的缺点,比如:

1.通信时使用明文,这样有可能通信内容会被窃听

2.不会验证通信方的身份,包括服务器和客户端,特别是服务器,有可能你发送请求的对方是个钓鱼网站

3.无法验证报文的完整性(准确度),有可能所有的报文会经过黑客的服务器,黑客将内容篡改后进行转发,前后端都不会知晓,神不知鬼不觉

虽然http协议已经非常强大了,但在安全这一块确实是还有欠妥之处,于是一种安全的http协议-https运用而生。

Https概述

https并不是一种新的协议,只是在http层下面添加了一层SSL层和TLS层(后面统称为SSL层),SSL层主要是做加密处理,http层直接与SSL层通信,如下图所示:

v2-53ff11b06372b07f2715d6c28f8d75e8_b.jpg

加密技术

为了更好的了解https,从而保证了数据的安全性。下面介绍https用到的2种加密方式:

1.共享密钥加密(对称密钥加密)

加密和解密用同一个密钥的方式,这种方式需要客户端和服务器都知道这个密钥,而单独的发送这个密钥有可能会被窃听的风险,所以如何安全的发送这个密钥又是一个新的难题。

所以尴尬境地是:发送密钥吧,有可能被黑客窃取;不发送密钥吧,对方就不能解密。

2.公开密钥加密(非对称密钥加密)

这里使用了2把密钥,一把叫私有密钥(私钥),一把叫公开密钥(公钥),这2个密钥是配对的一套密钥,公钥可以让任何人都知道,而私钥只有自己知道。

另外,对于一对公钥私钥而言:公钥加密的内容,只有私钥才能解开;而私钥加密的内容,所有公钥都可以解开。

这种方式可以很好的解决上面对称密钥加密方式的尴尬境地:对于一段内容,发送方可以使用公钥进行加密发送给对方,接收方收到内容后用自己的私钥进行解密,因为这样不用发送解密的私钥,从而不会落入黑客之手。

有的人会有这样的担心:难道黑客就不能截获加密的内容后破解加密的内容吗?但是我告诉你,破解的难度相当大,就目前的技术来看不太现实。


混合加密技术-HTTPS

https采用上面2种加密方式的混合加密机制(公开密钥加密+共享密钥加密),共享密钥加密方式的密钥用公开密钥加密方式加密后发送给对方,然后建立通信后的内容采用共享密钥加密方式。

为什么采用这种混合方式呢?因为公开加密方式与共享加密方式相比,它的处理速度要慢,所以采用公开加密方式加密一次共享加密方式的密钥后,后面的内容则多次采用共享加密方式,这样可以大大增加效率。

v2-9fca214d60055e2ac4bb5458b55712e7_b.jpg