Keybase, versleuteling voor de massa?

Dat er een behoefte bestaat aan de versleuteling van (persoonlijke) berichtenverkeer behoeft na de bekentenissen van Edward Snowden hopelijk geen uitleg meer. De uitvoering laat echter al jaren een hiaat vallen in de (menselijke) manier waarop deze versleuteling veilig en betrouwbaar opgezet kan worden. Het probleem zit hem intrinsiek in het gezamenlijk afstemmen van een gedeeld geheim waarmee de communicatie versleuteld moet worden. Een deel van dit probleem is technisch opgelost met de technologie die Public Key Cryptography heet.

Public Key Cryptography

Technisch is het veilig en betrouwbaar delen van een gedeeld geheim opgelost met Public Key Cryptography. PKC stelt ons in staat om zonder ontmoeting een geheim veilig met iemand te delen door een openbaar of publiek deel van onze persoonlijke sleutel met iemand anders te delen. Een boodschap kan met deze openbare sleutel versleuteld worden, waarna alleen de eigenaar van het persoonlijke stukje van deze sleutel het bericht weer kan openen. Andersom kan een ontvanger in het bezit van de openbare sleutel van iemand bewijsbaar controleren of een bericht ondertekend is door de bezitter van de geheime persoonlijke sleutel. Mooie techniek, maar voor de gemiddeld gebruiker moeilijk te begrijpen. Hiervoor heeft Phil Zimmerman al in 1991 een programma’tje geschreven.

PGP

Phil Zimmerman bedacht in 1991 PGP, een afkorting voor Pretty Good Privacy. Dit tooltje stelde de gemiddelde (technisch geschoolde) eindgebruiker in staat een sleutelbos samen te stellen met sleutels van bekenden en vrienden van bekenden. Met deze sleutels kon veilig over en weer gecommuniceerd worden en alles leek opgelost.

(Web of) Trust

Om PGP veilig te kunnen gebruiken is het nodig de sleutels van je vrienden grondig te controleren alvorens deze aan je sleutelbos te koppelen. Wie zegt dat de sleutel daadwerkelijk van je vriend is en niet van een of ander louche figuur die zich voordoet als je vriend en wel geinteresseerd is jullie geheime berichten? Bij beveiligde verbindingen met websites hebben we (al dan niet bewust) ons vertrouwen gelegd in de handen van de makers van de browser of het besturingssysteem. Chrome, Firefox en Internet Explorer hebben een beperkte set handtekeningen waarmee alle in omloop zijnde sleutels van websites gecontroleerd kunnen worden. PGP heeft dit niet en lost dit probleem op door elke sleutel een gemakkelijk te verifieren controle getal te geven. Spreek je iemand regelmatig, dan kun je dit controle getal in levende lijve controleren en daarna naar hartelust geheim communiceren. Zie je iemand minder, dan kun je haar bellen en als bijvoorbeeld de stem overeenkomt weer de controle uitvoeren (let op dat in dit laatste geval het vertrouwen in het feit dat alleen de bekende de telefoon opneemt bij het nummer dat je kent ook een belangrijke rol in het vertrouwen speelt). Maar wat te doen als de andere partij geen bekende is? Zou je de stem van een vriend vertrouwen die beweert dat deze onbekende een bekende van hem is? Dit is wat PGP de “web of trust” noemt. PGP stelt iedere gebruiker van een sleutel in de gelegenheid aan te geven hoe sterk deze sleutel vertrouwd wordt. Hierdoor kun je als onbekende een goed beeld krijgen van de betrouwbaarheid van een nieuwe sleutel. Een goed systeem voor wederom de gemiddelde technische eindgebruiker. Maar werkt dit ook voor iedereen?

Social media

Iedereen heeft wel eens iets met Social Media gedaan of er op z’n minst van gehoord. Als we lezen dat onze Minister President een opmerkelijke boodschap getweet heeft twijfelen we er niet aan dat hij (of in elk geval iemand die namens hem mag spreken) deze boodschap de wereld ingestuurd heeft. Een onderdeel hiervan is de service die Twitter ‘verified accounts’ noemt en ons vertrouwen in de beveiliging van Twitter zelf. Die is misschien niet waterdicht, maar sterk genoeg voor sommige vormen van communicatie.

Social trust

Die laatste zin is belangrijk om de toegevoegde waarde van Keybase te begrijpen. Als het ons niet lukt om PKC uit te leggen aan het niet-technische deel van onze bevolking kunnen we ons afvragen of er wel een gebruiksvriendelijke manier om versleutelde gegevens uit te wisselen bestaat. Aan de andere kant zien we dat ‘de gewone gebruiker’ lief en leed met vrienden en familie op Facebook en Twitter deelt. Hoe weet deze gebruiker dat deze bekenden hun bekenden zijn? Intuitief weten deze gebruikers deze vrienden te herkennen aan de foto’s en verhalen die ze delen. Van een deel van de verhalen waren ze misschien wel getuige en dus vormt de complete timeline van iemand een sluitend bewijs van iemands identiteit of anders gezegd: alleen de persoon met die identiteit zou zo’n complexe samenstelling van gebeurtenissen samen kunnen stellen die er toe leidt deze timeline als eigendom van deze persoon te herkennen. En het is precies hier waar Keybase om de hoek komt kijken.

Keybase

Als je accepteert dat de complexe samenstelling van een timeline een bewijs voor de identiteit van de schrijver is en je het platform voldoende vertouwt dat alleen de schrijver toegang heeft tot het geschrevene, dan kun je dit social media platform ook gaan gebruiken voor het leveren van bewijzen van sleutel eigenaarschap. Dit is wat Keybase voor ogen heeft. Keybase is geen nieuw versleutelings algoritme, onder water wordt gewoon PGP gebruikt, maar Keybase maakt het vertrouwen in sleutels makkelijker door de openbare sleutel te koppelen aan uitlatingen op social timelines.
Het idee is simpel: geef keybase je openbare sleutel, onderteken een speciaal bericht in een van je timelines met je geheime sleutel en stel keybase op de hoogte van de locatie van dit bericht (dmv bijvoorbeeld een link naar de betreffende tweet met het bewijs). Keybase controleert niet alleen dit bericht maar houdt ook bij met welk bericht je je openbare sleutel hebt bewezen in de verschillende sociale timelines en de afnemer van jouw publieke sleutel kan eigenhandig controleren of deze sleutel inderdaad bij je hoort! Je hoeft Keybase dus niet te vertrouwen voor het controleren van het bewijs, maar het maakt het wel makkelijker. Als je zeker weet dat alleen jouw vriend tweets kan posten op een bepaald twitter account (waarbij zoals gezegd er een impliciet vertrouwen gesteld moet worden in de technische bekwaamheid van Twitter om alleen jouw vriend toegang te geven tot zijn account) dan kun je er dus vrij zeker van zijn dat deze publieke sleutel bij hem hoort.

Slot

Is keybase de oplossing voor alle versleutelingproblemen? Nee, ik zou mijn bankgegevens niet delen met een bekende wiens sleutel ik alleen via Keybase heb verkregen, dan is een persoonlijke controle echt gerechtvaardigd. Maar voor een eerste poging “casual encryption” naar de massa te brengen denk ik dat ze goed op weg zijn!

https://keybase.io/mrvanes