为什么需要https?https实现原理是啥?都做了啥?

2017-08-02  本文已影响568人  IT锟

https的出现最主要是防止数据被篡改。

下面分析下:

我们正常情况下访问网站的路径是这样的:

客户端(浏览器,APP)->路由器->基站(电信,联通)->服务器(服务商的服务器,比如百度服务器)

这个路径中,客户端->路由器这个过程时,传统的http传输的数据都是明文的。比如:

我用某金融APP给某某人转账:
这时候APP发送给服务器的数据可能有这些关键信息:

username:某某
money:100
idcard:622*****

这时,APP传给路由器时,也是这些信息,路由器传给基站那边也是这些信息。

那么问题来了:
如果这时路由器被人拦截,做一个手脚把里面的卡号换成别人的,金额再改下,再传给基站到服务器,是不是很危险?

https的核心就是把要传输的数据加密。

客户端->公钥加密->路由器->基站->服务器->私钥解密

如果是走https协议,我们在把数据给路由器之前就会对数据用公钥进行加密,然后传给服务器,服务器私钥进行解密然后处理数据。

这里问题又来了:

公钥私钥是啥?哪里来?

公钥私钥可以这样理解,我们一般的加密算法都是通过某个key对数据加密,然后要拿到加密前的数据就需要用key解密。https用到的加密算法是用一个公钥key对数据加密,不能再用公钥key解密,只能通过另一个key私钥才能解密还原加密前的数据。

说到公钥私钥哪里来这个问题,就要来说说为什么要去买https证书?为什么还要付费?

若要用https加密解密,需要公钥和私钥,如果我们自己定义一个公钥加密,那服务器是不是就不知道怎么解密了?这时就需要第三方介入了。这个第三方他提供公钥和私钥,公钥给客户端,客户端用公钥加密,数据到服务器时,服务器再到第三方哪里找到私钥解密。第三方不可能免费给你提供服务吧,于是就出现了购买https证书。

以上是我个人对https的理解,可能有些欠妥,如有问题可以留言,我看到好更正。

[获取授权]

上一篇 下一篇

猜你喜欢

热点阅读