RC4 (ARCFOUR): definicija, delovanje in varnost v kriptografiji

V kriptografiji je RC4 (znan tudi kot ARC4 ali ARCFOUR, kar pomeni domnevni RC4, glej spodaj) eden najpogostejših programskih tokovnih šifer. Uporablja se v priljubljenih protokolih, kot sta SSL (Secure Sockets Layer) (za zaščito internetnega prometa) in WEP (za zaščito brezžičnih omrežij).

RC4 je znan po tem, da je preprost in hiter, vendar so napadi verjetni, če začetek izhodnega toka ključev ni odstranjen ali če se en tok ključev uporabi dvakrat; nekateri načini uporabe RC4 se lahko spremenijo v zelo nezanesljive kriptosisteme, kot je WEP.

Protokol RC4 je leta 1987 ustvaril Ron Rivest iz podjetja RSA Security. Čeprav je njegovo uradno ime "Rivestov šifrant 4", je kratica RC znana tudi kot kratica za "Ronovo šifro" (glej tudi RC2, RC5 in RC6).

Protokol RC4 je bil najprej ustvarjen kot poslovna skrivnost, septembra 1994 pa je bil njegov opis objavljen na poštnem seznamu Cypherpunks. Kmalu je bil objavljen v novičarski skupini sci.crypt, od tam pa na številnih spletnih straneh na internetu. Potrjeno je bilo, da je koda pristna (in ne ponarejena), saj se je njen rezultat ujemal z rezultatom lastniške programske opreme, ki uporablja licenčni RC4. Ker je algoritem znan, ni več poslovna skrivnost. Ime "RC4" je zaščiteno z blagovno znamko. Da bi se izognili morebitnim težavam z blagovno znamko, se RC4 pogosto imenuje "ARCFOUR" ali "ARC4" (kar pomeni domnevni RC4, ker RSA algoritma ni nikoli uradno izdal). Postal je del nekaterih pogosto uporabljenih šifrirnih protokolov in standardov, vključno z WEP in WPA za brezžične kartice ter TLS.

Dva glavna razloga, ki sta pripomogla k njegovi uporabi v tako velikem številu aplikacij, sta hitrost in preprostost. Uporaba RC4 v programski in strojni opremi je izjemno enostavna za razvoj.

Šifrirni algoritem RC4 se začne z različno dolžino ključa, običajno med 40 in 256 bitov, z uporabo algoritma za razporejanje ključev (KSA). Ko je ta končan, se tok šifriranih bitov ustvari z algoritmom psevdonaključnega generiranja (PRGA).

Šifra RC4 v številnih pogledih ne izpolnjuje standardov, ki so jih kriptografi postavili za varno šifro, in je ni priporočljivo uporabljati v novih aplikacijah, saj obstaja veliko načinov za napad na šifro RC4. Če iz ključnega toka odstranite prvi kilobajt podatkov, lahko nekoliko izboljšate varnost.

Zgodovina in ime

RC4 je zasnoval Ron Rivest pri RSA Security leta 1987. Dolga leta je bil algoritem trgovinska skrivnost, dokler njegov izvorni opis leta 1994 ni priplaval v javnost prek poštnih seznamov in novičarskih skupin. Ker je ime "RC4" blagovno znamčeno, se v odprtokodnem svetu pogosto uporablja oznaka ARCFOUR ali ARC4, kar nakazuje, da gre za neuradno implementacijo istega algoritma.

Osnovno delovanje (KSA in PRGA)

RC4 je tokovna šifra z notranjim stanjem, ki ga predstavlja permutacija 256 bajtov. Delo algoritma lahko razdelimo na dve glavni fazi:

  • KSA (Key-Scheduling Algorithm): inicializacija permutacije S z uporabo vnesenega ključa. Permutacija S je poln niz vrednosti 0..255, ki se nato premeša glede na ključ.
  • PRGA (Pseudo-Random Generation Algorithm): iz permutacije S se generira pseudonaključni tok bajtov (keystream). Vsak izhodni bajt se nato kombinira (navadno z XOR) s podatki, da se doseže šifriranje ali dešifriranje.

