1. 威客安全首页
  2. 安全资讯

如何保证对称加密算法秘钥安全传输?

假定加解密的两端(可以理解为跨网络的两个机器)是可信的,而中间的网络通道是不可信的。
一般后台服务器是如何保证这种场景下的安全传输呢?我能想到的两个方案:
1.      建立ssl连接,秘钥的保密性由tls协议保证,对于传输者来说只不过是把明文的秘钥发出去而已,对端从ssl拿过来的就是秘钥了
2.      两端通过可以直接走non-ssl通道,使用DH算法协商秘钥.
我的理解有误么?是否有其他通用/最佳的方式么?


如何保证对称加密算法秘钥安全传输?
第一句话就出问题了,如何保证跨网段的两个机器是可信的?
如果你说,我在一个与外界没有网络连接的密闭空间,两台机器用一根网线连接,那么这两台机器是可信的。既然是可信的,那么它们之间的通信无论用不用加密,都是安全的,这个说话是对的。这里通信的机器是可信的、网络也是可信的,整个通信过程自然是可信的。
假设这两台机器分别为Alice、Bob,你现在说,我把这两台机器放在局域网里,它们之间的通信也是可信的?
这很难说,你怎么能确保Alice收到的报文,就是Bob发的?如果你又说,它们之间的通信是跑在一根网线上,是不是可信呢?
如果这根网线不能再肉眼完全覆盖的区域,你依然无法保证是否有第三方使用探针注入伪造Bob的虚假报文。
即使在局域网我们都无法保证和我们通信的是不是真正的Bob,在互联网上就更不用说了。
网络安全通信原则:不信任任何没有经过验证的报文,除非验证合法!
手工密钥分发
如果你说,我把一套密钥分别手工copy 到Alice、Bob的机器上,让它们分享一套密钥。换句话说,在这个世界上只有Alice、Bob知晓这套密钥S。
Bob发给Alice的报文全部采用密钥S加密,数据的接收者Alice收到之后用密钥S解密,解密成功了,说明:
报文应该是真正的Bob加密的,因为除了Alice自己,知道密钥S的,只有Bob。
数据的发送者Bob有相似的逻辑:
发送出去加密的数据,只有Alice可以解密,除了Bob自己,剩下只有Alice知晓密钥S,进而解密数据,其他人自然无法获得密文数据。
尽管这种密钥分发方式是安全的,但是扩展性很差,因为是手工分发的。有同学可能会说,我可以使用在线的密钥同步软件,将密钥S分别同步到Alice、Bob上,当然是可以的。
问题来了,如何保证密钥同步软件是安全的?
看来,手工分发密钥的方式是一种落后的生产力,我们自然会想如何让通信双方自动地、安全地分享密钥?
目前主流的做法是引入第三方数字认证系统PKI,或中心化的密钥售票中心KDC。大体概括为:
  • RSA密钥分发算法
  • DH密钥分发算法
  • KDC密钥售票系统
当然,这三个算法都有其特定的应用场景、以及安全性高低的差别。随着越来越多的移动互联设备加入互联网,以及网络安全越来愈严峻,有些算法慢慢被边缘化,而有些算法却渐渐成为垄断算法。
欲知详情,请阅读专业版文章。目前,专业版文章仅供会员阅读。公众号后台发关键字“会员群”,获取加入会员链接。

原文始发于微信公众号(车小胖谈网络):如何保证对称加密算法秘钥安全传输?

本文转为转载文章,本文观点不代表威客安全立场。

发表评论

登录后才能评论

联系我们

15110186328

在线咨询:点击这里给我发消息

邮件:zhanglei@jinlongsec.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code
X