RC4 (ARCFOUR): gyors folyamkódolás, működés és biztonsági kockázatok

RC4 (ARCFOUR): gyors folyamkódolás, működés és kockázatok — Ismerje meg az RC4 működését, előnyeit és biztonsági gyenge pontjait, hogy megalapozott döntést hozhasson.

Szerző: Leandro Alegsa

A kriptográfiában az RC4 (más néven ARC4 vagy ARCFOUR, azaz Alleged RC4, lásd alább) egy széles körben elterjedt szoftveres folyamkódolás. Számos régebbi és néhány jól ismert protokollban használták, például a Secure Sockets Layer (SSL) / TLS (az internetes forgalom védelmére) korai változataiban és a vezeték nélküli hálózatoknál alkalmazott WEP protokollban.

Az RC4 egyszerűségéről és gyorsaságáról ismert: szoftveresen könnyen megvalósítható és kis erőforrással fut. Ugyanakkor számos gyakorlati és elméleti gyengeségre derült fény az évek során. Ezek a hiányosságok különösen súlyos következményekkel járnak, ha a kimeneti kulcsfolyam elejét nem távolítják el, ha egy kulcsfolyamot újra felhasználnak, vagy ha a kulcs és az inicializálási vektor (IV) rosszul van kezelve — ennek tipikus példája a WEP, amely így gyakorlatilag feltörhetővé vált.

Az RC4-et Ron Rivest, az RSA Security munkatársa alkotta meg 1987-ben. Hivatalos neve "Rivest Cipher 4"; az "RC" rövidítés ugyanakkor néha a "Ron kódja" értelemben is szerepel (lásd még RC2, RC5 és RC6). Az algoritmust eredetileg üzleti titokként kezelték, de 1994 szeptemberében a Cypherpunks levelezési listán megjelent a leírása, majd a nyilvánosság további csatornáin is elterjedt. A közzétett implementációk kimenete megegyezett a licencelt RC4-et használó saját szoftverek kimenetével, így az algoritmus visszafejtettnek minősült; az "RC4" név azonban védjegyoltalom alatt áll, ezért sok helyen az "ARCFOUR" vagy "ARC4" elnevezést használják.

Működés röviden — KSA és PRGA

Az RC4 két fő részből áll: a kulcs-ütemező algoritmusból (KSA) és a pszeudo-véletlenszerű generáló algoritmusból (PRGA). Tipikus kulcshosszok 40 és 256 bit között vannak, de az implementációk általában bájtokban dolgoznak.

  • A KSA inicializál egy 256 bájtos állapotvektort S (S[0]..S[255]) értékei 0..255; egy kiterjesztett kulcsot (key-scheduling) használva az S elemeit felkeveri úgy, hogy minden pozíciónál egy indexet kicserél a kulcs alapján számított értékkel. Ennek a célja, hogy az S állapot a megadott kulcstól függjön.
  • A PRGA ebből az állapotból egy végtelennek tekinthető bájtsorozatot állít elő: minden lépésben két indexet (i és j) frissít, S elemeit felcseréli, és a cserélt S értékéből egy kimeneti bájtot vesz. A kimeneti bájtot XOR-olják a titkosítandó adat bájtjaival, így kapjuk a titkos szöveget (vagy visszafordítva a dekódolást).

Fontos megérteni, hogy az RC4 kimenete nem feltétlenül kriptográfiailag tökéletesen véletlenszerű; bizonyos kimeneti bájtok eloszlása eltérhet a tökéletesen egyenlőtől, és ezek a torzítások támadásokhoz vezethetnek.

Gyakori gyengeségek és ismert támadások

  • Első bájtok torzítása: Az RC4 kimenetének első néhány bájtja erősen torzított lehet. Emiatt régebben javasolták az első N bájt eldobását (RC4-dropN), de ez önmagában nem elegendő a modern támadások ellen.
  • IV és kulcs újrafelhasználása — WEP problémája: A WEP például rövid IV-t használt, amelyet a titkos kulcshoz egyszerűen hozzáfűztek; így gyakran előfordult, hogy ugyanaz a kulcskombináció ismétlődött, ami lehetővé tette a passzív visszafejtést. Ennek következtében a WEP gyakorlatilag feltörhetővé vált.
  • Szerkezeti támadások: Fluhrer, Mantin és Shamir (FMS) nyilvános támadása kimutatta, hogy egyes kulcs/IV mintázatokból statisztikai elemzéssel vissza lehet nyerni a titkos kulcs bizonyos részeit. Több további munkában (későbbi javításokkal és finomításokkal) ezek a támadások élesben is hatékonyak voltak.
  • Biasok és kriptoanalitikai eredmények: Különböző kutatások feltárták az RC4 kimenetének finomabb biasait (nem-egyenletes eloszlásait), amelyeket manapság már gyakorlati környezetben (pl. TLS) is ki lehet használni rövidebb idő alatt történő részleges visszafejtésre. Egy ismert példa a modern támadások sorában az, amikor elegendő mennyiségű titkos forgalmat gyűjtve ki lehet választani ismétlődő kimeneti mintákat és így információt nyerni a titkos szövegről.
  • Nincs integritásvédelem: Az RC4 egy pusztán titkosító folyamkódoló; nem biztosít integritást vagy hitelességet. Ezért mindig külön MAC-ot vagy, még jobb esetben, AEAD (Authenticated Encryption with Associated Data) konstruktumot kell alkalmazni.

