De fleste mobilapper krypterer data, men knapt noen gjør det helt slik det er anbefalt. Det viser en undersøkelse gjort av en gruppe forskere ved Columbia University i New York. Undersøkelsen er også omtalt av Zdnet.
Forskerne har utviklet og tatt i bruk et nytt åpen kildekode-basert verktøy, kalt Crylogger, som kan detektere kryptografisk feilanvendelse. Detekteringen gjøres dynamisk, altså under kjøringen av appene, ved å studere bruk av et utvalg kryptorelaterte Java-funksjoner og parameterne som oppgis til funksjonene.
De fleste utviklere bruker krypteringsbiblioteker til å utføre krypteringen. Ved å sende klarteksten og nøkkelen til biblioteket, får man den krypterte chifferteksten tilbake. Men som det forklares i videoen nedenfor, er det ofte ikke fullt så enkelt, for funksjonene tar også en rekke andre parametere som utviklerne må forstå og bruke.
Nesten alle hadde svakheter
De fire forskerne har brukt verktøyet til å undersøke bruken av kryptografi i de mest populære appene i 33 ulike kategorier i Google Play Store, til sammen 1780 apper. I alt ble det undersøkt om appene overholder 26 grunnleggende, kryptografiske regler, som anbefales av NIST og IETF.
Den ene av reglene, om at det ikke må brukes en usikker slumptallgenerator (PRNG – Pseudorandom Number Generator) – for eksempel java.util.Random, ble ifølge undersøkelsen med Crylogger-verktøyet brutt av 1775 av de 1780 appene. Dette forteller at reglene i liten grad følges til punkt og prikke av noen, selv de aller største app-leverandørene. Ingen av appene som har blitt undersøkt, er navngitt.
Det er dessuten 1764 apper som ikke overholder regelen om at det ikke må brukes hash-algoritmer som har blitt knekket (regel 1), inkludert SHA1, MD2 og MD5.
1076 apper bryter regelen om at operasjonsmodusen CBC (Cipher Block Chaining) ikke må brukes (i klient/server-scenarioer).
Blant de øvrige 23 reglene er det ingen som brytes av mer enn 46 prosent av appene. I de verste tilfellene var 18 regler blitt brutt.
Ikke alle feilene skyldes app-utviklerne selv. De kan like gjerne være i tredjepartsbiblioteker som utviklerne har tatt i bruk.
Falske positiver?
Forskerne har også sjekket kvaliteten på resultatene fra Crylogger, ved hjelp av omvendt konstruksjon og kodeanalyse av et utvalg av de testede appene.
I teorien skal man kunne unngå falske positiver når det benyttes dynamisk analyse, men forskerne skriver i rapporten at det er vanskelig å skille mellom de kritiske delene av applikasjonen, som skal overholde reglene, fra de mindre kritiske delene hvor dataene ikke er sensitive.
Dårlig respons fra utviklerne
Forskerne kontaktet utviklerne av 306 av appene og bibliotekene hvor det ble funnet svakheter i bruken av kryptografi. Bare 18 app-utviklere svarte på den første henvendelsen, og bare åtte fortsatte å komme med feedback om funnene til forskerne. Blant de seks utviklere av populære Android-biblioteker som ble kontaktet, var det bare to som svarte.
Forskerne har bare undersøkt Android-apper. Det er uklart om det er noen grunn til å tro at forholdene er noe bedre blant apper til IOS eller annen programvare generelt.
Forskningen har blitt delvis støttet av DARPA, Bloomberg og National Science Foundation. Appene som ble undersøkt, ble lastet ned i september eller oktober 2019.