Content deleted Content added
Anton.bersh (talk | contribs) Add {{About}} template |
m Replaced duplicate file. |
||
(43 intermediate revisions by 34 users not shown) | |||
Line 1:
{{About|encryption protocol|messenger implementing this protocol|Signal (
{{short description|Non-federated cryptographic protocol}}
{{Use dmy dates|date=November 2020}} {{Infobox networking protocol
| title = Signal Protocol
| image = Double Ratchet Algorithm.png
| caption = Signal Protocol full double ratchet step.
| is stack = no
| purpose = End-to-end encrypted communications
| developer = [[Signal
| date = <!-- {{Start date and age|yyyy|mm|dd}} -->
| based on = [[Off-the-
| influenced = [[OMEMO]], [[Matrix (
| osilayer = [[Application layer]]
}}
The '''Signal Protocol''' (formerly known as the '''TextSecure Protocol''') is a non-[[Federation (information technology)|federated]] [[cryptographic protocol]] that
The protocol combines the [[Double Ratchet
==History==
The development of the Signal Protocol
On 24 February 2014, Open Whisper Systems introduced TextSecure v2,<ref name="Donohue-2014">{{cite web |date=24 February 2014 |first=Brian |last=Donohue |url=https://threatpost.com/textsecure-sheds-sms-in-latest-version/104456 |title=TextSecure Sheds SMS in Latest Version |website=Threatpost |access-date=14 July 2016 |archive-date=15 February 2017 |archive-url=https://web.archive.org/web/20170215020451/https://threatpost.com/textsecure-sheds-sms-in-latest-version/104456/ |url-status=live }}</ref> which migrated to the Axolotl Ratchet.<ref name="Cohn-Gordon-2016-p2"/><ref>{{cite web|url=https://github.com/WhisperSystems/TextSecure/wiki/ProtocolV2|title=ProtocolV2|date=2 March 2014|publisher=Open Whisper Systems|via=[[GitHub]]|archive-url=https://web.archive.org/web/20141015215356/https://github.com/WhisperSystems/TextSecure/wiki/ProtocolV2|archive-date=15 October 2014|access-date=28 October 2016}}</ref> The design of the Axolotl Ratchet is based on the ephemeral key exchange that was introduced by OTR and combines it with a symmetric-key ratchet modeled after the [[Silent Circle Instant Messaging Protocol]] (SCIMP).<ref name="advanced-ratcheting">{{cite web|url=https://whispersystems.org/blog/advanced-ratcheting/|title=Advanced cryptographic ratcheting|last=Marlinspike|first=Moxie|date=26 November 2013|work=Signal Blog|publisher=[[Open Whisper Systems]]|access-date=23 September 2016|archive-date=24 March 2017|archive-url=https://web.archive.org/web/20170324070200/https://whispersystems.org/blog/advanced-ratcheting/|url-status=live}}</ref> It brought about support for [[asynchronous communication]] ("offline messages") as its major new feature, as well as better resilience with distorted order of messages and simpler support for conversations with multiple participants.<ref>{{harvnb|Unger|Dechand|Bonneau|Fahl|2015}}</ref> The Axolotl Ratchet was named after the critically endangered aquatic salamander [[Axolotl]], which has extraordinary self-healing capabilities. The developers refer to the algorithm as self-healing because it automatically disables an attacker from accessing the [[cleartext]] of later messages after having compromised a [[session key]].<ref name="advanced-ratcheting"/>
Line 31 ⟶ 34:
The protocol provides confidentiality, integrity, [[authenticated encryption|authentication]], participant consistency, destination validation, [[forward secrecy]], post-compromise security (aka future secrecy), causality preservation, message unlinkability, [[Deniable authentication|message repudiation]], participation repudiation, and asynchronicity.<ref name="Unger-2015-p239"/> It does not provide anonymity preservation and requires servers for the relaying of messages and storing of public key material.<ref name="Unger-2015-p239">{{harvnb|Unger|Dechand|Bonneau|Fahl|2015|p=239}}</ref>
The Signal Protocol also supports end-to-end encrypted group chats. The group chat protocol is a combination of a pairwise [[Double Ratchet Algorithm|double ratchet]] and [[multicast encryption]].<ref name="Unger-2015-p239"/> In addition to the properties provided by the one-to-one protocol, the group chat protocol provides speaker consistency, out-of-order resilience, dropped message resilience, computational equality, trust equality, subgroup messaging, as well as contractible and expandable membership.<ref name="Unger-2015-p239"/>
=== Authentication ===
Line 42 ⟶ 45:
==Usage==
Open Whisper Systems first introduced the protocol in application ''[[TextSecure]]''. They later merged an encrypted voice call application named ''[[RedPhone]]'' into TextSecure and renamed it [[Signal (messaging app)|''Signal'']].
In November 2014, Open Whisper Systems announced a partnership with [[WhatsApp]] to provide end-to-end encryption by incorporating the Signal Protocol into each WhatsApp client platform.<ref name="techcrunch1">{{cite web|url=https://techcrunch.com/2014/11/18/end-to-end-for-everyone/|title=WhatsApp Partners With Open Whisper Systems To End-To-End Encrypt Billions Of Messages A Day|last=Evans|first=Jon|date=18 November 2014|website=[[TechCrunch]]|access-date=14 March 2016|archive-date=18 November 2014|archive-url=https://web.archive.org/web/20141118220338/http://techcrunch.com/2014/11/18/end-to-end-for-everyone/|url-status=live}}</ref> Open Whisper Systems said that they had already incorporated the protocol into the latest WhatsApp client for [[Android (operating system)|Android]] and that support for other clients, group/media messages, and key verification would be coming soon after.<ref name="whatsapp">{{cite web|url=https://whispersystems.org/blog/whatsapp/|title=Open Whisper Systems partners with WhatsApp to provide end-to-end encryption|last=Marlinspike|first=Moxie|author-link=Moxie Marlinspike|date=18 November 2014|publisher=Open Whisper Systems|access-date=14 March 2016|archive-date=18 November 2014|archive-url=https://web.archive.org/web/20141118161936/https://www.whispersystems.org/blog/whatsapp/|url-status=live}}</ref> On April 5, 2016, WhatsApp and Open Whisper Systems announced that they had finished adding end-to-end encryption to "every form of communication" on WhatsApp, and that users could now verify each other's keys.<ref name="Metz-2016-04-05">{{cite
In September 2015, [[G Data CyberDefense|G Data Software]] launched a new messaging app called Secure Chat which used the Signal Protocol.<ref name="G Data">{{cite web|url=https://www.infosecurity-magazine.com/news/g-data-adds-encryption-for-secure/|title=G DATA Adds Encryption for Secure Mobile Chat|last=Seals|first=Tara|date=17 September 2015|work=Infosecurity Magazine|access-date=14 July 2016|archive-date=22 July 2016|archive-url=https://web.archive.org/web/20160722065627/http://www.infosecurity-magazine.com/news/g-data-adds-encryption-for-secure/|url-status=live}}</ref><ref>{{cite web|url=https://github.com/GDATASoftwareAG/SecureChat|title=SecureChat|publisher=G Data|via=[[GitHub]]|access-date=14 July 2016|archive-date=7 May 2017|archive-url=https://web.archive.org/web/20170507135213/https://github.com/GDATASoftwareAG/SecureChat|url-status=live}}</ref> G Data discontinued the service in May 2018.<ref>{{cite web |title=G DATA Secure Chat wird eingestellt |url=https://www.gdata.de/support/faq/consumer/g-data-secure-chat-wird-eingestellt |publisher=G DATA Software AG. |access-date=26 April 2019 |language=de |date=18 May 2018 |archive-date=26 April 2019 |archive-url=https://web.archive.org/web/20190426093244/https://www.gdata.de/support/faq/consumer/g-data-secure-chat-wird-eingestellt |url-status=live }}</ref>
In September 2016, [[Google]] launched a new messaging app called [[Google Allo|Allo]], which featured an optional Incognito Mode that used the Signal Protocol for end-to-end encryption.<ref name="Greenberg-2016-05-18">{{Cite
In January 2018, Open Whisper Systems and [[Microsoft]] announced the addition of Signal Protocol support to an optional [[Skype]] mode called Private Conversations.<ref name="Newman-2018-1-11">{{cite
==Influence==
The Signal Protocol has had an influence on other cryptographic protocols. In May 2016, [[Viber]] said that their encryption protocol is a custom implementation that "uses the same concepts" as the Signal Protocol.<ref>{{cite web|title=Viber Encryption Overview|archive-url=https://web.archive.org/web/20160711035838/http://www.viber.com/en/security-overview|url=https://www.viber.com/en/security-overview|publisher=Viber|date=3 May 2016|archive-date=11 July 2016|access-date=8 July 2017}}</ref><ref>{{cite web|last1=Eyal|first1=Ofir|title=Canada, Germany and Australia are getting e2e encryption|url=https://www.viber.com/en/blog/2016-05-03/canada-germany-and-australia-are-getting-e2e-encryption|publisher=Viber|access-date=9 October 2016|date=3 May 2016|archive-date=5 October 2016|archive-url=https://web.archive.org/web/20161005083000/http://www.viber.com/en/blog/2016-05-03/canada-germany-and-australia-are-getting-e2e-encryption|url-status=live}}</ref> Forsta's developers have said that their app uses a custom implementation of the Signal Protocol.<ref>{{Cite web|author=u/tooker|url=https://www.reddit.com/r/crypto/comments/8b1m6n/forsta_signal_based_messaging_platform_for/|title=r/crypto - Forsta - Signal based messaging platform for enterprises|website=reddit|date=9 April 2018 |language=en|access-date=2019-02-06|archive-date=2 May 2018|archive-url=https://web.archive.org/web/20180502045526/https://www.reddit.com/r/crypto/comments/8b1m6n/forsta_signal_based_messaging_platform_for/|url-status=live}}</ref><ref>{{Cite web|url=https://github.com/ForstaLabs/libsignal-node|title=ForstaLabs/libsignal-node|publisher=Forsta Inc.|website=GitHub|language=en|access-date=2019-02-06|date=2019-02-03|archive-date=13 June 2018|archive-url=https://web.archive.org/web/20180613054634/https://github.com/ForstaLabs/libsignal-node|url-status=live}}</ref>{{third-party inline|date=February 2019}}
The [[Double Ratchet
[[Messaging Layer Security]], an [[Internet Engineering Task Force|IETF]] proposal, uses ''Asynchronous ratcheting trees'' to efficiently improve upon security guarantees over Signal's ''Double Ratchet''.<ref>{{Cite web |title=The Messaging Layer Security (MLS) Protocol |archive-url=https://archive.today/20210606070115/https://datatracker.ietf.org/doc/draft-ietf-mls-protocol/ |archive-date=6 June 2021 |url=https://datatracker.ietf.org/doc/draft-ietf-mls-protocol/ |date=22 Dec 2020 |last1=Barnes |first1=Richard |last2=Beurdouche |first2=Benjamin |last3=Millican |first3=Jon |last4=Omara |first4=Emad |first5=Katriel |last5=Cohn-Gordon |first6=Raphael |last6=Robert |publisher=IETF}}</ref>
==Implementations==
Signal Messenger maintains
*[https://github.com/signalapp/libsignal-protocol-c libsignal-protocol-c]: A library written in [[C (programming language)|C]] with additional licensing permissions for Apple's [[App Store (iOS)|App Store]].▼
Signal maintained the following deprecated libraries:
▲*[https://github.com/signalapp/libsignal-protocol-c libsignal-protocol-c]: A library written in [[C (programming language)|C]] with additional licensing permissions for Apple's [[App Store (
*[https://github.com/signalapp/libsignal-protocol-java libsignal-protocol-java]: A library written in [[Java (programming language)|Java]].
There also exist alternative libraries written by third-parties in other languages, such as [[TypeScript]].<ref>{{cite web |title=libsignal-protocol-typescript |url=https://github.com/privacyresearchgroup/libsignal-protocol-typescript
==See also==
Line 74 ⟶ 80:
==Literature==
{{Refbegin|30em}}
* {{cite journal|last1=Cohn-Gordon|first1=Katriel|last2=Cremers|first2=Cas|last3=Dowling|first3=Benjamin|last4=Garratt|first4=Luke|last5=Stebila|first5=Douglas|title=A Formal Security Analysis of the Signal Messaging Protocol|url=https://eprint.iacr.org/2016/1013|website=Cryptology ePrint Archive|publisher=International Association for Cryptologic Research (IACR)|date=25 October 2016
* {{cite conference|last1=Ermoshina|first1=Ksenia|last2=Musiani|first2=Francesca|last3=Halpin|first3=Harry|title=Internet Science|editor=Bagnoli, Franco |display-editors=etal |pages=244–254|
* {{Cite conference|last1=Frosch |first1=Tilman |last2=Mainka |first2=Christian |last3=Bader |first3=Christoph |last4=Bergsma |first4=Florian |last5=Schwenk |first5=Jörg |last6=Holz |first6=Thorsten |title=2016 IEEE European Symposium on Security and Privacy (EuroS&P) |chapter=How Secure is TextSecure? |conference=2016 IEEE European Symposium on Security and Privacy (EuroS&P) |publisher= IEEE |location=Saarbrücken, Germany |date=March 2016 |pages=457–472 |doi= 10.1109/EuroSP.2016.41 |isbn= 978-1-5090-1752-2 |
* {{Cite conference|last1=Rottermanner|first1=Christoph|last2=Kieseberg|first2=Peter|last3=Huber|first3=Markus|last4=Schmiedecker|first4=Martin|last5=Schrittwieser|first5=Sebastian|title=Privacy and Data Protection in Smartphone Messengers|url=https://www.sba-research.org/wp-content/uploads/publications/paper_drafthp.pdf|conference=Proceedings of the 17th International Conference on Information Integration and Web-based Applications & Services (iiWAS2015)|publisher=ACM International Conference Proceedings Series|isbn=978-1-4503-3491-4|date=December 2015
* {{cite conference |first1=Nik |last1=Unger |first2=Sergej |last2=Dechand |first3=Joseph |last3=Bonneau |first4=Sascha |last4=Fahl |first5=Henning |last5=Perl |first6=Ian Avrum |last6=Goldberg |first7=Matthew |last7=Smith |title=2015 IEEE Symposium on Security and Privacy |chapter=SoK: Secure Messaging |publisher=IEEE Computer Society's Technical Committee on Security and Privacy |conference=Proceedings of the 2015 IEEE Symposium on Security and Privacy |year=2015 |pages=232–249 |doi=10.1109/SP.2015.22 |isbn=978-1-4673-6949-7 |chapter-url=http://ieee-security.org/TC/SP2015/papers-archived/6949a232.pdf
* {{cite conference|last1=Rösler|first1=Paul|last2=Mainka|first2=Christian|last3=Schwenk|first3=Jörg|date=2017|title=More is Less: On the End-to-End Security of Group Chats in Signal, WhatsApp, and Threema|url=https://eprint.iacr.org/2017/713|website=Cryptology ePrint Archive|publisher=International Association for Cryptologic Research (IACR)|access-date=26 June 2019|archive-date=3 February 2019|archive-url=https://web.archive.org/web/20190203132148/https://eprint.iacr.org/2017/713|url-status=live}}
{{Refend}}
==External links==
* {{Official}}
* [https://www.youtube.com/watch?v=7WnwSovjYMs "TextSecure Protocol: Present and Future"], talk by Trevor Perrin at NorthSec 2015 (video)
Line 89 ⟶ 94:
{{Cryptography navbox | public-key}}
{{Cryptographic software}}
{{Instant messaging}}
[[Category:Application layer protocols]]
[[Category:Cryptographic protocols]]
[[Category:End-to-end encryption]]
|