270 likes | 640 Views
Asymmetrische Kryptographie. Mohammed Abuhaish. Inhalt. Asymmetrische Verschlüsselung Warum asymmetrische Verschlüsselung? Definition Einwegfunktion Vor - Nachteile RSA Definition Der Ablauf Beispiel SSL Definition Wie funktioniert SSL ? SSH Was ist SSH ?
E N D
Asymmetrische Kryptographie Mohammed Abuhaish
Inhalt • Asymmetrische Verschlüsselung • Warum asymmetrische Verschlüsselung? • Definition • Einwegfunktion • Vor - Nachteile • RSA • Definition • Der Ablauf • Beispiel • SSL • Definition • Wie funktioniert SSL ? • SSH • Was ist SSH ? • Wie funktioniert SSH ? • Quellen
Asymmetrische Verschlüsselung Warum Asymmetrische Verschlüsselung? Vertraulichkeit: Schutz elektronischer Dokumente und der Kommunikation vor unberechtigtem Zugriff (Spionage) Authentifizierung: Prüfung der Identität des Autors bzw. Absenders eines Dokuments
Asymmetrische Verschlüsselung Bei asymmetrischen Verschlüsselung (auch Public Key Verschlüsselung) wird ein Schlüsselpaar erstellt: einen öffentlichen Schlüsseln (Public Key) mit dem man verschlüsseln/codieren kann. Allein aus der Kenntnis des Public Keys kann man die Nachricht nicht entschlüsseln, nur verschlüsseln. Verschlüsselung : Geheimtext := Algorithmus Öffentlicher Schlüssel (Klartext) einen privaten Schlüssel (Private Key) mit dem man entschlüsseln/decodieren kann. Dieser Schlüssel verbleibt beim Empfänger. Entschlüsselung : Klartext := Algorithmus Privater Schlüssel(Geheimtext) Definition
Asymmetrische Verschlüsselung Einwegfunktion. Die Basis der asymmetrischen Verschlüsselung sind mathematische Berechnungen, die sich nur in eine Richtung schnell und effektiv durchführen lassen. Eine Einwegfunktion ist eine Funktion, die einfach zu berechnen, aber sehr schwer umkehrbar ist. D.h. aus der Kenntnis des Public Keys keine Rückschlüsse auf den Private Key. Beispiele: Faktorisierung 31181593 * 11381633 354897447881369 (Einfach) multiplizieren faktorisieren 354897447881369 ????? (schwierig)
Asymmetrische Verschlüsselung Trapdoor-Einwegfunktion Da eine Verschlüsselung durch eine Einwegfunktion weder von Unbefugten geknackt, noch vom rechtmäßigen Empfänger der Nachricht entschlüsselt werden kann, braucht man also etwas anderes: Trapdoor-Einwegfunktion Eine Trapdoor-Einwegfunktion ist eine Einwegfunktion mit einer Geheimtür. Mit Hilfe der Geheimtür, also einer geheimen Information, kann man aus der Funktion relativ leicht die Umkehrfunktion ermitteln. Das Quadrieren modulo n mit n = p*q ist eine Trapdoor-Einwegfunktion: f (x) = x2 mod n. Ohne die Faktorisierung n = p*q zu kennen, kann man diese Funktion nicht invertieren. Kennt man aber die Faktorisierung, so ist es relativ einfach, die Umkehrfunktion zu bestimmen.Die geheime Information, also die Trapdoor, ist hierbei die Zerlegung von n in die beiden Faktoren p und q.
Asymmetrische Verschlüsselung Szenario
Asymmetrische Verschlüsselung • Vorteile • hohe Sicherheit • Jeder Teilnehmer hat seinen eigenen geheimen Schlüssel , den er mit • niemandem teilen muss. • Keine geheime Übermittlung nötig • Zahl der nötigen Schlüssel wächst linear mit der Zahl der Teilnehmer • (bei symmetrischer Verschlüsselung quadratisch). • Nachteile • ist nur so lange sicher, wie die (momentane) Unfähigkeit große Zahlen • in vernünftiger Zeit zu faktorisieren. • langsam und aufwendig • Lösung Hybridverfahren
Asymmetrische Verschlüsselung Hybridverfahren Bei hybriden Verschlüsselungsverfahren handelt es sich um eine Kombination aus symmetrischer und asymmetrischer Verschlüsselung. Dabei werden die reinen Nutzdateien symmetrisch verschlüsselt. Der dazu nötige Schlüssel, der Session Key, wird anschließend asymmetrisch verschlüsselt und verschickt.
RSA Definition: Eines der bekanntesten Beispiele der Public-Key Verschlüsselung ist der RSA-Algorithmus, der von Ron Rivest, Adi Shamir und Leonard Adleman 1977 entwickelt wurde. Der Algorithmus basiert auf dem Problem, dass das Produkt zweier großer Primzahlen nur schwer in seine Faktoren zu zerlegen ist
RSA Der Ablauf des Algorithmus gestaltet sich wie folgt: Generierung des öffentlichen Schlüssels 1. Auswahl von zwei große Primzahlen p, q mit p ≠ q 2. den Produkt n = p * q bilden, n stellt den ersten Teil des public key dar. 3. Berechnung von ϕ ( n ) = ( p − 1) ⋅ ( q − 1) ϕ(n) ist Anzahl der zu n teilerfremden natürlichen Zahlen, die nicht größer als n sind. Man nennt ϕ (sprich „phi“) die Eulersche ϕ-Funktion. Beispiel: Die zu 7 teilerfremden Zahlen < 7 sind: 1, 2, 3, 4, 5, und 6 d.h. ϕ(7) = 6. Allgemein gilt: Wenn p eine Primzahl ist, so gilt ϕ(p) = p–1. 4. Auswahl von eine Zahl e so, dass gilt: e und ϕ (n) teilerfremd sind. e stellt den zweiten Teil des public key dar. 5. Öffentlicher Schlüssel: (e,n) Um nun eine Nachricht P (für „Plain-Text“) zu verschlüsseln, potenziert man mit e und reduziert um n . So erhält man den Chiffretext : C = pe mod n
RSA Generierung des privaten Schlüssels • Berechnung von d aus: d⋅e mod ϕ (n) = 1 2. Privater Schlüssel: (d,n) Um nun eine Nachricht C zu entschlüsseln, potenziert man mit d und reduziert um n . So erhält man den Originaltext : M = Cd mod n
RSA Schlüsselerzeugung Beispiel • Sei p = 61 und q = 53 • Dann n = p * q = 61 * 53 = 3233 • Und ϕ (n) = ( p−1)⋅(q−1) = 60 * 52 = 3120 • Wähle e = 17, denn ggT(17 , 3120) = 1 • Öffentlicher Schlüssel = (17 , 3233) • Berechne d aus : d * e mod ϕ (n) = 1 d = 2753 • Privater Schlüssel = (2753 , 3233) • Verschlüsseln Beispiel • Sei M = 123 • Berechne C = Me mod n • C = 12317 mod 3233 = 855 • Entschlüsseln Beispiel • Berechne M = Cdmod n M = 8552753 mod 3233 = 123
SSL Was ist SSL ? • SSL steht für Secure Socket Layer (sichere Sockelschicht) und wurde von der Firma Netscape entwickelt. • Gewährleistet, dass Daten während der Übertragung nicht gelesen • oder manipuliert werden können und stellt die Identität einer • Internetseite sicher. • Das Prinzip besteht darin, mit Hilfe einer Zertifikat einen gesicherten • (chiffrierten) Kommunikationskanal zwischen zwei Rechnern (Kunde und • Server) aufzubauen. • Das SSL- System ist unabhängig vom benutzten Protokoll, das bedeutet, • es kann sowohl Übertragungen sichern, die im HTTP Protokoll durchgeführt • werden, als auch welche über das FTP Protokoll, POP oder IMAP. • Ein durch SSL gesicherter Webserver hat eine URL , die mit • https://, beginnt, das "s" steht für secured (gesichert).
SSL Beispiel Zertifikat
SSL Verbindungsarten Mit Hilfe von SSL können drei verschiedene Verbindungsarten zwischen Server und Client aufgebaut werden, die sich in der Art der Authentisierung unterscheiden: Anonym:Keine Authentisierung von Server und Client. Server-Authentisierung:Nur der Server überträgt ein Zertifikat. Dieses muss vom Client akzeptiert werden. Dem Server ist die Identität des Clients nicht bekannt. Der Client jedoch kann sich der Identität des Servers sicher sein. Authentisierung beider Seiten:Server und Client tauschen Zertifikate aus. Beide Partner sind somit authentisiert – die Identität ist bekannt.
SSL Wie funktioniert SSL?
SSH Was ist SSH? • Das Protokoll SSH (Secure Shell) wurde 1995 vom Finnen Tatu Ylönen entwickelt. • SSH liefert folgenden Funktionsumfang : • sicheres Remote Login auf einem entfernten Rechner (Ersatz für telnet, rlogin, rsh) • Ausführung von Befehlen auf diesem Rechner • sicherer File-Transfer (Ersatz für ftp, rcp) • SSH ist plattformunabhängig Windows,Unix,Linux,Mac,… • zwei Versionen: SSHv1 und SSHv2
SSH Wie funktioniert SSH? 1- Aufbau eines gesicherten Kanals • Client öffnet Verbindung zum Server (i.d.R. Port 22) • Client und Server tauschen SSH-Versionen aus (SSHv1/SSHv2). • Der Server sendet seinen öffentlichen Host-Key an den Client. • Der Kunde generiert einen Session-Key, chiffriert ihn mit dem • öffentlichen Schlüssel des Servers, und sendet den chiffrierten Session • Key und den verwendeten Verschlüsselungsalgorithmus an den Server. • Der Server dechiffriert den Session-Key mit seinem Privatschlüssel • und sendet eine Bestätigungsnachricht, die mit dem Session- Key • chiffriert ist. • Von nun an werden alle Kommunikationen mit einem symmetrischen Session-Key verschlüsselt.
SSH Wie funktioniert SSH? • 1- Aufbau eines gesicherten Kanals (Die Sicherheit) • Die Sicherheit basiert völlig auf der Gültigkeit der Host-Key. • Bei der ersten Verbindung zu einem Server zeigt SSH den Fingerprint • (Signatur des Keys) an, und fragt uns, ob wir den Fingerprint akzeptieren. • Wenn wir akzeptieren, speichert SSH den key in known_hosts-Datei. • Wenn sich der Public Key des Servers ändert, zeigt uns SSH beim nächsten • Mal eine Warnung an, dass sich der Key geändert hat. • Die Sicherheit der Verbindung wird also nur durch diesen Fingerprint • gewährleistet. Deshalb ist es wichtig, dass wir uns sicher sind, dass es der • richtige Key zum Server ist.
SSH Wie funktioniert SSH? 2- Die Authentifizierung Steht die gesicherte Verbindung zwischen Kunden und Server, muss der Kunde sich beim Server identifizieren, um Zugriffsrechte zu erhalten. Es gibt dafür mehrere Methoden : Passwort SSH Server fragt nach einem Usernamen und einem Passwort, die vom Clienten eingegeben werden muss. Hostname Client ist bei dem Server registriert (in .rhosts). Der Server identifiziert den Client anhand des RSA-Hostkey
SSH • 2- Die Authentifizierung • Public Key • Hier wird den öffentliche Schlüssel auf dem Server gespeichert. • Der private Schlüssel wird auf dem eigenen Client-Rechner gespeichert. • Der Server verschlüsselt Zufallszahl mit PubK, schickt sie zum Client. • Der Client entschlüsselt Zahl mit PrivK, schickt Prüfsumme zurück. • Der Server überprüft diese und akzeptiert Anmeldung.
SSH Schwachstellen Die von SSH-1 verwendete Integritätsprüfung weist Schwachstellen auf, die es einem Angreifer ermöglichen, eine SSH-1-Sitzung auszuspähen. Daher sollte nur noch die neue Protokollversion ab SSH-2 aufwärts verwendet werden.
Quellen • http://de.kioskea.net/contents/crypto/ssl.php3 • http://verplant.org/facharbeit/html/facharbeit.html • http://www.springerlink.de/content/k1513j/?p=deee28f0804f4cd9aa5581722425049f&pi=0 • de/TI/Lehre/WS99_00/Seminar/Kryptographie_im_Internet_und_Intranet/Ausarbeitungen/Ausarbeitung_Thomas_Rauch/Ausarbeitung/doc/thomas-rauch-3.htm • http://e-campus.uibk.ac.at/planet-etfix/M9/details/3031_publicKey.htm • http://www.teialehrbuch.de/Kostenlose-Kurse/Apache/15493-Secure-Socket-Layer.html