https的出现最主要是防止数据被篡改。
下面分析下:
我们正常情况下访问网站的路径是这样的:
客户端(浏览器,APP)
->路由器
->基站(电信,联通)
->服务器(服务商的服务器,比如百度服务器)
这个路径中,客户端
->路由器
这个过程时,传统的http传输的数据都是明文的。比如:
我用某金融APP给某某人转账:
这时候APP发送给服务器的数据可能有这些关键信息:
username:某某
money:100
idcard:622*****
这时,APP传给路由器时,也是这些信息,路由器传给基站那边也是这些信息。
那么问题来了:
如果这时路由器被人拦截,做一个手脚把里面的卡号换成别人的,金额再改下,再传给基站到服务器,是不是很危险?
https的核心就是把要传输的数据加密。
客户端
->公钥加密
->路由器
->基站
->服务器
->私钥解密
如果是走https协议,我们在把数据给路由器之前就会对数据用公钥进行加密,然后传给服务器,服务器私钥进行解密然后处理数据。
这里问题又来了:
公钥私钥是啥?哪里来?
公钥私钥可以这样理解,我们一般的加密算法都是通过某个key对数据加密,然后要拿到加密前的数据就需要用key解密。https用到的加密算法是用一个公钥key对数据加密,不能再用公钥key解密,只能通过另一个key私钥才能解密还原加密前的数据。
说到公钥私钥哪里来这个问题,就要来说说
为什么要去买https证书?
为什么还要付费?
若要用https加密解密,需要公钥和私钥,如果我们自己定义一个公钥加密,那服务器是不是就不知道怎么解密了?这时就需要第三方介入了。这个第三方他提供公钥和私钥,公钥给客户端,客户端用公钥加密,数据到服务器时,服务器再到第三方哪里找到私钥解密。第三方不可能免费给你提供服务吧,于是就出现了购买https证书。
以上是我个人对https的理解,可能有些欠妥,如有问题可以留言,我看到好更正。
[获取授权]
网友评论