RC4 (ARCFOUR): Stream-chifferets funktion, anvendelse og sikkerhedsproblemer

RC4 (ARCFOUR): Lær hvordan det hurtige stream-chiffer fungerer, hvor det bruges (SSL/WEP/TLS) og hvilke alvorlige sikkerhedsproblemer der gør det risikabelt.

Forfatter: Leandro Alegsa

Inden for kryptografi er RC4 (også kendt som ARC4 eller ARCFOUR, der betyder Alleged RC4, se nedenfor) en af de mest udbredte software-stream ciphers. Den har været benyttet i populære protokoller som Secure Sockets Layer (SSL) (til beskyttelse af internettrafik) og WEP (til sikring af trådløse netværk). RC4 er kendt for at være enkel og hurtig, men der findes alvorlige sikkerhedsproblemer, især hvis starten af output-nøglestrømmen ikke fjernes, eller hvis en nøglestrøm genbruges; nogle måder at bruge RC4 på kan derfor resultere i meget usikre kryptosystemer, som fx WEP.

Hvordan RC4 fungerer

RC4 er en symmetrisk stream-chiffer, hvilket betyder, at kryptering og dekryptering sker ved at XOR'e plaintext med en pseudo-tilfældig nøglestrøm. Algoritmen består af to hoveddele:

  • Nøgleplanlægningsalgoritmen (KSA): Starter med en hemmelig nøgle (typisk mellem 40 og 256 bit) og initialiserer en intern permutation S af 256 bytes. KSA blander permutationens tilstand ud fra den hemmelige nøgle for at opnå en initial tilstand.
  • Generatoren for pseudo-tilfældig strøm (PRGA): Fra den initialiserede tilstand produceres en strøm af output-bytes ved hjælp af to indekser (ofte kaldt i og j), der opdateres og bruges til at bytte elementer i S og vælge en output-byte. Output-byten XOR'es med plaintext-byten for at producere ciphertext.

Konsekvensen er, at samme nøgle og samme initielle tilstand altid producerer samme nøglestrøm. Dette gør det ekstremt vigtigt, at nøglestrømmen ikke genbruges (se nedenfor om "two-time pad"). Implementationsmæssigt er RC4 meget let at kode og hurtigt i både software og hardware, fordi operationerne er simple byte-manipulationer og bytterskift.

Sikkerhedsproblemer og kendte angreb

