RC4: história, princíp a bezpečnostné zraniteľnosti prúdovej šifry

RC4: História, princíp a zraniteľnosti prúdovej šifry — prehľad vývoja, fungovania a známych slabín (WEP/TLS) a prečo už nie je bezpečnou voľbou.

Autor: Leandro Alegsa

V kryptografii je RC4 (známa aj ako ARC4 alebo ARCFOUR, čo znamená Alleged RC4, pozri nižšie) jednou z najrozšírenejších softvérových prúdových šifier. Používa sa v populárnych protokoloch, ako je Secure Sockets Layer (SSL) (na ochranu internetovej prevádzky) a WEP (na zabezpečenie bezdrôtových sietí).

RC4 je známy tým, že je jednoduchý a rýchly, ale k útokom môže dôjsť, ak sa neodstráni začiatok výstupného prúdu kľúčov alebo sa jeden prúd kľúčov použije dvakrát; niektoré spôsoby použitia RC4 sa môžu zmeniť na veľmi nezabezpečené kryptosystémy, ako je WEP.

RC4 vytvoril Ron Rivest zo spoločnosti RSA Security v roku 1987. Hoci jeho oficiálny názov je "Rivestova šifra 4", skratka RC je známa aj ako skratka pre "Ronov kód" (pozri tiež RC2, RC5 a RC6).

RC4 bol najprv vytvorený ako obchodné tajomstvo, ale v septembri 1994 bol jeho opis uverejnený v poštovej konferencii Cypherpunkov. Čoskoro bol zverejnený v diskusnej skupine sci.crypt a odtiaľ na mnohých webových stránkach na internete. Potvrdilo sa, že kód je pravý (nie falošný), pretože jeho výstup sa zhodoval s výstupom proprietárneho softvéru používajúceho licencovaný RC4. Keďže algoritmus je známy, už nie je obchodným tajomstvom. Názov "RC4" je však chránený ochrannou známkou. RC4 sa často označuje ako "ARCFOUR" alebo "ARC4" (čo znamená údajný RC4, pretože RSA tento algoritmus nikdy oficiálne nezverejnila), aby sa predišlo možným problémom s ochrannou známkou. Stal sa súčasťou niektorých bežne používaných šifrovacích protokolov a štandardov vrátane WEP a WPA pre bezdrôtové karty a TLS.

Dva hlavné dôvody, ktoré pomohli jeho použitiu v takom širokom rozsahu aplikácií, sú jeho rýchlosť a jednoduchosť. Použitie RC4 v softvéri aj hardvéri je mimoriadne jednoduché.

Šifrovací algoritmus RC4 sa spúšťa s rôznou dĺžkou kľúča, zvyčajne v rozmedzí 40 až 256 bitov, pomocou algoritmu plánovania kľúčov (KSA). Po jeho dokončení sa vytvorí prúd šifrovaných bitov pomocou algoritmu pseudonáhodného generovania (PRGA).

RC4 v mnohých ohľadoch nespĺňa štandardy stanovené kryptografmi pre bezpečnú šifru a neodporúča sa používať v nových aplikáciách, pretože existuje veľa metód na napadnutie RC4. Vypustenie prvého kilobajtu údajov z prúdu kľúčov môže trochu zlepšiť bezpečnosť.

Krátke zhrnutie princípu

RC4 je prúdová šifra, čo znamená, že generuje nekonečný prúd pseudonáhodných bajtov (keystream), ktoré sa následne XOR-ujú s pôvodným textom (plaintext) a vytvárajú šifrovaný text (ciphertext). Šifra pozostáva z dvoch fáz:

  • Key-Scheduling Algorithm (KSA) – inicializuje vnútorné pole S (permutácia 256 bajtov) zadaným kľúčom (dĺžky typicky 40–256 bitov).
  • Pseudo-Random Generation Algorithm (PRGA) – opakovane premieňa a zamieňa prvky v poli S a z neho produkuje výstupné bajty, ktoré tvoria prúd kľúčov.

Typický priebeh (slovne): KSA nastaví S na identitu 0..255 a potom pomocou kľúča vykoná sériu premietaní a swapov, čím vytvorí počiatočnú permutáciu. PRGA potom v každom kroku posúva ukazovatele, zamieňa dve hodnoty v S a ako výstup vyberie bajt odvodený z výslednej permutácie. Tento výstup sa potom XOR-uje s bajtom otvoreného textu.

História a publikovanie

