sv.phhsnews.com


sv.phhsnews.com / Vad är SHAttered? SHA-1 kollisionsattacker, förklarade

Vad är SHAttered? SHA-1 kollisionsattacker, förklarade


Den första dagen av 2016 avslutade Mozilla stöd för en försvagad säkerhetsteknik som heter SHA-1 i Firefox-webbläsaren. Nästan omedelbart reverserade de sitt beslut, eftersom det skulle minska tillgången till vissa äldre webbplatser. Men i februari 2017 blev deras rädsla äntligen sann: forskare bröt SHA-1 genom att skapa den första verkliga kollisionsattacken. Här är vad allting betyder.

Vad är SHA-1?

SHA i SHA-1 står för Secure Hash Algorithm , och helt enkelt kan du tänka på det som ett slags matematikproblem eller metod som krypterar de data som läggs in i det . Utvecklat av USA: s NSA, det är en kärnkomponent i många teknologier som används för att kryptera viktiga överföringar på internet. Vanliga krypteringsmetoder SSL och TLS, som du kanske har hört talas om, kan använda en hashfunktion som SHA-1 för att skapa de signerade certifikat som du ser i verktygsfältet i din webbläsare.

Vi kommer inte att gå djupt in i matematik och datavetenskap av någon av SHA-funktionerna, men här är grundsidan. En "hash" är en unik kod baserad på inmatning av data. Även små slumpmässiga strängar av bokstäver som matas in i en hashfunktion som SHA-1 kommer att returnera ett långt antal inställda antal tecken, vilket gör det möjligt att återställa teckensträngen tillbaka till originaldata. Så här fungerar lösenordslagring vanligtvis. När du skapar ett lösenord har din lösenordsinmatning hashed och lagrats av servern. Vid din återkomst, när du skriver in ditt lösenord, är det hashed igen. Om den matchar originalens hash, kan ingången antas vara densamma, och du får tillgång till dina data.

Hash-funktioner är användbara, främst eftersom de gör det enkelt att berätta om ingången till exempel, en fil eller ett lösenord har ändrats. När ingångsdata är hemliga, som ett lösenord, är hasen nästan omöjligt att vända och återställa originaldata (även känd som "nyckeln"). Det här är lite annorlunda än "kryptering", vars syfte är att kryptera data i syfte att descrambling det senare, med hjälp av cifrar och hemliga nycklar. Hashes är helt enkelt menade att säkerställa dataintegritet-för att se till att allt är detsamma. Git, versionskontroll- och distributionsprogramvaran för öppen källkod använder SHA-1-haschar av den anledningen.

Det är mycket teknisk information, men för att uttrycka det enkelt: en hash är inte densamma som kryptering, eftersom Det används för att identifiera om en fil har ändrats .

Hur påverkar denna teknik mig?

Vi säger att du behöver besöka en webbplats privat. Din bank, din email, till och med ditt Facebook-konto, alla använder kryptering för att hålla de uppgifter du skickar dem privata. En professionell webbplats kommer att tillhandahålla kryptering genom att erhålla ett certifikat från en betrodd myndighet - en tredje part som är betrodd för att säkerställa att krypteringen är på nivå, privat mellan webbplatsen och användaren och inte spioneras av någon annan part. Detta förhållande till tredje part, kallat Certifikatutfärdare , eller CA , är avgörande eftersom alla användare kan skapa ett "självtecknat" certifikat - du kan även göra det själv på en maskin som kör Linux med öppen SSL. Symantec och Digicert är exempelvis två kända CA-företag.

Låt oss gå igenom ett teoretiskt scenario: How-To Geek vill hålla inloggade användares sessioner privata med kryptering, så det begär en CA som Symantec med en Certifikatsigneringsbegäran , eller CSR . De skapar en allmän nyckel och privat nyckel för kryptering och dekryptering av data som skickas över internet. CSR-förfrågan skickar den offentliga nyckeln till Symantec tillsammans med information om webbplatsen. Symantec kontrollerar nyckeln mot sin rekord för att verifiera att uppgifterna är oförändrade av alla parter, eftersom en liten ändring av data gör ishallen radikalt annorlunda.

Dessa offentliga nycklar och digitala certifikat är signerade av hashfunktioner, eftersom resultatet av dessa funktioner är lätta att se. En offentlig nyckel och ett certifikat med en verifierad hash från Symantec (i vårt exempel), en auktoritet, försäkrar en användare av How-To Geek att nyckeln är oförändrad och inte skickad från någon skadlig.

Eftersom hash är lätt att övervaka och omöjligt (vissa skulle säga "svårt") att vända, betyder den korrekta, verifierade hash signaturen att certifikatet och anslutningen kan lita på, och data kan överenskommas att skickas krypterad från slutet till slutet . Men vad händer om hasen inte var unik ?

Vad är en kollisionsattack, och är det möjligt i den verkliga världen?

Du kanske har hört talas om "Födelsedagsproblemet" i matematik , även om du kanske inte vet vad det kallades. Grundtanken är att om du samlar en tillräckligt stor grupp människor är chansen ganska hög att två eller flera personer kommer att ha samma födelsedag. Högre än du förväntar dig, faktiskt nog att det verkar som en konstig slump. I en grupp så liten som 23 personer finns det 50% chans att två ska dela en födelsedag.

