前端必备HTTP技能

HTTPS诞生原因(三)

2018-06-22  本文已影响43人  SunshineBrother

本片文章基于三点介绍

1、HTTP的缺点

HTTP的不足主要有三个方面

1.1、通讯使用明文,内容会被窃听

由于HTTP本身是不具备加密的功能的,所以也无法做到对通讯整体进行加密,即HTTP报文是使用明文方式发送的

按照TCP/IP协议族的工作机制,通讯内容在所有的通讯线路上都有可能遭到窥视。

所谓的互联网使用连通到全世界的网络组成的,所以通讯过程不是私有的,是完全公开的,即使我们对报文内容进行加密处理,也只能让别人无法简单的破解报文信息,但是外人还是能够截取加密的信息

窃听相同段上的通讯并不是难事,网上有很多的抓包工具,像sniffer,packet Capture,Wireshark等等

1.2、不验证通讯方的身份,因此有可能遭遇伪装

HTTP协议中的请求和响应不会对通讯进行确认的,也就是任何人都可以发出请求。

84ECC05F-7427-4F4F-9247-D82F27ACA845.png

HTTP协议的实现本身非常简单,无论是谁发过来的请求都会返回响应,不会确认通讯方,因此存在很多的隐患。

1.3、无法证明报文的完整行,所以可能被篡改

由于HTTP协议无法证明通讯报文的完整性,因此,在请求或响应发出之后直到对方接受之前这段时间内,即使请求或者响应内容遭到篡改也没有办法获取

AE81B212-33C6-435D-B0AA-B8396A902FDD.png

像这样请求或者响应在传输途中,遭到攻击者拦截并篡改内容的攻击称为为中间人攻击

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

为了应对HTTP上面的不足,HTTPS应运而生。

HTTP加上加密处理和认证以及完整性保护后即使HTTPS。

HTTPS通讯历程

HTTPS并非是应用层的一种新的协议,只是HTTP通讯接口部分用了SSL和TLS协议代替而已。通常HTTP直接和TCP通讯,当使用SSL时,则变成了HTTP先与SSL通讯,再有SSL和TCP通讯HTTPS其实就是添加了SSL协议的外壳的HTTP

SSL是独立于HTTP的协议,是采用的一种非非对称式加密的处理方式,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可以配合SSL协议使用,可以说SSL是当今世界上应用最为广泛的网络安全技术

2.1、加密

常用的加密方式主要有

以对称式加密的方式加密时,必须要将密钥发送给对方。可是究竟怎样才能安全的转交呢?在互联网上转发密钥的时候,如果通讯被监听,那么密钥就有可能落入到攻击者的手中,同时也就失去了加密的意义。

密钥发送问题

非对称式加密能够很好的解决这一个问题,使用非对称式加密的时候,发送密文的一方使用对方的公开密钥进行加密处理,对方收到加密信息后,使用私钥解密。但是这个方式也存在一个非常大的问题,就是要想要根据密文和公开密钥恢复到信息原文式异常困难的,因为解密过程就是对离散对数进行求值的,这是非常消耗性能的

因此,为了照顾安全性和性能问题,HTTPS采用了混合加密机制在交换密钥环节使用公开加密方式,之后的建立通讯交换报文阶段使用对称加密方式

混合加密机制

2.2、 认证

遗憾的是公开密钥加密还有一个问题,就是无法证明公开密钥本身就是货真价实的公开密钥。比如,我们怎么证明收到的公开密钥就是原来预想的那台服务器发出的密钥,而不是公开密钥在传输的过程中真正的公开密钥已经被攻击者替换掉了。

为了解决这个问题,可以使用数字证书认证机构和其他相关机关颁布的公开密钥证书。数字正式认证机构处于客户端与服务器双方都可信赖的第三方机构的立场。

数字证书颁布以及使用流程

数字证书认证

为什么不一直使用HTTPS

SSL的慢分为两种

SSL

因此,如果是非敏感信息则使用HTTP通信,只有包含了个人信息等敏感数据时,才利用HTTPS加密通信

HTTP认证方式

HTTP认证方式

BASIC认证(基本认证)

BASIC认证是从HTTP/1.0定义的一种认证方式,但是BASIC认证使用上不够灵活,且安全等级较低,因此不经常使用。

BASIC认证步骤

BASIC认证步骤

DIGEST认证(摘要认证)

DIGEST认证(摘要认证)即咨询响应式,一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的咨询码计算生成响应码,最后响应码返回给对方进行认证

DIGEST认证(摘要认证

SSL客户端认证

步骤

表单认证

HTTP协议标准中提供的BASIC认证和DIGEST认证几乎不怎么使用,SSL客户端认证虽然具有较高的安全等级,但是因为导入和费用问题,普及不怎么广泛。因此出现了表单认证。

表单认证

表单认证的基础思想就是用户登录,然后根据用户的ID和密码生成token

文章参考自《图解HTTP》

上一篇 下一篇

猜你喜欢

热点阅读