一、http协议的缺点
普通的http协议是明文传输,存在网络安全问题。
1、如果有黑客通过拦截,很容易获取,我们发送的http请求,如果我们在http报文中传输了银行卡号和密码,此时就被黑客获取到了
2、如果黑客在我们和服务端之间作为一个中间人,转发我们的请求报文,黑客就可以随意修改里面的内容
3、总结一些安全问题出在了:
(1)明文传输,数据可能被泄露。
(2)不能确定对方身份,报文可能被转发,被修改
二、对称加密和非对称加密
1.对称加密
A和B进行通信,A采用一个加密算法k将要发送给B的内容进行加密。B收到加密之后的密文之后,也利用这个加密算法K,对密文进行解密。
这种加密传输方式看似可行,实际上存在一个
致命问题
:服务端不可能给每个客户端单独生成一个加密算法,而如果所有客户端使用的是一个加密算法的话,黑客还是可以获得这个加密算法的。那么这个对称加密就毫无意义
2.非对称加密
非对称加密:存在一对公钥public key和私钥secret key,公钥加密后的密文只能用私钥解密。私钥加密后只能用公钥解密。服务端自己保存sercet key,将public key 发送给客户端。
缺点:
这里还是会存在问题,客户端向服务端发送的数据,黑客截取到也不之后是什么内容了,但是服务端发给客户端的内容,黑客是可以看到的。并且,非对称加密的加密和解密对服务端的性能消耗非常大的。
3标题对称加密+非对称加密
通过非对称加密传送,对称加密的加密算法,这样弥补了非对称加密解密对服务器性能消耗过大的缺陷。
但是还有问题的是,如果从一开始就有黑客拦截转发请求的话,服务端和客户端都是无意识的。
三、https协议
https协议就是安全的http协议。
https采用对称加密+非对称加密+CA证书的方式进行加密。
服务端持有自己的
公钥pk
和
私钥sk
,和CA证书的
公钥cpk
,
私钥csk
。
服务端存的公钥pk,通过csk秘钥进行加密生成一个license,客户端在请求的时候,不会直接请求服务端的公钥,而是申请这个license。哈哈一般服务器向CA机构申请license证书都是收费的客户端在获取到服务端的license之后,他操作系统本地写有一些CA证书的公钥,在本地获取相应的CSK,这一步操作可以有效的防止中间人插入。用本地的csk将license证书解密之后得到这个服务端的公钥。
他们具体的加密方式和连接方式是。