13.07.2015 Aufrufe

10 Komplexere kryptographische Anwendungen

10 Komplexere kryptographische Anwendungen

10 Komplexere kryptographische Anwendungen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

72 Codierung und Sicherheit , UzL WS 2007/08<strong>10</strong> <strong>Komplexere</strong> <strong>kryptographische</strong> <strong>Anwendungen</strong><strong>10</strong>.1 AuthentisierungKommunizieren zwei Personen miteinander, ohne sich physikalisch gegenüberzustehen, bestehtdas Problem sicherzustellen, daß der ‘Gegenüber auch tatsächlich die richtige Person ist. Das gleichegilt bei Rechnersystemen und Daten, wo nur zugelassenen Nutzern der Zugriff möglich seinsoll. Bei der Nutzeridentifizierung benutzt die konventionelle Lösung ein geheimes Passwort,das nur dem Benutzer und dem Computersystem bekannt ist. Ähnlich könnten sich zwei Gesprächspartnervor Beginn eines elektronischen Nachrichtenaustausches auf ein geheimes Lösungswortverständigen. Bei geheimen Passwörtern besteht die Schwierigkeit, daß das Passwort leseundschreibgeschützt im System abgelegt werden muß. Administratoren hätten dennoch Zugriffauf diesen Bereich und die Sicherung des Systems durch Backups wäre eine weitere Schwachstelle.Neben der Authentisierung von Personen ist es oftmals auch notwendig, Dokumente zu authentisieren– klassisch geschieht dies durch eine handschriftliche Unterschrift am Ende des Textes. Beidigitalen Dokumenten ist dies nicht möglich, man benötigt daher ein digitales Äquivalent, einedigitale Unterschrift, die eindeutig den Unterschreibende identifiziert und die von jedem leichtauf Korrektheit überprüft werden kann, Dritten aber nicht nachahmen können. Bei der digitalenSignierung von Dokumenten besteht das Problem, daß jede Bitfolge einfach kopiert werdenkann. Die Signatur muß daher mit dem eigentlich Dokument in untrennbarer Weise verbundensein, möglichst auch noch mit einem Zeitstempel versehen, damit das signierte Dokument nichtspäter noch einmal mißbräuchlich verwandt werden kann.PasswortschutzDer Zugriffsschutz durch Passwörter geht verloren, wenn einem Angreifer ein Einbruch an derStelle gelingt, wo das System die Passwörter speichert. Durch <strong>kryptographische</strong> Verfahren läßtsich dies Problem beseitigen. Dazu werden 1-Weg-Funktionen verwandt.Es sei f eine 1-Weg-Funktion. Jeder Benutzer B i wählt ein geheimes Passwort x i und berechnety i = f(x i ) . Im System wird unter dem Userid UID i von B i der Wert y i abgelegt. .Meldetsich ein Benutzer dem System gegenüber durch die Eingabe (UID i , x i ) , berechnet dies den Wertf(x i ) und vergleicht es mit dem Eintrag y i für UID i . Ist f eine Einweg-Funktion, so ist dieöffentliche Kenntnis von y i keine Gefahr, da die Berechnung von f −1 (y i ) nicht effizient möglichist.Durch Salting, d.h. Anreichern des Passwortes mit einem zufälligen String sowie Passphrasen,d.h. einfache, aber längere Strings, die sich ein Benutzer als Geheimnis merkt und die durch eineHashfunktion auf ein Passwort fester Länge abgebildet werden, kann man die Sicherheit weitererhöhen. Mögliche Angriffe sind einmal brute-force durch ein vollständiges Testen aller möglichenPasswörter – insbesondere sogenannte Wörterbuch-Attacken – oder das Erlauschen einesPassworters und dessen Wiederverwendung durch den Angreifer zu einem späteren Zeitpunkt.Beispiel <strong>10</strong>.1 Passwort-Verschlüsselung in UNIX:8 ASCII-Characters = 8 × 7 = 56 Bits dienen als Schlüssel für eine DES-Verschlüsselung eines


