Mittwoch, 8. Oktober 2008

News

präsentiert von: entwickler.com
Donnerstag, 19. Oktober 2006

About Security #77: Kryptographie — RSA als Authentikationssystem

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

Ihre Meinung ist uns wichtig!
Mobile Computing Heute & Morgen!
Nehmen Sie an unserer Umfrage zum Thema Mobile Computing in Deutschland teil und nutzen Sie die Chance eine Casio Exilim EX-Z1050-Digitalkamera zu gewinnen!

Konferenzen

EKON 12

EKON 12

27.-31. Oktober 2008
Congress Centrum, Mainz

IPC 2008

IPC 2008

27.-31. Oktober 2008
Rheingoldhalle, Mainz

AJAX IN ACTION 2008

AJAX IN ACTION 2008

28.-31. Oktober 2008
Rheingoldhalle, Mainz

W-JAX 2008

W-JAX 2008

3.- 7. November 2008
ArabellaSheraton Hotel München

SOACON 2008

SOACON 2008

3.- 7. November 2008
Arabella Sheraton Hotel, München

JAX Asia 2008

JAX Asia 2008

25.-28. November 2008
Singapore, Kuala Lumpur, Jakarta

Werbung
Top-Jobs

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

Bücher


hosted by HostEurope