RC4 opfylder på mange måder ikke de moderne standarder, som kryptograferne har fastsat for en sikker kryptering, og det anbefales derfor ikke at bruge RC4 i nye applikationer. De vigtigste sikkerhedsproblemer omfatter:

  • Biases i nøglestrømmen: Tidlige bytes i RC4's nøglestrøm viser statistiske skævheder (biases). Disse kan udnyttes til at afsløre information om den hemmelige nøgle, især hvis mange krypterede meddelelser med samme eller relaterede nøgler analyseres. Mange angreb fokuserer derfor på de første hundreder eller tusinder bytes af strømmen.
  • FMS-angrebet og WEP: Fluhrer–Mantin–Shamir (FMS) angrebet udnyttede svagheder i måden WEP brugte RC4 (især 24-bit IV'er, der blev kombineret med en hemmelig nøgle), hvilket førte til nem nøglegendannelse. Kombinationen af korte IV'er og gentagen brug af samme hemmelige nøgle gjorde WEP katastrofalt usikkert.
  • Gendannelse af nøgle ved gentagen nøglestrøm: Hvis samme nøglestrøm bruges to gange (to-time pad), kan en angriber kombinere de to ciphertexts for at få XOR'en af de to plaintexts, hvilket ofte muliggør fuld eller delvis genoprettelse af data. Dette er et fundamentalt problem for alle stream-chiffre.
  • Praktiske angreb mod TLS/SSL: Forskere fandt metoder til at udnytte RC4-biases i TLS-forbindelser, hvilket kunne føre til få-bit-lækager fra HTTP-cookies og andre sensitive data. På baggrund af sådanne angreb anbefalede standardorganer at udfase RC4 i TLS.
  • Drop-N løsninger er utilstrækkelige: Nogle implementeringer forsøgte at forbedre sikkerheden ved at kassere de første N bytes af nøglestrømmen (fx RC4-drop-768 eller drop-3072). Dette reducerer visse biases, men fjerner ikke alle svagheder, og betragtes ikke som en tilstrækkelig løsning til moderne sikkerhedskrav.

Anvendelser og historik

RC4 blev skabt af Ron Rivest fra RSA Security i 1987. Det officielle navn er "Rivest Cipher 4". RC-forkortelsen er også blevet omtalt uformelt som "Rons kode" (se også RC2, RC5 og RC6). Algoritmen var oprindeligt en forretningshemmelighed, men i september 1994 blev en beskrivelse sendt til Cypherpunks-mailinglisten. Den blev derefter delt i sci.crypt og på mange webstederinternettet. Det blev bekræftet, at koden var ægte, fordi dens output matchede output fra proprietær software, som anvendte licenseret RC4. Når algoritmen er kendt, er den ikke længere en forretningshemmelighed, men navnet "RC4" er et varemærke, og derfor omtales den ofte som "ARCFOUR" eller "ARC4".

RC4 har været indbygget i mange populære krypteringsprotokoller og -standarder, herunder WEP og WPA til trådløse kort samt TLS. På grund af de nævnte svagheder er RC4 dog gradvist udfaset i moderne implementeringer og standarder.

Anbefalinger og sikre alternativer

På grund af dokumenterede svagheder anbefales det:

  • Undgå RC4 i nye systemer og protokoller.
  • Opgrader eksisterende systemer væk fra RC4 hvor muligt (fx opdater TLS-konfiguration til at bruge moderne AEAD-cifre).
  • Brug moderne og godkendte alternativer som AES-GCM eller ChaCha20-Poly1305, som tilbyder både konfidensialitet og integritet (AEAD).
  • For trådløse netværk: fjern brug af WEP og brug sikre protokoller som WPA2 eller WPA3 sammen med stærke nøgler.
  • Følg officielle anbefalinger og standarder (fx IETF-beslutninger om udfasning af RC4 fra TLS) og hold software og biblioteker opdaterede.

Samlet set var RC4 vigtig i kryptografiens historie på grund af sin enkelhed og ydeevne, men dens statistiske svagheder og praktiske angreb gør den uegnet til moderne sikkerhedsbehov. Hvis man kun har adgang til systemer, der stadig understøtter RC4, bør man prioritere opgraderinger og migration til sikre alternativer.

RC4-baserede kryptosystemer

  • WEP
  • WPA
  • Kryptering af BitTorrent-protokollen
  • Microsoft Point-to-Point-kryptering
  • Secure Sockets Layer (valgfrit)
  • Secure Shell (valgfrit)
  • Fjernskrivebordsklient (RDC over RDP)
  • Kerberos (valgfrit)
  • SASL-mekanisme Digest-MD5 (valgfrit)
  • Gpcode.AK, en computervirus til Microsoft Windows fra begyndelsen af juni 2008, som tager dokumenter som gidsler mod løsepenge ved at mørklægge dem med RC4- og RSA-1024-kryptering

Når et kryptosystem er markeret med "(valgfrit)", er RC4 en af flere krypteringskoder, som systemet kan indstilles til at bruge.

Relaterede sider

  • Avanceret krypteringsstandard
  • Datakrypteringsstandard (DES)
  • DES-X
  • eSTREAM - En evaluering af nye stream ciphers, som EU er ved at gennemføre.
  • TEA, Block TEA også kendt som eXtended TEA og Corrected Block TEA - En familie af blokchiffrer, der ligesom RC4 er designet til at være meget enkle at implementere.
  • Triple DES (TDES)

Spørgsmål og svar

Spørgsmål: Hvad er RC4?


A: RC4 (også kendt som ARC4 eller ARCFOUR, der betyder Alleged RC4) er en software stream cipher, der anvendes i populære protokoller som Secure Sockets Layer (SSL) og WEP.

Sp: Hvem skabte RC4?


Svar: RC4 blev skabt af Ron Rivest fra RSA Security i 1987.

Spørgsmål: Hvordan blev algoritmen offentliggjort?


Svar: Algoritmen blev offentliggjort, da den blev sendt til Cypherpunks-mailinglisten i september 1994 og derefter spredt til mange websteder på internettet.

Spørgsmål: Er RC4 et varemærkebeskyttet?


Svar: Ja, navnet "RC4" er et varemærke.

Spørgsmål: Hvad er to grunde til, at det er blevet meget udbredt?


Svar: De to vigtigste grunde til, at det er blevet anvendt i så mange forskellige applikationer, er dets hurtighed og enkelhed. Det er ekstremt nemt at udvikle RC4 i både software og hardware.

Spørgsmål: Hvordan fungerer krypteringsalgoritmen?


A: Krypteringsalgoritmen starter med en anden nøglelængde, normalt mellem 40 og 256 bit, ved hjælp af key-scheduling-algoritmen (KSA). Når dette er afsluttet, oprettes strømmen af krypterede bits ved hjælp af pseudo-tilfældig genereringsalgoritmen (PRGA).

Spørgsmål: Er RC4 sikker til nye applikationer?


Svar: Nej, fordi der er mange metoder til at angribe den, så den anbefales ikke til brug i nye applikationer.


Søge
AlegsaOnline.com - 2020 / 2025 - License CC3