基于端到端加密的多人聊天室系统的实现文献综述
2020-04-14 14:51:20
研究目的及意义
在如今这个信息化的时代,计算机和网络技术飞速发展使得人们的生活有了巨大的变化。其中,即时通讯工具的快速发展更是在很大程度上改变了我们生活的方式。从模拟电话到数字电话,再到如今基于互联网的各类IM软件,人与人之间的联系变得更加便捷与多样化。从国家、军事的角度上来说,即时通讯系统的战略意义也十分重大。
但与此同时,即时通讯的安全问题也逐渐变得更加严峻。由于人们对各类通讯软件的依赖性越来越强,通讯软件中所承载的信息的价值也越来越大。在这样的背景下,各类针对通讯软件的攻击也层出不穷,各种因网络攻击导致的隐私泄露也时有发生。而在国防领域,即时通讯系统的安全性更为重要,如果机密信息被破译或者篡改,更是会威胁到国家的安危。因此,即时通讯工具的安全性在如今变得尤为重要,为了保证通讯数据的安全性,数据加密技术是其中一项重要的核心技术。
所谓数据加密技术是指将一个信息(或称明文)经过加密钥匙及加密函数转换,变成无意义的密文,而接收方则将此密文经过解密函数、解密钥匙还原成明文。数据加密技术是网络安全技术的基石,也是目前的一个重要的研究方向。
传统的安全措施主要保护的是数据的传输过程中的安全性,如目前常用的传输层安全协议[[10](Transport Layer Security,TLS),通过对各类数据加密技术的综合运用,可以很好地保证数据在客户端和服务端的传输过程中不会被监听和篡改。但这样的安全措施有一定的局限性,如果攻击者入侵了服务端,或者通过一定的方法伪装成合法用户登陆系统,一样可以很轻松地获取到用户的数据。
而端到端的加密技术[6][7]则解决了传统安全措施的弊端。同样是通过对各类数据加密技术的综合运用,使得用户的数据在客户端被加密后,并不能在服务端进行数据的解密,只能在另一个客户端通过一定的方法进行读取。这样的设计使得服务端只需承担数据的分发工作,而不需要担心因服务端被攻击而导致的数据泄露。同时也保证了传输层的安全性,即使不采用 TLS 等传输层加密技术也不会使整个系统的安全性有太大的损失,对服务端的要求也相应地降低了很多。另一方面,由于端到端加密技术的特性,只要攻击者没有完全入侵用户的客户端,即使攻击者伪装成用户登陆到系统,或者攻击者入侵了系统的服务器,也一样无法获取到有价值的数据。
国内外研究现状
目前国内市场上,最流行的即时通讯工具是腾讯公司研发的 QQ 和微信,这两款工具的共同特点是:虽然其在客户端与服务端的数据传输过程中采用了一定的加密措施,但所有数据在服务器仍然可见。
而在国际市场上,主流的即时通讯工具如 WhatsApp、Facebook Messenger 等都在传输加密的基础上提供了基于 Signal 协议的端到端加密的选项[5],可以在一对一聊天中开启以提高安全性。而对于群聊消息,则大多采用基于 Signal 协议的 Sender Keys 变种协议[1][5]来进行通信。这一协议的安全性相对原始的 Signal 协议有所下降,但好处是当初始化完成后,只需向服务器发送一份消息即可。
Apple 公司的 iMessage 则将其一对一聊天的端到端加密机制复用到群聊中,对每一位参与者的每一台设备进行单独的加密过程。这一方式所需的计算和带宽资源会随群聊规模的扩大而线性地增长。
另外在近两年里,来自牛津大学和 Facebook 的 Cohn-Gordon 等人提出了一种被称为异步棘轮树(Asynchronous Ratcheting Tree,ART)的群组密钥交换协议[1],这一协议拥有上面两种协议的优点,足够安全[12],并且只需向服务器发送一份消息。在这一协议的基础上,互联网工程任务组(Internet Engineering Task Force,IETF)也正在设计被称为消息传递层安全(Messaging Layer Security,MLS)的协议,用于两人及以上的群组聊天。
{title}
2. 研究的基本内容与方案
{title}本文将综合参考[5]来自 Open Whisper System 的 Signal 协议[4]、来自 Telegram 的 MTProto 协议[2][3]、来自牛津大学和 Facebook 的 Asynchronous Ratcheting Tree 密钥交换协议[1],以及来自 Apple 公司的 iMessage 加密机制,设计并实现一套基于端到端加密的安全多人聊天系统[6][7]。