R. Reischuk, ITCS 73festen Defaultwertes, in der Regel der String 0 64 . Die Verschlüsselung wird 25 mal iteriert, umdie Sicherheit weiter zu erhöhen. Der 64-Bit Output-String, den man durch diese Verschlüsselungerhält, wird im System offen in der Datei /etc/passwd abgelegt.Zusätzlich wird bei der Passwortgenerierung ein 12-Bit Zufallsstring gewählt und damit gewisseBits des Eingabestrings vertauscht. Auf diese Weise ist ein direkter Wörterbuch-Angriff nicht soeinfach möglich, da für jedes potentielle Passwort 4096 Varianten getestet werden müssen.Der 64-Bit Output sowie die 12 Bits des Salting werden als 11 ASCII-Zeichen kodiert.Um das Verwenden erspähter Passwörter zu unterbinden, kann man 1-time-Passwort-Systemeverwenden. Hier kann ein Passwort nur einmal benutzt werden. Beim der nächsten Anmeldungist ein neues Passwort zu verwenden, das sich von dem vorangegangen auf verschiedene Weisenunterscheiden kann, beispielsweise durch Sequenznummern oder Zeitstempel. Noch sicherersind sogenannte Challenge-Response-Protokolle, bei denen das System dem Anfrager eineAufgabe stellt, die nur der authorisierte Nutzer lösen kann.<strong>10</strong>.2 Digitale UnterschriftenDamit ein digitales Unterschriftssystem vertrauenswürdig ist, muß sichergestellt sein, daß jedeBenutzer A nur selbst eine Signatur sig A erzeugen kann. Die Generierung von sig A muß alsofür A einfach und für jede andere Person B praktisch unmöglich sein. A benötigt also einengeheimen Schlüssel. Andererseits sollte jeder Benutzer B in der Lage sein, auf einfache Weisezu verfizieren, daß sig A eine korrekte Unterschrift von A ist. Symmetrische Kryptosystemescheiden damit aus, denn hier müßte auch B den geheimen Schlüssel kennen und könnte somitA ’s Unterschrift fälschen.Digitale Unterschriften sind damit in klassischen symmetrischen Systemen nicht möglich, da nurdiejenigen, die den geheimen Schlüssel kennen, die Unterschrift verifizieren können. Andererseitskönnten solch eine Person B jederzeit eine Unterschrift von A erzeugen.Definition <strong>10</strong>.1 Ein Public-Key-Unterschriftssystem (PUS) ist ein SystemE = (M, C, K, e, d)mit d : M × K → C und inverser Funktion e : C × K → M . d K = d(K, ·) ist die geheimeSignierfunktion zum Schlüssel K und e K = e(K, ·) die öffentliche Verifikationsfunktion.Ein PUS muß also für jeden Schlüssel K und jeden Klartext M die Identität e K (d K (M)) = Merfüllen.Benutzer B i mit Schlüssel K i signiert eine Nachricht M , indem er mit Hilfe seines privatenSchlüssels S M = d Ki (M) erzeugt. Daß S M eine korrekte Unterschrift von B i für M ist,kann jede andere Person mit Hilfe von e Ki überprüfen. Normalerweise muß also der eigentlicheKlartext M und die zugehörige Unterschrift S M ausgehändigt werden. Besitzt M eine hoheRedundanz, so genügt es in der Regel, nur S M weiterzugeben, da e Ki (S M ) = M . Versucht einAngreifer dagegen eine Unterschrift zu fälschen und generiert selber ein S , so wird der Texte Ki (S) = M nur mit vernachlässigbar kleiner WS einen Sinn ergeben.


74 Codierung und Sicherheit , UzL WS 2007/08Um sehr lange Texte M zu signieren, kann man eine Hashfunktion h benutzen, um einenHashwert h(M) konstanter Länge zu generieren, der siginiert wird. S ist dann eine korrekteUnterschrift für M , wenn e Ki (S) = h(M) . Die Hashfunktion sollte dabei bereits auf Veränderungeneinzelner Zeichen von M reagieren und es sollte andererseits schwer sein, zu einem gegebenenM einen anderen Klartext M ′ mit gleichem Hashwert zu finden, d.h. h(M ′ ) = h(M) .Derartiges nennt man eine kollisionsresistente 1-Weg-Hashfunktion.Digitale Unterschriften basierend auf dem RSA-SchemaDa für das RSA-Schema M = C gilt, kann dies System direkt auch als PUS genutzt werden.Jeder Teilnehmer kann einen Klartext M aus ZZ ∗ n mit Hilfe seines privaten Schlüssels (d, n)durch MODEXP d,n (M) = M d mod n signieren. Da MODEXP d,n auf ganz ZZ ∗ n definiert, gibt eszu jedem M eine Signatur. Die Verifikation geschieht dann mit Hilfe des öffentlichen Schlüsselsdurch die inverse Funktion MODEXP e,n .Ebenso kann man Signaturen mit Hilfe von Rabins Schema generieren. Wir wählen feste Längenparameterl und u sowie ein b ∈ ZZ ∗ n . Eine Unterschrift unter eine Nachricht M ∈ {0, 1} lwird erzeugt, indem man zunächst einen zufälligen Vektor U ∈ {0, 1} u wählt und für eineHash-Funktion h : {0, 1} l+u → ZZ ∗ n den Wert h(M U) = c berechnet. Falls die Gleichungx · (x + b) ≡ c mod neine Lösung z besitzt, so ist (MU, z) eine Signatur der Nachricht M . Andernfalls wird einanderer Zufallsvektor U probiert.Die Verifikation geschieht dann durch Vergleich der Werte h(M U) und z · (z + c) mod n .Für geeignete Funktionen h ist die WS, daß die Kongruenz lösbar ist, ungefähr 1/4 undabhängigvom Text M , d.h. die erwartete Anzahl der Versuche, um eine korrekte Unterschriftzu generieren, beträgt 4.<strong>10</strong>.3 Kryptografische BriefumschlägeWill Alice eine Nachricht M signiert und abhörsicher Bob zukommen lassen, so schickt sie ihmC = e B (d A (M)) ,wobei d A ihre geheime Dechiffrierfunktion ist und e B die öffentliche Chiffrierfunktion von Bob.Nach Empfang von C berechnet Bob zunächstd B (C) = d B (e B (d A (M))) = d A (M) = S M und dann e A (S M ) = M .Letzteres ist einfach für B j , da er e A kennt. Da niemand außer Alice ein Paar M, S M mit S M =d A (M) erzeugen kann, aber für jeden leicht S M = d A (M) durch e A (S M ) = M überprüfbar ist,hat Bob damit einen Beweis, daß die Nachricht M tatsächlich von Alice signiert worden ist.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!