一、对称密钥
对称密钥自古流传,通过将信息(如word)每个字母按字母表移动一定位置进行加密,解密方得知密钥(如各个字母移动5位,5即为密钥),向反方向移动对应位置即可解密
当双方能够达成共识,通过对称加密就可以完成信息的加密
比如:双方共同约定对称密钥为853(第一个字母移动8,第二个移动5,第三个移动3)。
但如今网络时代,信息的流通都是公开的,他人也能够知道你们的对称密钥,这时就需要另一种密钥确保对称密钥的安全性,就是非对称密钥。
二、非对称密钥
非对称密钥与对称密钥不同,它拥有一对公钥和私钥,公钥加密必须得私钥解密,私钥加密可以用公钥解密。私钥在服务器手里,公钥可以公开给任何人使用。
让客户端使用公钥对客户端生成的称密钥进行加密,发送给服务器,就算黑客获取到没有私钥也无法解密,服务器通过私钥解密得到对称密钥,在使用对称密钥与客户端进行业务交流。
但这里还有一个漏洞,客户端的公钥需要从服务器得到,黑客可以通过这一步做文章,造成中间人攻击。具体如下图,黑客对客户端扮演服务器给客户端假公钥,用来解密客户端的对称密钥,对服务器扮演客户端装作无事发生。获得对称密钥后,就可以窃听业务内容了。
此时又需另一样东西验证客户端获得的公钥是否真实,那就是证书。
三、证书
每个服务器的构建都需要向数字证书公正机构申请证书,证书包含服务器域名,名称,申请时间,公正机构私钥加密后的 校验和(这里的校验和是除了校验和以外其他的证书内容通过一定公式计算出来的值,其他内容修改时校验和大概率会改变)等等。
每台计算机的操作系统都存储了公正机构的公钥。
有了证书字后一切就好办了。
客户端向服务器发起请求,服务器将证书返回给客户端,客户端算出证书的校验和,再用公正机构的公钥解密证书中加密过的校验和,如果两个校验和一致则公钥是真的,不一样公钥的假的。
有些朋友会有疑惑为什么?
1.如果黑客修改了证书中的公钥,客户端算出来的校验和与证书中解密后的不同。
2.黑客没有公正机构的私钥,只有公钥,只能看到证书中的解密后的校验和缺不能修改。
3.黑客如果使用自己的证书发给客户端,客户端收到的证书上的域名和访问的域名不同也会报错。
进过以上几个加密流程,就能有效保护数据的安全性。