Poenostavljen opis korakov:

  • Inicializiraj S kot permutacijo 0..255.
  • KSA: uporabi ključ za večkratno mešanje S (indeksi i in j se spreminjata in premešujeta elemente S).
  • PRGA: pri vsakem koraku povečaš i, izračunaš j kot (j + S[i]) mod 256, premešaš S[i] in S[j], izhodni bajt pa je S[(S[i] + S[j]) mod 256].
  • Keystream bajt se XOR-ira z bajtom odprtega besedila (ali šifrirnega besedila) za šifriranje/dešifriranje.

Ključne lastnosti: RC4 je bajtno usmerjen (deluje z bajti, ne z bitnimi blokih), njegova notranja tabela je majhna (256 bajtov), zato je implementacija preprosta in hitra v programski opremi.

Glavne varnostne pomanjkljivosti in znani napadi

Čeprav je RC4 dolgo časa veljal za praktičen in hiter algoritem, ga je pozneje prizadel več resnih kriptoanalitičnih napadov. Najpomembnejše pomanjkljivosti so:

  • Biasi v začetku toka: začetni izhodni bajti RC4 niso enakomerno porazdeljeni in imajo znane pristranskosti. Zaradi tega lahko napadalci z dovolj zajetimi podatki v nekaterih situacijah rekonstruirajo dele ključnega toka ali celo tajne podatke.
  • FMS napad (Fluhrer, Mantin, Shamir): poznan napad iz leta 2001 je izkoristil šibkosti pri kombinaciji statičnega ključa in javnega inicializacijskega vektorja (IV) v protokolu WEP, kar je omogočilo predčasno obnovo ključa WEP. To je ena glavnih razlogov, da je WEP praktično neuporaben za zaščito brezžičnih omrežij.
  • Ponovna uporaba istega toka ključev: če se isti keystream uporabi večkrat (kar se včasih zgodi zaradi slabe prakse pri upravljanju ključev), lahko napadalci iz XOR-a dveh šifriranih tokov pridobijo XOR originalnih odprtih besedil in tako izluščijo informacije.
  • Splošne statistične ranljivosti: naprednejše tehnike, ki izkoriščajo majhne statistične nepravilnosti v toku, omogočajo napade na protokole, ki uporabljajo RC4 (npr. zgodnejše različice TLS so bile ranljive za razkritje vsebine pri ponavljajočih se naključnih vrednostih ali s številnimi povezavami).

Zaradi teh ranljivosti so bili protokoli in standardi postopoma prenovljeni. Na primer, uporaba RC4 v TLS je bila izrecno odsvetovana in kasneje opuščena v številnih implementacijah, saj so bili pokazani praktični napadi, ki omogočijo prisluškovanje ali razkrivanje podatkov v realnih okoliščinah.

Praktični nasveti in priporočila

  • RC4 ni priporočljiv za nove sisteme in protokole — za nove aplikacije izberite modernejše in preverjene tokovne šifre/načine delovanja, npr. AES v GCM načinu ali ChaCha20-Poly1305, ki zagotavljata tako zaupnost kot avtentikacijo (AEAD).
  • Če naletite na star sistem, ki še vedno uporablja RC4, načrtujte migracijo na varnejše alternative. Vmesne mitigacije (kot je odstranjevanje začetnih bajtov keystreama — znano kot RC4-dropN) lahko zmanjšajo nekatere pristranskosti, a ne odpravljajo vseh temeljnih ranljivosti in zato niso zadostne kot dolgotrajna rešitev.
  • Ne ponavljajte enakega ključa ali IV, saj to vodi do katastrofalnih varnostnih okvar (enaka obnašanja kot pri ponovni uporabi enkratnega bloka pri OTP).
  • Preverite sodobne smernice (npr. priporočila IETF in varnostne posodobitve) — v industriji so bile številne implementacije, kot so brskalniki in strežniki TLS, posodobljene tako, da RC4 ne podpirajo več zaradi znanih napadov.

