RC4

RC4 , ARC4 eller Arcfour er en stream- kryptering som har funnet utbredt bruk med standarder som HTTPS , SSH 1 og WEP eller WPA .

RC4 ( Rons kode 4 ) ble utviklet i 1987 av Ronald L. Rivest , er et varemerke for RSA Security og er offisielt hemmelig ( Security by Obscurity ). ARC4 ( Påstått RC4) eller Arcfour går tilbake til en anonym publisering av kildekode i 1994 og er åpen kildekode .

I februar 2015 forbød RFC 7465 bruken av RC4 i forbindelse med TLS fordi den har betydelige sikkerhetsmangler.

beskrivelse

En tilfeldig sekvens genereres fra en nøkkel som bare kan brukes en gang. Klarteksten blir bit for bit av XOR lenket til den tilfeldige sekvensen for å kode dataene.

Tilfeldig tallgenerator bruker en såkalt S-boks , en tilfeldig valgt permutasjon eller erstatning av tallene 0 til 255. I et første trinn beregnes S-boksen fra den hemmelige nøkkelen og deretter brukes til å beregne den tilfeldige sekvensen. Etter hvert beregningstrinn byttes to verdier av S-Box.

Sikkerheten ved en slik prosedyre er bare garantert hvis den tilfeldige sekvensen ikke gjentas. Derfor kan nøkkelen eller passordet bare brukes en gang. For sammensetningen av S-boksen og verdiene til to andre variabler er det omtrent 2 1 684 alternativer, som tilsvarer en nøkkelengde på 210 (1684/8) tegn. I følge bursdagsparadokset kan det forventes at det er nøkler med en nøkkelengde på ((1684/2) / 8) 105 tegn som genererer identiske permutasjoner av S-Box. Vi kjenner nå minst to 24-tegns (192-bit) nøkler som fører til samme permutasjon av S-Box. Dette betyr at det er to forskjellige nøkler som fører til samme krypteringssekvens.

Den algoritmen er svært enkelt å implementere med praktisk talt alle maskinvare og programvare, og kan beregnes svært effektivt.

I WEP ble den unike nøkkelen bestemt ved å bare kombinere en fast hemmelig nøkkel og en øktnøkkel . I dette tilfellet er det imidlertid mulig å utlede den faste hemmelige nøkkelen. Hvis nøkkelen med hasjfunksjon velges mer eller mindre tilfeldig, kan RC4 fortsatt betraktes som sikker.

I Microsoft Windows- systemer som er koblet til et NT- domene , krypteres påloggingspassordet som brukeren angir i GINA- grensesnittet etter at en nøkkel er forhandlet frem via RC4- HMAC og overført til serveren ved hjelp av en Kerberos- ramme. Forhandlingene om nøkkelen skjer under meldingen "Nettverkstilkoblinger blir forberedt".

algoritme

RC4s oppslagsfase på et byte-stort alfabet. Utgangsbyte er valgt fra verdiene, og disse blir lagt til modulo 256.

Kjernen av fremgangsmåten er den såkalte S-boks, en tilfeldig bytte eller permutasjon av standard alfabet ( byte verdier 0-255). Ved hjelp av S-boksen vil generere en tilfeldig sekvens litt etter litt ved tilsetning modulo 2, også XORing kalt, er forbundet med meldingsstrømmen. S-Box er først tilordnet som en identisk kartlegging , slik at i = 0 til 255 gjelder.

Den første tildelingen av S-Box kan beskrives med følgende pseudokode. S-Box beregnes fra byte lengdetasten :

  k[]: gegebene Schlüssel-Zeichenfolge der Länge 5 bis 256 Byte
  L := Länge des Schlüssels in Byte
  s[]: Byte-Vektor der Länge 256
  Für i = 0 bis 255
    s[i] := i
  j := 0
  Für i = 0 bis 255
    j := (j + s[i] + k[i mod L]) mod 256
    vertausche s[i] mit s[j]

