首先我们知道HTTP的不足之处:
1.不验证身份,导致身份可能被伪装。
HTTP是不会对请求的双方进行身份验证的,服务器不会校验客户端的身份,谁都可以向服务器发送请求,任何人都的请求都会进行响应; 客户端也不会验证响应的数据是否是由自己请求的目标服务器所发出。
2.明文通信,数据可能被窃取 3.无法验证报文的完整性,内容可能被篡改
HTTP的请求过程中是不会对通信内容进行加密的,在网络中一旦请求或响应的数据被窃取就会导致数据泄漏,造成数据安全问题。
3.无法验证报文的完整性,内容可能被篡改
HTTP不会验证数据的前后一致性,一旦数据传输的过程中遭遇中间人的篡改,通信的双发是无法判断自己接收的数据是否和对方发送的数据一致性。
然后我们需要了解一些加密机制:对称加密、非对称加密、混合加密机制
(1)对称加密:对称加密是指加密和解密的密钥为同一个,用来加密数据的密钥同时也可以用来)它的特点是加密速度快,使用简单,因为加密解密只需要同一把钥匙就行了,他的破解难度是随着钥匙的大小增加而增加的,钥匙越大就越难破解,但是钥匙越大相应的据解密的时间也会越长。
对称加密存在的问题:
1.双方都必须事先约定好加密规则。
2.密钥的数目难于管理。因为对于每一个合作者都需要使用不同的密钥,很难适应开放互联网中的大量的合作者交流。
3.无法适用于陌生的网络的环境,双方都必须是可信任的才可进行。
运用对称加密有一个前提就是在发送信息前双方都必须知道加密的规则,但是在互联网的环境下我们每天可能跟不同人发送信息,很多人我们之前根本没认识过,这种情况下我们根本不可能事先就约定好加密规则,那么我们就只能通过信息把加密规则(密钥)发送给对方,然后我们再根据加密规则来加密聊天信息,很显然这肯定是不可取的,不经过加密的数据在网络传输是没有任何安全性可言的,于是就出现了非对称加密
(2)非对称加密:
与对称加密不同,非对称加密的密钥是成对的(公钥和私钥)。私钥由自己安全保管不外泄,而公钥则可以发给网络中的任何人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。根据公钥是无法推导出私钥的;
相比于对称加密,非对称加密有以下优势:
1.比对称加密安全:加密和解密是不同的钥匙,非对称加密的私钥是由自己保管不会外泄的,除了自己没有任何人知道私钥,而对称加密只有一把密钥并且通信双方都要知道密钥,一旦密钥知道的人越多那么安全的风险就越大。
2.更方便可扩展:公钥可以公布在网络中,任何人都可以拿着公钥和你进行通信,而对称加密密钥是不可能公布在网络中的,只能通过私下约定密钥规则。
非对称加密的问题
虽然非对称加密很安全,但是和对称加密比起来,它的解密速度非常慢;所以通常会用混合加密的方式进行通信,混合加密是用非对称加密的方式交换双方的对称加密秘钥,交换对称加密秘钥之后双方再用