RC4 (ARCFOUR) — salausalgoritmi, käyttö, haavoittuvuudet ja historia

Lue RC4 (ARCFOUR): sen historia, toimintaperiaate, käytöt (SSL/WEP), tunnetut haavoittuvuudet ja turvalliset korvausvaihtoehdot.

Tekijä: Leandro Alegsa

Kryptografiassa RC4 (tunnetaan myös nimellä ARC4 tai ARCFOUR eli Alleged RC4, ks. jäljempänä) on yksi yleisimmistä ohjelmistovirtasalaimista. Sitä käytetään suosituissa protokollissa, kuten Secure Sockets Layer (SSL) (Internet-liikenteen suojaamiseen) ja WEP (langattomien verkkojen suojaamiseen).

RC4 on tunnettu yksinkertaisuudestaan ja nopeudestaan, mutta hyökkäyksiä tapahtuu todennäköisesti, kun ulostulon avainvirran alkua ei poisteta tai yhtä avainvirtaa käytetään kahdesti; jotkin RC4:n käyttötavat voivat muuttua hyvin turvattomiksi salausjärjestelmiksi, kuten WEP.

RC4:n loi Ron Rivest RSA Security -yrityksestä vuonna 1987. Vaikka sen virallinen nimi on "Rivest Cipher 4", RC-lyhenne tunnetaan myös lyhenteenä "Ron's Code" (ks. myös RC2, RC5 ja RC6).

RC4 luotiin ensin liikesalaisuutena, mutta syyskuussa 1994 sen kuvaus lähetettiin Cypherpunks-postituslistalle. Se julkaistiin pian sci.crypt-uutisryhmässä ja sieltä edelleen monilla Internetin verkkosivustoilla. Koodin todettiin olevan aito (ei väärennös), koska sen tuotos vastasi lisensoitua RC4:ää käyttävien omien ohjelmistojen tuotosta. Koska algoritmi tunnetaan, se ei ole enää liikesalaisuus. Nimi "RC4" on kuitenkin suojattu tavaramerkillä. RC4:ään viitataan usein nimellä "ARCFOUR" tai "ARC4" (joka tarkoittaa väitettyä RC4:ää, koska RSA ei ole koskaan julkaissut algoritmia virallisesti) mahdollisten tavaramerkkiongelmien välttämiseksi. Se on tullut osaksi joitakin yleisesti käytettyjä salausprotokollia ja -standardeja, kuten langattomien korttien WEP ja WPA sekä TLS.

Kaksi tärkeintä syytä, jotka ovat auttaneet sen käyttöä niin monissa sovelluksissa, ovat sen nopeus ja yksinkertaisuus. RC4:n käyttö sekä ohjelmistoissa että laitteistoissa on erittäin helppoa kehittää.

RC4-salausalgoritmi aloitetaan eri pituisella avaimella, joka on tavallisesti 40-256 bittiä, käyttäen avaimen aikataulutusalgoritmia (KSA). Kun tämä on tehty, salattujen bittien virta luodaan pseudosattumanmuodostusalgoritmilla (PRGA).

RC4 ei täytä monin tavoin kryptografien turvalliselle salakirjoitukselle asettamia standardeja, eikä sitä suositella käytettäväksi uusissa sovelluksissa, koska RC4:n kimppuun on monia hyökkäysmenetelmiä. Ensimmäisen kilotavun datan poistaminen avainvirrasta voi parantaa turvallisuutta jonkin verran.

Miten RC4 toimii (yhteenveto)

RC4 on yksinkertainen tavarasalainen virrasalasana, jonka avaimen koko voi olla tyypillisesti 40–256 bittiä. Perusrakenne koostuu kahdesta vaiheesta:

  • KSA (Key Scheduling Algorithm): alustaa 256 tavun (0–255) permutaation S käyttäen annettua avainta.
  • PRGA (Pseudo-Random Generation Algorithm): tuottaa jatkuvasti avainvirtaa (keystream), joka XORataan selvätekstin tai salauksen kanssa.

Lyhyt kuvaus toiminnasta:

  • Alusta S = [0..255] ja toista avaimen tavuja niin, että niitä käytetään S-sekvenssin sekoittamiseen.
  • KSA käy S-taulukon läpi ja vaihtaa alkioita avaimen perusteella, jolloin syntyy avainriippuvainen permutaatio.
  • PRGA:ssa pidetään kahta indeksiä i ja j, jotka liikkuvat permutaation ympäri; joka askeleella vaihdetaan S[i] ja S[j] ja tuotetaan yksi keystream-tavu S[(S[i]+S[j]) mod 256].

