Signal Protocol ( Signal Protocol , dříve známý jako TextSecure Protocol ) je šifrovací protokol vytvořený společností Open Whisper Systems , který poskytuje end-to- end šifrování pro hlasové hovory, videohovory [1] a rychlé zprávy . Protokol byl vyvinut společností Open Whisper Systems v roce 2013 a byl poprvé představen v open source aplikaci TextSecure , která byla později sloučena do aplikace Signal . Několik uzavřených zdrojových aplikací, jako je WhatsApp , tvrdí, že implementovalo tento protokol, který podle nich šifruje konverzace „více než miliardy lidí na celém světě“ [3] . Facebook Messenger také tvrdí, že nabízí tento protokol pro další „tajné konverzace“, stejně jako Google Allo pro svůj „inkognito režim“.
Protokol kombinuje Double Ratchet Algorithm , prekeys a Extended Diffie-Hellman Triple Key Exchange (3-DH) [4] a používá Curve25519 , AES-256 a HMAC - SHA256 jako primitiva [5] .
Vývoj signálního protokolu zahájili v roce 2013 Trevor Perrin a Moxie Marlinspike , Open Whisper Systems . Cílem této organizace je vyvinout snadno použitelnou sadu mobilních aplikací pro bezpečnou komunikaci. Organizace byla založena v roce 2013 a skládá se z malé skupiny vývojářů financovaných z darů a grantů a také z velké komunity dobrovolných vývojářů. První verze protokolu, TextSecure v1, byla založena na protokolu Off-the-Record Messaging (OTR) pro systémy rychlého zasílání zpráv [7] .
Dne 24. února 2014 představila společnost Open Whisper Systems protokol TextSecure v2 [8] , který byl portován na algoritmus Axolotl Ratchet [9] . Myšlenka Axolotl Ratchet je založena na efemérní výměně klíčů, kterou zavedla OTR , a kombinuje ji se symetrickou klíčovou ráčnou, modelovanou podle protokolu Silent Circle Instant Messaging Protocol (SCIMP) [10] . To dokázalo implementovat podporu pro asynchronní komunikaci („offline messaging“) jako svou hlavní novou funkci, stejně jako zvýšenou odolnost proti zkreslenému pořadí zpráv a usnadnilo podporu konverzací s více účastníky [4] . Axolotl Ratchet byl pojmenován po ohroženém obojživelníkovi axolotlovi který má mimořádnou schopnost regenerovat ztracené končetiny. Vývojáři nazývají tento algoritmus samoopravným, protože po kompromitaci klíče relace automaticky znemožní útočníkovi přístup k prostým textům následujících zpráv [10] .
Třetí verze protokolu, TextSecure v3, zavedla některé změny do kryptografických primitiv a drátového protokolu . V říjnu 2014 zveřejnili vědci z Ruhr University Bochum analýzu TextSecure v3 [5] . Kromě jiných výsledků prezentovali neznámý útok výměny klíčů na protokol, ale celkově zjistili, že je bezpečný [11] .
V březnu 2016 vývojáři přejmenovali protokol na Signal Protocol. Také přejmenovali Axolotl Ratchet Algorithm na Double Ratchet Algorithm , aby lépe rozlišili mezi algoritmem a úplným protokolem [12] , protože někteří používali název Axolotl, když odkazovali na úplný protokol [12] .
Od října 2016 byl Signal Protocol založen na protokolu TextSecure v3, ale s dalšími kryptografickými změnami . V říjnu 2016 zveřejnili vědci z University of Oxford ve Velké Británii, Australian University of Technology Queensland a kanadské McMaster University formální analýzu protokolu . Došli k závěru, že tento protokol je kryptograficky bezpečný .
Protokol poskytuje důvěrnost , integritu, autentizaci , konzistenci účastníka, ověření cíle, dopředné utajení, zabezpečení po kompromitaci ( Post-Compromise Security , známé jako Future Secrecy), zachování kauzality, oddělení zpráv, odmítnutí zprávy, odmítnutí účasti Neposkytuje anonymitu a vyžaduje, aby servery předávaly zprávy a ukládaly informace o veřejném klíči [4] .
Protokol Signal také podporuje end-to-end šifrované skupinové chaty. Protokol skupinového chatu je kombinací párové dvojité ráčny a multicastového šifrování. Kromě funkcí poskytovaných protokolem one-to-one poskytuje protokol skupinového chatu konzistenci účastníků, toleranci vůči poruchám, odolnost zpráv , výpočetní spravedlnost, rovnost důvěry, zasílání zpráv podskupiny a zmenšení a rozšíření počtu účastníků [4] .
Pro ověření mohou uživatelé ručně porovnávat otisky veřejného klíče prostřednictvím externího kanálu. Uživatelé si tak mohou vzájemně ověřit identitu a vyhnout se útokům typu man-in-the-middle . Implementace může také používat mechanismus důvěry při prvním použití k upozornění uživatelů, když se změnil klíč korespondenta [14] .
Protokol Signal nebrání firmám ukládat informace o tom, kdy a s kým uživatelé komunikují [14] [15] . Proto mohou existovat rozdíly v tom, jak se poskytovatelé služeb zasílání zpráv rozhodnou nakládat s těmito informacemi. Zásady ochrany osobních údajů společnosti Signal stanoví, že ID příjemců jsou na serverech společnosti Signal uložena pouze po dobu nezbytně nutnou k přenosu každé zprávy. V červnu 2016 Moxie Marlinspike řekl The Intercept „Nejbližší informace k metadatům, které server Signal ukládá, je poslední, kdy se každý uživatel připojí k serveru, a tyto informace se zkrátí na den místo hodiny, minuty. ." a sekundy" [15] .
Open Whisper Systems poprvé představil protokol ve své aplikaci TextSecure . Později zkombinovali aplikaci TextSecure se šifrovaným hlasovým hovorem s názvem RedPhone a přejmenovali jej na Signal. RedPhone používal ZRTP k šifrování svých hovorů. V březnu 2017 přešel Signal na nový volací systém založený na WebRTC [1] , který také zavedl možnost uskutečňovat videohovory [16] . Nový volací systém Signal používá pro end-to- end šifrování protokol Signal [1] .
V listopadu 2014 společnost Open Whisper Systems oznámila partnerství s WhatsApp s cílem poskytnout end-to-end šifrování začleněním protokolu Signal do každé klientské platformy WhatsApp [17] . Společnost Open Whisper Systems uvedla, že protokol již zahrnula do nejnovějšího klienta WhatsApp pro Android a že brzy budou podporováni další klienti, skupinové zprávy/ média a ověřování klíčů [18] . 5. dubna 2016 WhatsApp a Open Whisper Systems oznámily, že dokončily přidávání end-to-end šifrování do „každé komunikace“ v WhatsApp a že uživatelé si nyní mohou vzájemně ověřovat své klíče [19] [20] . V únoru 2017 WhatsApp oznámil novou funkci WhatsApp Status, která k zabezpečení obsahu používá protokol Signal [21] .
V září 2015 společnost G Data Software spustila novou aplikaci pro zasílání zpráv s názvem Secure Chat, která používá protokol Signal [22] [23] .
V září 2016 Google spustil novou aplikaci pro zasílání zpráv s názvem Allo , která má volitelný režim inkognito, který používá protokol Signal pro šifrování end-to-end [24] [25] .
V říjnu 2016 Facebook spustil další režim nazvaný Secret Conversations in Facebook Messenger , který poskytuje end-to- end šifrování pomocí protokolu Signal [26] [27] [28] [29] .
V lednu 2018 společnosti Open Whisper Systems a Microsoft oznámily přidání podpory protokolu Signal do volitelného režimu Skype nazvaného Private Conversations [30] [31] .
V únoru 2020 byl vydán nový Session messenger (dříve Loki Messenger), který je založen na protokolu Signal a podporuje end-to-end šifrování. Deklarovaná decentralizace na blockchainu a práci prostřednictvím onion routingu.
Protokol Signal ovlivnil další kryptografické protokoly. 3. května 2016 Viber uvedl, že jejich šifrovací protokol je vlastní implementací, která používá stejné přístupy jako Signal Protocol [32] [33] . 9. května 2016 vývojáři Wire uvedli, že jejich šifrovací protokol Proteus je založen na protokolu Signal [34] [35] .
Algoritmus Double Ratchet , který byl zaveden jako součást protokolu Signal, byl také přijat jinými protokoly. OMEMO je rozšířením otevřeného protokolu XMPP, který byl zaveden do aplikace pro zasílání zpráv Conversations a schválen XMPP Standards Foundation (XSF) v prosinci 2016 jako XEP-0384 [36] . Matrix je otevřený komunikační protokol, který zahrnuje Olm, knihovnu, která poskytuje volitelné end-to- end šifrování napříč místnostmi pomocí implementace algoritmu Double Ratchet Algorithm .
Open Whisper Systems udržuje na GitHubu následující knihovny protokolů Signal :