Makers van Bitcoin-apps voor Android werken al aan updates. Die aankomende nieuwere versies van de Bitcoin-ontginners vertrouwen dan niet langer op de onbetrouwbaar gebleken Android-functie die willekeurige getallen aanmaakt. De kwetsbaarheid in die component van Google's mobiele besturingssysteem zorgt ervoor dat aangemaakte privésleutels voor Bitcoin-transacties zijn te achterhalen.

Kaping van privésleutels

De virtuele valuta Bitcoin gebruikt namelijk publieke en privé encryptiesleutels om transacties te ondertekenen. De beveiliging van dit transactiesysteem is erop gebouwd dat elk adres voor de uitwisseling van Bitcoins z'n eigen privésleutel heeft. Die sleutel is dan alleen bekend bij de eigenaar van dat adres; de houder van de Bitcoin-portemonnee. Als een buitenstaander zo'n privésleutel in handen krijgt, kan die de Bitcoins 'pakken' die daarheen zijn gestuurd, legt digitale valuta-site The Genesis Block uit.

Overigens zijn niet alle Bitcoin-apps per definitie bevattelijk voor deze Android-kwetsbaarheid. Dat gat geldt niet voor apps die niet zelf, via het mobiele besturingssysteem, privésleutels aanmaken. Enkele apps die in ieder geval wel kwetsbaar zijn: Bitcoin Wallet, blockchain.info wallet, BitcoinSpinner en Mycelium Wallet.

Op forumsite Bitcointalk melden gebruikers al dat er zeker 55 Bitcoins zijn gestolen. Dat zou dan zijn gedaan door misbruik van deze kwetsbaarheid in Android. Een eerste analyse heeft namelijk al uitgewezen dat er sprake is van hergebruik van een random nummer. Het Android-gat komt in beeld doordat de ontvreemding van de virtuele valuta plaatsvindt met verschillende apps.

'Gat is groter dan alleen Bitcoin'

Een Duitse hacker, Frank Rieger, stelt op Twitter dat de impact van deze Android-fout groter is dan alleen diefstal van Bitcoins. Veel Android-apps die encryptie gebruiken, moeten worden gecontroleerd en hebben mogelijk patches nodig, stelt hij. Rieger linkt daarbij naar een samenvatting van een technische paper die stamt uit maart dit jaar.

Daarin zetten security-onderzoekers Kai Michaelis, Jörg Schwenk en Chris Meyer uiteen dat ze kwetsbaarheden hebben gevonden in de Pseudo Random Number Generators (PRNG's) die in gebruik zijn op Java. Het Java-platform betreft ook Android, dat immers Google's Java-aftakking Dalvik gebruikt om apps te draaien.

Algemeen Java-probleem

De onderzoekers hebben de Java-libraries Apache Harmony, GNU Classpath, OpenJDK en The Legion of Bouncy Castle aan de tand gevoeld. Hun conclusie luidt: "Gebruik geen PRNG's als goede randomheid benodigd is". Michaelis, Schwenk en Meyer hebben hun bevindingen eind februari al gepresenteerd op beveiligingsbijeenkomst RSA Conference met als onderwerp: Randomly Failed! The State of Randomness in Current Java Implementations.

Hacker Frank Rieger verwijst naar onderzoek over deze kwetsbaarheid dat eind februari dit jaar al aan het licht is gekomen: