逢年过节的,安全问题不容忽视,今天给大家带来的内容是HTTP的「安全版」——HTTPS。
HTTPS中文学名「安全超文本传输协议」,比HTTP多了个「安全」。那么HTTPS是如何实现「安全」的呢?
在传统的HTTP协议中,应用层的HTTP协议将应用程序提供的数据封装后,明文交给位于运输层的TCP协议发送到网络上。由于是明文传输,发送的信息可以在传输过程中被任意篡改,甚至被完全替换。
从上文可以看出,HTTP协议的主要缺点就是明文传输。
为了解决这个问题,HTTPS协议在HTTP和TCP之间添加了一层SSL协议。SSL是用来保障网络上数据传输安全的一套协议,它在传输层对HTTP进行封装加密,然后将数据交由TCP协议发送到网络上。
使用HTTPS的服务器,需要在受信任公司申请一套数字证书,也就是密码学中的公钥和私钥,用于进行非对称加密。公钥加密的数据需要用私钥解密,私钥加密的数据需要用公钥解密。
当准备好数字证书后,就可以使用HTTPS协议进行数据传输了,我们来看看HTTPS协议建立连接的流程:
1、 客户端发起https请求;
2、 服务器将公钥发送给客户端,客户端可以根据公钥验证服务器的身份。
3、 客户端生成一个加密密钥,公钥加密后,将密钥传输给服务器,服务器用私钥解密报文获得客户端密钥;
4、 服务器和客户端的数据传输都通过客户端密钥进行加解密。讲完技术后,又到了举栗子环节了:
抗日战争时期,我党两个指挥部之间需要进行加密电报通信安排作战计划,但是两方当前用的都是非加密的电码本(明文传输),通信内容很容易被敌方破解。正巧,指挥部A(服务器)有一个便携保险箱(公钥)和钥匙(私钥),于是便派通信员小张单独将保险箱(公钥)秘密送达了指挥部 B(客户端),保险箱的钥匙(私钥)还是被保存在指挥部A。指挥部B(客户端)收到箱子后,一看上面印着的五角星,便知其来由,于是将加密后的电码本(客户端加密密钥)放在了箱子里,将箱子锁好,由小张带回了指挥部A。指挥部A收回箱子后,用钥匙将保险箱打开,这样,两个指挥部便都有了加密后的电码本(客户端加密密钥),后续的作战计划电报报文都用新的密码本编码,保证了信息的安全传递!
综上所述,HTTPS协议可以保证信息在网络中传输的可靠性,主要用于对传输安全敏感的场景,如网上银行、支付宝、财付通等,另外HTTPS也可以有效的防止页面被网络中的三方(比如运营商)篡改,如果你的网站经常被运营商改的乱七八糟,可以让开发尝试下HTTPS了。
标签: 客户端协议