See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
RC4 – Wikipedia

RC4

aus Wikipedia, der freien Enzyklopädie

RC4 (auch bekannt als ARC4 oder ARCFOUR) ist eine einfache Stromchiffre. Eine Zufallsfolge wird aus einem nur einmalig zu verwendenden Schlüssel erzeugt. Der Klartext wird Byte für Byte per XOR mit der Zufallsfolge verknüpft, um die Daten zu verschlüsseln. Er wurde 1987 von Ronald L. Rivest (Ron's Code 4) für RSA Data Security Inc. (heute RSA Security) entwickelt und von vielen bekannten Firmen und in einer Vielzahl von Standards wie SSH, HTTPS und WEP bzw. WPA eingesetzt.

Der Algorithmus war sieben Jahre lang geheim („security by obscurity“), bis 1994 der Quellcode anonym veröffentlicht wurde.

Der Zufallsgenerator verwendet eine so genannte S-Box, eine zufällig gewählte Permutation oder Substitution der Zahlen 0 bis 255. Die S-Box wird in einem ersten Schritt aus dem geheimen Schlüssel berechnet und anschließend zur Berechnung der Zufallsfolge verwendet. Nach jedem Berechnungsschritt werden zwei Werte der S-Box vertauscht.

Die Sicherheit eines solchen Verfahrens ist nur gewährleistet, wenn sich die Zufallsfolge nicht wiederholt. Daher darf der Schlüssel bzw. das Passwort nur einmalig verwendet werden. Für die Besetzung der S-Box und die Werte zweier weiterer Variablen gibt es ca. 21700 Möglichkeiten. Eine zufällige Wiederholung ist damit praktisch undenkbar.

Der Algorithmus ist sehr einfach mit praktisch jeder Hard- und Software zu implementieren und sehr effizient berechenbar. Die Verarbeitungsgeschwindigkeit des DES ist jedoch selbst in kleinsten Mikrokontrollern meist ausreichend. Der Schlüssel beim DES und anderen Blockchiffren wie dem AES (CBC-Mode) kann im Gegensatz zum RC4 auch mehrfach verwendet werden. Vergleichbare Stromchiffren wie SEAL sind vergleichbar schnell und gelten als sicher.

Im WEP wurde der einmalige Schlüssel durch einfaches Zusammensetzen eines festen geheimen Schlüssels und eines Session Key bestimmt. In diesem Fall ist es jedoch möglich, den festen geheimen Schlüssel abzuleiten. Falls der Schlüssel mit einer Hash-Funktion quasi zufällig gewählt wird, kann der RC4 aber weiterhin als sicher betrachtet werden.

Bei Microsoft-Windows-Systemen, welche an eine NT-Domäne angebunden sind, wird das Anmeldepasswort, welches der Benutzer in der GINA-Oberfläche eingibt, nach vorangegangener Aushandlung eines Schlüssels per RC4-HMAC verschlüsselt und durch einen Kerberos-Frame an den Server übertragen. Die Aushandlung des Schlüssels findet während der Meldung „Netzwerkverbindungen werden vorbereitet“ statt.

[Bearbeiten] Funktionsweise

Die Nachschlagephase von RC4. Das Ausgabebyte wird von den Werten S(i) und S(j) ausgewählt, diese werden addiert modulo 256 gerechnet.
Die Nachschlagephase von RC4. Das Ausgabebyte wird von den Werten S(i) und S(j) ausgewählt, diese werden addiert modulo 256 gerechnet.

Kern des Verfahrens ist die so genannte S-Box, eine zufällige Vertauschung oder Permutation der natürlichen Zahlen 0 bis 255. Mittels der S-Box wird eine Zufallsfolge erzeugt, die Bit für Bit durch Addition modulo 2, auch XOR-Verknüpfung genannt, mit dem Nachrichtenstrom verknüpft wird. Die S-Box wird zunächst als identische Abbildung vorbesetzt, so dass S(i) = i für alle natürlichen Zahlen 0 bis 255 gilt.

Die initiale Belegung der S-Box kann mit dem folgenden Pseudo-Code beschrieben werden. Die S-Box wird dabei aus dem Schlüssel k der Länge l in Byte berechnet:

 Setze j = 0.
 Für i=0 bis 255 
   j = (j + S[i] + k[i mod l]) mod 256
   vertausche (S[i],S[j])

Die anschließende Berechnung der Zufallsfolge erfolgt analog:

 Setze i = 0 und j = 0.
 Wiederhole für alle Bytes des Nachrichtenstroms
   i = (i + 1) mod 256
   j = (j + S[i]) mod 256
   vertausche (S[i],S[j])
   Zufallsbyte   = S[(S[i] + S[j]) mod 256]
   Chiffrenbyte  = Zufallsbyte XOR (ein Byte des Nachrichtenstroms)

Nennenswerte Schwächen des Verfahrens liegen allein in der Initialisierung der S-Box begründet. Bei einer zufällig gewählten S-Box als Ausgangspunkt der Berechnung ist das Verfahren trotz seiner Einfachheit praktisch nicht zu knacken.

[Bearbeiten] Sicherheit

RC4 liefert sehr effizient eine Pseudozufallszahlenfolge, die mit dem Nachrichtenstrom durch XOR verknüpft wird (bei der zweiten XOR-Verknüpfung erscheint wieder das Original). Die Folge kann im Prinzip beliebig lang gemacht werden, in der Praxis der Nachrichtenübertragung treten jedoch Synchronisationsverluste auf, so dass neu aufgesetzt werden muss. Der dabei verwendete neue Schlüssel besteht aus einem offen übertragenen Teil und einem geheimen Teil. Der offene Teil sorgt für eine andere Zahlenfolge, der geheime Teil garantiert die Sicherheit.

In der WEP-Anwendung wird die Folge ab dem ersten Byte verwendet. Genau für dieses Byte besteht aber eine Simulationsmöglichkeit: die Initialisierung des Algorithmus wird nachvollzogen und dabei das nächste Schlüsselbyte des geheimen Schlüssels „geraten“. Die Wahrscheinlichkeit, dass das nun auszugebende erste Byte der Zahlenfolge in der weiteren Initialisierung nicht mehr verändert wird, ist relativ groß. Hat man genügend viele Neusynchronisationen mit neuen offenen Schlüsselteilen aufgezeichnet, so fällt ein richtig geratenes Schlüsselbyte statistisch auf. Man fährt so fort, bis alle geheimen Schlüsselbytes ermittelt sind. Das erste Byte der Zahlenfolge erhält man aus dem Datenstrom, da die Klartexte der ersten Bytes der Datagramme aus den Datenübertragungsprotokollen bekannt sind.

Der Angriff gelingt nur, wenn das erste Byte zur Verfügung steht. Das Verwerfen der ersten fünf bis zehn Bytes ist für die Wiederherstellung der Sicherheit ausreichend. Bei der Neuauflage der Protokolle (WPA) wurde aber auch direkt ein anderes Verschlüsselungsverfahren eingeführt, da die XOR-Stromverschlüsselung weitere Angriffsmöglichkeiten bietet: ist der Aufbau eines Datensatzes bekannt, besteht nämlich die Möglichkeit der Fälschung. Beispielsweise werden bei Banküberweisungen Kontonummer, Betrag usw. immer an der gleichen Position stehen, Kontonummern und Beträge sind relativ systematisch aufgebaut. Durch ein einfaches XOR mit entsprechend berechneten Masken lassen sich Beträge und Kontonummern verändern (z. B. 1000 addieren), wobei der Betrug nur mit einer gewissen Wahrscheinlichkeit auffällt. Allerdings besteht für den Angreifer lediglich die Möglichkeit der ungezielten Fälschung. Er kann kein bestimmtes Zielkonto angeben und auch den verschlüsselten Text nicht lesen. Diese Art des Angriffs existiert bei Blockchiffren wie DES oder AES in ähnlicher Form, denn je nachdem welcher Modus gewählt wurde lassen sich die Datenblöcke löschen, kopieren oder austauschen. Beim einen Modus sind die Blöcke voneinander abhängig und bei dem anderen nicht.

[Bearbeiten] Weblinks


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -