美文网首页百人计划
图解http协议(2)—https协议

图解http协议(2)—https协议

作者: 小盼盼_1 | 来源:发表于2020-05-03 14:24 被阅读0次

    1.http协议的一些缺点&解决方案

    1.传输的数据没有使用加密算法,导致数据在传输的过程中可能会被第三方的用户窃取。

    解决方案:

    a.通信的加密:http协议和ssl(安全套接层)或TLS(安全层传输协议)的组合使用,实现方式为在客户端和服务器建立一条安全的通信线路。

    图解http协议(2)—https协议

    b.内容的加密

    对传输的内容使用加密算法,在进行传输前,先将待传的http报文进行加密处理后在进行发送。这种方式实现的前提是,客户端和服务器同时需要具备加解密机制,但由于未使用一条安全的通信线路,所以数据在传输过程中仍然存在被篡改的可能。

    2.tcp协议仅保证数据完整无误的传到通信的双方,但不会去校验双方的身份,有可能会遭遇身份的伪装,导致数据传输到不正确的接收方,例如一些涉及到支付类的相关业务下,易造成金额上的损失

    解决方案:

    SSL不仅提供加密处理,而且还可以用到证书,可以用来鉴别通信双方的身份。客户端持有证书可以完成个人身份的认证,可用于web服务器验证请求方的身份;服务器端有证书,可以保证http报文是传到自己想传的服务器上,减少个人信息被泄漏的可能性。

    注:证书由值得信任的第三方机构颁发,伪造证书从技术角度来说是异常困难的一件事。

    3.传输的过程中,内容有没有可能被他人篡改无法保证

    解决方案:

    使用md5和sha-1等散列值校验的方法对http报文进行加密处理,但使用这些加密算法也无法百分百保证内容未被篡改。

    通过以上这些解决方案的整理,可以采用http+ssl的方式来进一步保证传输内容的安全性。

    2.https的工作原理

    1.https的工作层级

    图解http协议(2)—https协议

    https不是一种新的协议,只是将原来的http协议直接和tcp通信,变成http协议先和ssl协议通信,再由ssl协议和tcp通信。

    注:ssl协议是独立于http协议的,其余应用层上的协议如FTP协议也可以结合ssl协议使用,提高数据传输过程中的安全性。

    2.https采用的加密技术

    目前加密算法都是公开的,但密钥可以根据业务方来进行选择,从而保证加密算法的安全性。

    共享密钥加密

    加密和解密共用同一个密钥的方式叫做共享密钥加密。

    优点:传输速度快

    缺点:无法保证密钥在传输过程中不会被窃取

    公开密钥加密

    公开密钥加密使用一对非对称的密钥,一把叫做私有密钥,一把叫做公开密钥。具体实现方式:发送密文的一方使用对方公开密钥对http报文进行加密处理,对方收到加密后的http报文后,再使用自己的私有密码进行解密。传输的过程中不需要传输用来加密的密钥,从而减少密钥被他人窃走的可能性。

    优点:根据密文和公开密钥对传输的内容进行解密的可能性很低,同时也能进一步有效避免数据在传输过程中被篡改的可能性。

    缺点:传输速度慢

    基于以上两种方式的优缺点,先通过公开密钥方式将共享方式中的密钥进行传输,完成传输后,再使用共享方式中的密钥对http报文进行加密。具体见下图方式:

    图解http协议(2)—https协议

    3.https的证书

    使用公开密钥加密的方式,需保证使用的公开密钥就是来自于相应的web服务器发行的公开密钥,此时就需要用到证书,确保web服务器的公开密钥是真实有效的,保证通信双方的身份。

    4.整个https的通信过程

    图解http协议(2)—https协议

    具体通信步骤如下:

    a.客户端和服务器首先通过ssl协议中的证书确保通信双方身份的正确性

    b.确认了双方的身份后,客户端取出服务器端公开密钥,对共享密钥(master secret)进行加密处理,生成随机数(pre-master secret)传递给服务器

    c.服务器端接收到随机数(pre-master secret)后,使用自己的私钥解密后得到共享密钥(master secret)

    d.客户端将http报文使用共享密钥(master secret)进行加密处理后传到服务端

    e.服务器接收到加密后的http报文后,使用c步骤中得到的共享密钥对报文进行解密,完成了http报文的响应后再通过一样的方法回传给客户端

    f.整个https通信过程结束

    注:采用https协议,应用层发送http报文的时候会附加一种Mac的报文摘要。可以通过Mac查阅报文是否被修改,从而保证报文的正确性。


    相关文章

      网友评论

        本文标题:图解http协议(2)—https协议

        本文链接:https://www.haomeiwen.com/subject/mjkdghtx.html