• 已删除用户
Administrator
发布于 2021-06-04 / 397 阅读
0

确保web安全的https

确保web安全的https

一、http的缺点

①通信使用明文(不加密),内容可能会被窃听;

②不验证通信方的身份,因此有可能遭遇伪装;

③无法证明报文的完整性,所以有可能已遭篡改;

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

由于http本身不具备加密的功能,所以也无法做到对通信整体进行加密;

image-20210604133700664

1.2不验证身份可能遭遇伪装

在http协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求。另外服务器只要接收到请求,不管对方是谁,都会返回一个响应。

1.3无法证明报文完整性

image-20210604134401552

二、http+加密+认证+完整性保护=https

2.1https是身披SSL外壳的http

https并非应用层的一种新协议。只是http通信接口部分用SSL和TLS协议替代而已。简而言之,https是身披SSL外壳的http。

image-20210604134742719

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

2.2.1共享密钥加密的困境

加密和解密同用一个密钥的方式称为共享密钥,也被称为对称密钥加密

image-20210604135104231

以共享密钥方式加密时必须将密钥也发给对方。在互联网上转发密钥时,如果通信被监听那么密钥也就会落入攻击者之手,同时也就失去了加密的意义。另外还得设法安全地保管接收到的密钥。

2.2.2使用两把密钥的公开密钥加密

公开密钥加密方式,很好的解决了共享密钥加密的困难。

公开密钥加密使用一对非对称的密钥。一把叫私有密钥,另一把叫公开密钥。

使用公开密钥加密的方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,在使用自己的私有密钥进行加密。利用这种方式,不需要发送解密的私钥,也不用担心公钥被攻击者窃听而盗走。

image-20210604135957363

2.2.3https采用混合加密机制

https采用共享密钥加密和公开密钥加密两者并用的混合加密机制。

image-20210604140326755

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

公开密钥加密的方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。比如,正准备和某台服务器建立公开密钥加密方式下的通信时,如何证明收到的密钥就是预想的那台服务器发行的公开密钥

为了解决上述问题,可以使用由数字证书认证机构和相关机关颁发的公开密钥证书。

介绍一下数字证书认证机构的业务流程:

首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。

服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式的通信。

接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:一、认证服务器的公开密钥是真实有效的数字证书认证机构;二、服务器的公开密钥是值得信赖的。

image-20210604141934714

用以确认客户端的证书:https还可以使用客户端证书。以客户端证书进行客户端认证,证明服务器正在通信的对方始终是预料之内的客户端,其作用跟服务器证书如出一辙。

image-20210604142356022

image-20210604142906991

2.4https的问题

https比http要慢2到100倍;

image-20210604143105011

SSL的慢分两种。一种是指通信慢,另一种是指由于大量消耗CPU及内存等资源,导致处理速度变慢。另一点是SSL必须进行加密处理,在服务器和客户端都需要进行加密和解密的运算。因此从结果上讲,比起http会更多地消耗服务器和客户端地硬件资源。