Freitag, 8. Juni 2012


Topthema

Donnerstag, 19. Oktober 2006 | Topthema

About Security #77: Kryptographie — RSA als Authentikationssystem

(Link zum Artikel: http://www.entwickler.de/php/kolumnen/031918)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Wie das RSA-Verfahren als Authentikationssystem eingesetzt wird, erfahren Sie in dieser Folge. Alle bisher vorgestellten Verfahren wurden am Beispiel der Verschl�sselung beschrieben, dienten also dem Erreichen des Schutzziels "Vertraulichkeit" (siehe About Security #1). Verschl�sselungssysteme werden auch als Konzelationssysteme bezeichnet (siehe About Security #66). Im Folgenden soll nun das Erreichen des Schutzziels "Integrit�t" n�her betrachtet werden. Dabei geht es um die Frage, ob Daten bei der �bertragung ver�ndert wurden oder nicht. Die dazu verwendeten Systeme werden Authentikationssysteme genannt.

Authentikationssysteme

Bei einem Authentikationssystem wird die Nachricht um einen Pr�fwert erweitert, den so genannten Message Authentication Code (MAC), der in Abh�ngigkeit von einem geheimen Schl�ssel aus der Nachricht berechnet wird. Bei einem symmetrischen Authentikationssystem berechnet der Empf�nger seinerseits den MAC und vergleicht ihn mit dem �bertragenen Wert. Stimmen beide �berein, wurde die Nachricht nicht ver�ndert.

Symmetrisches Authentikationssystem

k(x) ist dabei eine Abk�rzung. Hei�t der Kodierungsalgorithmus code (), so berechnet der Sender code (k,x) =: MAC. Der Empf�nger der Nachricht (nun bestehend aus x und MAC) testet dann, ob MAC = code (k,x) ist.

N E U ! Security aktuell
T�glich aktuelle Security-Infos!

Ein symmetrisches Authentikationssystem hat dieselben Nachteile beim Schl�sselaustausch wie symmetrische Konzelationssysteme. Asymmetrische Authentikationssysteme dagegen vereinfachen den Schl�sselaustausch analog zu asymmetrischen Konzelationssystemen, indem sie einen geheimen Schl�ssel zur Berechnung des MAC verwenden, der dann mit dem dazugeh�renden �ffentlichen Schl�ssel gepr�ft werden kann. Der gr��te Vorteil asymmetrischer Systeme ist aber, dass nicht nur die Integrit�t der Nachricht, sondern auch die Identit�t des Senders �berpr�ft werden kann. Dies ist bei symmetrischen Systemen nicht m�glich: Jeder, der den (einzigen) Schl�ssel besitzt, kann den MAC berechnen. Bei asymmetrischen Systemen kann dies nur derjenige, der den geheimen Schl�ssel besitzt. Asymmetrische Authentikationssysteme werden daher auch als (digitale) Signatursysteme bezeichnet.

Asymmetrisches Authentikationssystem

s(x) ist ebenfalls eine Abk�rzung. Die Signierfunktion sign (s,x) erzeugt die Unterschrift U. Der Empf�nger der Nachricht (bestehend aus x und U) berechnet dann test (t,x,U), das Ergebnis lautet "richtig" oder "falsch".

RSA als digitales Signatursystem

Die Bezeichnungen aus About Security #76 werden umbenannt: Aus c wird t, aus d wird s.

About Security: Die komplette Serie

Das Signieren geschieht dann durch modulare Exponentiation mit s, f�r den Klartextblock m also durch die Berechnung von
m^s mod n.

Das Testen erfolgt durch modulare Exponentiation der Unterschrift mit t und anschlie�endem Vergleich des Ergebnisses mit dem dazu geh�renden Textblock. F�r den Klartextblock m mit der Signatur m^salso durch
(m^s)^t mod n = m ?

Das RSA-Verfahren als digitales Signatursystem
Angriff auf diese Anwendung

Wird RSA wie beschrieben eingesetzt, kann ein Angreifer Signaturen f�lschen, indem er r�ckw�rts rechnet: Er w�hlt eine Signatur, exponentiert sie modular mit t und erh�lt den passenden Textblock. Dieser passive Angriff bricht RSA als digitales Signatursystem zwar existenziell, aber nicht selektiv: Der Angreifer kann nicht zu einer gew�nschten Nachricht die Signatur f�lschen.

Aber auch ein selektives Brechen ist m�glich, allerdings ist daf�r ein aktiver Angriff notwendig. Zun�chst soll jedoch ein weiterer passiver Angriff beschrieben werden:

Kennt der Angreifer die Signaturen m_1^s und m_2^sunter den Textbl�cken m_1 und m_2, kann er durch modulare Multiplikation eine dritte Signatur m_3^s und einen passenden Textblock m_3berechnen:

m_3^s := m_1^s * m_2^s mod n
und
m_3 := m_1 * m_2 mod n

 

m_3^s ist eine Signatur von m_3, denn es gilt m_1^s * m_2^s = (m_1 * m_2)^s: RSA besitzt eine multiplikative Struktur.

Dieser Angriff erlaubt kein selektives Brechen. Daf�r ist ein aktiver Angriff notwendig, der im Folgenden beschrieben wird.

  • Der Angreifer w�hlt den Textblock m_3 nach seinen W�nschen.
  • Er w�hlt ein beliebiges m_1, zu dem mod n ein multiplikatives Inverses m_1^-1 existiert.
  • Er berechnet m_2 := m_3 * m_1^-1 mod n.
  • Er l�sst m_1 und m_2 unterschreiben
  • und erh�lt m_1^s und m_2^s als Ergebnis zur�ck.
  • Er berechnet m_3^s := m_1^s * m_2^s mod n

Die Grundidee dieses Angriffs besteht darin, die gew�nschte Nachricht m_3, die der Angreifer signieren lassen m�chte, so mit einer vorbereiteten Zufallszahl r^t zu multiplizieren, dass das Opfer sie unterschreibt, ohne den tats�chlichen Inhalt zu erkennen. Der Angreifer muss die erhaltene Signatur dann nur noch durch r dividieren.

�hnlich erfolgt ein entsprechender Angriff auf RSA als Konzelationssystem: Der Angreifer tarnt den zu entschl�sselnden Schl�sseltextblock durch eine Zufallszahl und l�sst ihn entschl�sseln.

Beide Angriffe funktionieren nur, wenn RSA wie beschrieben eingesetzt wird und das Opfer vorgelegte Nachrichten signiert bzw. entschl�sselt, ohne auf ihren Inhalt zu achten. Letzteres ist z.B. dann m�glich, wenn ein Programm automatisch agiert.

Die Verhinderung derartiger Angriffe wird in der n�chsten Folge beschrieben. Dann geht es auch um den Einsatz von RSA im Rahmen eines hybriden Verschl�sselungsverfahrens.

Wenn Sie Fragen oder Themenvorschl�ge haben, k�nnen Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security � �bersicht zum aktuellen Thema "Kryptographie � RSA"

Kommentare

Folgende Links könnten Sie auch interessieren