Kdaj, če sploh, uporabiti RC4

Obstajajo redke situacije, kjer je RC4 zaradi svoje preprostosti in hitrosti še vedno v uporabi v zapuščinskih sistemih. V teh primerih je nujno razumeti njegove omejitve in sprejeti vse možne varnostne ukrepe (npr. izogibanje ponovni uporabi ključa, uporaba daljših naključnih IV-jev, izločanje začetnih bajtov toka). Kljub temu glavno priporočilo strokovnjakov ostaja: nadomestite RC4 z varnejšo, sodobno kriptografijo.

Zaključek

RC4 je bil pomemben zgodovinski mejnik v razvoju tokovnih šifer zaradi svoje enostavnosti in hitrosti, vendar so kasnejše kriptoanalize razkrile več resnih slabosti. Zaradi tega je danes uporaba RC4 v novih projektih odsvetovana, obstoječe rešitve pa naj se postopoma migrirajo na varnejše alternative, kot sta AES-GCM ali ChaCha20-Poly1305.

Kriptosistemi, ki temeljijo na RC4

  • WEP
  • WPA
  • Šifriranje protokola BitTorrent
  • Microsoftovo šifriranje od točke do točke
  • Secure Sockets Layer (po želji)
  • Secure Shell (neobvezno)
  • Odjemalec oddaljenega namizja (RDC nad RDP)
  • Kerberos (neobvezno)
  • Mehanizem SASL Digest-MD5 (neobvezno)
  • Gpcode.AK, računalniški virus za Microsoft Windows iz začetka junija 2008, ki za odkupnino vzame dokumente kot talce, tako da jih zakrije s šifriranjem RC4 in RSA-1024.

Če je kriptosistem označen z "(neobvezno)", je RC4 ena od več šifer, ki jih je mogoče nastaviti za uporabo v sistemu.

Sorodne strani

  • Napredni standard šifriranja
  • Standard šifriranja podatkov (DES)
  • DES-X
  • eSTREAM - ocenjevanje novih pretočnih šifer, ki ga izvaja EU.
  • TEA, Block TEA, znan tudi kot eXtended TEA in Corrected Block TEA - Družina blokovnih šifer, ki so tako kot RC4 zasnovane tako, da jih je zelo preprosto izvajati.
  • Trojni DES (TDES)

Vprašanja in odgovori

V: Kaj je RC4?


O: RC4 (znan tudi kot ARC4 ali ARCFOUR, kar pomeni domnevni RC4) je programska tokovna šifra, ki se uporablja v priljubljenih protokolih, kot sta Secure Sockets Layer (SSL) in WEP.

V: Kdo je ustvaril RC4?


O: RC4 je leta 1987 ustvaril Ron Rivest iz podjetja RSA Security.

V: Kako je algoritem postal javen?


O: Algoritem je postal javen, ko je bil septembra 1994 objavljen na poštnem seznamu Cypherpunks, nato pa se je razširil na številna spletna mesta na internetu.

V: Ali je algoritem RC4 zaščiten z blagovno znamko?


O: Da, ime "RC4" je zaščiteno z blagovno znamko.

V: Katera sta dva razloga, zakaj se je začel široko uporabljati?


O: Dva glavna razloga, ki sta pripomogla k njegovi uporabi v tako velikem številu aplikacij, sta njegova hitrost in preprostost. Uporaba RC4 v programski in strojni opremi je izjemno enostavna za razvoj.

V: Kako deluje šifrirni algoritem?


O: Šifrirni algoritem se začne z različno dolžino ključa, običajno med 40 in 256 bitov, z uporabo algoritma za razporejanje ključev (KSA). Ko je to končano, se tok šifriranih bitov ustvari z algoritmom psevdonaključnega generiranja (PRGA).

V: Ali se RC4 šteje za varnega za nove aplikacije?


O: Ne, ker obstaja veliko načinov za napade nanj, zato ga ni priporočljivo uporabljati v novih aplikacijah.

AlegsaOnline.com - 2020 / 2025 - License CC3