Door Sander van Voorst

Nieuwsredacteur

Personal privacy deel II

Tools om veilig te chatten

23-08-2016 • 06:00

121

Singlepage-opmaak

Cryptocat

cryptocatDe opensourcesoftware Cryptocat bestaat sinds 2011 en wordt ontwikkeld door de Libanees Nadim Kobeissi, die ook achter de MiniLock-software uit het eerste deel van deze serie zit. De software stelt gebruikers in staat om versleutelde berichten en bestanden tot 100MB uit te wisselen, inclusief geluidsbestanden. In juli van dit jaar verklaarde Kobeissi dat Cryptocat zich niet meer in de bètafase bevond. Dit maakte hij bekend tijdens de release van versie 3.2.00 van de software.

De ontwikkeling van Cryptocat ging niet altijd even gemakkelijk. In 2013 vond beveiligingsonderzoeker Steve Thomas een kritieke fout in de software, waardoor het mogelijk was om groepsgesprekken te ontsleutelen. Cryptocat was destijds nog een webapplicatie en zou later als browserextensie beschikbaar komen. In het jaar daarop voerde Least Authority een audit van de code uit, waarbij het enkele gebreken vaststelde. Ook een aparte audit van de iOS-app door iSecPartners bracht enkele tekortkomingen aan het licht, die in latere releases door de ontwikkelaars zijn opgepakt. In 2014 werd Cryptocat in een Duitse test en door de Amerikaanse organisatie EFF als zeer goed beoordeeld.

Nadat de ontwikkeling enige tijd had stilgelegen, kondigde Kobeissi in februari van dit jaar aan dat hij Cryptocat uit de Chrome-winkel zou verwijderen en dat hij de applicatie compleet opnieuw wilde opbouwen. Het lukte hem om dit voor het einde van maart voor elkaar te krijgen, waarna er bijna dagelijks updates voor de software verschenen.

Op het gebied van beveiliging gaat Cryptocat ervan uit dat een mogelijke aanvaller controle heeft over het netwerk dat voor de communicatie wordt gebruikt. Daarnaast wordt aangenomen dat een kwaadwillende op een gegeven moment in het bezit kan komen van de identiteitssleutels van een gebruiker. De applicatie is gebouwd om met deze risico’s om te gaan en stelt zich een aantal doelen om dit te bereiken. Zo kan een bericht alleen door de verzender en de ontvanger ontsleuteld worden. De applicatie maakt daarom gebruik van end-to-end-encryptie aan de hand van een protocol dat op het Double Ratchet-algoritme is gebaseerd. Dit vormt bijvoorbeeld ook de basis voor het Signal-protocol, dat gebruikt wordt in WhatsApp en Signal. Daarnaast is de open standaard Omemo toegepast om onder andere gesprekken tussen verschillende gebruikers mogelijk te maken. Alle berichten worden verstuurd via een centrale Cryptocat-server, waarbij de communicatie verloopt via xmpp, oftewel Jabber, met tls.

cryptocat interfaceAuthenticatie speelt daarbij een belangrijke rol. Daarom controleert Cryptocat via certificate pinning of het juiste certificaat aanwezig is voordat er een verbinding met de server wordt opgebouwd. Daarnaast maakt de software gebruik van geauthenticeerde installatiebestanden en ondertekende updates, waarmee de herkomst gecontroleerd kan worden.

Ook voor gebruikers onderling is authenticatie mogelijk. Bij een versleutelde chat is het immers van groot belang om er zeker van te zijn dat de gesprekspartner daadwerkelijk degene is die hij pretendeert te zijn. In het geval van Cryptocat is ervoor gekozen dit via device authentication te laten verlopen, waarbij een fingerprint van een apparaat wordt aangemaakt. Stel dat een vriend Cryptocat op zijn computer gebruikt, dan is het mogelijk om deze persoon in het echt te ontmoeten en de fingerprint van dat apparaat uit te wisselen. Het kan ook op een andere manier, maar een daadwerkelijke ontmoeting is de veiligste manier om de identiteit van de gesprekspartner vast te stellen. Voor alle toekomstige gesprekken kan er vervolgens van uit worden gegaan dat de communicatie in ieder geval via de computer van die vriend verloopt. Dat sluit echter niet uit dat het apparaat door iemand anders wordt gebruikt. WhatsApp maakt gebruik van een soortgelijke methode, waarbij ook een fingerprint aan de hand van een qr-code geverifieerd kan worden.

Boven op de zojuist genoemde eigenschappen implementeert Cryptocat forward secrecy en future secrecy. Dit betekent respectievelijk dat een mogelijke aanvaller geen in het verleden verzonden berichten kan ontsleutelen met een onderschepte sleutel en dat ook geen decryptie van opeenvolgende berichten mogelijk is. Op dit moment is de applicatie beschikbaar voor Windows, OS X en Linux.

Het is jammer dat er geen mobiele versies van Cryptocat zijn, maar de software maakt een solide indruk. Er zijn regelmatig updates en de ontwikkelaar heeft in de loop van de jaren ervaring kunnen opdoen in het ontwikkelen van veilige software. Een groot voordeel van Cryptocat zouden de uitgevoerde audits zijn, ware het niet dat Kobeissi begin 2016 de volledige code opnieuw heeft geschreven. In een e-mail aan Tweakers bevestigt hij dat alle code opnieuw is geschreven en dat geen enkele regel van de oude code is hergebruikt. Er zou wel een interne audit zijn uitgevoerd, maar nog niet door een externe partij. Kobeissi laat weten dat hij geïnteresseerden graag uitnodigt een audit uit te voeren. Hierdoor is het maar de vraag of de software daadwerkelijk veilig is. Kobeissi zegt daarnaast dat er geen mobiele versies van Cryptocat gepland zijn.