Detta är den inneboende svagheten i alla haschar, inklusive SHA-1. Teoretiskt bör SHA-funktionen skapa en unik hack för alla data som läggs in i den, men eftersom antalet haschar växer blir det mer troligt att olika datapar kan skapa samma hash. Så man kan skapa ett otroligt certifikat med en identisk hash till ett betrodat certifikat. Om de fick dig att installera det otillförlitliga certifikatet kan det maskeras som betrodda och distribuera skadliga data.

Hitta matchande hash inom två filer kallas en kollisionsattack . Åtminstone en storskalig kollisionsattack är känd att den redan har hänt för MD5-hash. Men den 27 februari 2017 meddelade Google SHAttered, den första någonsin utformade kollisionen för SHA-1. Google kunde skapa en PDF-fil som hade samma SHA-1-hash som en annan PDF-fil, trots att ha olika innehåll.

SHAttered utfördes på en PDF-fil. PDF-filer är ett relativt löst filformat; Många små, bitnivåförändringar kan göras utan att förhindra att läsare öppnar det eller orsakar synliga skillnader. PDF-filer används också ofta för att leverera skadlig kod. Medan SHAttered kan fungera på andra typer av filer, som ISOs, är certifikaten noggrant specificerade, vilket gör osannolikt en sådan attack.

Så hur lätt är denna attack att utföra? SHAttered grundades på en metod som upptäckts av Marc Stevens 2012, vilket krävde mer än 2 ^ 60,3 (9,223 quintillion) SHA-1-operationer - ett svindlande nummer. Denna metod är dock fortfarande 100 000 gånger färre operationer än vad som krävs för att uppnå samma resultat med brute force. Google fann att med 110 high-end grafikkort som arbetar parallellt skulle det ta ungefär ett år att producera en kollision. Att hyra denna beräkningstid från Amazon AWS skulle kosta cirka 110 000 dollar. Tänk på att när priserna sjunker för datordelar och du kan få mer ström till mindre, blir attacker som SHAttered lättare att dra av.

$ 110.000 kan tyckas vara mycket, men det ligger inom räckhåll för överkomliga priser för vissa organisationer - vilket betyder att verkliga cybervillians kan förfalska digitala dokument signaturer, störa säkerhetskopierings- och versionsstyrningssystem som Git och SVN eller göra en skadlig Linux-ISO verklig.

Det finns lyckligtvis mildrande faktorer som förhindrar sådana attacker. SHA-1 används sällan längre för digitala signaturer. Certifikatutfärdare tillhandahåller inte längre certifikat signerade med SHA-1, och både Chrome och Firefox har tappat stöd för dem. Linux-distributioner släpps vanligtvis oftare än en gång per år, vilket gör det omöjligt för en angripare att skapa en skadlig version och sedan generera en vadderad för att ha samma SHA-1-hash.

Å andra sidan är vissa attacker baserade på SHAttered som redan händer i den verkliga världen. SVN-versionens kontrollsystem använder SHA-1 för att differentiera filer. Uppladdning av de två PDF-filerna med identiska SHA-1-haschar till ett SVN-arkiv gör att det skadas.

Hur kan jag skydda mig från SHA-1-attacker?

Det finns inte mycket för den typiska användaren att göra. Om du använder checksums för att jämföra filer, ska du använda SHA-2 (SHA-256) eller SHA-3 i stället för SHA-1 eller MD5. På samma sätt, om du är en utvecklare, var noga med att använda mer moderna hashingalgoritmer som SHA-2, SHA-3 eller bcrypt. Om du är orolig att SHAttered har använts för att ge två separata filer samma hash, har Google släppt ett verktyg på SHAttered-webbplatsen som kan kontrollera dig.

Bildkrediter: Lego Firefox, massor av hash, snälla skada inte webben författaren okänd, Google.


Vad är skrivbordsfönstret (dwm.exe) och varför kör det?

Vad är skrivbordsfönstret (dwm.exe) och varför kör det?

Det här är ingen tvekan om att du läser den här artikeln eftersom du snubblat över skrivbordsfönstret, och undrar precis vad det är är. Vi har svaret. Skrivbordsfönsterhanteringsprocessen (dwm.exe) kompositerar visning av programfönster innan du skriver den till din skärm. Detta gör det möjligt för Windows att lägga till effekter som transparens och miniatyrer på aktivitetsfältet.

(how-top)

Vilka filer borde du säkerhetskopiera på din Windows-dator?

Vilka filer borde du säkerhetskopiera på din Windows-dator?

Din dators hårddisk kan misslyckas i morgon, eller en programvarufel kan radera dina filer, så säkerhetskopieringar är viktiga. Men du behöver inte säkerhetskopiera alla filerna på datorn. Det skulle bara slösa bort utrymme och göra dina säkerhetskopior längre för att slutföra. Den viktigaste regeln för säkerhetskopiering Den viktigaste regelen om säkerhetskopiering är att alla viktiga data borde finnas i två eller flera fysiska platser vid en gång .

(how-top)