Skriv ut

Med måttliga datorresurser lyckades forskare knäcka 435 000 av 75 miljoner RSA-certifikat som de samlat in över Internet från bland annat routrar och IoT-ändnoder. Orsaken tros vara att för lite slump används när kryptonycklar genereras för IoT-ändnoder. 

I en kontrollgrupp med certifikat skapade på kraftfullare datorer lyckades forskarna bara knäcka fem av 100 miljoner certifikat – alltså en på 20 miljoner att jämföra med en på 172.

RSA-certifikat används för kryptering och som identifiering för att tillåta dataöverföring eller styrning.

Om du genererat kryptonycklar på en dator någon gång kan du ha varit med om att datorn bett dig göra underliga saker, som att trycka på tangentbordet på måfå. Den samlar slump – entropi. Om inte slump användes skulle alla nycklar bli desamma. 

Det finns kretsar som kan generera slumptal på egen hand. Alternativt kan programvara bygga slump från godtyckliga källor, som klockslag, sensordata eller från källor som random.org som bjuder på slumptal.

Forskarna gissar att problemet är att IoT-ändnoder är så klena beräkningsmässigt att de inte genererade tillräckligt mycket entropi när certifikaten skapades. Därmed genererades då och då samma slumptal. Forskarnas hackningsknep var att jämföra nycklarna med varandra och söka gemensamma faktorer. 

Brist på entropi i IoT-noder är ett problem som uppmärksammats tidigare. Forskarnas bidrag är att demonstrera ett billigt sätt att exploatera bristen för att knäcka RSA-certifikat. De använde förhållandevis blygsamma datorresurser i Microsofts moln.

Jonathan Kilgallin

–  Vi har visat att den här attacken är väldigt enkel att genomföra idag. För mindre än 3000 dollar datortid på Azure lyckades vi knäcka 435 000 certifikat, säger Jonathan Kilgallin, en av forskarna.

Forskarna arbetar på företaget Keyfactor. Deras arbete har presenterats på en IEEE-säkerhetskonferens i Los Angeles.

Rådet till hårdvarutillverkare och mjukvaruleverantörer är att använda väletablerade metoder för att skapa entropi och att anstränga sig för att se till att systemutvecklarna faktiskt använder metoderna och använder dem korrekt.