部分内容来源网络,侵删
首先要明确一点,“没有绝对的安全,只有相对的安全”,很多安全加密算法都在不断地改进变化,来最大程度地降低风险,但并不是百分之百得安全。
01 http的最大弊端 — 不安全
http使用明文传输数据,涉及到一些敏感信息时就变得极不安全,例如传输密码等敏感信息。HTTP数据传输过程如下:
http以明文传输的数据很容易被“中间人”获取,用户的信息完全暴露,毫无安全性可言,而且用户不易察觉,如下图所示:
正是因为http不安全,才出现了经过一系列加密算法加密的安全性较高的https协议
02 加密算法
2.1 对称加密(共享加密)
对称加密就是客户端和服务器双方使用相同的加密密钥进行解密和解密,过程如下图
对称加密算法人存在弊端,就是一旦有人获得密钥,那么就可以破解密文。**在进行传输数据的过程中,首先双方要进行交换密钥,在交换密钥的过程中,很容易被第三方监听,密钥一旦落入攻击者得手中,对称加密也就失去了安全性。**于是,就有了后来的非对称加密算法。
2.2 非对称加密
首先要知道公钥和私钥(必须成对出现,相当于公钥是锁,私钥是对应的钥匙),**公钥加密的内容只能使用私钥解密,并且要破解这个内容是很难的。**公钥可以让所有客户端知道,但私钥只有服务器知道。非对称加密数据传输过程如下:①客户端C使用S的公钥加密,发送给服务器S,服务器S使用S的私钥解密;②服务器S使用C的公钥加密,发送给客户端C,客户端C使用C的私钥解密
使用非对称加密是比较安全的,中间人有可能会截获数据包,但他无法解析出内容,但加密解密过程的计算量比较大,速度慢。所以有了后来的混合加密算法。
2.3 混合加密
使用非对称加密来传输共享密钥,然后使用共享密钥来进行对称加密,既提升了安全性,又提升了传输速度。混合加密过程如下:
混合加密中的非对称依然存在一定的问题,无法确认客户端使用的公钥是服务器的公钥,如果这个密钥是“中间攻击人”的公钥,那么数据依然有可能被破解。所以有了https的加密方式:证书+数字签名
03 https加密方式:数字签名+证书(重点)
https=http + ssl/tsl,思想依旧是混合加密,只是解决了混合加密过程中存在的风险问题,数据传输过程如下图:
加密步骤如图所示:
主要步骤:
-
服务器向数字认证机构申请证书,机构使用私钥对证书内容进行加密,证书主要包含服务器公钥;现在机构私钥对应的公钥一般是内嵌到浏览器中的(一般认为认证机构是可信的)
-
服务器向客户端发送证书
-
客户端使用浏览器内置的公钥向证书发布机构验证证书的服务器公钥的真实性(使用非对称加密技术去验证,不必担心认证机构的公钥是不是假的,因为内嵌在浏览器中)
-
生成随机数,使用服务器的公钥加密,后续的数据传输就是用这个随机数来进行共享加密传输数据(使用混合加密传输数据)
04 总结
使用数字签名+证书的方式主要是确保得到的公钥一定是服务器的公钥,然后依然使用混合加密方式进行加密。
安全是相对的,使用证书+数字签名的方式依然可能存在安全问题,有可能会出现证书伪造的情况(以前确实出现过),所以并没有绝对的安全