初识通信安全:对称加密、非对称加密、证书认证

通信劫持

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

通信劫持、伪造

通信加密方法

对称加密

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

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

  可问题在于,client和server之间要如何确定这个key?有如下方法:

  • 方法一、线上协商,client与server之间进行明文通信,确认加密key。很明显,因为协商是明文的,很可能就被黑客劫持并获取到key(见下图)。
  • 方法二、线下确认,server为每个client内置一个对应的key,而后client与server之间的通信就默认使用它们独有的key进行加密。很明显,该方法成本太高,其一,一个server会有众多client与其连接,因此server需内置海量的key,其二,每次增加/修改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双方的通信内容,对黑客来说都不可见。
混合加密方式

证书认证

  中间人问题:使用混合加密的方法,黑客虽然不能直接获取服务端S的私钥sk并解密CS二者的交互信息,但是他能扮演一个中间人,将自己伪造成C的服务端,S的客户端,通过双重角色扮演,窃取CS二者的通讯信息。如下图所示,C向S请求公钥的信息被黑客截取,而后黑客返回自己的公钥pk’给C,同时黑客又将自己伪造成客户端访问S并获取S的公钥pk,接下来的流程,黑客就能直接解密CS二者的通信。
中间人问题
  为解决中间人问题,我们需要引入一个权威机构CA,CA有自己的公钥cpk、私钥csk,server将自己的公钥pk给CA通过csk加密,得到相应的数字证书license,client的操作系统则在出厂过程中就内置了CA的公钥cpk,后续双方通信过程中,server不再直接将自己的pk传送给client,而是传送license,client通过解密license获取相应pk,再进行后续的混合加密通信流程。
证书认证
  我们再来看看,数字证书是如何解决中间人问题的。当黑客截取了获取license的信息,将server端证书替换为自己的证书返回给client端时,client使用cpk解析发现证书不是CA签发的,是非安全的,因此便会提醒或阻拦此次通信。
数字证书解决中间人问题

参考资料

【web安全3】【硬核】HTTPS原理全解析

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值