【图解HTTP】|【06】确保web安全的HTTPS

1、HTTP缺点

【缺点】:
	- 通信使用明文,内容可能被窃听;
	- 不验证通信方的身份,因此可能遭遇伪装;
	- 无法证明报文的完整性,所以有可能已遭篡改;

1.1 通信使用明文可能被窃听

【为什么发送明文】:由于HTTP不具备加密功能;
【TCP/IP是可能被窃听的网络】:互联网是全世界的网络组成,即使经过加密也可能被窃听;

防止窃听的方法

【通信加密】:可以通过SSL和TLS的组合使用,加密HTTP的通信内容==>HTTPS;
【内容加密】:把HTTP报文里所含内容进行加密处理;
	前提是要求客户端和服务器同时具备加密和解密的机制;

1.2 不严重通信方的身份久可能遭遇伪装

【不确认通信方,具有以下隐患】:
- 无法确定请求发送至目标的Web服务器是否按真实意图返回响应的那台服务器,有可能是已伪装的Web服务器;
- 无法确定响应返回到的客户端是否是按直实竟图接收响应的那个客户端。有可能是己伪装的客户端;
- 无法确定正在通信的对方是否具备访问权限,因为某些Web服务器上保存着重要的信息,只想发给特定用户通信的权限;
-  无法判定请求是来自何方、出自谁手;
- 即使是无意义的请求也会照单全收,无法阻止海量请求的攻击;

1.3 查明对手的证书

SSL不仅提供加密,还使用一种证书手段用于确定方;
	只要确认通信方持有的证书,即可判断通信方的真实意图;

在这里插入图片描述

1.4 无法证明报文完整性,可能被篡改

【接收的信息可能有误】:从Web下载下来的内容与服务器上存放的文件不一致,中途被篡改;
【如何防止被篡改】:
	- 常用MD5和SHA-1等散列校验方法,以及用来确认文件的数据签名方法;
	- Web也会使用PGP,PGP用来证明创建文件的数字签名;
	- 但上述方法仍有弊端,故必须使用HTTPS;

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

需要在HTTP上再加入加密处理和认证等机制 ==> HTTPS;
常在登录页面或购物页面上使用;

2.1 HTTPS是身披SSL外壳的HTTP

当使用SSL时,先和SSL通信,再由SSL和TCP通信;
也可用于其他应用层的协议;

2.2 相互交换密钥的公开密钥加密技术

SSL采用公开密钥加密方式;
	加密算法是公开的,但密钥确实保密的;

【共享密钥加密的困境】:
	加密和解密同用一个密钥,为共享或对称密钥加密;
	以共享密钥方式时,必须将密钥发送给对方;
【如何转交密钥?】:使用两把密钥的公开密钥加密
	公开密钥使用非对称密钥,一把为私有密钥,一把为公开密钥,私有不能被其他人知道,而公开即可随意发布;
	使用该方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥解密;

在这里插入图片描述

【HTTPS采用混合加密机制】:采用共享密钥加密和公开密钥加密两者并用;
	若密钥能够是安全交换,则考虑仅使用公开密钥加密来通信;
	但公开密钥加密与共享密钥加密相比,处理速度要慢;
	可以结合两者优势,再交换密钥环节使用公开密钥方式,之后的建立通信交换阶段则使用共享密钥加密方式;

在这里插入图片描述

2.3 证明公开密钥正确性的证书

建立公开密钥加密方式下的通信时,如何证明收到的公开密钥时原本预想的那台服务器发行的公开密钥?
	- 可以使用数字证书认证机构CA和其相关颁发的公开密钥证书;

【数字证书认证机构】:
- 服务器的运营人员向数字证书认证机构提出公开密钥的申请;
- 该机构再判明提出申请者的身份后,会对已申请的公开密钥做数字签名,再分配这个已签的公开密钥,将该公开密钥放入公钥CA后绑定一起;
	服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信;
	客户端使用该公开密钥,对那种证书的数字签名进行验证,若通过即:
		- 认证服务器的公开密钥的真实有效的CA;
		- 服务器的公开密钥时最值得信赖;

在这里插入图片描述

【可证明组织真实性的EV SSL证书】:
	- 用来证明作为通信一方的服务器是否规范;
	- 可确认对方服务器背后运营的企业是否真实存在;

【有由自认证机构颁发的证书称为自签名证书】:
- 每个人都可使用OpenSSL构建属于自己的认证机构;

2.4 HTTPS的安全通信机制

在这里插入图片描述

上述流程中,应用层发送数据时会附加一种为MAC的报文摘要,即可查知是否被篡改;

在这里插入图片描述

SSL速度慢吗

当HTTP使用SSL,处理速度会变慢;
	- 通信慢;
	- 大量消耗CPU等资源慢;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45926547/article/details/125019486