Ett team av säkerhets- och säkerhetsforskare och akademiker har brutit en kärndel av internetteknik. De gjorde sitt arbete offentligt på 25: e Chaos Communication Congress i Berlin idag. Teamet kunde skapa en rogue certifikatmyndighet och använda den för att utfärda giltiga SSL-certifikat för vilken webbplats de vill ha. Användaren skulle inte ha någon indikation på att deras HTTPS-anslutning övervakades / modifierades.
Denna attack är möjlig på grund av en fel i MD5. MD5 är en hashingalgoritm; Varje distinkt fil har en distinkt hash. År 2004 visade ett team av kinesiska forskare att skapa två olika filer som hade samma MD5 Hash. År 2007 visade ett annat team teoretiska attacker som utnyttjade dessa kollisioner. Teamet fokuserade på SSL-certifikat som undertecknades med MD5 för deras utnyttjande.
Det första steget gjorde några breda skanningar för att se vilka certifikatmyndigheter (CA) utfärdade MD5-tecknade certs. De samlade 30k certs från Firefox Trusted CAS. 9k av dem var MD5 signerade. 97% av dem kom från Rapidssl.
Efter att ha valt sitt mål behövde laget att generera sitt rogue certifikat för att överföra signaturen till. De anställde bearbetningskraften på 200 PlayStation 3s för att få jobbet gjort. För den här uppgiften är det motsvarande 8000 konventionella CPU-kärnor eller $ 20k av Amazon EC2-tid. Uppgiften tar ~ 1-2 dagar att beräkna. Den utmanande delen var att veta innehållet i det certifikat som skulle utfärdas av Rapidssl. De behövde förutsäga två variabler: serienumret och tidsstämpeln. Rapidssls serienummer var alla sekventiella. Från testning visste de att Rapidsssl alltid skulle underteckna sex sekunder efter att köpet bekräftades. Att veta dessa två fakta som de kunde generera ett certifikat i framsteg och sedan köpa det exakta certifikatet de ville ha. De skulle köpa certifikat för att utveckla serienumret och köp sedan på den exakta tiden de beräknat.
Certs utfärdades till sin specifika domän, men för att de kontrollerade innehållet ändrade de flaggorna för att göra sig en mellanliggande certifikatmyndighet. Det gav dem auktoritet att utfärda något certifikat som de ville ha. Alla dessa “giltiga” certs undertecknades med SHA-1.
Om du ställer in klockan till före augusti 2004 kan du prova sin live demo-webbplats. Den här gången är bara en säkerhetsåtgärd för exemplet och detta skulle fungera identiskt med ett certifikat som inte har löpt ut. Det finns en projektplats och en mycket mer omfattande skrivning än detta.
För att fixa den här sårbarheten använder alla CAS nu SHA-1 för att signera och Microsoft och Firefox kommer att blacklisting lagets Rogue CA i sina webbläsarprodukter.