Implementálási buktatók

  • Ne használjunk egymás után hasonló vagy összefűzött kulcsokat (pl. kulcs+IV formában rosszul kombinálva), mert ez kapcsolódó-kulcs támadásokhoz vezethet.
  • A kulcsok és IV-k kezelése kritikus: egyedi, nem ismétlődő IV és megfelelő kulcshossz szükséges — de még ezek mellett is maradnak statisztikai gyengeségek.
  • Aki az RC4 mellett dönt, ne bízza kizárólag a "dropN" technikára a védelmet: az eldobás csökkentheti néhány korai bias hatását, de nem teszi a folyamatot biztonságossá a modern eljárásokkal szemben.

Szabványosítás, eltávolítás és aktuális státusz

Az RC4 korábban számos titkosítási protokoll és szabvány részévé vált, többek között a vezeték nélküli kártyákhoz kapcsolódó WEP és egyes WPA (TKIP) megoldásokban, valamint a TLS egyes régebbi változataiban is megjelent. Azonban a felfedezett gyengeségek és gyakorlati támadások miatt a biztonsági közösség és a szabványosító szervezetek fokozatosan kivonták az RC4 támogatását. Például a modern webböngészők és szerverek már nem engedélyezik az RC4-alapú TLS ciphersuite-eket, és több szabvány is kifejezetten tiltja vagy nem javasolja alkalmazását.

Ajánlások és alternatívák

  • Ne használjuk új rendszerekben az RC4-et. Az RC4 ma már nem tekinthető biztonságos választásnak új fejlesztésekhez.
  • Használjunk modern, bevizsgált algoritmusokat és módozatokat, amelyek titkosítást és integritást egyaránt biztosítanak: például AES-GCM vagy ChaCha20-Poly1305, amelyek AEAD konstrukciók és ellenállnak a modern kriptoanalitikai támadások nagy részének.
  • Ha régi rendszerekkel kell együttműködni, törekedjünk a protokollok és titkosító csomagok frissítésére és a biztonságos konfigurációk alkalmazására (pl. megfelelő kulcsgenerálás, nem ismétlődő IV-k, erős autentikáció).

Összefoglalva: az RC4 történetileg fontos, gyakorlatias és nagyon gyors algoritmus, de a biztonsági követelmények ma már erősen korlátozzák alkalmazhatóságát. A gyakorlatban sok ismert támadás és strukturális probléma létezik, ezért nem ajánlott új alkalmazásokban használni; helyette korszerű, hitelesített titkosítási módszereket válasszunk.

RC4-alapú kriptorendszerek

  • WEP
  • WPA
  • BitTorrent protokoll titkosítása
  • Microsoft pont-pont titkosítás
  • Secure Sockets Layer (opcionálisan)
  • Secure Shell (opcionálisan)
  • Távoli asztali ügyfél (RDC az RDP-n keresztül)
  • Kerberos (opcionálisan)
  • SASL-mechanizmus Digest-MD5 (opcionálisan)
  • Gpcode.AK, egy 2008. június eleji számítógépes vírus a Microsoft Windows számára, amely RC4 és RSA-1024 titkosítással eltitkolva dokumentumokat váltságdíj ellenében túszul ejti.

Ahol egy kriptorendszer "(opcionálisan)" jelzéssel van ellátva, ott az RC4 egyike a rendszer által használható számos titkosításnak.

Kapcsolódó oldalak

  • Fejlett titkosítási szabvány
  • Adattitkosítási szabvány (DES)
  • DES-X
  • eSTREAM - Az EU által végzett, új adatfolyam-kódok értékelése.
  • TEA, Block TEA, más néven eXtended TEA és Corrected Block TEA - A blokkos titkosítások egy családja, amelyet az RC4-hez hasonlóan úgy terveztek, hogy nagyon egyszerűen megvalósítható legyen.
  • Triple DES (TDES)

Kérdések és válaszok

K: Mi az RC4?


V: Az RC4 (más néven ARC4 vagy ARCFOUR, azaz Alleged RC4) egy szoftveres adatfolyam-riasztó, amelyet olyan népszerű protokollokban használnak, mint a Secure Sockets Layer (SSL) és a WEP.

K: Ki alkotta meg az RC4-et?


V: Az RC4-et Ron Rivest, az RSA Security munkatársa alkotta meg 1987-ben.

K: Hogyan vált nyilvánossá az algoritmus?


V: Az algoritmus akkor vált nyilvánossá, amikor 1994 szeptemberében a Cypherpunks levelezési listára felkerült, majd az interneten számos weboldalon elterjedt.

K: Az RC4 védjegyoltalom alatt áll?


V: Igen, az "RC4" név védjegyoltalom alatt áll.

K: Mi az a két ok, amiért széles körben használták?


V: A két fő ok, ami hozzájárult ahhoz, hogy ilyen széles körben használják, a gyorsasága és az egyszerűsége. Az RC4 felhasználása mind szoftverben, mind hardverben rendkívül könnyen fejleszthető.

K: Hogyan működik a titkosítási algoritmus?


V: A titkosítási algoritmus különböző hosszúságú, általában 40 és 256 bit közötti kulcsokkal kezdődik, a kulcs-ütemező algoritmus (KSA) segítségével. Miután ez megtörtént, a titkosított bitek folyamát a pszeudo-véletlenszerű generáló algoritmus (PRGA) segítségével hozzák létre.

K: Az RC4 biztonságosnak tekinthető az új alkalmazások számára?


V: Nem, mivel számos támadási módszer létezik, ezért nem ajánlott új alkalmazásokban használni.


Keres
AlegsaOnline.com - 2020 / 2025 - License CC3