Upload
kristian-koehntopp
View
2.464
Download
0
Embed Size (px)
Citation preview
Kryptographische GrundlagenKristian Köhntopp
Alter Sack
SysEleven GmbH
Agenda
• Schutzziele, Angriffe • Eigenschaften von
Verfahren • Kerckhoffs-Prinzip • Symmetrische • Asymmetrische • Hybride
• Hashes • Digitale Signatur • PKI
• CRLs • PKCS • SigG
2
Vorsicht, Mathematik!
Keine Mathematik
• Mathematik der Kryptographie ist gut untersucht. • Wenn wir sie auslassen, müssen wir einige Sachen
glauben: • Es gibt Algorithmen, die in eine Richtung
"leicht" und in die andere Richtung aufwendig zu rechnen sind.
• Beispiel: Multiplikation vs. Faktorisierung.
3
Keine Mathematik
• Was ist 3*4? • Welche Primzahlen muß man multiplizieren, damit man
35 bekommt?
• Was ist 378874676373468736 * 34976337963793? • Welche Primzahlen muß man multiplizieren, damit man
13251648726761141335314585475648 bekommt?
4
Grundszenario
• Andreas will Birgit eine Nachricht senden • Notation
• M: Message • K: (symmetrischer) Key • K(M): Mit K verschlüsselte Nachricht • P, Q: Public/Private Key-Paar
5
Transport- vs. Speicherverschlüsselung
• „Transportverschlüsselung“ - "TLS" • Vollständige Klartextkopie verbleibt zu jedem
Zeitpunkt beim Sender oder Empfänger • Ciphertext fällt nicht an • Key Recovery ist unerwünscht
• Aber „Bedarfsträger“ wollen mitschneiden
6
Transport- vs. Speicherverschlüsselung
• „Speicherverschlüsselung“ - "PGP" • Klartextkopie existiert nicht zwingend, aber der
Klartext ist für die Firma wertvoll. • Der Ciphertext ist wertlos. ➡ Management von Ciphertext und Keys notwendig.
• Key Recovery Strategie zwingend
• Speicherverschlüsselung ohne Recovery Key ist verboten.
7
Bedrohungen
• Angreifer: Insider, Außenstehender • Passive Angriffe: Abhören, Elektromagnetische
Abstrahlung • Aktive Angriffe: Veränderung, Einfügen/Löschen,
Wiedereinspielen („Replay“), Umschlüsseln („MITM“),„Denial of Service“
8
Schutzziele
• Verfügbarkeit • vs. Integrität
• Integrität • Vertraulichkeit • Authentizität
• vs. Unbeobachtbarkeit
9
Kerckhoffs Prinzip
• Kerckhoffs-Prinzip:„Der Angreifer hat Kenntnis des verwendeten Kryptosystems“
• „Security by Obscurity funktioniert nicht“ • Brute Force: Durchsuchen des K-Raumes • Klartext Brute-Force: Durchsuchen des M-Raumes
10
"Unsicher" vs. "Gebrochen"
• „Gebrochen“: Ein Verfahren besser als Brute Force existiert zum Auffinden des Schlüssels
• „Unsicher“: Brute Force ist in küzerer Zeit schaffbar, als für die Sicherheit notwendig
• Beispiele: • DES unsicher, aber ungebrochen • AES sicher, aber gebrochen
11
Andere Angriffe: Replay
• Wiederholen alter Nachrichten: • verschlüsselte Nachricht: "Zahle an den Absender
dieser Nachricht 100 Euro." • Verhinderung durch Einfügen einer „Number Used
Once“ (Nonce) • Folgenummer, Zufallszahl, Challenge-Response
12
Andere Angriffe: Man-in-the-Middle
• Folge fehlender Authentizität: Angreifer C • spielt gegenüber Andreas die Rolle von Birgit • gegenüber Birgit die Rolle von Andreas • A <-> “B“ = C = „A“ <-> B
• „umschlüsseln“
13
Symmetrische, asymmetrische und hybride Verschlüsselung
Symmetrische Verfahren15
Andreas Birgit
M M
K(M)
K K?
Symmetrie:
Nachricht mit demselben Key entschlüsseln, mit dem sie verschlüsselt wird.
K(K(M)) = M
Symmetrische Verfahren16
Verfahren Bits
DES 56
3DES 112
IDEA 128
AES 256
Asymmetrische Verfahren17
Andreas Birgit
M M
PB(M)
PB
QB
PB
Asymmetrische Verfahren
• Birgit generiert P und Q • P(Q(M) = Q(P(M)) = M "Was P verschlüsselt ist, kann Q
entschlüsseln und umgekehrt." • P wird publiziert, Q ist geheim: Birgit publiziert PB
• n User: n PQ Paare, 1024-4096 Bit RSA, DHE. • 10-20 mal langsamer; Ist PB der Key von Birgit?
18
Hybride Verfahren19
Andreas Birgit
M M
PB(K)
QA
PB PB
K
K(M)
Hybride Verfahren
• Andreas wählt zufälliges "Einmal-K" (Session Key) • Andreas sendet PB(K) (asymmetrische Komponente) • Andreas sendet K(M) (symmetrische Komponente)
• Mehr als ein Empfänger: • PA(K) PB(K) PX(K) K(M)…
Session Key mehrfach, Nachricht einfach senden.
20
Hybride Verfahren
• Schnell wie ein symmetrisches Verfahren (K ist klein). • Schlüsselhandling wie bei asymmetrischen Verfahren
• Asymmetrisches Verfahren stellt den fehlenden sicheren Kanal her.
• Mehrere Empfänger. • Stream-Fähig (neuer Session-Key im Strom).
21
Verbleibende Probleme
• Man-in-the-Middle • Gehört PB(K) wirklich Birgit oder hat uns den jemand untergeschoben?
• Replay • Ist K(M) frisch oder eine abgespielte Aufzeichnung?
• Forward Secrecy • Neuen Key haben, ohne ihn zu nennen + "alter Ciphertext + neuer Key
nützen nix"
22
Cipher Modi
Cipher Modi
• Verschlüsselungsverfahren arbeiten mit Blöcken
• Klartext ist eine Serie von Blöcken: • M -> M0 M1 M2 M3 … Mi …
• Schlüssel: K, oder von K abgeleitete Schlüssel Ki
24
Cipher Modi
• i - Blocknummer • Mi - i-ter Klartextblock • Ci - i-ter Ciphertextblock • Ki - i-ter Schlüssel
• Verfahren ohne Blockverkettung:
• Mi unabhängig von Mi-1, Ci-1
• sicher gegen Blockverlust • parallel berechenbar
25
ECB "Electronic Codebook"
• Block Mode, "naive Anwendung des Verfahrens", "kaputt" • Ci = K(Mi) • parallelisierbar, wiederaufsetzbar, permutierbar • Klartext scheint durch • Niemals verwenden.
26
Cipher Modi27
CBC "Cipher Block Chaining"
• Streaming Mode, auch kaputt • Ci = K(Mi v Mi-1); M0 = IV • "Verschlüssele das XOR-Produkt des aktuellen Blocks und
des vorhergehenden Blocks" • 2 Blöcke lang Nullbits: Klartext scheint durch. • Außerdem nicht parallel, nicht wiederaufsetzbar, nicht
permutierbar.
28
CFB "Cipher Feedback Mode"
• Ci = Mi ∨ K(Ci-1) C0 = IV
• "Verschlüssele den vorhergehenden Ciphertext noch einmal und ver-xor-e das Resultat mit dem aktuellen Klartextblock (Klartext scheint nicht durch)
29
OFB "Output Feedback Mode"
• Ci = Mi ∨ Ki, Ki = K(Ki-1) K0 = IV
• „Verschlüssele den vorhergehenden Schlüssel noch einmal und ver-xor-e das Resultat mit dem aktuellen Klartextblock“
• Wiederaufsetzbar, Schlüssel positionsabhängig
30
CM "Counter Mode"
• Ci = Mi ∨ K(IV+i-1)
• „Verschlüssele eine laufende Nummer, und ver-xor-e das Resultat mit dem aktuellen Klartextblock“
• Wiederaufsetzbar, Schlüssel positionsabhängig und parallelisierbar.
31
Hashes - kryptographische Prüfsummen
Hashes
• h = Hash(M): feste Länge, sehr empfindlich gegenüber Änderungen in M
• M ist nicht konstruierbar: • Gegeben ein h, finde ein M mit h = Hash(m) ist ideal
gleichbedeutend mit einer Brute-Force-Suche durch M.
33
Hashes
• Einsatz: • Speicherung von Passwörtern, mit Salt
• Vergleich von Geheimnisssen • ohne das Geheimnis senden zu müssen (Challenge-
Response-Authentication) • Digitale Signatur
34
Signatur I35
QB
PB
Andreas Birgit
M M
M
QA
PA
PA
QA(Hash(M))
Signatur I
• M Klartext, Hash(M) berechenbar • Birgit kann den verschlüsselten Hash QA(Hash(M)) mit PA
auspacken, • Übereinstimmung? Dann ist die Nachricht authentisch.
• "Der Absender hat QA gekannt." • Warum senden wir nicht QA(M), sondern QA(Hash(M)) M?
36
Signatur II37
Andreas Birgit
M M
QA
PA
PA
K( )MQA(H(M))
QB
PB
PB
PB(K)
Signatur II
• Lesbar mit QB: Nur Birgit kann die Nachricht lesen. • Birgit kann mit PA den Hash prüfen: Nachricht ist "von
Andreas". • Nachricht ist symmetrisch verschlüsselt:
• Schnell für große M, mehrere Empfänger.
38
Public Key Infrastructure PKI
Vorbemerkungen
• Zertifikate enthalten: • Den öffentlichen Schlüssel P. • Die Identitätsdaten zum Schlüsselinhaber. • Den Verwendungszweck des Schlüssels. • Eine Laufzeit (von, bis)
• Name und Signatur der CA.
40
Vorbemerkungen
• Öffentlicher Schlüssel P: Erlaubt Prüfung von Signaturen des Inhabers.
• Inhaberdaten: Immer eine natürliche Person (ggf. über eine Rolle an eine juristische Person gebunden).
• Zweck, Laufzeit: Katastrophenvorbeuge. • Name und Signatur der CA: Das "Siegel" zur
Beglaubigung der Daten.
41
Public Key Infrastructure
• Wie kann Andreas sicher sein, daß PB von Birgit stammt? • Ansatz:
• Alle Teilnehmer kennen einen PCA ("Notar") • Birgit verteilt QCA(H(PB)) PB über unsichere Netze
42
Aufgabe der CA
• QCA(H(PB)) PB
• Prüfe, ob Birgit berechtigt ist, PB zu führen.
• Merke: • CA braucht QB nicht zu kennen. • Das Zertifikat ist nur so gut, wie die Prüfung, die die CA
durchführt. • QCA muß strikt bewacht werden.
43
Public Key Infrastructure
• Birgit kann ihren Key mehrfach durch verschiedene CA zertifizieren lassen.
• QCB(H(PB))QCA(H(PB)) PB • "Gültig, wenn mindestens n aus m Zertifikaten gültig
sind", Sonderfälle 1 und m • Schutz vor schlampigen CAs
44
Public Key Infrastructure
• Andreas braucht PCA nicht zu kennen. • Andreas holt PCA, dies ist mit übergeordneter Signatur
versehen. • Rekursive Prüfung, Certificate Chaining -> Längenlimit
• Beispiel für beides: PGP
45
Public Key Infrastructure
• Andreas Zertifikat gilt noch ein Jahr. Andreas verbummelt QA.
• In einem Jahr löst sich das Problem von selbst. Bis dahin:
• Rückziehliste (CRL), jede Verwendung von PA erfordert ein Lookup in der CRL.
46
Public Key Infrastructure
• Jedes Cert muß die URL der CRL enthalten. • CRL ist endlich (Einträge können nach Ablauf der
Gültigkeit des Cert gelöscht werden). • skaliert dennoch nicht.
• Offline-Anwendungen können schon zurückgezogene Certs irrtümlich akzeptieren.
47
Normen und Gesetze
X.509
• X.509 V3, Codierung ASN.1 + Encoding Rules • OIDs zur Feldkennzeichnung • OID-Listen nicht komplett zentral verfügbar (Vendor-
Prefixe, Private Extensions) • X.509 schlecht geschrieben
• PKCS (numeriert wie RFC) als Präzisierungen
49
Signaturgesetz
• "Formvorschrift für Willenserklärungen" • Schriftform, gewillkürte Schriftform und Formfreiheit
• Ohne SigG: Elektronische Willenserklärung ok? • Formfreiheit: Ja!, Schriftform: Nein! • "Freie Beweiswürdigung": Der Kläger hat die
Beweislast.
50
Signaturgesetz
• Situation 2015: • EU-Verordnung 910/2014 EG SigRL "Signaturrichtlinie" (bis
Mitte 2016), D SigG "Signaturgesetz" und SigV "Durchführungsverordnung".
• Gesetz zur Anpassung der Formvorschriften des Privatrechts (Formanpassungsgesetz),"Drittes Gesetz zur Änderung verwaltungsverfahrensrechtlicher Vorschriften" (3. VwVfÄndG), 1. Gesetz zur Änderung des Signaturgesetzes (1. SigÄndG)
51
Signaturgesetz
• "Einfache elektronische Signatur" • „beigefügte oder verknüpfte Daten zur
Authentifizierung“ • From: Kristian Köhntopp <[email protected]> • „freie Beweiswürdigung“
52
Signaturgesetz
• Fortgeschrittene elektronische Signatur • Ausschließliche Zuordnung zum Signierer: „Eine Person“ • Signierer wird identifiziert: „Name“ • Signaturbildung mit Mitteln, die der Signierer unter alleiniger
Kontrolle halten kann:„Paßwort“ • Verknüpfung mit Daten, sodaß nachträgliche Änderungen
erkennbar sind:„Hash und Signatur“ • „freie Beweiswürdigung“
53
Signaturgesetz
• Qualifizierte elektronische Signatur • Basierend auf qualifiziertem Zertifikat:„abgenommenes
Verfahren“
• Verwendung einer sicheren Signaturerstellungseinheit:„Chipkarte“, „Leser mit Anzeige“
• Gleichgestellt mit handschriftlicher Unterschrift: Außer wo im Gesetz ausdrücklich anders gefordert
• „Anscheinsbeweis“
54
• Twitter: @SwiftOnSecurity @theGrugq
• http://www.cl.cam.ac.uk/~rja14/book.html »Security Engineering«, Ross Anderson
• https://crypto.stanford.edu/~dabo/cryptobook/Stanford Applied Cryptography Class
• https://www.youtube.com/watch?v=3QnD2c4Xovk Diffie Hellmann Key Exchange
• http://www.unixwiz.net/techtips/iguide-crypto-hashes.html Illustrated Guide to cryptographic hashes
56