Den påfølgende beregningen av den tilfeldige sekvensen utføres analogt:

  klar[]: gegebene Klartext-Zeichenfolge der Länge X
  schl[]: Vektor zum Abspeichern des Schlüsseltextes
  i := 0
  j := 0
  Für n = 0 bis X-1
    i := (i + 1) mod 256
    j := (j + s[i]) mod 256
    vertausche s[i] mit s[j]
    zufallszahl := s[(s[i] + s[j]) mod 256]
    schl[n] := zufallszahl XOR klar[n]

Den samme algoritmen brukes til dekryptering, hvor krypteringstekst blir angitt i stedet for ren tekst. To XOR-operasjoner med samme tilfeldige nummer avbryter hverandre, og ren tekst sendes ut igjen.

sikkerhet

Som enhver strømkryptering tilbyr RC4 ingen integritetsbeskyttelse. Hvis en angriper endrer seg litt i en kryptert melding, endrer han også den samme biten i ren tekst.

Det første praktiske angrepet på RC4-krypteringen ble gjort av Scott Fluhrer, Itsik Mantin og Adi Shamir i 2001. RSA Security anbefalte da at de første 256 byte i keystream kastes. Andreas Klein forbedret angrepet slik at det fungerer selv om de første 256 bytene blir kastet. Han anbefalte å kaste utdataene fra de første 12 rundene.

I begynnelsen av 2013 ble et nytt angrepsscenario foreslått av AlFardan, Bernstein, Paterson, Poettering og Schuldt, som bruker statistiske anomalier i nøkkeltabellen til RC4 for å dekryptere en ren tekst som overføres over flere TLS- forbindelser kryptert med RC4 . I 2015 presenterte Mathy Vanhoef og Frank Piessens et praktisk gjennomførbart angrep på RC4 der Magic Cookies kunne dekrypteres innen 52 timer.

Jacob Appelbaum mener at NSA kan bryte RC4-kryptering i sanntid . Bruce Schneier kalte dette en sannsynlig gjetning.

Den European Network and Information Security Agency anbefaler å erstatte RC4 med kanin eller snø 3G . Den føderale kontoret for informasjonssikring også fraråder bruk av RC4. For eksempel har det tyske finansbyrået ikke brukt RC4 siden november 2013.

The Internet Engineering Task Force forbyr RFC 7465 , siden februar 2015 ville bruken av RC4 som krypterings i praksis må være sprukne noen forsøk og et tilstrekkelig høyt sikkerhetsnivå for TLS kan gjøre øktene mer.

etterfølger

Sprøyte

27. oktober 2014 introduserte Ronald L. Rivest og Jacob CN Schuldt en forbedret versjon av RC4 kalt Spritz. Imidlertid er ytelsen til RC4 ikke helt oppnådd. Algoritmen er bare omtrent halvparten så rask som RC4, men likevel betydelig raskere enn standardiserte blokkrypter som Advanced Encryption Standard . Nøkkelberegningen tar lengre tid enn med RC4.

Dette blir fulgt av en kort sammenligning av kjernestykkene til RC4 og SPRITZ.

RC4:

  i = i + 1
  j = j + S[i]
  SWAP(S[i],S[j])
  z = S[S[i] + S[j]]
  Return z

SPRØYTE:

  i = i + w
  j = k + S[j + S[i]]
  k = i + k + S[j]
  SWAP(S[i],S[j])
  z = S[j + S[i + S[z + k]]]
  Return z

Parameteren w er a til N er relativt primtall, hvor N (vanligvis 256), størrelsen på matrisen S er. Legges alltid modulo N . Etter N iterasjoner har jeg derfor antatt hver verdi fra 0 til N-1 nøyaktig en gang. Hver verdi i S ble derfor byttet ut minst en gang med en tilfeldig valgt posisjon.

weblenker

