Signal協定(英語:Signal Protocol,以前稱為 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] 除了一對一協定提供的屬性外,群聊協定還提供說話者一致性、亂序彈性、丟棄訊息彈性、計算性平等,信任平等、子組訊息傳遞以及可收縮和可延伸的成員資格支援。
為了進行身分驗證,使用者可以通過外部信道手動比較公鑰指紋 。 [17] 這使使用者可以驗證彼此的身分並避免中間人攻擊。 一個實現還可以選擇採用對首次使用的信任,以便在使用者的金鑰更改時通知使用者。
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擴充協定(英語:XMPP Extension Protocol),並在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編寫的函式庫。
參見
- 即時通訊協定的比較
- 密碼庫比較
參考資料
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.