美文网首页格格读书营格格读书会格格早起成长营
软件测试1 || 有了HTTP,为何还要引入HTTPS?

软件测试1 || 有了HTTP,为何还要引入HTTPS?

作者: 九斤吖 | 来源:发表于2019-10-24 16:29 被阅读0次

2019-10-24  搬砖、盖楼,又是嗨皮的一天(原来我已经入职一个多月了,虽然中间的假期有点长)


1、有了HTTP为什么还要引入HTTPS呢?

要研究这个问题,那首先需要了解一下HTTP的缺点吧:

(1)明文传输数据。

(2)不验证通信方的身份。

(3)无法证明通信传输时的数据完整性。

与之对应的问题是:

(1)通信明文传输,就可能造成:通信内容可能被窃听。

(2)不验证通信方的身份,那你可能会遇到一个伪装的客户端或者服务器。

(3)无法证明通信传输数据的完整性,那数据本身就可能遭到恶意篡改。

所以,在HTTP协议中有可能存在信息被窃听或伪装等安全问题。这个时候,HTTPS作为一名小救星,就闪亮登台了。

综合来说,HTTPS解决的问题就是:HTTP无法保证数据通信过程中的安全性

2、那HTTPS是怎么解决这三个典型的问题呢?

(1)明文传输数据。

各位有想法的小可爱们可能会说了“切~,你加个密不就完事了吗”。

是的,加个密确实就完事了。但是HTTP本身是不具备加密功能的,所以也无法做到对通信的整体(请求&响应)加密。

根据TCP/IP协议族的工作机制,我们可以得出通信内容在所有通信线路上都有可能遭到窃听的结论。想想一下,多可怕~

还敢乱浏览网站吗~

为了解决这个问题,HTTP通信机制中引入了SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)来加密HTTP的通信内容

这就是HTTPS

与SSL组合使用的HTTP被称为HTTPS或HTTP over SLL。知道HTTPS的这个S是怎么来的吧。

(2)不验证通信方的身份

HTTP协议中的请求和响应是不会对通信方进行确认的

也就是说,它存在这些问题:

客户端发起一个请求它不能确定就真的请求到了想要的服务器,有可能是伪装的服务器;

服务器返回一个响应也不能确定就是发到目标客户端上了,有可能是伪装的客户端;

无法判定请求来自何方、出自谁手,即使是无意义的请求也会照单全收。

“如果有一种证书,能证明通信方的身份就好了。”

呐,SSL正好有这种功能,它可以确定通信方的身份,因为SSL除了报文加密还提供了一种证书来确认通信方身份(数字证书)。

何为证书?证书是由受信任的第三方机构颁发(比较厉害是CA),用以证明服务器和客户端的真实性。

使用证书可以减少个人信息的泄漏哦~

(3)数据丢失或者被篡改,无法保证数据完整性

HTTP是没有办法证明通信的报文完整性的。所谓完整性是指信息的准确度。

如果一个请求数据的准确度无法保证,那这些数据就有被篡改的风险,通信方接收到的内容就就可能存在错误。也可能在通信的过程中遭到攻击者的拦截并恶意篡改报文数据。

中间人攻击

为了防止报文在通信的时候被拦截并恶意篡改,必须要使用SSL提供的人证和加密处理及摘要功能。也就是数字签名(百度百科对数字签名解释的很清楚~此处不再赘述)

so,总结一下:

1、https的出现是为了解决HTTP的三个缺点。

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

相关文章

网友评论

    本文标题:软件测试1 || 有了HTTP,为何还要引入HTTPS?

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