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

加密通信都有哪些?

保密通信的方式是不是都是一样的?
现在的保密通信方式是不是都是采用这种形式,就是用非对称密钥算法对共享密钥进行加密,然后用对称密钥算法对数据进行加密传输?

 

加密通信都有哪些?



这是一个非常好的问题,好到不得不将这个问题最优先回答。从字里行间可以看出题主对通信已经有了一个深入的理解,以至于想有交流探讨的愿望。知乎平台有一点是好的,很多技术提问是真实的、有效的,基于这个事实讨论是有现实意义的!反观一些平台,提问有奖励,转发有抽奖,回答有红包,阅读有现金,完全靠金钱去刺激问题的诞生与阅读,这种问题的回答、阅读其实都是人为地制造问题,所以这种问题的质量是虚假的,讨论也只停留在一个肤浅的层次!
 
TLS/SSH
首先,题主的思考是正确的,但是不全面。以目前常用的加密安全通信TLS、SSH为例,都是采用这种方式。即先使用非对称密钥算法RSA、DHE、ECDHE、ECDSA)分享双方的加密密钥(Key),约定使用什么样的对称加密算法(AES CBC 、AES GCM),随后双方就可以使用约定的加密算法,以协商的加密密钥(Key)为密钥,进行用户数据的加密、解密工作。
 

当然这里还有很多细节,为了校验数据有没有被第三方篡改,还需要HMAC校验,这个校验算法也是需要HMAC Key的,这个Key从哪里来,当然不可能像孙悟空从石头缝里编出来,和加密密钥(Key)类似的方式推导出来的。此外还有初始化向量IV也是相同的方法!
 
PGP
还有一个加密通信很另类,它的名字是PGP。PGP传输加密数据之前无需那么多前戏,直接将数据用随机选取的加密Key加密,问题来了,接收方怎么知道解密Key是什么呢?
 
解密Key就在同一个报文里!
 
明文还是密文呢?
 
当然是密文,否则不被第三方偷窥到了吗?
 
等等,逻辑有点混乱,接收方就是因为不知道解密Key是啥才要知道的,发送方竟然把解密Key加密了,发送方脑袋是不是被驴踢了?
 
没有被踢,好好着呢。使用接收方的公钥来加密‘解密Key’,接收方只要使用自己的私钥就可以解密得到‘解密Key’,然后拿着‘解密Key’就可以解密密文的其它部分了。
 
嗯,这个主意不错!双方的认证基于彼此的信任,省略了第三方的CA,这种去中心化的加密通信,也被比特币拿来借鉴!
 

既然说题主说的不全面,接下来就拿另外一个例子来说明!
 
Kerberos
在Windows域里,域中的成员主机之间的通信,
都需要到域控制器所授权的密钥分发中心去买票(Ticket)。
 
Alice去买票,售票处需要验证Alice是不是域成员,于是使用域控制器的保存着的Alice的密码来认证Alice。认证成功,售票员会问Alice去哪里?Alice说去Bob家,售票处将票卖给Alice,票是使用Bob的密码加密,票根使用Alice的密码加密!
 
Alice拿到票之后,首先要校验票的真伪,Alice是这么想的,如果这个票是真的,票根会使用Alice的密码加密。
 
Alice使用自己的密码解密,解密成功,同时获得票根里的加密Key,这个加密Key稍后与Bob通信使用。然后拿着票去Bob家,敲开Bob的门,出示门票。
 
Bob尝试使用自己的密码解密票,成功解密,也得到票里的加密Key,这个加密Key与Alice手中的加密Key是一摸一样的,于是双方就使用共同的加密Key愉快地聊天。。。
 

为什么要知道这些通信背后发生的故事,那是因为如果发生通信故障,我们可以知道可能是什么原因造成通信的障碍,而要知道可能是什么原因,首先要非常清晰流量是如何流动的,有时抓包软件也不可能告诉你全部,因为很多加密通信都是加密的,无法破解,这就要求同学们要深入地研究原理。
 
冰冻三尺非一日之寒,了解这些原理也不是看哪一本书可以完全学到的,比较现实的做法就是,遇到难以理解的地方,通过抓包去研究流量的走向,对于难以解释的问题去互联网上找相关的文献,一步步地接近真相!

原文始发于微信公众号(车小胖谈网络):加密通信都有哪些?

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

发表评论

登录后才能评论