Algoritmus vytvoril Ron Rivest (RSA Security) v roku 1987 a bol spočiatku obchodným tajomstvom. V septembri 1994 bol však opis RC4 zverejnený v cypherpunkovej poštovej konferencii a čoskoro sa rozšíril na verejné diskusné skupiny. Komunita overila pravosť algoritmu porovnaním výstupov so zašifrovanými dátami z proprietárneho softvéru používajúceho licencovanú implementáciu RC4. Po tejto udalosti už RC4 nebol obchodným tajomstvom, hoci značka "RC4" zostala chránená ochrannou známkou, čo viedlo k bežnému používaniu mien "ARCFOUR"/"ARC4".

Hlavné bezpečnostné zraniteľnosti

Hoci RC4 bol dlho populárny pre svoju rýchlosť a jednoduchosť, postupne sa objavili závažné kryptografické slabiny:

  • Biased output (zaujatosť výstupu) – prvé bajty generovaného prúdu nie sú rovnomerne rozdelené. Tieto biasy umožňujú získať pravdepodobnostné informácie o pôvodnom texte pri dostatočnom množstve vzoriek.
  • FMS útok (Fluhrer, Mantin, Shamir, 2001) – objavili sa špecifické slabiny pri kombinovaní RC4 s krátkymi alebo konkaténovanými inicializačnými vektormi (IV), čo viedlo k praktickým útokom na WEP. WEP používal kľúč + IV spôsobom, ktorý umožnil opakované použitie a úspešné odhalenie tajného kľúča.
  • Ďalšie biasy a analytické útoky – po FMS nasledovali ďalšie práce (napr. Mantin & Shamir) ktoré ukázali viacero štatistických slabín v KSA/PRGA, vrátane toho, že určité kombinácie a pozície v permutácii majú vyššiu pravdepodobnosť.
  • Praktické útoky na TLS/SSL – výskumníci v 2010–2013 ukázali, že pri vhodnom zbere veľkého množstva šifrovaných spojení je možné extrahovať citlivé údaje (napr. cookies) z TLS spojení používajúcich RC4. To viedlo k postupnému vyraďovaniu RC4 z TLS implementácií; v roku 2015 bolo RC4 v TLS zakázané RFC 7465.
  • Sensitivita na opakované použitie prúdu – ak sa ten istý prúd kľúčov použije na zašifrovanie dvoch rôznych správ (napríklad pri zle navrhnutých protokoloch), XOR dvoch ciphertextov odhalí XOR dvoch plaintextov, čo uľahčuje útoky.

Konkrétne dôsledky pre protokoly

  • WEP – kombinácia slabého zabezpečenia IV, krátkeho kľúča a opakovaného používania kľúčov viedla k prakticky úplnému zlomeniu WEP už začiatkom 2000‑tych rokov. WEP dnes nie je bezpečný a nemal by sa používať.
  • TLS/SSL – aj keď PRAGMATICKÉ útoky na RC4 v TLS boli náročné na množstvo zhromaždených údajov, riziko bolo považované za dostatočne veľké, aby sa RC4 postupne eliminovalo z používania. RFC 7465 (2015) explicitne zakázalo použitie RC4 v TLS.
  • WPA/WPA2 – nové štandardy bezdrôtových sietí prestali spoliehať na RC4 (WEP používal RC4, WPA prechodne obsahoval RC4 v kombinácii s ďalšími mechanizmami, ale moderné WPA2/WPA3 používajú AES/CCMP alebo iné bezpečnejšie režimy).

Krátkodobé zmierňujúce opatrenia a ich limity

  • Drop-N (RC4-dropN) – prax „vyhodiť“ prvých N bajtov keystreamu (často N = 256, 512, 768 alebo 1024) znižuje vplyv najsilnejších biasov v počiatočných bajtoch. Toto opatrenie však len dočasne znižuje riziko a nevyrieši hlbšie štatistické slabiny algortimu.
  • Riadenie IV a nepridávanie kľúčov – vyvarovanie sa opakovaného použitia rovnakej kombinácie kľúča+IV a použitie dlhších náhodných IV môže znížiť riziko útokov FMS, ale komplexné slabiny KSA/PRGA zostávajú.
  • Vo všeobecnosti žiadne z týchto zmiernení nie sú považované za dostačujúce pre nové aplikácie.

