Denna artikel riktar sig först och främst till teknikfantaster som är kritiska till Signal, men den kan även vara av intresse för en bredare publik som har intresse av säker och smidig kommunikation.
Så, vad är grejen med Signal?
Varför använder folk denna centraliserade applikation, trots dess skavanker? Det tänkte jag försöka förklara i denna text.
STF. Signal Technology Foundation, den organisation som utvecklar och förvaltar kommunikationsapplikationen Signal.
E2EE. ”End-to-end encryption”, det vill säga data som är krypterat ”från ände till ände”, utan möjlighet till övervakning. För mer information, se gärna Wikipedia om E2EE samt artikeln About data encryption från Indiana University.
”CIA”. När det gäller informationssäkerhet talar man ofta om den så kallade CIA-triaden. Detta begrepp står för Confidentiality, Integrity samt Availabaility – det vill säga konfidentialitet, integritet och tillgänglighet. För mer information om detta begrepp så har Sydarkivera en bra förklaring på sin wiki.
Federering. Alternativ till centraliserade system. Se definition hos IT-ord, samt relaterad Wikipedia-artikel.
Låt oss börja med att räkna upp några av Signals nackdelar:
Låt oss nu fortsätta med att räkna upp några av de problem Signal försöker lösa:
Säker kommunikation – även för extremt utsatta personer. Det kan till exempel handla om en dissident i Ryssland eller Saudiarabien, där röjande av konfidentialitet kan leda till fängelse, tortyr eller avrättning.
Signal ska vara ett alternativ för massorna. Likväl som för dissidenten ska Signal vara ett alternativ för personer som bara vill hålla kontakten med sina vänner och släktingar, dela recept och kattbilder.
Rimliga avvägningar av säkerhet kontra användbarhet (UX). Signals approach är att i första hand hålla säkerheten (konfidentialitet, integritet) på en mycket hög nivå – och samtidigt, steg för steg sedan man släppte mjukvaran för allmänt bruk, försöka att få in så många smidiga funktioner man kan för att kunna konkurrera med andra meddelandesystem på marknaden, så som Messenger, WhatsApp eller Telegram.
För att erbjuda säkerhet i världsklass har programmerarna bakom Signal tagit fram ett eget protokoll. Andra kan beskriva protokollet bättre än vad jag kan – om man är nyfiken på de kryptografiska detaljerna så är troligen Wikipedia en god utgångspunkt. Se artikeln Signal Protocol.
För att hålla det kort och överskådligt kan vi nöja oss med att konstatera att kommunikationen i Signal är krypterad från ände till ände, det vill säga E2EE. Detta är ett absolut måste givet problembilden jag nämner ovan.
Det man inte får missa, givet hotbilden, är att även röjande av metadata kan få katastrofala konsekvenser. För en auktoritär regim kan din kontaktlista vara minst lika intressant som själva innehållet i dina meddelanden. Därför har Signal valt att över huvud taget inte lagra din kontaktlista på sina servrar.
Det avsevärt bästa sättet att inte röja känsliga uppgifter är att inte lagra känsliga uppgifter. Det är också därför som man har gjort designvalen att använda telefonnummer som identitet och kräva att användaren har en smartphone.
Men hur blir det då för personer som inte använder en smartphone? Ja, då blir det tyvärr mycket krångligt att använda Signal. Inte omöjligt, då inofficiella alternativa metoder finns, men för majoriteten av användarna blir det i praktiken omöjligt.
Detta är medvetna designval som Signals upphovsmän har gjort – på gott och ont. Givet den problembild och de mål jag beskriver ovan tycker jag personligen att det är rimliga avvägningar för att kunna sprida ett oerhört säkert och samtidigt användbart system till så stor användarbas som möjligt.
Låt oss nu tala om centraliseringsfrågan. Varför tvingas man att använda Signals servrar? Varför får man inte köra en egen Signal-server i garderoben?
Jag menar att det finns flera orsaker till detta, som även de är starkt kopplade till problemställningen ovan.
Moxie Marlinspike har skrivit en mycket intressant och tänkvärd essä om detta. Den heter Reflections: The ecosystem is moving och jag kan varmt rekommendera den.
Men låt oss gå igenom några av aspekterna man har vägt in.
Det användaren främst förlorar på centralisering är möjligheten till federering och autonomi. Vad vinner hon?
Nya, användbara funktioner i Signal kan väldigt snabbt spridas till hela användarbasen. Ingen användare behöver vänta på att en administratör ska uppgradera någon server – detta sköts av STF som administrerar servrarna ifråga. Detta gäller inte minst för säkerhetsuppdateringar. Ingen mjukvara är perfekt – i stort sett all mjukvara innehåller oupptäckta säkerhetshål. Givet hotbilden ovan är det en mycket stor fördel att säkerhetshål kan täppas till (”patchas”) utan dröjsmål.
Eftersom Signal levereras som ett sammanhållet system är det lätt även för en novis att komma igång. I princip det enda hon behöver göra är att gå till telefonens appbibliotek och installera Signal-appen. Till skillnad från ett federerat system behöver man inte välja mellan olika leverantörer. Tack vare att Signal använder telefonnummer som identitet kommer användaren direkt att kunna se vilka av hennes vänner som finns på Signal-nätverket. Sen är det bara att börja chatta.
Personligen tycker jag att detta förfarande är väldigt smart, särskilt med tanke på målet att nå en så stor användarbas som möjligt. Nätverkseffekten är annars ett mycket klurigt problem för den som vill bygga nya kommunikationssystem.
Vad förlorar då användaren när hon inte tillåts att köra sin egen server? Det tål att tänkas på. Och svaren beror nog lite på hur man väljer att betrakta Signal-systemet. Vi kanske ska ställa oss denna fråga: Vilken roll har servrarna i Signal?
Jag menar att vi bör betrakta dem som medel för att nå ett mål. Låt oss ta ett exempel: Ponera att Alice vill skicka en söt kattbild till Bob. Hade de bott grannar hade hon kunnat skriva ut bilden på sin färgskrivare och knalla över till Bob för att överlämna den. Men de kanske inte bor i samma stad och Alice vill inte invänta postgången. Då är Internet ett mycket smidigt alternativ.
Visst är det ofrånkomligen så att Internet rent konkret utgörs av en stor mängd routrar, switchar, knutpunkter och servrar av alla möjliga slag. Men låt oss komma ihåg målet här: Alice vill att kattbilden ska kopieras från hennes smartphone över till Bobs smartphone. Här kan man därför välja att betrakta alla dessa routrar, switchar, knutpunkter och servrar som rena implementationsdetaljer.
Vad hade Alice vunnit om hon hade haft möjligheten att köra sin egen Signal-server i garderoben? Hade hon verkligen vunnit så mycket på det? Det går ju lika bra att låta kattbilden passera via Signals servrar. Resultatet blir detsamma: Bob får en bild på en söt katt, vilket var målet med konversationen. Detta utan att informationens konfidentialitet eller integritet äventyras.
Tillåt mig påminna läsaren att vi talar om renodlad E2EE här. De servrar som STF driver tillför inget förädlingsvärde i sig – det är appen på användarens telefon som är själva grejen. Servrarna är i denna aspekt bara en mekanism för att Alice ska slippa ta tåget till Bob för att överlämna kattbilden.
Det är stor skillnad om man jämför med vissa andra system på marknaden. Till exempel Google Workspace. I Workspace är din data inte E2EE – och då spelar det plöstligt en väldigt stor roll vem som kör servern. Lägger du in känslig information i Workspace, då finns det alltid en risk att operatören (i detta fall Alphabet Inc) läser och missbrukar informationen. Sen tror jag inte att Alphabet gör det i någon större utsträckning, men risken finns alltid. En skillnad med Workspace är dock att servrarna där tillför ett förädlingsvärde. Ett sådant värde är datalagring. Om Alice dator kraschar så finns ändå hennes dokument lagrade på Googles servrar. I Signal har man medvetet valt att inte göra så, på grund av de säkerhetsmål man har ställt upp.
Återigen vill jag poängtera att flera av de egenheter och begränsningar som finns i Signal finns där av en anledning. Det handlar inte om slarv eller okunskap från upphovsmännens sida – det handlar om att balansera säkerhet mot användbarhet. Och säkerheten måste alltid gå i första hand i detta sammanhang.
Signal är idag det bästa systemet för säker kommunikation för privatpersoner. Jag rekommenderar varmt denna app till alla som har en smartphone.
A:et i CIA-triaden står för Availability, eller tillgänglighet.
Så här skriver förbundet Sydarkivera på sin wiki: ”Tillgänglighet innebär att informationstillgångarna ska kunna utnyttjas i förväntad utsträckning och inom önskad tid.” Detta kan gälla både för kattbilder samt information om en demonstration mot en förtryckande regim.
Kom ihåg: Det finns ingen större mening att nå full pott på konfidentialitet och integritet om tillgängligheten är låg.
På liknande tema har Thomas Ptacek skrivit två essäer som jag gladeligen rekommenderar: Stop Using Encrypted Email samt The PGP Problem.
I mitten av april 2022 hade jag äran att medverka i avsnitt #468 av den eminenta podcasten Kodsnack, tillsammans med Svante Richter och Fredrik Björeman. Där snackar vi Signal, Matrix, XMPP, etc, med avstamp i denna essä. Lyssna gärna! Om jag får säga det själv blev det en riktigt bra diskussion.
Author: Carl Winbäck
Published: 2022-04-09
Last modified: 2022-04-30