HTTPS之对称加密、非对称加密、证书认证

文章目录

        • 对称加密
        • 非对称加密
        • 非对称加密+对称加密
        • 混合加密的缺陷
        • 证书认证

  通信双方(客户端C和服务端S)在数据交互的过程中,或多或少会涉及一些敏感信息的问题,而由于传输信道本身是不安全,随时有可能会被黑客劫持,必然会产生信息泄密的风险,给双方带来财产损失(见图1)。由于 数据在传输过程中被劫持不可避免,又不能任由信息泄漏,通信双方通常会对自己的数据进行加密传输,这样即使流量被劫持了,黑客依然无法获取数据的真实内容,就避免了泄漏风险。根据加密方式的不同,分为对称加密、非对称加密,证书认证等
HTTPS之对称加密、非对称加密、证书认证_第1张图片

对称加密

  最简单易实现的加密方式为对称加密,通信双方各持有一个相同的密钥key,可使用key对明文data进行加密,反之又可对密文进行解密,函数关系如下所示,只要黑客不拿到这个key,便无法解析出密文的内容

E(key, data)=dataEncrypted
D(key, dataEncrypted)=data

  可问题在于,client和server之间要如何确定这个key,如果采用内置key的方式,那么key的修改就太过麻烦了,总不能让用户揣着身份证去找机房,让运维人员帮忙把服务器内置的key改了,然后用户在把电脑上client内置的key同步修改掉,但如果采用协商的方式确认,那么这个协商只能是明文传输的,会被黑客劫持保存并解密接下来的通信,又造成了安全性问题
HTTPS之对称加密、非对称加密、证书认证_第2张图片

非对称加密

  非对称加密可解决客户端向服务端传输数据的加密问题,经过私钥sk加密的数据可由公钥pk解密,而经由公钥pk加密的数据可由私钥sk解密,函数关系类似于

E(pk, data)=dataEncrypted
D(sk, dataEncryted)=data
E(sk, data)=dataEncrypted'
D(pk, dataEncryted')=data

  至此客户端向服务端传输数据的安全性就迎刃而解,客户端首先向服务端获取公钥,而后将数据加密发送给服务端,由于私钥只能服务端持有,黑客即使截取到了数据,也无法解析。然而公钥是有经过传输信道的,那就有可能被黑客劫持获取,因此从服务端发往客户端的经由私钥加密的数据,是可以被黑客劫持并解析的
HTTPS之对称加密、非对称加密、证书认证_第3张图片

非对称加密+对称加密

  结合非对称加密与对称加密的优势,客户端在获取到pk之后,不再继续使用非对称加密的方式进行余下的通信,而是临时生成一个随机的对称加密密钥key,将这个key使用pk加密后并传输到服务端,告知服务端后续使用对称加密的方式进行通讯,由于黑客未持有sk,无法解析出key的内容,所以接下来CS双方的通信内容,对黑客来说都不可见
HTTPS之对称加密、非对称加密、证书认证_第4张图片

混合加密的缺陷

  混合加密的场景下,黑客虽然不能直接获取服务端S的私钥sk并解密CS二者的交互信息,但是他能扮演一个中间人,将自己伪造成C的服务端,S的客户端,通过双重角色扮演,窃取CS二者的通讯信息
  如下图所示,C向S请求公钥的信息被黑客截取,而后黑客返回自己的公钥pk’给C,同时黑客又将自己伪造成客户端访问S并获取S的公钥pk,接下来的流程,黑客就能直接解密CS二者的通信
HTTPS之对称加密、非对称加密、证书认证_第5张图片

证书认证

  未完待续…

你可能感兴趣的:(网络,https,安全,加密解密)