??通信双方(客户端C和服务端S)在数据交互的过程中,或多或少会涉及一些敏感信息的问题,而由于传输信道本身是不安全,随时有可能会被黑客劫持,必然会产生信息泄密的风险,给双方带来财产损失(见图1)。由于
数据在传输过程中被劫持不可避免,又不能任由信息泄漏,通信双方通常会对自己的数据进行加密传输,这样即使流量被劫持了,黑客依然无法获取数据的真实内容,就避免了泄漏风险。根据加密方式的不同,分为对称加密、非对称加密,证书认证等
对称加密
??最简单易实现的加密方式为对称加密,通信双方各持有一个相同的密钥key,可使用key对明文data进行加密,反之又可对密文进行解密,函数关系如下所示,只要黑客不拿到这个key,便无法解析出密文的内容
E(key, data)=dataEncrypted
D(key, dataEncrypted)=data
??可问题在于,client和server之间要如何确定这个key,如果采用内置key的方式,那么key的修改就太过麻烦了,总不能让用户揣着身份证去找机房,让运维人员帮忙把服务器内置的key改了,然后用户在把电脑上client内置的key同步修改掉,但如果采用协商的方式确认,那么这个协商只能是明文传输的,又造成了安全性问题
非对称加密
??非对称加密可解决客户端向服务端传输数据的加密问题,经过私钥sk加密的数据可由公钥pk解密,而经由公钥pk加密的数据可由私钥sk解密,函数关系类似于
E(pk, data)=dataEncrypted
D(sk, dataEncryted)=data
E(sk, data)=dataEncrypted'
D(pk, dataEncryted')=data
??至此客户端向服务端传输数据的安全性就迎刃而解,客户端首先向服务端获取公钥,而后将数据加密发送给服务端,由于私钥只能服务端持有,黑客即使截取到了数据,也无法解析。然而公钥是有经过传输信道的,那就有可能被黑客劫持获取,因此从服务端发往客户端的经由私钥加密的数据,是可以被黑客劫持并解析的
非对称加密+对称加密
??结合非对称加密与对称加密的优势,客户端在获取到pk之后,不再继续使用非对称加密的方式进行余下的通信,而是临时生成一个随机的对称加密密钥key,将这个key使用pk加密后并传输到服务端,告知服务端后续使用对称加密的方式进行通讯,由于黑客未持有sk,无法解析出key的内容,所以接下来CS双方的通信内容,对黑客来说都不可见
混合加密的缺陷
??未完待续…
证书认证
??未完待续…
|