Hvis du står overfor at skulle lave din egen app, der krypterer chat eller et andet computerprogram, der sikrer samtalerne via kryptering, er det mere sikkert at benytte en afprøvet, state-of-the-art hyldevare end at begynde at kode sin egen kryptering.
Hjemmelavet kryptering anses med andre ord af mange eksperter for at være mere tilbøjelig til fejl, og er sandsynligvis ikke blevet testet af så mange andre forskere.
Det er kendt viden inden for kryptering, men det blev også bekræftet, da Jakob Bjerre Jakobsen sidste tirsdag offentliggjorde sit kandidatspeciale https://eprint.iacr.org/2015/1177, som han netop er blevet færdig med i efteråret på Institut for Datalogi på Aarhus Universitet.
Specialet tager udgangspunkt i en populær messaging-app, der hedder Telegram, der ikke er så udbredt i Danmark, men som svarer til WhatsApp. Jakob Bjerre Jakobsen var selv bruger af app’en og havde hørt rygter om, at Telegram havde skrevet deres egen krypto-maskine på trods af, at alle eksperter siger, at der skal man aldrig gøre. Han tænkte, at det var oplagt at undersøge om der var hold i den modstand mod at lave noget fra bunden.
App’en, der både findes til Android, IOS og til en computer, har en hemmelig chat-funktion, der gør det muligt at bruge end-to-end kryptering i meddelelser, hvilket betyder, at det kun er modtagerne, der kan læse beskederne. Jakob Bjerre Jakobsen fandt ud af, at Telegrams kryptering teoretisk kan være modtagelig overfor angreb.
Han finder frem til Telegrams egne beskrivelser på deres hjemmeside, og kan se, at de bruger mindre kendte og forældede primitiver, der er de grundlæggende bestanddele af deres krypterings-protokol. Telegram redegør selv for, at de bruger en gammel hash-funktion, som egentlig anses for at være usikker i dag. Men de siger, at den svaghed ikke rører dem.
“Det hele ser fint ud i deres beskrivelse på deres hjemmeside. Men da jeg downloader kildekoden til deres app, der er open source, så får jeg mulighed for at køre koden igennem på min telefon, og så kan jeg se, at der er en lille uoverensstemmelse mellem beskrivelsen og den egentlige implementation af kildekoden,” siger han.
Grundlæggende handler det om, at en besked skal have en vis længde i en blok og hvis der mangler noget, så fylder man det sidste op med tilfældig data.
“Der er en mindre uoverensstemmelse i forklaringen af tjeksum af den sidste blok. Tjeksummen af det tilfældige data kunne godt og burde blive verificeret, men de undlader at gøre det, hvilket åbner for de fundne angreb. Det betyder, at man kan bare udskifte eller tilføje vilkårligt mange blokke med tilfældig data og så bede den om at dekryptere det og dermed kan man få den originale besked retur,” forklarer han.
Resultaterne gav hurtig genklang på Twitter og sites som Reddit https://www.reddit.com/r/crypto/comments/3walb1/a_practical_cryptanalysis_of_the_telegram/
, Hackernews news.ycombinator.com/item og Motherboard.vice.com
http://motherboard.vice.com/read/why-you-dont-roll-your-own-crypto. På sidstnævnte skriver privacy-forskeren Runa Sandvik:“At spørge sig selv, hvorfor man ikke skal rulle sin egen kryptering ud svarer til at spørge sig selv om, hvorfor man ikke skal konstruere sin egen flymotor. Svaret er i begge tilfælde, at der allerede findes gennemprøvede og sikre løsninger. Krypto er hårdt og jeg vil hellere stole på kryptering, der er blevet undersøgt og debatteret end på kryptering, der ikke har fået noget opmærksomhed.”
Jakob Bjerre Jakobsen er enig og mener, at Telegram skulle have brugt en anerkendt løsning, som man kan bevise er sikker, i stedet for at genopfinde den dybe tallerken.
“Telegrams officielle begrundelse for at lave deres egen protokol, er at den skal køre hurtig på mobiltelefoner. Men de har brugt en gammel hash-funktion fra begyndelsen af 1990’erne, som der findes angreb mod. De kunne lige så godt have brugt et nyere alternativ,” siger han.
Han kan se, at mange har skrevet at Telegram er helt brudt og at man ikke skal bruge den længere. Det er han dog ikke enig i.
“Man kan jo ikke læse beskederne, så på den måde er det jo ikke uændret, men sikkerhedshullet kan måske være en byggesten, som nogen kan bygge videre på, så man i den sidste ende kan læse beskederne. Det kan man ikke afvise.”