Signal Protocol: Difference between revisions

Content deleted Content added
m top: rmv redundant "first" introduced
Tags: Mobile edit Mobile app edit Android app edit
Undid revision 1260315912 by Danny-m-thomas (talk) -- article is a draft
 
(7 intermediate revisions by 5 users not shown)
Line 4:
{{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
Line 58 ⟶ 60:
The [[Double Ratchet Algorithm]] that was introduced as part of the Signal Protocol has also been adopted by other protocols. [[OMEMO]] is an XMPP Extension Protocol (XEP) that was introduced in the [[Conversations (software)|Conversations]] messaging app and approved by the [[XMPP Standards Foundation]] (XSF) in December 2016 as XEP-0384.<ref name="OMEMO-XEP">{{cite web | author=Andreas Straub | title=XEP-0384: OMEMO Encryption | url=https://xmpp.org/extensions/xep-0384.html | date=7 December 2016 | access-date=28 April 2017 | work=XMPP Standards Foundation website | archive-date=25 February 2017 | archive-url=https://web.archive.org/web/20170225060620/https://xmpp.org/extensions/xep-0384.html | url-status=live }}</ref><ref name="Ermoshina-2016"/> [[Matrix (communication protocol)|Matrix]] is an open communications protocol that includes Olm, a library that provides optional end-to-end encryption on a room-by-room basis via a Double Ratchet Algorithm implementation.<ref name="Ermoshina-2016"/> The developers of [[Wire (software)|Wire]] have said that their app uses a custom implementation of the Double Ratchet Algorithm.<ref name="proteus-attribution">{{cite web|title=Add attribution|url=https://github.com/wireapp/proteus/blob/develop/src/internal/session.rs#L2|website=GitHub|publisher=Wire Swiss GmbH|date=9 May 2016|access-date=9 October 2016|archive-date=7 May 2017|archive-url=https://web.archive.org/web/20170507135204/https://github.com/wireapp/proteus/blob/develop/src/internal/session.rs#L2|url-status=live}}</ref><ref name="Wire Security Whitepaper">{{Cite web|url=https://wire-docs.wire.com/download/Wire+Security+Whitepaper.pdf|title=Wire Security Whitepaper|publisher=Wire Swiss GmbH|date=3 March 2016|access-date=7 February 2019|archive-date=10 September 2018|archive-url=https://web.archive.org/web/20180910220210/https://wire-docs.wire.com/download/Wire+Security+Whitepaper.pdf|url-status=live}}</ref><ref>{{cite web |last1=Lomas |first1=Natasha |title=Encrypted messaging app Wire adds usernames so you can limit what you share with contacts |url=https://techcrunch.com/2016/12/16/encrypted-messaging-app-wire-adds-usernames-so-you-can-limit-what-you-share-with-contacts/ |website=TechCrunch |publisher=Verizon Media |access-date=8 February 2019 |date=16 December 2016 |archive-date=9 February 2019 |archive-url=https://web.archive.org/web/20190209180036/https://techcrunch.com/2016/12/16/encrypted-messaging-app-wire-adds-usernames-so-you-can-limit-what-you-share-with-contacts/ |url-status=live }}</ref>
 
[[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/62MEF20210606070115/https://datatracker.ietf.org/doc/draft-ietf-mls-protocol/ |archive-date=56 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==
Line 67 ⟶ 69:
*[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|title=libsignal-protocol-typescript|author=Privacy Research, LLC|website=github.com|access-date=28 November 2020 |website=github.com}}</ref>
 
==See also==
Line 96 ⟶ 98:
[[Category:Application layer protocols]]
[[Category:Cryptographic protocols]]
[[Category:End-to-end encryption]]