文摘
近年来,它已经关注,政府一直在做的质量监视个人通信没有公民的同意。由于这些启示,开发人员开始发布新的端到端加密的会话协议,延长,使流行的旧的非正式协议。这样的新实现端到端加密的消息传递协议出现,和一些流行的聊天应用程序已经更新为使用这样的协议。在这个调查中,我们比较六现有应用程序的端到端加密即时消息,即信号,WhatsApp,电线,推出,防暴,电报,其中大部分是实现一个最近的和受欢迎的协议称为信号。我们进行五种实验每六个应用程序使用相同的硬件设置。在这些实验中,我们测试21安全性和可用性属性特别相关的应用程序(而不是协议)。我们的实验结果表明,不同的应用程序的可用性和安全属性提供,并没有一个是完美的。结果,我们做12建议改进的安全、隐私,或可用性,适合一个或更多的测试应用程序。
1。介绍
使用移动应用程序通信的趋势增长,成为一个标准的人与人之间的沟通方法。新的消息传递应用程序开始出现并试图取代传统的短信,但建筑他们记住安全和隐私对开发人员在一开始并不重要。近年来流行的通讯工具使用不支持端到端加密,只有标准客户机到服务器的加密,使服务提供者获得更多不必要的私人信息。当爱德华·斯诺登发表关于国家安全局的秘密文件(https://en.wikipedia.org/wiki/Edward_Snowden Global_surveillance_disclosures和两个电影关于这个主题如下:奥利弗·斯通https://en.wikipedia.org/wiki/Snowden_(电影)和劳拉Poitras”https://en.wikipedia.org/wiki/Citizenfour),人们终于明白质量监测是一个问题,和安全的移动变得更加重要和流行的使者。(免责声明:所有的测试报告是在2017年的夏天,由于应用程序在这个领域非常动态;的一些具体实施建议和观察,我们可能已经被开发人员。然而,这项工作还应提供指导新用户如何检查所需的功能是由一个特定的应用程序实现,更因此,如果应用程序在六个调查。更多细节可以找到本文的技术报告(1)和论文的第二作者(2]。)
人们更容易理解的隐私影响质量监控(3]。爱德华·斯诺登世界各地引发了一场激烈的辩论关于个人隐私受到质量监测,多个国家几十年来一直在做(https://en.wikipedia.org/wiki/List_of_government_mass_surveillance_projects)。不需要看起来比2017年第一季度,当维基解密(https://wikileaks.org/)泄密文件从美国中央情报局(CIA)。维基解密泄露,代号为“库7”是有史以来最大的机密文件的出版机构(拱顶7“维基解密公布:有史以来最大的公开中情局的机密文件;另一个斯诺登的出现,“由Zerohedge泰勒歌顿,2017年3月,可用https://www.zerohedge.com/news/2017-03-07/wikileaks-hold-press-conference-vault-7-release-8am-eastern)。泄露的文档信息如何获得手机或个人电脑用户不知情的情况下和美国中央情报局如何质量监测。
几家公司开始实施安全通讯协议和应用程序计数器的质量监测和提供一个端到端的加密的消息传递系统,不泄露任何信息用户的消息内容。然而,新应用程序的问题是他们收养。一段时间后,公司如Google, Facebook,和开放的耳语系统联手实现协议中已经广泛采用应用程序如WhatsApp,每月有超过十亿活跃用户(统计信息门户:“每月活跃WhatsApp全球用户数量从2013年4月到2017年12月(百万)”https://www.statista.com/statistics/260819/number-of-monthly-active-whatsapp-users/)。
即时消息客户没有提供异步通信变得无趣的,因为智能手机的兴起和应用程序并不总是在线。最成熟可靠的消息传递协议,非正式的,不支持异步消息传递,积极开发新的协议与内置的异步通信。最著名的是信号应用协议也被称为信号。一段时间后,开发人员和研究人员之间的新协议变得很受欢迎(4- - - - - -8]。随后,信号协议开始执行在其他应用程序中,都只支持客户机到服务器的加密。
相当多的新安全消息传递应用程序存在(在2017年,我们计算6个,我们调查在这个工作),提供端到端加密的消息在手机和电脑对话,但这些往往牺牲可用性方面的安全。根据上面的动机可能会优先考虑隐私和安全,但为了吸引大多数普通用户,可以两全其美。应用程序应该提供足够的信息让用户知道何时或是否交谈不再安全,选择安全再一次。此外,安全控制应该足够直观和可用性是由大多数人来说,不仅对技术倾斜的。
1.1。本研究的目标
端到端加密的面积在即时消息应用程序最近已经相当宽泛。用户发现很难消化的信息来源,和更少的时候比较综合的研究。因此,我们的首要目标如下:G1:提供理解和比较研究的相关方法的端到端加密的消息传递应用程序。详细分析提供的安全和隐私属性安全消息传递协议并不容易,而且很少有这样的研究(我们建立)。端到端加密的消息传递技术应该都可用,所以允许广泛采用,但也有相当强大的安全需求。这两个,即。,usability and security, are usually conflicting, and a good balance is difficult to find. This leads to our second goal.G2:概述目前提供的安全和隐私性质的端到端消息传递技术和现有的应用程序在多大程度上实现这些特性。信号的应用程序(和协议)是目前最常用的端到端消息传递技术用于智能手机和台式电脑。此外,信号协议是采用先进的加密和密钥建立技术。G3:描述为非专家信号协议背后的安全机制。
几乎没有研究领域的可用性和安全可靠的消息传递应用程序。施罗德et al。9)是第一个看的端到端加密的使者的可用性问题,做用户研究的可用性信号的安全特性,并提出修复他们发现的问题与用户未能发现和防止中间人攻击。在本文中,我们看看相同类型的潜在攻击(9),但我们也看看应用程序接口和各种用户使用这些应用程序的交互。此外,我们延长到5比信号应用程序(也就是说,我们还看WhatsApp,电线,推出,防暴,和电报),检查一些新的应用程序的可用性属性(列于表1从部分4)下的所有六个应用程序测试。我们补充修复提出了912更建议改进和节5,适用于一个或多个测试应用程序。
昂格尔et al。4]做了一个全面研究安全的消息传递协议,查看安全信任建立的相关属性,谈话安全,隐私和运输。因为本文的观众可能包括也没有技术或安全技能,我们在这里做一个访问的总结的结果(4)的协议是我们研究实现的应用程序。为了使本文独立,更容易理解,我们还提供一个概括地说描述的三个主要的端到端加密的消息传递协议,即。、工程、信号和矩阵。
1.2。主要贡献
(我)我们综合分析应用程序的实现安全的消息,通过执行五个测试场景来研究他们的基本安全和可用性属性。我们还提供改进的建议。(2)我们提供一个(更新)的概述谈话安全安全的消息传递协议,后(4]。随后,我们描述的内部安全运作两个主要协议的最新版本(OTR和信号),努力使这些可以理解为大众的。剩下的纸是组织如下。部分2提出了制度知识三个安全的端到端加密的消息传递协议,讨论他们的安全属性。部分3介绍了研究测试6个手机应用程序,支持之前提供的可靠的消息传递协议或自己的变异不开源应用程序。部分4总结的结果统一和比较的方式测试场景。部分5讨论了应用程序作为一个整体也为改进提供建议。最后,部分6总结了纸。
2。背景安全的消息传递协议
本节提供可靠的消息传递协议的背景,分析了本文实现的应用程序。首先,我们现在的攻击者模型,我们考虑和假设用户应用程序,然后我们审查基本性质相关的端到端加密的消息。
本节建立在全面调查4),以及其他各种资源对这些协议。大部分的资源这两个新协议的信号和矩阵在网上,因为这些协议没有走出学术界。然而,两者都是建立在良好的基础铺设的工程协议,已在学术界深入研究[10- - - - - -16),并辅以重要的在线资源。
我们把非正式的更详细的信息和信号协议附录。附录部分一个非正式(OTR)基线调查的两个协议,信号(在附录部分调查B)和矩阵,这实际上是新协议实施(或复制)由当前流行的安全消息传递应用程序。
2.1。相关的威胁模型
我们假设以下的敌人:(我)活跃的对手:中间人攻击是可能在本地和全球网络应用程序和服务器之间通过添加代理处理的消息。这些是Dolev-Yao模型(通常的假设下17]。(2)被动的敌人:这些对手日志发送到的一切从用户和可能利用这些信息来跟踪用户和谁说话。被动的敌人也可以记录信息,如消息和钥匙,即使消息加密的内容。(3)服务提供者:消息传递系统,需要集中基础设施(如信号和矩阵)需要保证用户的信息安全。服务运营商随时可能成为一个潜在的对手。
我们假设的端点消息传递应用程序,例如,一个应用程序在一个智能手机,是安全的,设备没有恶意软件,可以利用消息传递应用程序。
2.2。安全原则相关的端到端加密的消息
不同的安全消息传递协议捕获在不同程度和不同的安全原则是重要的在比较规范的应用程序实现。最安全和隐私的特性我们检查也发现在4]。端到端加密:加密通信协议(如传输层安全性(TLS) [18)设计一个客户端和服务器之间的安全通信。消息传递应用程序,允许双方互相交流通过服务器可以使用TLS安全通信与网络攻击者。消息发送到服务器解密的服务器,这意味着它可以读取、存储,或编辑消息再加密,并将其发送给其他用户。通常服务器不能信任,因为他们可以被敌人砍,或者联系执法部门给客户端通过服务器发送的信息(19]。端到端加密保证端点是否加密,服务器只传播的消息没有网络攻击者还是一个损坏的服务器能够看到的内容。保密:机密性保证必要的保密级别执行在每个连接的数据处理,防止未经授权的披露(20.]。保密的同时,可以通过加密数据提供存储和传播。在加密协议,保密是必要的,以确保钥匙和其他数据只在需要时才可用(21]。攻击者试图打破保密文件通过窃取密码,加密方案,等用户,另一方面,可以有意或无意披露敏感信息之前不加密发送给另一个人,或者成为社会工程攻击(20.]。诚信:诚信确保没有人在整个传播修改信息。硬件、软件和通信机制必须协同工作维护,过程,和数据移动到目的地,没有意想不到的变化。系统实施和提供这种安全属性确保攻击者,或由用户错误,不妥协的完整性系统或数据(20.]。这可以通过使用哈希函数结合加密,或者通过使用一个消息身份验证代码(MAC)来创建一个单独的检查。数据完整性是一种诚信,是至关重要的对于大多数加密协议来保护元素如身份字段或目前(21]。验证:验证是为了确定当事人的谈话。消息身份验证也被称为数据源认证和保护消息的发送方的完整性(22- - - - - -27]。消息身份验证代码可以提供对消息的来源和完整性保证。消息身份验证代码计算通过使用消息和两党之间的共享密钥(28]。如果敌人改变消息,然后计算MAC会有所不同,而且,敌人无法产生有效的MAC因为只有发送方和接收方共享密钥。完美向前保密:密钥建立协议提供向前保密如果妥协的长期密钥的一组原则不妥协在以前建立的会话密钥协议运行涉及的主体(29日- - - - - -31日]。保密协议提供向前的典型例子是关键协议协议的长期关键是只用于验证。密钥传输协议的长期密钥用于加密的会话密钥不能提供向前保密(21,32]。保密:未来保密,因为这是由开放耳语系统调用(33)(有时也称为向后保密),保证长期密钥的妥协是不允许随后暗文由被动的敌人(解密4]。保密协议支持未来时可以提供的“自愈”方面diffie - hellman棘轮,描述在附录部分,因为如果任何短暂的关键是受损或在任何时候发现弱,棘轮会自愈,计算未来新的短暂的键在交谈中发送的消息(33]。推诿,推诿是一个属性常见的新安全的消息传递协议,它是不可能让别人证明数据发送的一些特别的对话。如果Bob从爱丽丝收到一个消息,他可以肯定这是爱丽丝,但不能向其他人证明。通常提供推诿,可靠的消息传递协议有一个机制,允许任何人伪造信息,对话后,让他们看起来像来自别人的谈话。推诿在交谈中还包括真实性,这样参与者相信他们看到的消息是真实的,不被任何人(34]。推诿可分为三个不同的部分:(1)信息不可链接性:如果法官确信参与者编写一个信息对话,它不提供证据表明他们创建的其他消息。(2)消息否定:给定一个对话记录和所有的密钥,没有证据表明是由任何特定用户给定的消息。我们假设原告有权访问会话密钥,而不是其他参与者的长期密钥。(3)参与否定:给定一个谈话记录和所有密钥材料但指责(诚实)参与者,没有证据表明诚实的参与者在与任何其他参与者的对话。同步性:有两种类型的通信、同步和异步。同步协议要求所有参与者在线接收或发送消息。传统的同步通信聊天应用程序。另外,异步消息传递意味着参与者不需要在线接收消息,比如SMS短信或电子邮件,因为有一个第三方,像一个服务器,保存信息到收件人再上网。现代聊天协议不使用同步协议,通常是因为社会或技术的限制,如设备电池、有限的接待,或其他社会事件不允许人们总是在线接收消息。这就是为什么大多数的即时消息(IM)解决方案提供异步环境通过第三方服务器存储消息,直到其他参与者上网接收它。组属性:聊天组对话很受欢迎现在,例如,使用Facebook Messenger (https://www.messenger.com)、松弛(https://slack.com)或其他受欢迎的消息传递应用程序(https://www.engadget.com/2016/09/30/12-most-used-messaging-apps/)。安全属性的群聊天记录包括以下:(1)计算平等:参与者是否共享平等交谈时计算负载。(2)信任平等:没有单一的参与者有更多的信任和责任,在组内,比任何其他。(3)子群消息传递:参与者只能将消息发送到一个小组没有产生一个新的对话。(4)缩小会员:不需要重新启动安全协议成员离开时的谈话。(5)可扩展的成员:没有需要重新启动安全协议后,添加一个新的成员已经生成。重要的是能够改变密钥当一个新用户加入安全组对话,此后新用户不能够解密以前交换消息。新的加密密钥交换也应该当用户离开了对话。改变键可以很容易地通过重启协议,但这通常是计算昂贵。协议提供缩小和可扩展的会员通常没有重启协议实现这些特性。其他安全属性:一个协议或应用程序的端到端安全我可能实现任何(如果不是全部的话)如下:(1)参与者一致性:在任何时候消息时接受一个诚实,诚实的各方参与者的保证有相同的视图列表。(2)目的地验证:当一个消息接受一个诚实的,他们可以确认包含在消息的预期的收件人。(3)提供匿名保护:任何匿名特性由底层传输隐私架构(如Tor (https://www.torproject.org/)网络(35,36)不破坏(例如,如果传输系统提供匿名隐私,谈话安全级别不deanonymize用户通过连接键标识)。(4)演讲者一致性:所有参与者同意每个参与者发送的消息的顺序。协议可能会执行一致性检查的消息协议,期间或之后每一个消息发送。(5)因果关系维护:实现可以避免之前显示一条消息会先于它的消息。(6)全球记录:所有的参与者都在相同的顺序看到所有消息。当这个安全特性是有保证的,这意味着演讲者一致性和因果关系维护都是保证。
2.3。可用性和原则采用端到端加密即时消息
时需要考虑各个方面关注可用性和采用安全的即时通讯应用程序:(1)无序的韧性:如果消息是在运输途中延迟但最终到来时,其内容可到达。(2)了消息弹性:消息可以解密不收到所有以前的消息。这是可取的异步和不可靠的网络服务。(3)异步:可以将消息发送安全设备,而这些设备是无法连接到互联网时发送。(4)正如支持:用户可以连接到谈话从多个设备同时具有相同的视图的对话。(5)没有额外的服务:协议不需要任何基础设施以外的其他协议的参与者。具体来说,传送消息的协议必须不需要额外的服务器或存储任何类型的关键材料。
2.4。概述用于端到端加密即时通讯的协议
根据(4),如表所示2,没有一个可靠的消息传递协议如非正式、信号,矩阵每安全协议可以给用户属性(更多信息表中使用的属性的定义2,请参考[4])。在本节中,我们简要评论这些,还包括完整性矩阵(矩阵协议有几个我实现https://matrix.org)作为主要协议。
而非正式的协议不需要任何额外的服务或服务器,它不能提供群体会话(在当前版本和实现)。有研究调查小组对话的OTR [14- - - - - -16),但他们没有收到足够的注意力从开发人员主要是因为这些不支持异步聊天对话。当信号通过扩展支持桌面,它不支持本地桌面应用程序。此外,它只允许使用一个设备;也就是说,多个手机不能被添加到一个用户的帐户。这可以通过使用相同的功能组对话,但效率可能是一个问题。
矩阵协议和应用程序(参见2.4。3)支持多个设备的详细信息,在不影响效率的对话。然而,它并不能实现完全的向前和向后的保密协议,但是实现。信号协议已经由两个审计的研究小组在2017年(6,7),因为它是开源的,社区可以改善它。矩阵协议也被审计(37]。这意味着研究人员认真对待这些协议,要加强他们的可信度。
2.4.1。非公开的
工程使用encrypt-then-MAC方法来保护消息(详情请参阅附录部分)提供机密性、完整性和身份验证。σ协议(验证diffie - hellman密钥交换的变体)确保参与一致性的密钥交换(38]。向前保密保障的事实消息键经常在交谈中新的关键材料所取代。向后保密保障的事实消息键被新DH值计算由发送方与每个发送广告信息。匿名保护是保证,长期公钥从未被观测到,在密钥交换和在谈话。因果关系保存只是部分实现,作为其因果信息隐式引用前人根据他们使用的按键(4]。议长一致性是只有部分实现因为敌人不能下降的消息也没有放弃所有未来的消息,否则收件人将无法解密后续消息(4]。演讲者一致性的后果是,收件人需要节省无序的信息,因为如果他们不来,与一个意想不到的消息将被加密的密钥,同时扩大妥协的窗口,和工程最终将只是部分提供保密。无序和下跌的消息只是部分提供,因为如果无序或删除消息在传输期间,协议可以解密密钥存储,直到参与者收到这一信息。解密密钥存储的问题是,它提出了在客户端成功攻击的可能性。
OTR与共享的MAC协议的迹象消息键,而不是长期的键。加强消息不可链接和消息否定功能,工程用可塑的加密和MAC键后发表每个消息交换(10]。OTR只有短暂的键迹象,并不是每一个参数在密钥交换,它只提供了部分参与否定自签署的谈话伙伴可以使用临时密钥伪造成绩单。OTR协议是用于即时消息,因此不提供异步消息传递。然而,同步的唯一要求不允许OTR依赖于附加服务两个参与者之间建立一个连接。
2.4.2。信号
信号的设计协议扩展工程,因此保持相同的安全特性,虽然在某些情况下添加更强或新特性。向前保密是由于使用你提供的KDF棘轮,而向后保密提供因为即使KDF键组成,他们很快就被新的钥匙。X3DH握手(附录部分B.3)提供相同级别的身份验证从OTRσ,但X3DH达到全面参与否定双方之间由于任何人都可以伪造成绩单(4]。然而,信号无法提供匿名保护因为X3DH长期使用公钥协议在最初的关键。prekeys用于提供异步消息传递系统通过发送一组prekeys中央服务器,然后发送方可以请求下一个prekey接收机的计算加密密钥。通过使用一个中央服务器保持prekeys,信号协议失去了没有额外的服务属性。无序,把一对一的对话完全支持异步的消息prekeys的使用。
组对话的实现是通过使用多播加密,当发送一个加密消息的集团,这是发送到服务器,然后传递到其他参与者而解密密钥发送作为一个独立的消息组的每个成员的谈话。群体会话提供了异步消息传递,议长一致性,和因果关系保存,通过附加消息标识符的消息之前,新消息(4),但它不能保证参与者的一致性。正如部分提供的,在这个意义上,只有一个额外的电脑可以加入在谈话中使用信号桌面应用程序(https://whispersystems.org/blog/signal-desktop/),这只是一个Chrome扩展(https://en.wikipedia.org/wiki/Browser_extension),而不是一个自己的应用程序。
协议提供的信号计算和信任平等、子群消息,缩小和可扩展的成员属性。通过两两组信息和多播加密,信号有能力推动组管理客户端应用程序,这使得用户更容易改变组织,扩大它,或缩小它的大小,而无需重新启动整个群体会话和协议。当用户想要发送一组消息,他们将消息发送给每一个用户参与,将一个参数添加到标题标记,它是为特定的群组聊天。信号服务器不知道组对话,因为使用正常的公钥加密的消息。两两组消息也使得新密钥和信任的计算计算要求平等,就好像只有一个一对一的谈话。
2.4.3。矩阵
矩阵协议由两个不同的算法,洞螈(https://matrix.org/docs/spec/olm.html一对一的谈话和Megolm) (https://matrix.org/docs/spec/megolm.html)集团多种设备之间的对话。洞螈算法是基于信号的协议,这意味着他们实现相同的安全属性的信号,而Megolm算法是一种新的AES-based加密棘轮为集团开发的对话。多个设备可能与矩阵因为Megolm每发送装置,实现了一个独立的棘轮参与群体会话(Matrix.org推出跨平台βNCC的端到端加密后安全评估小组https://pr.blonde20.com/matrix-e2e/)。协议不重启当棘轮被替换为一个新的,它提供了计算和信任平等、子群消息,缩小和可扩展的成员属性。
NCC集团审计两种算法(37),发现Megolm有一些安全缺陷对未来前进,保密。如果攻击者能够妥协的关键Megolm会话,那么它就可以解密任何未来的消息发送到一组参与者在谈话。的矩阵SDK应用程序中使用已经实现了矩阵防暴等协议(https://about.riot.im/);确保Megolm键得到一定数量的消息后刷新。向前保密只是部分提供自Megolm维护棘轮的记录值可以解密任何会话中发送的消息的对应点的谈话。矩阵开发人员表示,这是故意设计的39),但还表示,由应用程序提供用户选择丢弃旧的谈话。
3所示。分析应用程序实现安全的消息
本部分调查应用程序(主要是智能手机应用程序),广告之间的安全通讯对话能力一对一或多对多的用户。我们研究一套可用性属性相关的安全信息。这与之前的作品(4),看着底层的协议,我们正在评估的一些应用程序。在这里,我们介绍和测试属性超过(9特定的应用程序。
3.1。测试场景
我们首先解释在这一节中我们进行的测试场景和安全性和可用性属性我们正在寻找。测试场景为每个应用程序都是一样的,和截图在测试阶段收集足够的信息以便以后分析。在每一个测试场景中,我们将研究一组属性对于每个6应用程序的安全性和可用性。这里所描述的测试结果21属性将总结部分4和表1。
3.1.1。初始设置
这个测试场景包括两个阶段:“设置和登记”和“初步接触。“第一阶段是第一个过程后用户需要通过安装一个应用程序。在这里,我们测试应用程序如何处理注册过程,用户需要做什么来注册一个新的账户,以及是否有多种方法来注册。感兴趣的属性如下:(我)手机注册:用户可以注册一个帐号和一个电话号码。(2)电子邮件注册:用户可以注册一个帐户的电子邮件地址。(3)通过短信验证:通过短信接收验证码。(iv)通过电话验证:通过电话接收验证码。(v)访问短信收件箱:应用程序需要访问短信收件箱自动读取验证码。(vi)联系人列表上传:应用程序需要向服务器上传联系人为了看看其他人是否使用相同的应用程序。
第二阶段检查应用程序如何处理第一个消息发送从一个到另一个参与者,参与者是否安全的通知消息传递功能或应用程序是否显示了如何使用加密密钥。属性如下:(我)Trust-on-first-use:自动启动上相互验证。(2)通知E2E加密:app礼物通知向用户解释消息加密。
3.1.2。消息后,一个关键的变化
这个场景中测试应用程序如何处理修改后的密钥鲍勃删除应用程序中与爱丽丝谈话。鲍勃已经重新安装应用程序之后,爱丽丝给他一个新的消息和检查应用程序是否给了爱丽丝的信息变化的关键。当用户删除一个安全的消息传递应用程序,通常从设备中删除的加密密钥(加强安全的参与者已经发送消息。当参与者然后重新安装应用程序时,生成一个新的组密钥。感兴趣的属性如下:(我)关于关键变化通知:通知爱丽丝,鲍勃已经改变了加密密钥。(2)阻碍信息:阻止新消息发送到Alice和Bob互相验证。
3.1.3。关键变化信息是在运输途中
密钥的变化在运输途中一个消息时类似于之前的测试场景;然而,我们感兴趣的是当一个消息丢失在生成新密钥。鲍勃删除他的申请没有告诉爱丽丝;然后她鲍勃发送一条消息,但消息在传输过程中丢失。感兴趣的属性如下:(我)对和发送消息:应用程序对该消息并发送一遍后,接收机产生了新的密钥或消息永远失去了吗?(2)详细信息的传播信息:用户可以看到发送和传递消息的区别。
3.1.4。验证过程参与者之间
在谈话中,爱丽丝和鲍勃想相互验证来确保他们正在谈话诚实的参与者。这个测试场景看着验证过程是如何工作的,如果它是一个安全的和可用的方法:(我)二维码:通过二维码验证对方。(2)通过电话验证:互相调用E2E-encrypted电话,大声的读出密钥。(3)通过第三方分享键:通过其他应用程序共享密钥。(iv)检查验证:用户可以检查后如果一个特定的用户已经证实。
3.1.5。其他安全实现
每个应用程序可能有额外的安全性和隐私保护功能为了保护从各种入侵或攻击。(我)密码/密码:密码/代码的可能性,只有用户知道并进入访问应用程序。(2)两步验证:当注册后重新安装或新设备,那么第二个密码/代码是必需的,只有特定的用户知道。(3)屏幕安全:用户不允许应用程序中截图。(iv)明确的信任的联系人:所有验证联系人可以清除,这意味着用户需要再次验证每个联系人吗?(v)从账户删除设备:如果应用程序允许多个设备,有一个选项来删除设备不再使用了。
3.2。运行不同的测试用例
对于我们的测试,我们使用两个独立的智能手机如表所示3。手机都有他们的个人电话号码;索尼手机Nexus手机叫鲍勃的联系信息,而索尼的Nexus手机有联系方式电话叫爱丽丝。背后的原因时快速找到彼此联系方式在测试展开对话。
在测试阶段使用的应用程序被锁定到一个版本号和没有得到更新,以保证测试一致。测试设备已经安装了相同的应用程序相同的版本号。
3.2.1之上。案例1:信号
信号是一个即时消息应用程序以及声音调用应用程序,Android和iOS。什么使信号应用有别于其他应用程序,除了暴动,这一事实是完全开源的。这让人们它的开发者声称,因为任何人都可以审计的源代码以及采用加密协议。
(1)初始设置。可以注册一个账户一个设备,这意味着另一个设备上使用相同的数字会自动关闭第一个设备,加强安全和保持私人密钥仅在一台设备上。图1(一)显示第一个视图用户看到当第一次打开应用程序。为什么Twilio用于处理短信验证过程与信号服务器当注册一个帐户。联系信息传输到服务器而不是存储。
(一)
(b)
图1 (b)解释了不同步骤的信号应用经过注册并验证一个新的用户帐户。发送验证码的短信,并自动应用程序读取短信验证新用户。验证后,应用程序生成新设备的密钥。最后,应用程序服务器注册账户内的信号。如果用户不给应用程序访问他们的短信收件箱,然后它必须等待短信验证计时器超时,图的底部所示1 (b)后,应用程序调用用户的信号,给出了验证数量手动输入。
(2)消息在一个关键的变化。这个测试场景分析密钥时会发生什么变化,例如,当用户在谈话中删除,然后重新安装应用。数字信号2(一个)显示了爱丽丝的前两个消息发送给鲍勃。双标记显示在每个消息表明它已经收到并阅读了鲍勃。锁表明消息加密从一端到另一端,中间,没有人可以阅读它。图2 (b)显示了鲍勃当爱丽丝发送另一个消息他删除,重新安装后信号应用。应用程序通知Alice的消息尚未交付一个红色图标左边的通知。它也给信息,按消息,用户可以得到更详细的通知。
(一)
(b)
(c)
(d)
图2 (c)按下时显示了视图用户看到消息,没有交付。爱丽丝和鲍勃有一个新的信息安全提出了数量(密钥),和她需要验证新键能够发送任何新的消息鲍勃。Alice和Bob之间的验证过程完成后,他们可以继续交谈,并张贴通知Bob的谈话改变了他的安全号码,如图2 (d)。
(3)运输的关键改变一个消息时。这个测试场景大多是与前一个相同,差异,我们要检查信号应用做发送消息时鲍勃已经重新安装信号应用程序之前,即。,处理消息在传输过程中丢失。
图3(一个)显示了初始化的对话。图3 (b)显示了两个消息之后的谈话爱丽丝和鲍勃。第二个消息发送后鲍勃已经删除他的申请,和只有一个复选框,消息,这意味着消息被发送,但没有收到。图标在第三消息表明,鲍勃终于重新安装,但是他从来没有收到第二个消息被发送后重新安装。Alice和Bob验证他们的新安全号码后,所有新收到消息和加密的双方,但没有收到第二个消息。原因没有收到第二个消息,如图3 (b)是因为信号应用从未存储加密的消息发送到服务器后,和消息从未对爱丽丝当鲍勃已经改变了他的加密密钥。
(一)
(b)
(c)
(d)
(4)验证流程参与者之间。对用户信号支持三种不同的方法来验证。第一个验证过程使用内置的要求选择信号的端到端加密,然后大声朗读,其他参与者的安全号码图所示3 (c)。如果信号调用不够视为安全,用户可以在人与显示的数字。
第二种方法,如图3 (c),其他参与者使用内置的二维码扫描仪扫描二维码验证它是同一个人在聊天。第三个选项来验证所使用的其他用户是当用户不相信信号应用程序来处理验证过程。可以共享安全号码,其他应用程序在用户的手机。用户可能PGP (https://en.wikipedia.org/wiki/Pretty_Good_Privacy)[40,41启用电子邮件在他们的电话,他们相信它比信号应用程序;然后,该方法是一种更好的方法验证其他用户。
(5)其他安全的实现。信号应用程序有额外的隐私设置。第一个是“数字安全认可”,如图4(一)。设置默认情况下被激活,这是很重要的。当用户改变了安全数字(密钥)删除并重新安装应用程序,设备密钥也将改变。设备键改变时,信息将不会显示接收新设备,直到新的安全数字是批准。第二个隐私设置是“屏幕安全”,不允许用户只要截图内信号应用程序。
(一)
(b)
最后一个隐私设置启用密码的能力。密码锁定信号应用程序和所有消息通知。可以添加一个不活动超时密码锁定应用程序在给定的时间。图4 (b)显示通知锁定,当用户试图打开应用程序,她需要输入密码设置时他们选择激活。
3.2.2。案例2:WhatsApp
WhatsApp开始作为一个小公司,2009年收购Facebook在2014年有4.65亿个月度活跃用户,而在2017年这一数字已经增长到15亿(数据门户:“每月活跃WhatsApp全球用户数量从2013年4月到2017年12月(百万)”https://www.statista.com/statistics/260819/number-of-monthly-active-whatsapp-users/)。WhatsApp最初只是一个跨平台的不安全的即时消息,但到2014年底,他们宣布每个用户开始使用信号发送端到端加密消息协议(“开放与WhatsApp耳语系统合作伙伴,提供端到端加密,“勇气宣布铁笔从开放耳语系统于2014年11月18日,https://whispersystems.org/blog/whatsapp/)。这是一个重要的一步以来信号协议和开放耳语系统现在最受欢迎的即时通讯应用程序将使用自己的协议。2016年4月,一个完整的转换是由不安全的信息全面的端到端加密(“WhatsApp信号协议集成已经完成”,宣布的勇气铁笔从开放耳语系统2016年4月05https://whispersystems.org/blog/whatsapp-complete/)。
(1)初始设置。建立一个账户WhatsApp完成信号应用程序一样,那里的账号只能在一台设备上。图5(一个)显示了用户看到第一页时,首次启动应用程序。WhatsApp使用其自己的基础设施来处理短信验证过程,而不是第三方。图5 (b)展示了验证页面后,用户进入了她的电话号码。WhatsApp自动输入验证码发送到用户的手机短信收件箱,但是如果用户并没有考虑到应用程序访问的收件箱,她可以手动输入验证码。如果由于某种原因验证码不到来,用户选择重新发送短信或者问WhatsApp调用用户通过语音接收验证码。
(一)
(b)
(2)消息在一个关键的变化。图6(一)显示当爱丽丝将她的第一个和第二个消息发送给鲍勃为了发起对话。黄色通知箱顶部的谈话显示参与者指出对话是端到端加密和按盒子可以获得更多的信息。每条消息都显示一个双重的复选标记,如信号。
(一)
(b)
(c)
(d)
图6 (b)显示一个新的通知盒子出现在爱丽丝的对话页面后,鲍勃已经重新安装应用程序。WhatsApp自动检查新的加密密钥(安全代码)改变了虽然她没有给他任何消息。当爱丽丝水龙头通知框,弹出(图6 (c))告诉爱丽丝为什么鲍勃的密钥已经改变,选择验证他之前她发送新消息。爱丽丝向鲍勃发送新消息后验证的新密钥鲍勃和消息标签(图6 (d))一个双重的复选标记意味着一切顺利。
(3)运输的关键改变一个消息时。这个测试场景与前面的一个开始,但是我们看看WhatsApp如何处理鲍勃完成重新安装之前发送的消息。图7(一)显示了爱丽丝向鲍勃发送另一个消息后他已删除应用程序。单一的对号消息意味着它已经发送但是没有收到和读鲍勃。当鲍勃完成应用程序的重新安装,第二个消息爱丽丝发送同样的黄色框通知添加到对话。图7 (b)爱丽丝发送第三个消息显示对话后,显示Bob接收到第二个消息之前,被他重新安装。这意味着WhatsApp时对消息接收者生成新密钥和发送方不验证新钥匙。
(一)
(b)
(4)验证流程参与者之间。WhatsApp实现了相同的验证过程的信号。它使用信号数值格式验证,与内置的扫描仪,扫描二维码,用户可以选择如果他们想复制安全号码WhatsApp以外的应用程序。这样做的原因可能是当他们决定实现信号的端到端安全协议,他们的每一个步骤实现信号实现维护规范。WhatsApp还提供端到端加密的要求,使用户能够称之为彼此并验证安全代码。
(5)其他安全的实现。如图8(一个)(设置页面),有选项改变帐户的数量甚至删除账户。
(一)
(b)
(c)
如果爱丽丝选择“安全”菜单项,然后激活“显示安全通知”选项(如图8 (b)),然后当鲍勃重新安装应用程序或接收一个新设备应用程序显示一个通知爱丽丝。否则,如果选项是关闭的,那么爱丽丝不会收到任何通知。
图8 (c)显示WhatsApp已经实现,两步验证设置,用户需要输入额外的密码在注册账户时使用相同的数量在一个新的设备或重新安装。
3.2.3。案例3:线
线是一个应用程序,该应用程序实现端到端加密使用普罗透斯协议,这在很大程度上基于信号协议,但重新实现内部(由钢丝变形杆菌协议,瑞士GmbH是一家现代化的、可用的https://github.com/wireapp/proteus)。线是由开发人员开始于2012年以前在微软和Skype,最后,他们在2014年发布了他们自己的即时消息应用程序(“Skype创始人之一的背线,一个新的通信应用今天推出iOS, Android和Mac, Sarah Perez在2014年12月,Tech Crunch可用https://techcrunch.com/2014/12/02/skype-co-founder-backs-wire-a-new-communications-app-launching-today-on-ios-android-and-mac/)。第一个版本没有提供端到端加密直到2016年3月,当他们推出了加密即时消息和视频通话功能(42]。线提供了与其他应用程序相同的功能,如文本、视频、语音、照片、和音乐信息,支持在多个平台上,从智能手机到个人电脑,也是开源(https://github.com/wireapp)。
(1)初始设置。线应用程序比其他应用程序有不同的注册过程。第一页,如图9(一个),要求注册一个电话号码。然而,人们还可以通过线的web应用程序创建一个帐户仅使用一个电子邮件地址。图9 (b)展示了验证过程,用户需要输入验证代码手动(收到的短信)。如果用户没有接收到验证码,她可以要求线电话用户接受。线应用程序不会自动读取代码中收到短信。数据9 (c)和9 (d)演示选择登录电子邮件和/或电话号码,分别。当用户重新安装应用程序或改变自己的设备,她不需要再次登记。
(一)
(b)
(c)
(d)
(2)消息在一个关键的变化。图10 ()显示了爱丽丝的最初接触鲍勃。线使用文本在每个消息解释如果消息是否交付给收件人。如果接收方重新安装应用程序(这导致改变密钥),然后发送方(即。线,爱丽丝)将不会通知的应用对新密钥的接收器。如图10 (b)爱丽丝将两条消息发送给鲍勃,鲍勃已经重新安装应用程序,但是爱丽丝没有得到任何通知,电线,Bob新的加密密钥;爱丽丝看起来,鲍勃有相同的键。爱丽丝可以检查鲍勃的帐户信息,看看鲍勃有新的密钥。图10 (d)显示Bob的设备钥匙在他的账户下,三种不同的设备,因为线允许多个设备关联到一个帐户。这意味着爱丽丝需要验证每个设备知道谈话和端到端加密是安全的。这两个顶级设备完整的蓝盾这意味着他们验证,设备底部只有一半盾,因为它尚未验证。
(一)
(b)
(c)
(d)
(3)运输的关键改变一个消息时。图10 ()显示最初的消息从爱丽丝鲍勃。如果爱丽丝发送一条消息Bob删除应用程序时,该消息将被标记为“发送”而不是交付(图10 (c))。然而,如果爱丽丝发送另一个消息当鲍勃重新安装应用程序,那么消息将被贴上“交付。”爱丽丝这个测试表明,线不通知Bob的新钥匙,同时不交付消息加密与旧密钥设备与新钥匙。
(4)验证流程参与者之间。线的验证过程不提供相同的选项验证每个参与者的其他应用程序。然而,由于导线允许几个设备被关联到一个帐户,和每个用户访问另一个谈话的整个设备列表。当爱丽丝想验证鲍勃的设备之一,她可以看到鲍勃的概要文件,特别是选项卡显示所有设备的信息(图10 (d))。如果爱丽丝龙头之一的设备列表,如图(11日),她可以获得一些关于手机的信息ID号和公钥的设备。爱丽丝可以叫鲍勃通过电话或亲自迎接他,然后验证密钥。验证完成后,爱丽丝需要切换“验证”开关指定这个特定设备验证。
(一)
(b)
(5)其他安全的实现。线没有信号或WhatsApp额外的安全实现。几个选项包括一个方法来改变消息对话看起来和可能为更容易添加电子邮件帐户登录。用户可以查看设备已使用她的帐号(如图11 (b)),如果有任何设备,用户并不拥有或承认,她可以删除特定的设备。删除设备后,提示用户改变她的密码。
3.2.4。案例4:推出
推出另一个即时消息应用程序启动于2010年,已成为相当受欢迎,与8亿年总体用户和2.66亿每月活跃用户43]。推出属性类似于其他应用程序,用户能够形成组发送消息,打电话给对方,并发送图片、视频,或者语音信息的其他用户推出(由乐天Inc .)推出,https://www.viber.com/en/about)。推出智能手机和个人电脑,这使得它跨平台。推出没有端到端加密在一开始,但它介绍了2016年4月为一对一和小组对话(”给我们的用户控制他们的私人谈话,”Michael Schmilov从2016年4月19日推出https://www.viber.com/en/blog/2016-04-19/giving-our-users-control-over-their-private-conversations)。推出不使用信号协议但实现自己的协议,具有相同的概念作为双棘轮协议使用的信号(如上所述的开发人员)。
(1)初始设置。推出的用户注册过程是一样的,在前面的应用程序。图12(一个)显示了用户的用户输入的电话号码在注册界面。图12 (b)显示了用户帐户的激活过程。用户可以给推出访问输入验证码的短信收件箱自动或手动启动。如果验证码的短信没有一分钟内到达,用户可以请求应用程序或者重新发送一个新的验证码代码通过一个电话。
(一)
(b)
(2)消息在一个关键的变化。推出不通知参与者的加密密钥时,改变在谈话。前两个图的消息(13日)显示与鲍勃·爱丽丝开始交谈。鲍勃重新安装应用程序之后,爱丽丝发送另一个消息。然而,图(13日)(第三个消息)显示,推出不给予任何通知爱丽丝Bob已生成新密钥。爱丽丝发现的唯一途径是通过检查谈话的细节,从右向左划动。如图13 (b),如果“相信这种接触”标签改为“Re-trust这种接触,”爱丽丝可以推断Bob应该验证的新密钥。
(一)
(b)
(c)
(d)
(3)运输的关键改变一个消息时。关键变化在运输过程中处理相同关键变化后,重新安装应用程序的解释。图13 (c)表明,爱丽丝将第二个消息发送给鲍勃他重新安装应用程序之前,也没有信息给爱丽丝如果鲍勃的消息发送或阅读。图13 (d)显示了爱丽丝的第三个消息后鲍勃他重新安装应用程序。爱丽丝从推出从未收到任何通知,鲍勃新密钥也不是,他还没有收到第二个消息,推出并没有对和重新发送消息。
(4)验证流程参与者之间。验证过程中推出相当直接的联系。如果爱丽丝想验证鲍勃,她去他们的一个对话,刷(图(14日))获得信息选项卡,然后去“信任这种接触”选项。图14 (b)显示了弹出通知箱爱丽丝后单击“信任这种接触”选项。唯一的验证选项爱丽丝可以用来验证鲍勃是通过调用鲍勃,然后读取加密密钥通过电话。图14 (c)显示当爱丽丝打电话给鲍勃和想要验证,弹出消息框显示两个Alice和Bob共享的密钥。当他们互相验证,按“相信这个联系人”按钮。
(一)
(b)
(c)
(d)
(5)其他安全的实现。推出没有额外的安全实现。图14 (d)显示了隐私设置,只有安全实现的“明确可信的联系人”清除所有联系人,爱丽丝已经验证了整个时间她的帐户。
3.2.5。案例5:防暴
防暴是一个新的聊天客户端,基于矩阵(https://matrix.org/)协议的端到端加密功能。矩阵是一个开放标准分散式通信使用桥接网络和跨平台的可能性加上完整的端到端加密,是基于双棘轮协议从信号。
防暴使用服务器(信号)一样,但是一个不需要依赖于服务器的控制下矩阵团队(不像信号)。防暴和矩阵是开源的,这意味着任何人都可以建立自己的服务器与矩阵实现和使用它的端到端加密。这是想要有利于公司员工之间的安全聊天但不想依靠他们自己的网络之外的。骚乱还提供群组聊天、语音(VoIP)和视频通话,文件传输和集成与其他应用程序,如松弛(https://slack.com/)或IRC (https://www.wikiwand.com/en/Internet_Relay_Chat)。
(1)初始设置。暴乱是唯一的消息传递客户端不依赖于一个电话号码,但用户注册一个账户,一个电子邮件地址(图(15日))。当用户通过注册应用程序,防暴发送一个确认链接到所输入的电子邮件地址和用户点击该链接时,后一个验证码验证将要求一个额外的安全层,如图15 (b)。
(一)
(b)
(c)
(d)
(2)消息在一个关键的变化。防暴不是信号或WhatsApp等典型的即时消息传递应用程序。他们的愿景是使应用程序相同的方式工作的松弛或IRC,哪里有聊天室加入与别人说话。因此,爱丽丝开始一个聊天室,邀请鲍勃,然后激活的端到端加密。应该注意的是,端到端加密还在测试阶段,因此,它不是默认打开。图(16日)显示了聊天室,一开始打开锁定从Alice和Bob的每个消息之前已经发送加密连接。端到端加密是如何连接的“其他安全实现”部分所示(图17日(d))。当爱丽丝她最初的消息发送给鲍勃,锁改为封闭(图15 (c))自E2E加密。图16 (b)他表明,如果Bob重新安装应用程序,必须reverify键改变了爱丽丝,因为他的设备。爱丽丝还可以看到,她不得不reverify鲍勃鲍勃的消息都有一个黄色三角形通知。当爱丽丝验证鲍勃,然后列出消息正确关闭锁,这意味着消息加密正确(图16 (c))。在骚乱中,当一个新用户(或现有用户和新键)进入聊天室,她不能读/访问以前的信息(参见图16 (d))。
(一)
(b)
(c)
(d)
(一)
(b)
(c)
(d)
(3)运输的关键改变一个消息时。防暴处理关键的变化一样一节不管消息是否在运输途中。当鲍勃删除应用程序,爱丽丝将第二个消息发送给鲍勃(图15 (c))。爱丽丝也发送第三个消息鲍勃鲍勃重新安装应用程序。如图15 (d),鲍勃可以读但不是第二个第三个消息。这表明防暴处理关键的变化一样,可以看到有一些消息和鲍勃发送但不能解密,因为他失去了旧的钥匙。
(4)验证流程参与者之间。防暴的验证过程相当简单的应用程序。此外,骚乱给大量的信息给用户的用户交互。当爱丽丝想验证鲍勃的设备,她需要看他的形象帐户发现鲍勃的设备列表点击“设备”选项卡,如图(17日)。鲍勃的设备在图之一17 (b)有黄色通知三角形,那么具体的设备尚未验证了爱丽丝。她可以验证设备或把它放到黑名单,如图17 (c),这意味着特定的设备不再是能够发送任何消息或邀请爱丽丝。
如果爱丽丝决定验证鲍勃的设备,她点击验证按钮,看到的验证弹出图17 (c)。弹出用户信息,但对于一些终端用户,它可能有太多的信息,可能看起来凌乱。弹出验证信息和过程将变得更加成熟在未来版本的应用开始达到β时期的结束。验证,爱丽丝可以叫鲍勃或亲自迎接他,然后交流设备的钥匙。最后,爱丽丝需要按下“我确认钥匙匹配”按钮。
(5)其他安全的实现。防暴没有很多额外的安全实现,但由于应用程序只是测试版,他们可能在未来的版本中实现。图17日(d)显示了设置页面提供细节的一个聊天室。房间的管理员(初始化这个房间的人)是唯一的用户可以改变房间的设置。最后设置图中所示的是选择启用加密特定房间里。一旦启用加密,它不能被禁用整个对话。
3.2.6。案例6:电报
电报是一个即时通讯平台是国家安全局丑闻后开始于2013年。它已经开发了智能手机、平板电脑,甚至电脑(电报FAQhttps://telegram.org/faq)。电报允许一对一和小组交流和发送文件的可能性在联系人列表。电报和其他安全的即时通讯应用程序之间的区别是,它只提供选择安全的消息,而正常的对话是云聊天,不是端到端加密。他们的动机是提供无缝的云聊天所有连接设备之间同步(无缝云synd聊天,微博,帕维尔Durov在2015年https://twitter.com/durov/status/678305311921410048)。
为安全聊天,电报实现自己的加密协议称为MTProto协议(MTProto协议,由尼古拉Durov电报文档,可以在https://core.telegram.org/mtproto)。相同的协议也可以用于正常云聊天服务器和客户端之间的通信进行加密。
端到端加密聊天,是不允许在秘密聊天对话截图。因此,为了提供不同的测试场景图像,我们使用一个外部的相机。
(1)初始设置。电报的初始设置应用程序和其他应用程序的用户注册是一样的。图(18日)显示用户需要输入注册过程的她的电话号码。如图18 (b)通过短信,电报发送一个激活代码,可以手动输入或给电报访问自动。如果在两分钟内没有收到验证消息,一个新的短信将发送。用户也可以问电报给她打电话,通过电话激活它。
(一)
(b)
(2)消息在一个关键的变化。端到端加密不启用默认电报。正常的消息,这被称为云聊天电报,没有加密。图(19日)显示第一个视图爱丽丝看到当启动一个秘密和鲍勃,说聊天是端到端加密和消息不能转发出于安全原因。图19 (b)显示第一个消息已发送爱丽丝和鲍勃,鲍勃的双重检查标志说明已收到并阅读消息(一个对号意味着消息被发送)。如果Bob重新安装应用程序和与此同时爱丽丝发送一个消息给鲍勃,鲍勃就从来没有收到消息(即使重新安装完成的应用程序),如图19 (c)。因此,电报不使用前设备键后重新安装应用程序的一个参与者。因此,爱丽丝需要启动一个新的秘密聊天鲍勃和再次发送前未送达的消息。电报不存储密钥,或任何其他的信息可以显示两个用户曾经有一个秘密聊天。因此,电报无法检查是否其中一个用户重新安装应用程序。
(一)
(b)
(c)
(d)
(3)运输的关键改变一个消息时。在最后的场景中,所述电报不存储任何信息关于爱丽丝和鲍勃有一个秘密的聊天;都是由客户端和没有被发送到云的电报。因此,测试这个场景中毫无意义,因为它会有相同的结果。
(4)验证流程参与者之间。Alice和Bob之间的验证过程是相当困难的,当在电报中使用秘密聊天。如果爱丽丝想验证鲍勃的加密密钥,她需要开放的具体安全聊天设置页面,然后点击“密钥”按钮。电报就支持消息传递和不支持要求验证。图19日(d)展示了验证页面,一个图像,这是源自于加密密钥,加密密钥。爱丽丝没有办法到达的结论是,这是正确的图片的对话。
(5)其他安全的实现。电报支持一些其他的安全特性。在设置页面,有一个选项来查看应用程序的“隐私和安全设置(图20(一个))电报支持两步验证,即。,when a user wants to log in on another device or after a reinstall, then they need to write a second, personally chosen, password after the activation code received by SMS. “Active sessions” is a list of devices the user has logged into. The last option, “Account self-destructs,” is a security measurement where if the user has not used their account in the last six months, the account gets deleted by Telegram. The length of the counter for self-destructing can be changed to one month, three months, six months, or one year.
(一)
(b)
图20 (b)在“密码锁定显示选项。“这功能锁整个应用程序与用户选择的密码。电报可能开启应用程序实现了指纹,如果用户在操作系统增加了指纹。用户有机会改变时,应用程序应该自动锁,从一分钟到五个小时。最后的选择是“允许屏幕截图,显示(如果启用)允许用户截图内任何应用程序。然而,对于安全聊天,但它却永远不会允许截图。
4所示。总结的结果
测试的结果列于表1清单什么属性,每个应用程序提供,哪些是失踪。
从这个概述中,可以得出这样的结论:所有应用程序提供几乎相同的属性设置和登记相关阶段。所有应用程序除了防暴支持注册用户的电话号码,而防暴需要一个电子邮件地址。线支持的电话号码和电子邮件地址,也可以使用后登录。进入短信收件箱不是强制性的在任何的应用程序,但它是设置为默认为方便用户,否则一个需要手动输入验证码。防暴不使用一个电话号码的验证,它不需要访问短信。线也没有访问短信收件箱,因为他们认为它很容易为用户手工输入验证码。
联系人列表上传到服务器所需的所有应用程序,因为它可以找到如果任何联系人已经使用该应用程序。然而,如果一个用户,为了保持匿名,她不想上传联系人列表,只需要给她的电话号码给特定的人来交流。
所有应用程序(除了防暴不使用一个电话号码)有相同的属性时,验证通过短信和电话。他们都先给用户选择验证通过阅读短信,如果用户没有收到短信,然后他们可以要求应用程序调用它们。
信号和WhatsApp trust-on-first-use方法,用户信任其他参与者在谈话中没有验证。其他应用程序要求用户验证对方首先为了保证谈话是安全的。
通知的对话将是有用的新用户不知道端到端加密是谁,和这只一开始不会打扰用户。只有一半的应用程序有这个通知执行。
不同应用程序处理关键变化非常大。只有信号应用程序都封锁消息和显示一个通知,其他用户在谈话中没有相同的加密密钥后重新安装。封锁消息功能不允许发送方发送消息之前验证的新密钥接收器,如果接收器在交谈中生成新密钥。不给予任何通知或块的应用程序发送的消息可能是中间人攻击的目标,因为参与者之一,永远不会得到关键变化的通知,因此不可能发现任何不一致被劫持的谈话。线和推出特别脆弱。电报的秘密聊天不工作如果密钥改变,因为应用程序不存储任何秘密的聊天信息。参与者需要重启对话。
唯一的应用程序,对消息和发送一遍后,接收机新密钥WhatsApp。这是一个有用的可用性属性,我们希望它将会实现的其他应用程序。方法有一个问题WhatsApp又对和发送消息:它从不要求用户如果它是正确的接收器,因为钥匙已经改变了。
“关于消息的传输细节”财产问题的应用程序是否显示发送方发送的消息是,交付,或被接收方。如果消息不会因为改变接收器的密钥,那么消息只标记作为发送方的“发送”,但如果消息是对和发送正确,那么细节也应该表示“看到”的消息接收器。唯一的应用程序,不显示任何信息是否推出过去的消息被发送或交付。
信号和WhatsApp最简单的验证过程,使用二维码与一个内置的扫描仪。然而,都有缺点,因为他们没有检查揭示特定用户是否已经验证。线、推出和防暴证实当用户已经证实,但它们没有有用的二维码和共享密钥的外部应用程序。电报是唯一的应用程序,它只提供一个二维码但实际上没有办法扫描代码。用户必须阅读它们之间共享的密钥,而图像编码没有技术的比较方法,除了只看着它。WhatsApp和电报两步骤验证功能,这意味着,当用户重新安装应用程序或更改设备,他们需要输入第二个密码从提供者正常验证码后,为了在新设备进入他们的账户。
信号和电报密码或用户必须输入的代码是为了获得一些特定的超时过期后的应用程序。两个应用程序还实现了屏幕安全不给潜在入侵者截图对话的能力。有一个设置切换安全,但它是在默认情况下信号和电报。
唯一的应用程序验证联系人的列表,并选择删除他们,被推出。客户如线和防暴,验证检查每个联系人在一次谈话中不提供这个选项,即使它并不难实现,因为他们已经知道哪些联系人及其设备验证。
“从账户删除设备”是只有趣的对于那些支持多个设备的应用程序。所有应用程序也支持多种设备等设备的列表,用户可以删除不再使用的设备。
5。讨论和建议
而不是集中在一个测试场景,就像在前一节中,本节讨论和评估每个应用程序作为一个整体。此外,根据获得的知识从测试场景中,每个应用程序提供了一些可能的改进,必须验证关键使用建模和验证技术(除了标准软件测试),以确保不会破坏其他安全特性的改进。
5.1。信号
部分的实验3.2。1证明信号应用没有主要的弱点。然而,有几个潜在的改进,我们在下面讨论。信号显示良好的理解和照顾用户体验,与一个简单的验证过程。用户可以使用qr码的验证目的和/或可以互相打电话,他们可以通过端到端加密电话验证过程。
当一方改变键后发送一条消息,应用程序块的消息,直到再次发送方和接收方互相验证。这是一个有用的属性,但没有透露立即通知的应用程序,当一个人改变她的对话参与者的键(例如,由于重新安装的应用程序)。
总的来说,应用程序时具有良好的安全的端到端加密和有用的用户体验属性为新用户不会造成问题。
以下提供改进的建议,适用于信号的应用。我们首先状态特性的一般条款,然后明确具体的应用如果需要:(一)对发送了消息:给用户一个选择对一个失去了消息,并重新发送它完成批准暂予监外执行过程后,这样的消息并不会迷失在谈话。在信号的应用程序中,消息的发送方可以知道她的消息的状态(即。,sent or delivered/read) due to the existence of checkmarks on each message, making the implementation of this feature easy.(B)关于关键变化通知:建议应用程序显示通知消息后立即加密密钥的每一个变化。如果一个政党的钥匙在谈话中改变,那么信号应用程序没有显示任何通知消息立即参与者。它只给通知(键改变)当一方希望将消息发送给另一个(在改变键)。(C)通知对端到端加密:给一个通知在每个对话的开始说现在端到端加密和可能阅读更多关于它可以帮助教育最终用户E2E加密是什么和为什么他们应该关心它。(D)验证检查:提供视觉线索,这样用户可以很容易地知道一方应再次验证,重获信任属性。我们的实验证明,在信号的应用程序中,没有办法知道如果用户已经验证。然而,如果应用程序已经持续验证联系人的列表,当一个参与者改变自己的密钥,它应该很容易实现这个特性。(E)两步验证:应用程序的安全将得到改善通过添加一个“两步验证”选项,,例如,当用户想要改变她的设备或重新安装应用程序,选择之前她必须输入一个密码,除了代码中收到短信。
5.2。WhatsApp
实验的结果没有显示WhatsApp应用程序的主要弱点。然而,WhatsApp应用程序可以在几个方面改进如下讨论。WhatsApp需要非常小心加强用户的账户和周围的安全信息;然而,它可能遭受的模拟攻击。建议适用于WhatsApp如下。(F)块消息直到验证:为了防止发送私人消息一个替身,参与者不能发送任何消息之前互相验证。WhatsApp应用程序立即对失去消息的时候发现密钥已经改变,接收方没有收到消息。因此,敌人可能扮演一个合法的接触,因此WhatsApp对并发送消息输给了对手谁会因此获得私人信息以未经授权的方式。由于这个过程是自动控制的应用,甚至失去消息的发送者不能停止对和重发后一个关键的变化。为了克服这一弱点,应用程序必须暂停对过程和重新发送丢失的消息(在一个关键的变化),直到新密钥验证。(G)锁定应用程序使用一个密码/代码:添加一个选项,需要一个密码或代码之前打开应用程序将提高用户帐户的安全从未经授权的访问。如果敌人不知何故被访问用户的电话,她将无法访问该应用程序的消息,她不知道密码/代码。
WhatsApp最近更新了其隐私政策,引起用户的关注这个消息传递应用程序。根据WhatsApp的语句(https://faq.whatsapp.com/general/security-and-privacy/answering-your-questions-about-whatsapps-privacy-policy),他们的新服务条款和隐私政策WhatsApp有关管理的企业,这是一个可选特性。声称所有个人通信与朋友、家人等等仍受端到端加密和保护WhatsApp和Facebook都无法访问它们。还声称WhatsApp不仅不维护日志和消息的电话还没有访问共享位置。此外,集团仍将私人和组织数据和联系人列表将Facebook提供的共享与Facebook或其他应用程序。
然而,所有通信WhatsApp业务帐户可以使用Facebook来提高营销通过显示个性化的广告在Facebook提供的应用程序,例如,WhatsApp, Instagram, Facebook。例如,Facebook可能显示一个广告,通过WhatsApp按钮与相关业务。
5.3。线
线的应用程序提供了一些有用的安全性和可用性属性。然而,也有一些属性,不提供,可能会导致严重的安全问题。在这个应用程序中,如果一个用户使用一个新设备,电线不通知其他参与者在谈话。因此,一个冒名顶替者可能加入谈话和接收所有的交换消息。建议适用于线(A),(注意,电线应用程序使用一个文本在每个消息显示的状态消息(例如,交付或发送),这使得容易实现此功能)(E), (F)和(G),以及以下新的:(H)通知用户关于验证:当应用程序并不验证参与者,应该通知用户,他们必须互相验证手动当启动一个新的对话,防止模拟攻击。(我)通知有关新设备的验证:通知用户添加了一个新的设备和其他参与者之前他们必须验证新设备送更多的消息(新设备也会接收这些消息)。线的应用程序允许用户使用相同的账户在多个设备上。然而,如果一个用户(对话)添加一个新设备,其他参与者(谈话)将不会通知这种变化。(J)更多的验证选项:提供几种不同的方式进行验证。例如,一个二维码或与第三方共享密钥应用程序是一些可能的选项。密钥管理和认证证书可以大大受益于一个安全装置连接到智能手机如OffPAD [44),与一个代理,知道如何使用这种设备在OTDP架构(45]。线只提供打电话每次都一个人,这可能会成为用户的麻烦。(K)屏幕安全:隐私可以提高通过提供一个“屏幕安全”选项,不允许截图在谈话。值得提及的是,屏幕安全是有用的,如果所有的参与者在谈话中启用它,因为如果用户不启用该选项,然后她可以把一个快照,从而违反对话中的其他参与者的隐私。
5.4。推出
推出应用程序提供了一些良好的可用性和安全性能。然而,有几个有问题的方面使我们不推荐这个应用程序。如果一个用户的密钥在谈话中改变(例如,因为重新安装),推出不通知其他参与者在讨论这些变化。此外,如果一个用户发送了多封邮件接收方重新安装推出,然后发送方无法知道是否收到了之前的消息。许多观测的推出很容易修复或实现,在我们看来,将大大改善应用程序。这些包括(A)、(B)、(E), (F), (G), (H)、(J)和(K),以及以下新的:(左)标签的状态消息:重要的是,所有消息在谈话中有一个标签声明他们的地位(如发送,发送和阅读)。在推出,只有最后一条消息在谈话中与状态信息标签。
5.5。防暴
防暴应用仍处于测试阶段,尽管其可用性和安全属性,它仍然可以得到改善。当密钥改变在交谈中,前面的消息被锁定为用户重新安装应用程序(世卫组织)。然而,有一个选项为发送方发送锁消息(与新密钥加密)。在暴乱中,用户不会收到任何通知消息关于关键变化(reverify彼此的需要)。此外,骚乱不使用默认的端到端加密。此外,骚乱并没有提供一种简单的方法验证的用户。建议适用于防暴(E), (G), (J),从上面(K)。
5.6。电报
电报应用程序有一些有用的安全属性,但可用性特性,而缺乏和混乱不怎么精通网络技术的人。一个安全的消息传递应用程序最大的缺陷是,端到端加密不是默认。因此,一个显式的秘密聊天需要每次启动用户希望沟通。我们认为这应该成为一个应用程序,该应用程序的规范这些天广告加密的对话。
在电报中,如果一个用户发送一条消息,而密钥已经改变,意图接收器没有得到消息,因为秘密聊天是一组键锁定。因此,如果一个用户生成新密钥,参与者需要开始一个新的秘密聊天,不能继续之前的秘密聊天。这是有利于安全,但问题出现因为电报不通知用户关键变化。
电报正好提供了一种验证的用户,显示qr码,这是一个安全的消息传递应用程序不够好。我们相信电报可以提高通过提供更多的选项,比如打电话或通过第三方应用程序共享密钥。建议适用于电报(B), (D) (J),从上面(K)。
6。结论和进一步的工作
我们提出了测试和分析,开展了6个安全的消息传递应用程序。作为一个先决条件,在部分2,我们已经给了一个温和的介绍(昂格尔最近的文章后et al。4)三个安全的消息传递协议,提供端到端加密和他们提供安全和隐私的类型属性。本文的协议是很重要的,对于理解我们的分析应用程序的实现,这是我们的主要贡献在部分3。信号和矩阵的协议都是安全的消息传递协议,管理端到端加密,但是却没有一个可以提供所有安全属性。信号协议不完全支持多个设备,而矩阵协议这是否好。另一方面,矩阵协议并不能完全提供远期和期货的保密协议和让实现支持它。信号协议被设计成使用一个服务器实现异步消息传递属性。即使消息加密的端到端,仍有重要的元数据是被操纵和存储在服务器上。因此,人会希望获得更好的服务器端,特别是当部署在云基础设施或国家立法,忽视了隐私。初步结果在这个方向一直在(8使用英特尔新交所的最新技术。这也适用于矩阵。
本文的贡献是长一节中描述的研究实验3我们执行5套测试每一个6即时消息应用程序实现的两个安全的消息传递协议信号或矩阵。我们因此测试21属性相关的应用程序的可用性和安全信号,WhatsApp,电线,推出,防暴,电报。结果21在每个属性的六节中应用进行了总结4和列在表1。总之,这些应用程序提供了有用的可用性和安全,我们强烈建议公众采取其中一个(即。后,最适合他们的需要,阅读我们的分析)。我们相信,即使没有特殊技能的人,这将是更容易采用其中的一个应用程序;也就是说,一个不会遇到更多的困难(尽管这个词很强大)比其它的聊天应用程序,而加密相关的特性并不会增加相当大的不便。然而,一些测试的应用程序仍然可以受益于改进。我们提供了12个建议,在部分5,每一个适用于一个或多个的六个应用程序以加强他们的安全,同时保持有用的可用性特性。
附录
答:非正式坚果壳
直观地说,非正式(OTR)协议(10- - - - - -16)希望提供在线对话相同的特性,记者想要说话的时候,新闻来源。把一个场景,爱丽丝和鲍勃是单独在一个房间里。没有人能听到他们说什么除非有人记录他们。没有人知道他们谈论什么,除非爱丽丝和鲍勃告诉他们,没有人能证明他们说的是真的,即使是自己。一件好事一个非正式的谈话(实际上)是其背后的法律支持,因为它是违法记录谈话参与者不知情的情况下。这也适用于在电话里交谈,因为根据法律,利用电话线路是非法的。但是没有类似的法律通过网络通信。OTR-like协议旨在提供这种使用加密技术,因此需要提供至少完美向前保密和推诿/否定。全部细节可以在找到4),(部分2。4)。步骤1:认证密钥交换工程的最新版本(46)使用的一种变体diffie - hellman密钥交换称为σ[38]。爱丽丝和鲍勃也长期验证公钥和 ,分别。关键是要做一个未经身份验证的diffie - hellman密钥交换建立一个加密的通道,和内部通道相互认证。平原diffie - hellman密钥交换是容易受到中间人攻击,将打破工程需要的认证(12]。因此,工程实现了一个基于签名的验证DH交换,名叫σ,解决了这个弱点(38]。σ缩略词是“SIGn-and-MAc”,因为σ将身份验证DH指数的关键和身份的绑定。前执行身份验证任务使用数字签名,而后者是通过计算MAC通过常见函数的DH秘密和应用于发送方的身份38]。OTR变体称为σr使用四个消息,因为它提供了防御与主动攻击响应方的身份和被动攻击发起者的身份。步骤2:消息传输消息传输步骤,在发送之前,执行使用AES加密和身份验证的消息(47)在柜台模式(48)使用消息验证码(HMAC) [49)进行身份验证。使用AES在柜台模式提供了一个可塑的加密方案,允许推诿。延展性允许将密文转换为另一种密文解密一个相关的明文(12]。这意味着一个有效的密文不能与爱丽丝和鲍勃,因为任何人都可以创建一个可以正确解密密文,然后计算一个有效的密文的MAC,因为旧的MAC键(更多关于这个在步骤4)出版。整个新消息,或完整的成绩单,因此可以伪造的。发送消息,爱丽丝需要计算一个加密密钥和MAC密钥。加密密钥用于加密消息而MAC密钥用于确保消息的真实性。encrypt-then-MAC调用此方法,通常共享密钥的加密密钥是一个散列, ,然后第二次加密密钥是散列计算MAC键( )。加密和MAC密钥计算后,爱丽丝加密第一消息,然后mac,加密的消息时, 。鲍勃计算相同的和从共同的秘密,用于验证MAC和解密消息。步骤3:Re-Key非正式的谈话每次的按键变化方向,使易受攻击的时间尽可能的短。一旦建立了新的密钥,它将用于加密和验证新消息,而之前的抹去(12]。建立新的秘密和钥匙后,合作伙伴消除旧的秘密和加密密钥 ,所以没有人可以伪造或者解密消息已发送。能够安全地擦除这些信息的原因是完美的向前保密。的关键不是抹去,但是发表在下一步。第四步:发布可工程的下一步是旧的MAC发布钥匙通过添加他们到下一个消息,爱丽丝和鲍勃发送给对方,在明文。爱丽丝和鲍勃都知道他们已经移动到 ;因此,如果其中一个与旧接收一条消息 ,他们会知道消息被伪造的。出版允许他人伪造成绩单Alice和Bob之间的对话。这是有用的,因为它提供了额外的推诿双方(50]。简而言之,爱丽丝的保密依赖鲍勃删除加密密钥,而爱丽丝的推诿只依赖爱丽丝出版她的 。
. 1。社会主义的百万富翁协议
安全的即时通讯的问题是,没有办法告诉如果有中间人攻击。因此,当事人需要确保他们有相同的秘密这是通过使用社会主义的百万富翁协议(SMP) (51,52]。凭直觉,SMP允许两个百万富翁想要交换信息是否他们也同样富有,没有透露任何关于财富本身。爱丽丝和鲍勃,SMP之间允许知道 ,即。,the respective computed secrets, without revealing these secrets to anyone [13]。
b在坚果壳信号
信号是一种新的端到端加密协议,最近看到采用比非正式协议。OTR原来有一个特性,即。,refresh the message encryption keys often, which has become known as ratcheting and adopted in Signal as well [6]。信号设计的协议是胆识铁笔和特雷福佩兰从开放系统(耳语https://whispersystems.org/)在同步和异步消息传递工作环境(先进的棘轮效应,通过勇气铁笔在开放耳语系统,11月26日,2013年,https://whispersystems.org/blog/advanced-ratcheting/)。信号的目标向前端到端加密和先进的安全属性包括保密和未来的秘密(6]。最初,信号分为两个不同的应用程序,TextSecure (https://whispersystems.org/blog/the-new-textsecure/)和RedPhone (https://whispersystems.org/blog/low-latency-switching/)。前者是短信和即时消息,而后者是一个加密的VoIP (https://www.voip-info.org/wiki/view/What +是+网络电话)应用程序。TextSecure是基于工程协议、扩展升级成双棘轮,结合工程与对称不对称棘轮棘轮(6),并命名它蝾螈棘轮。开放耳语系统后结合TextSecure RedPhone形成新的信号具有相同名称的应用程序实现了协议。
近年来,信号协议已经被众多的公司采用,如WhatsApp (https://whatsapp.com)通过Facebook,信使(https://messenger.com)也通过Facebook和谷歌的新消息传递应用程序,紧密相联的(https://allo.google.com)。
信号使用双棘轮算法(53]交换加密消息基于双方共享密钥。同意共享密钥,信号使用X3DH关键协议(54扩展的三重diffie - hellman)协议(站(https://whispersystems.org/docs/specifications/x3dh/)),我们将描述在附录部分B.3。全部细节可以在找到4)(第3章)。
责任。双棘轮算法
双棘轮算法使用密钥推导函数链(KDF链)53)不断推出为每个消息加密密钥,它结合了两种不同的棘轮算法,推导的对称密钥棘轮键发送和接收消息和diffie - hellman棘轮用于提供安全的对称密钥棘轮的输入。
KDF链是一个关键的测序的应用推导函数返回一个关键用作下一个新的KDF密钥链循环以及一个输出消息的关键。KDF链具有以下重要的属性(53]:(我)韧性:输出键出现随机KDF敌人没有知识的钥匙,即使对手KDF的控制输入。(2)提出安全:输出键从过去出现随机的敌人谁学习KDF关键在未来的某个点。(3)磨合复苏:未来输出键出现随机的敌人谁学习KDF关键在某个时间点上,提供未来输入增加了足够的熵。
每一方的双重棘轮生成和维护键三链:根链,链发送和接收链(爱丽丝的发送链匹配鲍勃的接收链,反之亦然;参见图(21日))。虽然双方交换消息,但他们还交换新的diffie - hellman公钥。diffie - hellman棘轮的秘密成为输入输出根KDF链的链,然后输出键从根链成为新的KDF键发送和接收链,这需要预先为每个发送和接收消息。这被称为对称密钥棘轮。
(一)
(b)
输出键从对称密钥棘轮是独一无二的消息键用于加密或解密消息。发送和接收链确保每个消息进行加密或解密与一个唯一键可以删除后使用。消息键不习惯得到新消息键或链接键。由于这个原因,可以存储消息键而不影响其他的安全密钥,且仅属于特定消息的消息键可能读如果这个键被破坏。处理无序的信息,这很有用,因为参与者可以存储密钥和解密消息的消息后,他们收到相应的信息。在附录部分B.2看到更多关于无序的信息。
双棘轮是由结合对称密钥棘轮和diffie - hellman棘轮。如果双棘轮不使用diffie - hellman棘轮计算新链键发送和接收链键,攻击者可以偷一个链键可以计算未来所有消息键和解密所有未来的消息(53]。
每一方生成一个DH密钥对,公钥和私钥,将他们的第一个棘轮密钥对。发送消息时,头必须包含当前公钥。当收到一条消息,接收方检查给定的公钥信息和做一个DH棘轮一步取代现有接收机的棘轮与一个新的密钥对(53]。
结果是一种“乒乓球”行为是两党轮流替换自己的密钥对。攻击者妥协一个消息键没有使用它因为这很快就会被替换为一个新的、不相关的关键(53]。DH棘轮生产作为输出发送和接收链键,它必须对应;即发送的一方是一样的接收链的另一方(见图(21日))。使用这里KDF链提高韧性和磨合的复苏。
结合对称密钥棘轮和diffie - hellman棘轮如下:(a)发送或接收消息时,一个对称密钥棘轮的步骤应用于发送或接收链得到消息键和(b)当一个新的棘轮收到公钥,DH棘轮一步执行前对称密钥棘轮更换钥匙链。
图21 (b)显示的信息所使用的爱丽丝送她的第一个消息鲍勃。发送链键( )使用对称密钥推导出一个新的棘轮一步和消息键, ,加密消息。新存储供以后使用,而老吗和消息键可以删除。确保保密整个双棘轮,老根键( )被删除后,它被用来获得一个新的吗 。
图(22日)计算表明,爱丽丝从鲍勃当收到一个响应,其中包括他的新棘轮公钥。爱丽丝应用一个新的DH棘轮一步推导出一个新的接收和发送链键。接收用于获得一个新的接收吗和消息键, ,解密鲍勃的消息。然后,她获得一个新的DH输出为下一根与她的新棘轮私钥KDF链,实现一个新的和发送 。
(一)
(b)
B.2。无序的信息
双棘轮柄丢失或无序的信息,包括在每条消息标题消息的发送链数( )消息键和长度(数量)在前面发送链( )(53]。这允许接收器推进相关消息键的关键,同时还将跳过消息键存储在他们收到一位年长的信息在稍后的时间。考虑图的例子22 (b)我们假设爱丽丝已经收到消息了吗 ,现在她收到消息从鲍勃, 和 。爱丽丝看到她需要做一个DH棘轮一步,但首先,她需要计算多少消息键来存储从她目前接收链(Bob的以前的发送链)。自 和她当前接收链长度是1,从当前接收存储密钥链的数量是1消息键(即, )。然后,她一个DH棘轮一步一个新的接收链在哪里。因为她的新接收链的长度为0,她需要从她的新消息键存储接收链(例如, )。爱丽丝后存储和 ,她能得到最后一条消息解密信息的关键 。
B.3。X3DH密钥协议的协议
信号,X3DH是专为异步设置一个用户,鲍勃,离线,但发布信息到服务器,和另一个用户,爱丽丝,想用这个信息来发送加密数据鲍勃(54]。扩展的三重diffie - hellman关键协议协议(X3DH)因此建立共享密钥两党之间相互验证基于公钥,同时提供了向前保密和加密推诿。
提供异步服务器用于存储消息从Alice和Bob以后可以被检索,和相同的服务器保持键集Alice和Bob在需要时检索(54]。X3DH协议有三个不同的阶段:(1)鲍勃出版他的椭圆曲线公钥服务器:(i)鲍勃的身份密钥 ,(2)鲍勃的prekey签署 ,和(3)一组鲍勃的一次性prekeys ( , , ,…)。身份密钥需要上传到服务器后,而另一个键,如可以以后再上传新的一次性prekeys如果服务器越来越低。服务器将删除一次性prekey每次将其发送给另一个用户。(2)爱丽丝从服务器获取鲍勃的身份密钥,prekey签署prekey签名,可选一个一次性prekey。如果prekey签名的验证失败,该协议将终止。否则,爱丽丝和她的公钥生成一个短暂的密钥对和将使用prekey来计算几个DH键的目的提供相互的身份验证和向前保密(见细节(54)用于生成加密密钥( )。后计算 ,爱丽丝会删除她的短暂的私钥和DH输出保护保密。爱丽丝使用发送初始信息的关键鲍勃包含:(i)爱丽丝的身份的关键 ;(2)爱丽丝的短暂的关键 ;(3)标识符声明的鲍勃的prekeys爱丽丝使用;及(iv)最初的密文加密与一些AEAD加密方案(55)使用广告相关的数据和使用的加密密钥或者一些加密伪随机函数的输出键控 。爱丽丝的初始密文通常是作为第一个消息post-X3DH通信协议,如双棘轮协议的信号。(3)鲍勃接收和处理爱丽丝的初始信息。鲍勃将加载他身份的私钥和相对应的私钥(s)签署prekey和一次性prekey爱丽丝使用(54]。鲍勃重复相同的步骤和DH KDF计算得出自己的然后删除DH价值观,爱丽丝做的一样。后来,他试图解密最初的密文。解密之间唯一的区别是什么鲍勃和爱丽丝做在了她的一边。如果解密失败,鲍勃将删除协议中止,参与者需要重启协议(54]。如果解密成功,他得到了爱丽丝的信息加密,鲍勃的协议是完整的。他删除任何一次性prekey使用私有密钥的保密协议为了坚持前进。
的利益冲突
作者宣称没有利益冲突。