Doporučenia a alternatívy

  • Neodporúča sa používať RC4 v nových systémoch. Pre nové implementácie zvoľte modernejšie, overené a autentifikované režimy šifrovania, napríklad AES-GCM alebo ChaCha20-Poly1305 (ktoré poskytujú aj autentifikáciu dát a sú rýchle).
  • Aktualizujte staršie systémy, ktoré stále používajú RC4 (napr. staré TLS konfigurácie alebo zariadenia používajúce WEP), na moderné protokoly a algoritmy.
  • Pre aplikácie, ktoré stále čelia kompatibilným požiadavkám, použite viacvrstvové ochrany (napr. aplikovanú autentifikáciu a segmentáciu komunikácie) dočasne, ale pripravte migráciu preč od RC4.

Záver

RC4 zohral významnú úlohu v histórii kryptografie vďaka svojej jednoduchosti a rýchlosti. Postupom času však bolo odhalených viacero závažných kryptografických slabín, ktoré podkopávajú jeho bezpečnosť pri modernom použití. Dnes už RC4 nie je odporúčaný pre nové návrhy a väčšina štandardov a implementácií ho dôrazne odstraňuje v prospech bezpečnejších prístupov (napr. AES‑GCM, ChaCha20‑Poly1305).

Kryptosystémy založené na RC4

  • WEP
  • WPA
  • Šifrovanie protokolu BitTorrent
  • Šifrovanie Microsoft Point-to-Point
  • Secure Sockets Layer (voliteľne)
  • Secure Shell (voliteľne)
  • Klient vzdialenej plochy (RDC cez RDP)
  • Kerberos (voliteľne)
  • Mechanizmus SASL Digest-MD5 (voliteľne)
  • Gpcode.AK, počítačový vírus pre Microsoft Windows zo začiatku júna 2008, ktorý si berie dokumenty ako rukojemníkov a žiada za ne výkupné tým, že ich zašifruje pomocou šifrovania RC4 a RSA-1024.

Ak je kryptosystém označený symbolom "(voliteľne)", RC4 je jednou z niekoľkých šifier, ktoré možno nastaviť na používanie v systéme.

Súvisiace stránky

  • Pokročilý štandard šifrovania
  • Štandard šifrovania údajov (DES)
  • DES-X
  • eSTREAM - Hodnotenie nových prúdových šifier, ktoré vykonáva EÚ.
  • TEA, bloková TEA známa aj ako eXtended TEA a Corrected Block TEA - rodina blokových šifier, ktoré sú podobne ako RC4 navrhnuté tak, aby ich implementácia bola veľmi jednoduchá.
  • Triple DES (TDES)

Otázky a odpovede

Otázka: Čo je RC4?


Odpoveď: RC4 (známa aj ako ARC4 alebo ARCFOUR, čo znamená údajná RC4) je softvérová prúdová šifra používaná v populárnych protokoloch, ako sú Secure Sockets Layer (SSL) a WEP.

Otázka: Kto vytvoril RC4?


Odpoveď: RC4 vytvoril Ron Rivest zo spoločnosti RSA Security v roku 1987.

Otázka: Ako sa algoritmus stal verejným?


Odpoveď: Algoritmus sa stal verejným, keď bol v septembri 1994 uverejnený v poštovej konferencii Cypherpunks a potom sa rozšíril na mnohé webové stránky na internete.

Otázka: Je RC4 chránený ochrannou známkou?


Odpoveď: Áno, názov "RC4" je chránený ochrannou známkou.

Otázka: Aké sú dva dôvody, prečo sa široko používa?


Odpoveď: Dva hlavné dôvody, ktoré pomohli jeho používaniu v takom veľkom rozsahu aplikácií, sú jeho rýchlosť a jednoduchosť. Použitie RC4 v softvéri aj hardvéri je mimoriadne jednoduché na vývoj.

Otázka: Ako šifrovací algoritmus funguje?


Odpoveď: Šifrovací algoritmus sa začína s rôznou dĺžkou kľúča, zvyčajne od 40 do 256 bitov, pomocou algoritmu plánovania kľúčov (KSA). Po jeho dokončení sa vytvorí prúd šifrovaných bitov pomocou algoritmu pseudonáhodného generovania (PRGA).

Otázka: Považuje sa RC4 za bezpečný pre nové aplikácie?


Odpoveď: Nie, pretože existuje mnoho metód na jeho napadnutie, preto sa neodporúča používať v nových aplikáciách.


Prehľadať
AlegsaOnline.com - 2020 / 2025 - License CC3