Tämän keystreamin tavuja XORataan selvätekstin tavujen kanssa synnyttäen salatun datan (tai purku tapahtuu samoin XORaamalla salattu data samaa keystreamia vastaan).

Käyttö käytännössä

RC4 on historiallisesti otettu laajasti käyttöön, koska se on erittäin nopea ohjelmistoissa ja helppo toteuttaa. Tunnettuja käyttökohteita ovat olleet mm. WEP, eräät WPA-variantit ja HTTPS-yhteyksiä aiemmin suojannut SSL/TLS. Lisäksi RC4:ää on käytetty erilaisissa sovelluksissa ja protokollissa, joissa tarvitaan kevyttä virrasalausta.

Kuitenkin monet näistä käyttötapauksista ovat osoittautuneet haavoittuviksi, ja useat standardit ja ohjelmistot ovat poistaneet RC4-tuet vähitellen käytöstä.

Keskeiset haavoittuvuudet ja hyökkäykset

RC4:n yksinkertaisuus ei ole sääntöjenmukaisesti sama kuin turvallisuus. Merkittäviä ongelmia ovat muun muassa:

  • Alkubiittien vinoumat: KSA:n jälkeinen keystream ei ole satunnainen alussa; ensimmäisillä tavuilla on tunnettuja bias-ominaisuuksia. Näitä vinoumia on hyödynnetty selvätekstin palauttamiseen, erityisesti jos sama avain (tai sama avainosa) toistuu useissa viesteissä.
  • WEP ja FMS-hyökkäys: Fluhrer–Mantin–Shamir (FMS) ja siihen liittyvät hyökkäykset käyttävät WEP:n avainten rakentamistapaa ja lyhyitä IV-arvoja löytääkseen salausavaimen. Tämän takia WEP on käytännössä murrettu eikä sitä pidetä turvallisena.
  • Avainten uudelleenkäyttö: Virrasalaimessa avainvirtaa ei saa käyttää kahdesti; sama keystream XORattuna kahteen eri selvätekstiin voi johtaa niiden yhdistelyyn ja paljastaa tietoa. Tämä tekee esimerkiksi avaimen/IV-yhdistelmien huonosta hallinnasta vaarallista.
  • Laajentuneet plaintextin palautus- ja erottamishyökkäykset: Tutkijat ovat kehittäneet tehokkaita erottamis- ja plaintext-palautusmenetelmiä, jotka hyödyntävät monimutkaisempia keystreamin vinoumia. Useat näistä hyökkäyksistä toimivat käytännössä mm. TLS-yhteyksissä.
  • Related-key ja avainjärjestelyyn liittyvät hyökkäykset: Joissain käyttötavoissa, joissa avainmateriaalin muotoilu tai IV-yhdistäminen tapahtuu virheellisesti, RC4:n heikkoudet sallivat jopa koko avaimen palauttamisen.

Vaikka yksi lohtu oli ehdotettu malli "RC4-drop-N" (eli poistaa N ensimmäistä keystream-tavua, esim. 256 tai 1024), tämä ei poista kaikkia tunnettuja vinoumia eikä tee RC4:stä turvallista nykyaikaisissa sovelluksissa.

RC4 TLS:ssä ja standardien päätökset

RC4 oli pitkään vaihtoehtona TLS:ssa, koska se tarjosi suojan joidenkin TLS-sisäisten ongelmien (kuten CBC-padovaikutukset) kiertämiseksi. Myöhemmin tutkimukset osoittivat, että RC4:n vinoumat altistavat TLS-istuntoja plaintext-paljastuksille. Tämän seurauksena useat standardit ja selaimet poistasivat RC4-tuen ja esimerkiksi Internetin standardeissa on suosituksia RC4:n välttämiseksi. Useissa ohjelmistoissa ja palveluissa RC4 on nykyään estetty tai korvattu turvallisemmilla lohko- ja virrasalauksilla yhdistettynä autentikointiin.

Historia ja nimi

Kuten aiemmin mainittu, RC4 luotiin Ron Rivestin toimesta vuonna 1987 ja oli alun perin liikesalaisuus. Vuonna 1994 algoritmin kuvaus vuoti Cypherpunks-ryhmään ja sen jälkeen se levisi laajalti. Koska RSA ei virallisesti julkaissut lähdekoodia, tutkijat ja käytännön toteuttajat käyttävät usein nimeä ARCFOUR tai ARC4 välttääkseen mahdollisia tavaramerkkikysymyksiä; samalla tavaramerkki on yksi syy tähän nimikäytäntöön.

