HTTP缺点
通信使用明文(不加密),内容可能会被窃听
不验证通信方的身份,可能遭遇伪装
无法证明报文的完整性,所以有可能遭篡改
一、通信使用明文(不加密),内容可能会被窃听
TCP/IP是可能被窃听的网络
1、http协议中没有加密机制,但可以通过SSL(Secure Socket Layer安全套接层)和TLS(Translate Layer Secure安全传输层协议)组合使用,加密HTTP的通信内容
2、与SSL组合使用的HTTP被称为HTTPS
加密处理防止窃听:
1、通信的加密:HTTPS
2、内容的加密:客户端对HTTP报文进行加密处理后再发送请求,前提要求客户端和服务器同时具备加密解密机制
二、不验证通信方的身份,可能遭遇伪装
HTTP协议通信时,任何人都可以发起请求,服务器只要接收请求不管对方是谁都会返回响应(不确认通信方)
查明对手的证书:
HTTP协议无法确定通信方,但使用SSL后不仅提供了加密手段,还使用了证书手段,用于确认通信方
证书:由第三方机构颁发(值得信任的),用以证明服务器和客户端是实际存在的,只要能够确认通信方持有的证书,即可判断通信方的真实意图
三、无法证明报文的完整性,所以有可能遭篡改
完整性是指信息的准确度
接收到的内容可能有误:在请求或响应送出之后直到对方接收之前的这段时间内,即使请求或响应的内容遭到篡改,也没办法获悉(中途可能被篡改)
在请求或响应的传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击,攻击人会随意篡改请求和响应,而让客户端和服务器之间的通信看上去仍旧是正常的
防止篡改:
有使用HTTP协议确定报文完整性的方法,但并不快捷可靠
常用的是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法
提供文件下载服务的Web网站也会提供相应的以PGP(Pretty Good Privacy)创建的数字签名及MD5算法生成的散列值。
PGP是用来证明拆跟你讲文件的数字签名
MD5是由单向函数生成的散列值
PGP和MD5都有被改写的可能,都有弊端
所以要用HTTPS
HTTP+加密+认证+完整性保护=HTTPS
用https通信时,https://左边会有一个🔒
https是身披SSL外壳的HTTP,之前HTTP直接和TCP通信,使用之后,先和SSL通信,再由SSL和TCP通信
HTTPS不是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已
SSL是当今应用最为广泛的网络安全技术
SSL采用的是公开密钥加密的加密方式
-------------------------------------加密两种方式:对称和非对称-----------------------------------------------------
加密方式
①对称密钥加密:加密和解密同用一个密钥(也叫共享密钥加密))(发送密钥可能被窃听,不发送就无法解密,有困难)
②使用两把密钥的公开密钥加密:公开密钥加密很好的解决了共享密钥加密的困难,使用非对称的密钥
非对称密钥:一把公开密钥一把私有密钥(公开密钥和私有密钥是配对的一套密钥,公开密钥可以发给任何人)
公开密钥加密原理:发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密信息后,再使用自己的私有密钥进行解密
---------------------------------------------------------------------------------------------------------------------------------
HTTPS采用的是混合加密机制:共享密钥加密和公开密钥加密两者并用的混合加密机制(不单用公开密钥加密的原因是,处理速度太慢,所以利用各自优势,结合起来)
HTTPS原理:交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段则使用共享密钥加密方式