Blog

Nytt sätt att hitta kolliderande nycklar i strömkryptot RC4

by Joachim Strömbergson 2016-10-21

Strömkryptot RC4 har varit rejält trasigt i flera år nu. Trots det visar SSL Pulse att nästan 40% av alla webbplatser som använder HTTPS fortfarande stödjer kryptosviter med RC4.

Forskarna har dock inte slutat sparka på RC4 och för någon dag sedan dök det upp en artikel på IACR med nya resultat för RC4 som visar att det inte bara finns fler kolliderande nycklar, utan även beskriver en algoritm för att mer effektivt hitta kolliderande nycklar.

Så vad är då kolliderande nycklar? Jo, helt enkelt att två (eller fler) kryptonycklar som är olika initierar RC4 till samma tillstånd och därmed får RC4 att generera samma sekvens. En sådan kollision innebär att även om en nyckel skapats med omsorg (bra slump) är den mindre unik och därmed mindre säker än man skulle kunnat förmoda.

Simon Josefsson postade 2013 en artikel på IACR som visade att två nycklar som kunde vara av olika längd, men som bestod av samma upprepade mönster kolliderade:

Key k3 = [0x01,0x02,0x03,0x04] (32 bit)
Key k4 = [0x01,0x02,0x03,0x04,0x01,0x02,0x03,0x04] (64 bit)
Generated keystream: 0x1c,0xea,0x91,0x61,0xee,0xbc,...

Men dessa nycklar hade alltså repeterande mönster. Det den nya artikeln visar är att ex följande nycklar ger upphov till samma sekvens:

1st pair: 1C 50 22 84 5B 74 EC B6 62 F5 95 7E 04 5F 5A 08 4A 6B C7 2C (2D) 02 95,
2nd pair: 58 76 1D 95 DC F6 E8 13 00 47 4E D2 41 C1 01 4A 57 7D C7 BD (BE) 02 68,
3rd pair: 8F E2 82 5D 51 74 8A BF 28 1D E1 23 0A 8E 3C FE 98 5C C7 21 (22) 02 6A

Att hitta en nyckel med den nya algoritmen går dessutom relativt snabbt. Intressant nog går det fortare att hitta kollisioner för längre nycklar än kortare - men det finns helt enkelt fler nycklar som kolliderar ju längre nyckeln är.

Ännu en spik i kistan för RC4 helt enkelt. Och artikeln visar om inte annat det som Bruce Schneier påpekat i många år - att attacker inte blir sämre, utan blir bättre och bättre med tiden. Nyfikna personer kan inte låta bli att peta i såret. Vill du slippa mer obehagligheter och inte redan gjort det, fimpa RC4.