30/10/2014, 22:55

Sikker chat med OTR og Jabber

I den seneste tid har der i nyhederne været en del snak om, hvordan man ikke skal kommunikere på nettet. Hvis man f.eks. vil dele billeder af sin nøgne krop med bestemte personer men ikke med hele internettet, skal man åbenbart ikke lægge dem på iCloud eller andre tilfældige services. Men hvis man nu alligevel gerne vil kommunikere med en anden person, uden at andre skal kunne kigge med, hvad gør man egentlig så? Der er mange løsninger på det problem, men i indlægget her kigger vi på en af de mest brugervenlige og velafprøvede af slagsen til tekst-chat: OTR, Off-the-Record Messaging.



Det lyder kedeligt. Hvorfor skal jeg læse det?


Okay, så det kan godt være, at du ikke har brug for at dele nøgenbilleder af dig selv, men hvis du er opvokset i samme generation som mig, vil du sikkert gerne kunne kommunikere med andre over nettet alligevel. Lad os hurtigt se på, hvordan vi normalt vil løse det problem, og hvordan det forholder sig med sikkerheden ved de forskellige løsninger.

En af de mest populære kommunikationsformer i de her dage er nok Facebooks chatfunktion. Når man chatter på Facebook, gør man det over en sikker https-forbindelse. I praksis betyder det, at fra en besked eller en fil forlader din computer til den rammer Facebook, er der ingen der kan kigge med; end ikke din internetudbyder. Facebook selv gemmer beskederne og kan følge med i, hvad der sker, så man er nødt til at stole på, at de kan holde sig fra at kigge en over skulderen. Kan de så det? Tjah, jeg vil personligt nødigt skulle stole på det. Facebook er om noget kendt for lemfældig omgang med brugernes data, og står for tiden over for en gigantisk retssag i EU af samme grund. Facebook har da også netop skabt sin formue på at kunne sælge ud af sine enorme mængder persondata til marketingsfirmaer.

En anden mulighed er det gode gamle e-post. Her støder man også på et par problemer: For det første sendes næsten al e-post som udgangspunkt ukrypteret, så medmindre ens e-post-udbyder har gjort noget særligt for at undgå det, betyder det, at alle der sidder på linjen mellem dig og brevets modtager kan lytte med. Det gør f.eks. din internetudbyder, og i løbet af sommeren opstod der indikationer på, at også militæret er med på en lytter (hvilket jo for den uindviede nok lyder lige så absurd, som det er). Endelig vil ukrypteret e-post også kunne læses af selve e-post-udbyderen, hvilket i manges tilfælde er Google. E-post er som almindelige breve egentlig omfattet af brevhemmelighed, og det vil derfor være ulovligt for Google m.fl. at kigge med, men ikke desto mindre har Google åbent indrømmet, at de gør lige netop det. Også selvom at flere danske politikere siger, at de ikke må.

Det sidste problem kan løses ved at kryptere ens e-post, og min pointe vil nu være det samme som i mit sidste indlæg: Kryptering virker. Hvis man krypterer sin kommunikation, vil det i teorien være umuligt (eller i hvert fald så svært, at det ikke kan svare sig) for en tredjepart at lytte med. For at kryptering skal virke, er det imidlertid nødvendigt, at begge parter i kommunikationen er med på den, og desværre er kryptering af f.eks. e-post endnu så ubrugervenligt, at det ikke har fundet bred popularitet i befolkningen.

I indlægget her vil vi i stedet kigge på et snedigt alternativ, OTR, der både er brugervenligt nok til, at de fleste computerbrugere vil kunne sætte det op, og sikkert nok til, at man kan stole på, at ingen følger med i ens kommunikation. Til den skeptiske kan jeg som en uddybelse af den sidste påstand nævne, at OTR var blandt det programmel, der muliggjorde det bredt omtalte NSA-læk fra sidste år.



OTR i en nøddeskal


OTR er ikke som f.eks. Facebook en hjemmeside, man kan kommunikere igennem, eller som det gode gamle MSN Messenger et program, man installerer på sin computer, men det er tættere på det sidste end det første. For at være en smule præcis er OTR det, man kalder en protokol: Et sæt regler, som andet programmel følger for at kunne snakke sammen. Reglerne er abstrakte nok til at de kan bygges direkte ovenpå eksisterende kommunikationsformer, og vi vil her interessere for det såkaldte Jabber/XMPP, bare for at fyre endnu flere forkortelser ind.

Man kan således også bruge mange forskellige programmer til formålet, og i indlægget her vil jeg fokusere på det, der hedder Pidgin, alene af den grund, at det er det, jeg selv bruger. Pidgin findes til både Mac OS X, Windows og Linux; til OS X anbefaler Pidginfolket dog selv, at man bruger Adium, som kan det samme, og som er endnu lettere at sætte op end Pidgin. Programmerne kan findes her:


Til Windows: Pidgin og OTR (tag "win32 installer")

Til OS X: Adium

Debian/Ubuntu: sudo apt-get install pidgin pidgin-otr


Man kan også bruge Jabber/OTR på mobilen, og her har jeg selv i et styk tid avendt ChatSecure, der findes til både iOS og Android. Det er ikke perfekt, men det virker. Derudover har jeg hørt godt om Conversations til Android. Lad mig ikke komme nærmere ind på det nu.



En ny bruger og vores første ven


Så, installer Pidgin/Adium og lad os se på, hvordan det virker. Billederne nedenfor er taget på min maskine, men er du på Windows burde dit se identisk ud. Adium følger samme princip men ser en lille smule anderledes ud; denne guide dækker alt, jeg ikke dækker nedenfor.

