Signalprotokollen ( Signal Protocol , tidligere kendt som TextSecure Protocol ) er en kryptografisk protokol skabt af Open Whisper Systems for at give ende-til-ende- kryptering til taleopkald, videoopkald [1] og onlinemeddelelser . Protokollen blev udviklet af Open Whisper Systems i 2013 og blev først introduceret i open source - applikationen TextSecure , som senere blev slået sammen i Signal - applikationen . Adskillige applikationer med lukket kildekode, såsom WhatsApp , hævder at have implementeret denne protokol, som de siger krypterer samtalerne med "mere end en milliard mennesker verden over" [3] . Facebook Messenger hævder også at tilbyde denne protokol til yderligere "hemmelige samtaler", ligesom Google Allo for sin "inkognitotilstand".
Protokollen kombinerer Double Ratchet Algorithm , prekeys og Extended Diffie-Hellman Triple Key Exchange (3-DH) [4] og bruger Curve25519 , AES-256 og HMAC - SHA256 som primitiver [5] .
Udvikling af signalprotokol blev startet i 2013 af Trevor Perrin og Moxie Marlinspike , af Open Whisper Systems . Målet med denne organisation er at udvikle et brugervenligt sæt mobilapplikationer til sikker kommunikation. Organisationen blev grundlagt i 2013 og består af en lille gruppe udviklere finansieret af donationer og tilskud, samt et stort fællesskab af frivillige udviklere. Den første version af protokollen, TextSecure v1, var baseret på Off-the-Record Messaging (OTR) protokollen til instant messaging systemer [7] .
Den 24. februar 2014 introducerede Open Whisper Systems TextSecure v2 [8] protokollen , som blev overført til Axolotl Ratchet [9] algoritmen . Ideen om Axolotl Ratchet er baseret på den flygtige nøgleudveksling, der blev introduceret af OTR , og kombinerer den med en symmetrisk nøgleskralde, modelleret efter Silent Circle Instant Messaging Protocol (SCIMP) [10] . Dette var i stand til at implementere understøttelse af asynkron kommunikation ("offline messaging") som sin vigtigste nye funktion, samt øget robusthed mod skæv meddelelsesrækkefølge og gjorde det lettere at understøtte samtaler med flere deltagere [4] . Axolotl Ratchet blev opkaldt efter den truede padde axolotl som har en ekstraordinær evne til at regenerere tabte lemmer. Udviklerne kalder denne algoritme for selvhelbredende, da den automatisk deaktiverer en angribers adgang til almindelige tekster i efterfølgende beskeder, efter at sessionsnøglen er kompromitteret [10] .
Den tredje version af protokollen, TextSecure v3, introducerede nogle ændringer til de kryptografiske primitiver og wire-protokollen . I oktober 2014 offentliggjorde forskere ved Ruhr Universitetet i Bochum en analyse af TextSecure v3 [5] . Blandt andre resultater præsenterede de et ukendt nøgleudvekslingsangreb på protokollen, men generelt fandt de ud af, at den var sikker [11] .
I marts 2016 omdøbte udviklerne protokollen til Signal-protokollen. De omdøbte også Axolotl Ratchet Algorithm til Double Ratchet Algorithm for bedre at kunne skelne mellem algoritmen og den fulde protokol [12] fordi nogle brugte navnet Axolotl når de refererede til den fulde protokol [12] .
Fra oktober 2016 var signalprotokollen baseret på TextSecure v3-protokollen, men med yderligere kryptografiske ændringer . I oktober 2016 offentliggjorde forskere fra University of Oxford i Storbritannien, Australian University of Technology Queensland og Canadas McMaster University en formel analyse af protokollen . De konkluderede, at denne protokol er kryptografisk sikker .
Protokollen giver fortrolighed , integritet, autentificering , deltagerkonsistens, destinationsbekræftelse, videresendelseshemmelighed, post-kompromissikkerhed ( Post-Compromise Security , kendt som Future Secrecy), bevarelse af kausalitet, meddelelsesafkobling, beskedafvisning, afvisning af Det giver ikke anonymitet og kræver, at servere videresender beskeder og gemmer offentlige nøgleoplysninger [4] .
Signal-protokollen understøtter også ende-til-ende-krypterede gruppechat. Gruppechat-protokollen er en kombination af en parret dobbelt ratchet og multicast-kryptering. Ud over funktionerne i en-til-en-protokollen, giver gruppechat-protokollen deltagerkonsistens, lidelsestolerance, beskedmodstandsdygtighed , computational equity, trust equity, undergruppemeddelelser og sammentrækning og udvidelse af antallet af deltagere [4] .
Til godkendelse kan brugere manuelt sammenligne offentlige nøglefingeraftryk gennem en ekstern kanal. Dette giver brugerne mulighed for at verificere hinandens identiteter og undgå man-in-the-middle- angreb. En implementering kan også bruge en førstegangs-tillidsmekanisme til at underrette brugere, når en korrespondents nøgle er ændret [14] .
Signalprotokollen forhindrer ikke virksomheder i at gemme information om hvornår og med hvem brugere kommunikerer [14] [15] . Derfor kan der være forskel på, hvordan udbydere af beskedtjenester vælger at håndtere disse oplysninger. Signals privatlivspolitik siger, at modtager-id'er kun gemmes på Signals servere, så længe det er nødvendigt for at transmittere hver besked. I juni 2016 fortalte Moxie Marlinspike til The Intercept "Det tætteste stykke information til de metadata, som signalserveren gemmer, er sidste gang, hver bruger opretter forbindelse til serveren, og den information falder ned til en dag i stedet for en time, et minut ." og sekunder" [15] .
Open Whisper Systems introducerede først protokollen i deres TextSecure- applikation . De kombinerede senere TextSecure-appen med et krypteret taleopkald kaldet RedPhone og omdøbte det til Signal. RedPhone brugte ZRTP til at kryptere deres opkald. I marts 2017 skiftede Signal til et nyt opkaldssystem baseret på WebRTC [1] , som også introducerede muligheden for at foretage videoopkald [16] . Det nye signalopkaldssystem bruger Signal-protokollen til end-to-end- kryptering [1] .
I november 2014 annoncerede Open Whisper Systems et partnerskab med WhatsApp for at levere end-to-end-kryptering ved at inkorporere Signal-protokollen i hver WhatsApp -klientplatform [17] . Open Whisper Systems udtalte, at de allerede har inkluderet protokollen i den seneste WhatsApp -klient til Android , og at andre klienter, gruppebeskeder/ medier og nøglebekræftelse snart vil blive understøttet [18] . Den 5. april 2016 annoncerede WhatsApp og Open Whisper Systems , at de var færdige med at tilføje end-to-end-kryptering til "hver kommunikation" i WhatsApp, og at brugere nu kan verificere hinandens nøgler [19] [20] . I februar 2017 annoncerede WhatsApp en ny WhatsApp Status-funktion, der bruger Signal-protokollen til at sikre dets indhold [21] .
I september 2015 lancerede G Data Software en ny beskedapp kaldet Secure Chat, der bruger Signal [22] [23] protokollen .
I september 2016 lancerede Google en ny besked-app kaldet Allo , der har en valgfri inkognitotilstand, der bruger Signal-protokollen til end-to-end-kryptering [24] [25] .
I oktober 2016 udrullede Facebook en ekstra tilstand kaldet Secret Conversations i Facebook Messenger , som giver ende-til-ende kryptering ved hjælp af Signal [26] [27] [28] [29] protokollen .
I januar 2018 annoncerede Open Whisper Systems og Microsoft tilføjelsen af signalprotokolstøtte til en valgfri Skype -tilstand kaldet Private Conversations [30] [31] .
I februar 2020 blev den nye Session Messenger (tidligere Loki Messenger) frigivet, som er baseret på Signal-protokollen og understøtter end-to-end-kryptering. Erklæret decentralisering på blockchain og arbejde gennem løgrouting.
Signalprotokollen har påvirket andre kryptografiske protokoller. Den 3. maj 2016 udtalte Viber , at deres krypteringsprotokol er en brugerdefineret implementering, der bruger de samme tilgange som Signal Protocol [32] [33] . Den 9. maj 2016 udtalte udviklerne af Wire , at deres Proteus-krypteringsprotokol er baseret på Signal [34] [35] -protokollen .
Double Ratchet Algorithm , som blev introduceret som en del af signalprotokollen, er også blevet overtaget af andre protokoller. OMEMO er en udvidelse til den åbne XMPP-protokol , der blev introduceret til Conversations-meddelelsesapplikationen og godkendt af XMPP Standards Foundation (XSF) i december 2016 som XEP-0384 [36] . Matrix er en åben kommunikationsprotokol, der inkluderer Olm, et bibliotek, der giver valgfri end-to-end- kryptering på tværs af rum ved hjælp af en implementering af Double Ratchet Algorithm .
Open Whisper Systems vedligeholder følgende signalprotokolbiblioteker på GitHub :