首页 > 代码库 > 简单了解HTTPS加密过程,从熟悉到了解
简单了解HTTPS加密过程,从熟悉到了解
前言了解HTTPS
HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,我在读大学的时候就在书上看到了,那个时候就又部分公司用上了,而Google 很早就开始启用了,初衷是为了保证数据安全。 近两年,Google、Baidu、Facebook 等这样的互联网巨头,不谋而合地开始大力推行 HTTPS, 国内外的大型互联网公司很多也都已经启用了全站 HTTPS,这也是未来互联网发展的趋势。
说到HTTPS那么就一定要说HTTP了:HTTP协议就是超文本传输协议,是客户端浏览器和服务器之间的通信协议,举个例子,就是一种互相都能理解的语言。好比两个中国人都用汉语一样。HTTPS协议只比HTTP多一一个S那么这个S应该就是security安全的意思了,对两者的交流语言进行了加密,不让外人知道。那么这两个人之间用什么加密呢,自然是加密算法了。
对称加密【用相同的算法加密和对应的算法解密,然和人只要算法是什么都可以解密】
非对称加密【通过公私钥去加密和解密,如果用私钥加密,那么只能用这个私钥对应的公钥解密】
哈希算法【转换其长度比加密的信息小的多MD5、SHA-1...】
数字签名【给信息做个签名,证明信息的有效性,信息如果改变,那么签名就失效】
1、了解HTTP的请求过程:
HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,“裸奔”在互联网上,所以很容易遭到黑客的攻击,如下:
大家也可以打开你的谷歌浏览器在开发模式中查看,由此证明http的信息传递是明文的,那么就是不安全的,因为是明文的那么很容易被劫持,被不法分子知道的信息。
2、熟悉HTTPS加密:
https的上面也说了,就是多了一层加密,那么究竟如何加密呢,无非是用算法,对称加密效率最高,但是一旦被知道算法,那么就不再安全,其次是客户端和服务端都要维持相同的密钥,维护困难;那么非对称加密呢?私钥是服务器的,那么公钥就是公开的,同样也会被知道,其次是公钥私钥每次加解密的效率是明显低于对称加密算法的,有矛就有盾。因此现在大多数都采用了一个这种的办法,既提高效率也维护安全。不是说非对称加密算法的效率低于对称加密么,那么在服务器第一次连接客户顿的时候用非对称加密验证,验证通过后,后面的信息交流就通过对称加密解密进行后面的操作。上面的办法固然好,但是当客户端请求服务器的时候,这一步也很可能被黑客劫持,黑客知道了银行的私钥和公钥就可以冒充银行,给你一个交流了,那么久又产生了一个问题,就是:信任问题,什么是信任问题。就比如用淘宝购物,买卖双方在支付的时候,都是把钱支付给支付宝,有支付宝做担保,如何卖家出现是么有害消费者的行为,那么买家在有理的情况下就可以申请退款不把钱给卖家。那么在网络中也是这样,那么这就是SSL证书,当客户端连接服务器的时候,服务器会向客户端发送一个SSL证书,证书里包含了:
- (1)证书的发布机构CA
- (2)证书的有效期
- (3)公钥
- (4)证书所有者
- (5)签名
客户端在接受到服务器的SSL证书后,会对证书进行校验,浏览器会查找当前操作系统的内置受信任的证书发布机构CA(如天威诚信),与服务器发来的证书中颁发者的CA对比,当如果没有找到的时候就会提醒用户是否信任当前证书,,当然HTTPS不止这些,里面包含了复杂的算法、协议和机制,这里只是简单通俗的让大家了解HTTPS。
简单了解HTTPS加密过程,从熟悉到了解