Det første, som vi får brug for, er en ny bruger, og lad mig bare indrømme det: Vi får brug for en tredjeparts server, men frygt ej, selv folkene bag denne server vil ikke kunne følge vores kommunikation. Selv bruger jeg jabber.dk til formålet, men der er mange andre muligheder. Tryk her for at lave en bruger på jabber.dk.

Når du første gang åbner Pidgin bliver du bedt om at tilknytte en bruger, og her kan vi så skrive det brugernavn og den kode, som vi lige har fundet på; bemærk at vi har valgt protokollen "XMPP". Tjek også under "avanceret", at Pidgin "kræver kryptering", hvilket sikrer, at ingen mellem os og jabber.dk kan følge med i, hvad der sker.





Med de indstillinger skulle det nu være muligt at slå kontoen til og at komme i gang med at chatte. Først har vi dog brug for nogen at chatte med. Når du har slået kontoen til, kan du i menuen i toppen vælge "Venner" og "Tilføj ven" og i eksemplet her tilføjer vi min gode ven hestehajs60@jabber.dk. Her er "hestehajs60" personens brugernavn og "jabber.dk" er den XMPP-server, som han har valgt at bruge. Hvis man i stedet vil snakke med mig, kan man så tilføje fuglede@jabber.dk.





Folk der, som mig, voksede op med ICQ og MSN kan nok genkende layoutet, og det fungerer da også på præcis samme måde som de gamle programmer.



OTR i Pidgin


I princippet kan vi nu bare gå i gang med at chatte, men gør vi det, vil manden bag jabber.dk (han hedder Per) og folkene bag hans server kunne følge med i snakken, og det vil vi jo gerne undgå, og det er her, OTR kommer ind i billedet. I Pidgin skal OTR slås til manuelt, hvilket man gør ved i menuen at vælge "Værktøjer" og "Udvidelsesmoduler". Her vælger man "Off-the-Record Messaging", trykker på "Konfigurér udvidelsesmodul" og trykker på knappen "Generate".





Hermed er OTR slået til, og vi har skabt den private og offentlige nøgle, som jeg snakkede om i mit sidste indlæg. Nok om det.



Chat!


NU er vi så klar til at chatte privat. Dobbeltklikker man på en ven i hovedmenuen får man et velkendt chatvindue. Hvis OTR er sat rigtigt op ved begge parter, står der sikkert "Not private" et sted i vinduet. Det indikerer, at chatten endnu ikke er sikker, men ved at trykke på "Not private"-knappen har man mulighed for at aktivere OTR; det kan også sættes op, så det sker automatisk.





I chatten til højre ovenfor er OTR aktiveret, chatten er krypteret, og ingen kan læse med. Men der er en lille hale: Indtil videre er al kommunikationen kørt igennem jabber.dk, og vi har ingen garanti for, at vi ikke i virkeligheden snakker med Per, og at han foregiver at være Hestehajs. Også det problem har en løsning, der er velkendt for enhver, der har set Jydekompagniet: Vi udveksler en hemmelighed som Per umuligt kan kende svaret på (i kryptografi kaldes problemet socialistmillionærproblemet).

I praksis foregår det ved, at vi trykker på "Unverified" og vælger "Authenticate buddy", hvorefter man præsenteres for et par forskellige muligheder for at udveksle hemmeligheder. I eksemplet har jeg valgt at spørge Hestehajs til, hvad "vores sang" er, og jeg angiver, at svaret er "sandstorm". Det er selvfølgelig et lidt dårligt eksempel, eftersom de flestes sang jo nok er Sandstorm, og man kunne nok finde på noget mere hemmeligt. Hvis Hestehajs nu svarer rigtigt på spørgsmålet ved vi, at vi snakker med den rigtige, og at end ikke Per kan lytte med. I Pidgin er det indikeret med teksten "Private".





Konklusion


Lad os se på, hvad vi har opnået: Med OTR har vi fået en garanti for, at vi kan sende tekst til hinanden, uden at andre kan læse indholdet, men lad os se på, hvad folk helt præcist kan se: Vores internetudbydere vil kunne se, at vi sender "et eller andet" og ca. "hvor meget" til Per uden at have nogen præcis idé om detaljerne. Per vil kunne se brugernavnene på dem, der kommunikerer ("fuglede@jabber.dk" f.eks.), og ca. hvor meget de kommunikerer, men han kan ikke se indholdet af samtalen. Optimalt set ville vi også kunne fjerne Per helt fra ligningen. Der eksisterer løsninger, der forsøger det, men de er ikke nær så brugervenlige som løsningen her. Under alle omstændigheder finder jeg det personligt mere betryggende, at det er en person om Per der kender den metadata, frem for at det er en virksomhed med økonomisk interesse i at følge samtalerne, der gør det.

Så, værre er det ikke. Nu giver det selvfølgelig sig selv, at hvis man vil have nogen at snakke med over OTR, er de nødt til selv at bruge det, så spred ordet og lad os komme i gang med at kryptere kommunikationen i Danmark!


Tags: sikkerhed krypto kommunikation

Kommentarer


Ingen kommentarer endnu.


Tilføj kommentar

For at undgå for meget spam på siden skal du logge ind for at tilfæje en kommentar. Det kan du gøre nedenfor, eller du kan lave en bruger, hvis du ikke har en allerede. Du kan også bruge dit fotologin her.


E-post-adresse:
Kodeord:  Glemt din kode?
Captcha:

[ Nyt billede ]
CAPTCHA Image