Individuelle bevis

  1. Ür Jürgen Schmidt: IETF forbyr RC4-kryptering i TLS. Heise Security, 20. februar 2015, åpnet 20. februar 2015 .
  2. ^ A b A. Popov: Forby RC4 Cipher Suites. Internet Engineering Task Force (IETF), februar 2015, åpnet 11. mars 2016 .
  3. ^ Mitsuru Matsui: Key Collisions of the RC4 Stream Cipher . Fast Software Encryption, 2009. I: Lecture Notes . I: Informatikk , nummer 5665, Springer Verlag, 2009, s. 38–50, presentasjon (PDF; 267 kB; engelsk)
  4. Scott Fluhrer, Itsik Mantin, Adi Shamir: Svakheter i Key Planlegging Algoritme av RC4 . I: Selected Areas in Cryptography (=  Lecture Notes in Computer Science ). teip 2259 . Springer, 2001, s. 1-24 , doi : 10.1007 / 3-540-45537-X_1 ( weizmann.ac.il ). Svakheter i Key Scheduling Algorithm of RC4 ( Memento of the original from June 2, 2004 in the Internet Archive ) Info: Arkivkoblingen ble satt inn automatisk og er ennå ikke sjekket. Kontroller originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen.  @1@ 2Mal: Webachiv / IABot / www.wisdom.weizmann.ac.il
  5. RSA-sikkerhetsrespons på svakheter i nøkkelplanleggingsalgoritmen til RC4. (Ikke lenger tilgjengelig online.) RSA Security, arkivert fra originalen 29. september 2011 ; åpnet 10. september 2012 . Info: Arkivkoblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Kontroller originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. @1@ 2Mal: Webachiv / IABot / www.rsa.com
  6. ^ Andreas Klein: Angrep på RC4-strømkrypteringen . I: Designs, Codes and Cryptography . teip 48 , nei. 3 . Springer, 2008, s. 269-286 , doi : 10.1007 / s10623-008-9206-6 .
  7. Pouyan Sepehrdad, Serge Vaudenay, Martin Vuagnoux: Discovery and Exploitation of New Biases in RC4 . I: Forelesningsnotater i informatikk . 6544, 2011, s. 74-91. doi : 10.1007 / 978-3-642-19574-7_5 .
  8. Green, Matthew: Ukens angrep: RC4 er litt ødelagt i TLS . I: Cryptography Engineering . Hentet 12. mars 2013.
  9. Nadhem AlFardan, Dan Bernstein, Kenny Paterson, Bertram Poettering, Jacob Schuldt: On the Security of RC4 in TLS . Royal Holloway University of London. Hentet 13. mars 2013.
  10. Mathy Vanhoef, Frank Piessens: Alle dine skjevheter tilhører oss: Breaking RC4 i WPA-TKIP og TLS (pdf).
  11. NSA dekrypterer angivelig webserverdata i sanntid . Heise Security. Hentet 7. november 2013.
  12. Michael Brenner: ENISA-anbefalinger om kryptografiske prosedyrer . Heise Security. Hentet 18. november 2013.
  13. Viktig informasjon for nettbankbrukere. (Ikke lenger tilgjengelig online.) Tysk finansbyrå, 19. november 2013, arkivert fra originalen 7. januar 2015 ; åpnet 2. januar 2014 . Info: Arkivkoblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Kontroller originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. @1@ 2Mal: Webachiv / IABot / www.deutsche-finanzagentur.de
  14. Ür Jürgen Schmidt: IETF forbyr RC4-kryptering i TLS. I: Heise Security. Heise online , 20. februar 2015, åpnet 8. juli 2015 .
  15. Spritz - en svampete RC4-lignende strømkryptering og hashfunksjon. Ronald L. Rivest og Jacob CN Schuldt, 27. oktober 2014, åpnet 1. november 2014 .
  16. Spritz: En ny RC4-lignende Stream Cipher. Bruce Schneier, 27. oktober 2014, åpnet 1. november 2014 .