Suositukset ja korvaavat ratkaisut

  • Älä ota RC4:ää käyttöön uusissa järjestelmissä.
  • Migroi olemassa olevat järjestelmät moderneihin ja todistetusti turvallisiin salausratkaisuihin, kuten AES-GCM tai ChaCha20-Poly1305, jotka tarjoavat sekä salauksen että suojatun eheystarkistuksen.
  • Jos kohtaat vanhaa järjestelmää, jossa RC4 on käytössä, suunnittele poisto- ja päivityspolku välittömästi. Useat selaimet, kirjastot ja palvelimet ovat jo poistaneet RC4-tuet.

Tekniset tiedot (tiivistelmä)

  • Sisäinen tila: 256-tavun permutaatio S (eli 2048 bittiä tilaa käytännössä).
  • Avaimen pituus: tyypillisesti 40–256 bittiä (historiallisesti 40 bittiä oli yleinen rajoitus viejäsalausversioissa).
  • Suorituskyky: hyvin nopea ohjelmistoissa ja helppo implementoida laitteistona.

Yhteenveto

RC4 on merkittävä historiallinen virrasalasana, jonka yksinkertaisuus ja nopeus johtivat laajaan käyttöön. Kuitenkin laaja tutkimus on paljastanut useita käytännössä hyväksikäytettäviä heikkouksia, erityisesti keystreamin vinoumat ja avaimen/IV:n huono hallinta. Tästä syystä RC4 ei ole suositeltava nykyaikaisten turvallisuusvaatimusten täyttämiseen; sen sijasta tulee käyttää moderneja, todistetusti turvallisiksi katsottuja salausratkaisuja.

RC4-pohjaiset salausjärjestelmät

  • WEP
  • WPA
  • BitTorrent-protokollan salaus
  • Microsoft Point-to-Point-salaus
  • Secure Sockets Layer (valinnaisesti)
  • Secure Shell (valinnaisesti)
  • Etätyöpöytäasiakas (RDC yli RDP)
  • Kerberos (valinnaisesti)
  • SASL-mekanismi Digest-MD5 (valinnaisesti)
  • Gpcode.AK, kesäkuun 2008 alussa Microsoft Windows -tietokonevirus, joka ottaa asiakirjoja panttivangeiksi lunnaita vastaan peittämällä ne RC4- ja RSA-1024-salauksella.

Jos salausjärjestelmä on merkitty merkinnällä "(valinnaisesti)", RC4 on yksi monista salakirjoituksista, joita järjestelmä voi käyttää.

Aiheeseen liittyvät sivut

  • Advanced Encryption Standard
  • Tietojen salausstandardi (DES)
  • DES-X
  • eSTREAM - EU:n parhaillaan toteuttama uusien virtasalaisten salakirjoitusten arviointi.
  • TEA, Block TEA, joka tunnetaan myös nimillä eXtended TEA ja Corrected Block TEA - Lohkosalakirjoitusten perhe, joka on RC4:n tavoin suunniteltu hyvin yksinkertaiseksi toteuttaa.
  • Triple DES (TDES)

Kysymyksiä ja vastauksia

K: Mikä on RC4?


V: RC4 (tunnetaan myös nimellä ARC4 tai ARCFOUR eli Alleged RC4) on ohjelmistovirtasalaus, jota käytetään suosituissa protokollissa, kuten Secure Sockets Layer (SSL) ja WEP.

K: Kuka loi RC4:n?


V: RC4:n loi Ron Rivest RSA Securityn yrityksestä vuonna 1987.

K: Miten algoritmista tuli julkinen?


V: Algoritmi tuli julkiseksi, kun se lähetettiin Cypherpunks-postituslistalle syyskuussa 1994, minkä jälkeen se levisi monille Internetin verkkosivustoille.

K: Onko RC4 suojattu tavaramerkki?


V: Kyllä, nimi "RC4" on suojattu tavaramerkillä.

K: Mitkä ovat kaksi syytä, miksi sitä on käytetty laajalti?


V: Kaksi tärkeintä syytä, jotka ovat edistäneet sen käyttöä niin monissa sovelluksissa, ovat sen nopeus ja yksinkertaisuus. RC4:n käyttö sekä ohjelmistoissa että laitteistoissa on erittäin helppoa kehittää.

K: Miten salausalgoritmi toimii?


V: Salausalgoritmi aloitetaan eri pituisella avaimella, joka on yleensä 40-256 bittiä, käyttäen avaimen ajoitusalgoritmia (KSA). Kun tämä on tehty, salattujen bittien virta luodaan pseudosattumanmuodostusalgoritmilla (PRGA).

Kysymys: Onko RC4 turvallinen uusissa sovelluksissa?


V: Ei, koska siihen on monia hyökkäysmenetelmiä, joten sitä ei suositella käytettäväksi uusissa sovelluksissa.


Etsiä
AlegsaOnline.com - 2020 / 2025 - License CC3