Signal协议
Signal协议(英語:,以前称为 TextSecure 协议)是一种非互联的加密协议,可被用于为语音呼叫、视频呼叫[1]和即时消息会话提供端到端加密 。该协议由Open Whisper Systems于2013年开发,并首先在开源的TextSecure应用中被引入,后来其更新为Signal。几个闭源应用也声称实现了该协议,例如WhatsApp声称其用此协议加密了「全球十亿多人」的对话。[2]Facebook Messenger声称提供其提供Signal协议作为可选的加密通讯方式,Skype亦声称将此用于私人对话。
该协议结合了双棘轮算法、前置密钥和三次橢圓曲線迪菲-赫爾曼金鑰交換(3-DH)握手[3],并使用Curve25519、AES-256和HMAC-SHA256算法作为密码学原语。[4]
历史
Signal协议的开发由Trevor Perrin和馬克西·馬林史派克于2013年开始。该协议的第一个版本TextSecure v1基于不留记录即时通讯(OTR)系统。[5] [6]
2014年2月24日,Open Whisper Systems推出了TextSecure v2[7] ,其之后被迁移到 Axolotl Ratchet 算法中。[8] Axolotl Ratchet 的设计基于 OTR 引入的临时密钥交换。 [9] 这带来了对异步通信(离线消息)的支持。除了离线消息,其还具有更好的弹性,并且更容易支持与多个参与者的对话。[10]Axolotl Ratchet 是以极度濒危的水生动物墨西哥钝口螈命名 ,它具有非凡的自我修复能力。开发者以此寓意暗示该算法会在破坏会话密钥后自动使攻击者无法访问后续消息的明文。
该协议的第三个版本TextSecure v3对加密原语和有线协议进行了一些更改。2014年10月,波鸿鲁尔大学的研究人员发表了对TextSecure v3的分析。[4]在众多发现中,他们提出了对该协议的未知密钥共享攻击,但总体来说,他们发现它是安全的。[11]
在2016年3月,开发人员将协议重命名为Signal协议。他们还将Axolotl Ratchet重命名为双棘轮算法,以更好地区分棘轮协议和完整的通讯协议。[12] [13]
截至2016年10月,Signal协议仍是基于TextSecure v3,但做出了一些额外的密码学改进。2016年10月,来自英国牛津大学、澳大利亚昆士兰科技大学和加拿大麦马士达大学的研究者发布了一份针对此协议的分析,认为该协议是密码学可靠的。[14][15]
属性
该协议提供机密性、完整性、认证加密、参与者一致性、目标验证、前向保密性 、未来保密性、因果关系保留、消息不可链接性、消息否认、参与否认和异步通讯的特性。但它不提供匿名性保留,并且需要服务器来中继消息和存储公钥。 [16]
Signal协议还支持端到端加密的群聊。 群聊协议是通过成对双棘轮和多播加密来实现的。[16] 除了一对一协议提供的属性外,群聊协议还提供说话者一致性、乱序弹性、丢弃消息弹性、计算性平等,信任平等、子组消息传递以及可收缩和可扩展的成员资格支持。
元数据
Signal协议不会阻止公司保留有关用户何时以及与谁通信的资讯。[18] 因此,消息传递服务提供商选择如何处理此信息可能会存在差异。Signal的隐私权政策规定,Signal服务器仅保留接收者的标识符,以便传输消息。[19] 2016年6月,馬克西·馬林史派克告诉 The Intercept :「Signal服务器存储的与元数据最接近的信息是每个用户最后一次连接到服务器的时间,并且此信息的精度是天,而不是基于小时 ,分钟或者秒的。」[20]
2018年10月,Signal Messenger宣布已在Signal中实现 「密封发件人」功能,该功能通过隐藏发件人的标识符来进一步减少Signal服务器可访问的元数据量。[21] [22]发件人的身份会在每封邮件中传达给收件人,并使用服务器没有的密钥进行加密。如果发件人在收件人的联系人中或有权访问其配置文件,则将自动完成此操作。用户还可以启用一个选项,以接收来自非接触者和无权访问其信号配置文件的人的「密封发件人」消息。
使用情况
Open Whisper Systems首先在其TextSecure应用程序中引入了该协议。随后,他们将名为RedPhone的加密语音呼叫应用程序合并到TextSecure应用程序中,并将其重命名为 Signal。RedPhone使用ZRTP对其呼叫进行加密。 在2017年3月,Signal转换为基于WebRTC的新呼叫系统,该系统还引入了视频呼叫的功能。[23]Signal的新呼叫系统同样使用Signal Protocol进行端到端加密。 [1]
2014年11月,Open Whisper Systems宣布与WhatsApp建立合作关系,通过将Signal协议整合到每个 WhatsApp 客户端平台中来提供端到端加密。[24]Open Whisper Systems表示,他们已经将该协议整合到最新的 Android WhatsApp客户端中,不久之后将支持其他客户端,以及组消息和密钥验证特性的支持。[25] 2016年4月5日,WhatsApp和Open Whisper Systems宣布已完成为 WhatsApp 上的任何形式的通信添加端到端加密的功能,并且用户现在可以验证彼此的密钥。[26] [27] 2017年2月,WhatsApp宣布了一项新功能WhatsApp Status,该功能同样使用Signal协议来保护其内容。[28]
2015年9月,歌德塔推出了一个新的消息传递应用程序,称为「安全聊天」,它使用了Signal协议。[29] [30] 但 G Data 于 2018 年 5 月停止服务。 [31]
2016年9月,Google发布了一款名为Allo新通讯应用,该应用程序具有可选的隐身模式,该模式使用Signal协议进行端到端加密。 [32] [33] 2019年3月,谷歌终止了 Allo,转而支持其Android上的Messages应用程序。[34] [35]2020年11月起,Messages开始使用Signal协议进行端到端加密。[36][37][38]
2016年10月, Facebook在Facebook Messenger中部署了一种称为「加密对话」的可选模式,该模式使用Signal协议提供端到端加密。[39] [40] [41] [42]
2018年1月,Open Whisper Systems和微软宣布将Signal协议支持添加到称为私有对话的可选Skype模式中。[43] [44]
影响
Signal协议对其他密码协议也有影响。Viber在2016年5月表示,他们的加密协议是定制实现的,但它与Signal协议使用相同的概念。[45] [46] Forsta的开发人员表示,他们的应用程序使用Signal协议的定制实现。[47] [48]
Signal协议引入的双棘轮算法已被其他协议采用。OMEMO是由即时通信应用Conversations引入的XMPP扩展协议(英語:),并在2016年12月被XMPP标准基金会 (XSF)接受,代号为 XEP-0384 。[49][50]Matrix是一种开放通信协议,其中包括OLM,该协议是一个库,该库通过双棘轮算法实现在聊天室内提供可选的端到端加密。[50]Wire的开发人员表示,他们的应用程序使用了双棘轮算法的定制实现。[51][52][53]
实现
Signal Messenger在GitHub上以GPLv3许可发布并维护以下函式庫:
- libsignal-protocol-c (页面存档备份,存于):用C编写的函数库,具有Apple App Store其他许可权限。
- libsignal-protocol-java (页面存档备份,存于):用Java编写的函数库。
- libsignal-protocol-javascript (页面存档备份,存于):用JavaScript编写的函数库。
参见
- 即时通讯协议的比较
- 密码库比较
参考资料
- Marlinspike, Moxie. . Signal Blog. Open Whisper Systems. 14 February 2017 [7 April 2017]. (原始内容存档于2017-03-15).
- . Fortune. Time Inc. 2016 [22 September 2016]. (原始内容存档于2017-02-03).
- Unger et al. 2015,第241頁
- Frosch et al. 2016
- Cohn-Gordon et al. 2016
- . Open Whisper Systems. 2 March 2014 [28 October 2016]. (原始内容存档于7 January 2015).
- Donohue, Brian. . Threatpost. 24 February 2014 [14 July 2016]. (原始内容存档于2017-02-15).
- . Open Whisper Systems. 2 March 2014 [28 October 2016]. (原始内容存档于15 October 2014).
- Marlinspike, Moxie. . Signal Blog. Open Whisper Systems. 26 November 2013 [23 September 2016]. (原始内容存档于2017-03-24).
- Unger et al. 2015
- Pauli, Darren. . The Register. 3 November 2014 [4 November 2014]. (原始内容存档于2014-11-04).
- Cohn-Gordon et al. 2016
- Marlinspike, Moxie. . Signal Blog. Open Whisper Systems. 30 March 2016 [9 April 2016]. (原始内容存档于2016-12-28).
- Brook, Chris. . Threatpost. Kaspersky Lab. 10 November 2016 [11 November 2016]. (原始内容存档于2017-02-14).
- Cohn-Gordon et al. 2016
- Unger et al. 2015,第239頁
- Rottermanner et al. 2015,第5頁
- Rottermanner et al. 2015
- . Open Whisper Systems. n.d. [8 October 2016]. (原始内容存档于2017-04-29).
- Lee, Micah. . The Intercept. 22 June 2016 [8 October 2016]. (原始内容存档于2017-02-19).
- Dan Goodin. . Ars Technica. Oct 30, 2018 [2019-03-28]. (原始内容存档于2019-03-28).
- Lund, Joshua. . signal.org. Signal Messenger. 29 October 2018 [16 April 2019]. (原始内容存档于2018-11-24).
- Marlinspike, Moxie. . Signal Blog. Open Whisper Systems. 13 March 2017 [7 April 2017]. (原始内容存档于2017-03-15).
- Evans, Jon. . TechCrunch. 18 November 2014 [14 March 2016]. (原始内容存档于2014-11-18).
- Marlinspike, Moxie. . Open Whisper Systems. 18 November 2014 [14 March 2016]. (原始内容存档于2014-11-18).
- Metz, Cade. . Wired. 5 April 2016 [5 April 2016]. (原始内容存档于2016-04-05).
- Lomas, Natasha. . TechCrunch. 5 April 2016 [5 April 2016]. (原始内容存档于2016-04-06).
- . WhatsApp. Facebook. 20 February 2017 [2020-07-14]. (原始内容存档于2017-02-23).
- Seals, Tara. . Infosecurity Magazine. 17 September 2015 [14 July 2016]. (原始内容存档于2016-07-22).
- . G Data. [14 July 2016]. (原始内容存档于2017-05-07).
- . G DATA Software AG. 18 May 2018 [26 April 2019]. (原始内容存档于2019-04-26) (德语).
- Greenberg, Andy. . Wired. 18 May 2016 [18 May 2016]. (原始内容存档于2017-02-02).
- Gibbs, Samuel. . The Guardian. 21 September 2016 [21 September 2016]. (原始内容存档于2019-01-07).
- Porter, Jon. . The Verge. Vox Media. 12 March 2019 [26 April 2019]. (原始内容存档于2019-03-12).
- Klainer, Matt. . 5 December 2018 [26 April 2019]. (原始内容存档于2019-04-13).
- . Google. 2020-11-19 [2020-11-19]. (原始内容存档于2021-01-29) (英语).
- Bohn, Dieter. . The Verge. Vox Media, Inc. 2020-11-19 [2020-11-28]. (原始内容存档于2021-01-07).
- Omara, Emad. (PDF). gstatic.com. Google. November 2020 [2020-11-28]. (原始内容存档 (PDF)于2020-12-06).
- Isaac, Mike. . The New York Times. 8 July 2016 [12 July 2016]. (原始内容存档于2016-07-12).
- . Facebook. 8 July 2016 [11 January 2018]. (原始内容存档于2018-01-12).
- Greenberg, Andy. . Wired. 8 July 2016 [12 July 2016]. (原始内容存档于2016-07-11).
- Greenberg, Andy. . Wired. 4 October 2016 [5 October 2016]. (原始内容存档于2017-04-15).
- Newman, Lily Hay. . Wired. 11 January 2018 [13 January 2018]. (原始内容存档于2018-01-12).
- Lund, Joshua. . Signal Blog. Open Whisper Systems. 11 January 2018 [13 January 2018]. (原始内容存档于2020-02-02).
- . Viber. 3 May 2016 [8 July 2017]. (原始内容存档于11 July 2016).
- Eyal, Ofir. . Viber. 3 May 2016 [9 October 2016]. (原始内容存档于2016-10-05).
- u/tooker. . reddit. [2019-02-06]. (原始内容存档于2018-05-02) (英语).
- . GitHub. Forsta Inc. 2019-02-03 [2019-02-06]. (原始内容存档于2018-06-13) (英语).
- Andreas Straub. . XMPP Standards Foundation website. 2016-12-07 [2017-04-28]. (原始内容存档于25 February 2017).
- Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry. . Bagnoli, Franco; et al (编). . INSCI 2016. Lecture Notes in Computer Science 9934. Florence, Italy: Springer: 244–254. September 2016. ISBN 978-3-319-45982-0. doi:10.1007/978-3-319-45982-0_22.
- . GitHub. Wire Swiss GmbH. 2016-05-09 [2016-10-09]. (原始内容存档于2017-05-07).
- (PDF). Wire Swiss GmbH. 3 March 2016 [7 February 2019]. (原始内容存档 (PDF)于10 September 2018).
- Lomas, Natasha. . TechCrunch. Verizon Media. 2016-12-16 [8 February 2019]. (原始内容存档于2019-02-09).
外部链接
- Trevor Perrin在NorthSec 2015上的演讲TextSecure协议:现在和未来 (页面存档备份,存于) (视频)