Kryptographie
Kryptographie Sender Nachricht Angreifer Empfänger Ziele: Vertraulichkeit Angreifer kann die Nachricht nicht lesen (Flüstern). Integrität Angreifer kann die Nachricht nicht ändern ohne dass der Empfänger dies merkt (Versiegeln). Authentizität Von einer Nachricht kann festgestellt werden, wer sie geschrieben hat (Unterschrift). Nichtabstreitbarkeit Versand und Empfang kann nicht abgestritten werden (Einschreiben). Unverzichtbare Voraussetzung z.b. für ecommerce
Kryptographie Ziel: Vertraulichkeit Klartext Sender Verschlüsselung verschlüsselte Nachricht Empfänger Klartext Entschlüsselung Probleme: Algorithmen zur Ver/Entschlüsselung müssen geheim gehalten werden. Jedes Sender/Empfänger Paar braucht sein eigenes Verschlüsselungsverfahren. Wie einigen sich Sender und Empfänger auf ein Verfahren ohne dass dies ein Angreifer mitkriegt?
Lösung: Verwendung von Schlüsseln Kryptographie Klartext Sender Verschlüsselung verschlüsselte Nachricht Empfänger Klartext Entschlüsselung Schlüssel Schlüssel Algorithmen zur Ver/Entschlüsselung öffentlich bekannt. Jedes Sender/Empfänger Paar muss sich nur noch auf einen gemeinsamen (geheimen) Schlüssel einigen. Problem: Austausch des Schlüssels ohne dass dies der Angreifer mitkriegt! Symmetrische Kryptographie: gleicher Schlüssel zum Ver- und Entschlüsseln. Verfahren z.b. DES, IDEA, AES, RC4, RC5, Blowfish
Kryptographie Realität (z.b. Internet, Mobilfunk) Sender und Empfänger können keinen geheimen Schlüssel austauschen da prinzipiell jede Nachricht abgefangen werden kann. Ist unter diesen Umständen eine vertrauliche Kommunikation theoretisch überhaupt möglich?
Asymmetrische Kryptographie Lösung: Asymmetrische Kryptographie (Public Key Verfahren) 1976 Diffie Hellman, 1977 RSA, 1979, Rabin, 1985 Elgamal, aktuell Elliptic Curve Cryptography Idee: Zwei unterschiedliche, zueinander passende Schlüssel: public key zum Verschlüsseln (öffentlich) private key zum Entschlüsseln (geheim) Sender Verschlüssele Nachricht mit public key des Empfängers Sende verschlüsselte Nachricht public key verschlüsselte Nachricht Empfänger Erzeuge Schlüsselpaar public key, private key Veröffentliche public key Entschlüssele Nachricht mit private key
Asymmetrische Kryptographie Analogie Briefkasten: Jeder kann etwas in den Briefkasten des Empfängers werfen (verschlüsseln mit public key des Empfängers) Nur der Empfänger kann seinen Briefkasten öffnen (entschlüsseln mit seinem private key) Konsequenz: Jeder Teilnehmer braucht nur einen Briefkasten (Schlüsselpaar)! Bei n Teilnehmern: n(n-1)/2 Schlüssel bei symmetrischer Kryptographie n Schlüsselpaare bei asymmetrischer Kryptographie
Asymmetrische Kryptographie Angriffsmöglichkeiten: Private Key des Empfängers durch Probieren erraten. Schlüssellänge z.b. 1024 Bit 2 1024 10 300 Möglichkeiten, vgl. nur 10 80 Atome im Universum Private Key aus Public Key des Empfängers errechnen. Erfordert Faktorisierung sehr großer Zahlen. Aus Aufwandsgründen praktisch nicht machbar!
Asymmetrische Kryptographie Ziel: Integrität und Authentizität Verhindern dass Angreifer eine Nachricht unbemerkt verändern kann. Nachweisen dass eine Nachricht von einem bestimmten Autor stammt. Idee: Autor verschlüsselt die Nachricht mit seinem private key. Jeder kann die Nachricht mit dem public key des Autors entschlüsseln. Beweis dass der Autor die Nachricht verfasst (verschlüsselt) hat. Autor Erzeuge Schlüsselpaar public key, private key Veröffentliche public key Verschlüssele Nachricht N mit private key: N Veröffentliche N und N Tester Entschlüssele N mit public key des Autors: N Wenn N = N dann wurde N mit dem private key des Autors verschlüsselt. Da diesen nur der Autor kennt, stammt N garantiert vom Autor.
Asymmetrische Kryptographie Verbesserung: Autor muss nicht die ganze Nachricht verschlüsseln, es genügt ein Hash Wert ( Quersumme, digitaler Fingerabdruck ). Hash Funktionen z.b. MD5 (128 Bit) oder SHA-1 (160 Bit) Autor Erzeuge Schlüsselpaar public key, private key Veröffentliche public key Berechne Hash Wert von N: n. Verschlüssele Hash Wert n mit private key: n (digitale Signatur) Veröffentliche N und n Tester Entschlüssele n mit public key des Autors: n Berechne Hash Wert von Nachricht N: n. Wenn n = n dann wurde n mit dem private key des Autors verschlüsselt. Da diesen nur der Autor kennt, stammt N garantiert vom Autor.
Asymmetrische Kryptographie Angriff auf öffentlichen Schlüssel aktiver Angriff Angreifer fälscht den öffentlichen Schlüssel des Empfängers. Dadurch kann er jede Nachricht lesen, die dem Empfänger geschickt wird! Empfänger public key des Empfängers Angreifer public key des Angreifers Sender Empfänger Nachricht mit public key des Empfängers verschlüsselt Angreifer Nachricht mit public key des Angreifers verschlüsselt Sender Sender und Empfänger merken hiervon gar nichts! Man in the middle attack
Asymmetrische Kryptographie Lösung: Zertifikate. Garantie, dass ein öffentlicher Schlüssel tatsächlich von der genannten Person stammt. Wie kann ich meinen public key zertifizieren lassen? Gehe mit public key und Personalausweis zu Zertifizierungsbehörde. Diese erstellt ein Dokument, in dem mein Name und mein public key steht und signiert es mit ihrem private key. Wie kann ich sicher sein, den korrekten public key von Person x zu bekommen? Verlange Zertifikat von x. Prüfe Signatur mit public key der Zertifizierungsbehörde. Entnehme public key von x aus dem Zertifikat.
Asymmetrische Kryptographie Problem: Viel zu kompliziert für den Durchschnitts-Surfer!!! Lösung: Secure Socket Layer (SSL) Verschlüsselung und Prüfung von Zertifikaten geschieht automatisch ohne dass man etwas davon merkt. Klartext Sender SSL Verschlüsselt Empfänger SSL Klartext HTTPS: HTTP über SSL Webserver authentifiziert sich über ein Zertifikat. Daten werden verschlüsselt übertragen.
Kryptographie Hybride Verfahren: asymmetrische Kryptographie rechenaufwändig! Client Überprüfe Zertifikat, erhalte public key des Servers Zertifikat Server Sende Zertifikat an Client Erzeuge Session Key K Verschlüssle K mit public key des Servers und sende ihn an den Server Symmetrische Kryptographie verschlüsselt mit K. Session Key K verschlüsselt mit public key des Servers Symmetrische Kryptographie Entschlüssle Session Key K mit private key Symmetrische Kryptographie verschlüsselt mit K. Nur der Session Key K für symmetrische Kryptographie wird mit asymmetrischer Kryptographie verschlüsselt. Effizienter da symmetrische Kryptographie weniger Rechenaufwand kostet.
RSA Verfahren für asymmetrische Kryptographie
Zuerst Zahlen modulo m nehmen, dann rechnen! Zwischenergebnisse bleiben dann immer kleiner als m.
Kehrwert modulo m
Sender RSA Algorithmus Empfänger