Angewandte Kryptographie Flashcards
Recap: Kryptographische Protokolle
Kryptographische Protokolle verwenden eine Kombination aus kryptographischen Algorithmen zum Durchsetzen von versch. Sicherheitszielen
Recap: Symmetrische Verschlüsselung
- setzt bestehendes Vertrauensverhältnis für sichere Kommunikation voraus
- ein Schlüssel für beide Parteien
- Verschlüsselung: E (K, M) = C
- Entschlüsselung: D (K, C) = M
Recap: Asymetrische Verschlüsselung
- public key zum Verschlüsseln (kann jeder nehmen)
- private key zum Entschlüsseln (nur Schlüsselbesitzer)
- Verschlüsselung: E(Kpub, M) = C
- Entschlüsselung: E(Kpriv, C) = M
Bestandteile Kryptosystem
M = Menge möglicher Klartexte
C = Menge der möglichen Chiffrate
K = Menge der erlaubten Schlüssel
E : Verschlüsselungsfunktion mit E = K * M –> C
D: Entschlüsselungsfunktion mit D = K * C –> M
Vertraulichkeit von Netzwerkverbindungen
- kryptographische Verfahren gewährleisten Vertraulichkeit (Kommunikationsinhalt bleibt Angreifern im Netzwerk verborgen)
- Verschlüsselung verhindert keine Traffic-Analyse
Traffic-Analyse
- Auswertung der Meta-Daten einer Kommunikation (Quelle, Ziel, Menge, Struktur und Timing der Kommunikation)
- Problem für Kommunikationsanonymität: Whistleblowing
Onion Routing
Ziel: Verhindern der Offenlegung von Quelle und Ziel einer Datenkommunikation
Ansatz: - Overlay-Netzwerk aus kooperierenden Netzwerkknoten
- Nachricht über Zwischenstationen zum Ziel
Onion Routing: Grundprinzip
- Nutzer verbindet sich über Entry-Node mit Onion Netzwerk (Netz von Onion Routern, verfügbar über globales Netzwerk)
- Onion Netzwerk leitet Nachricht bis Exit-Node
- Exit-Node sendet Daten an Empfänger
- Verbergen Inhalt und Route über asymmetrische Kryptographie
- Kommunikationsanonymität, solange keine Node Quelle UND Ziel kennt
Onion-Netzwerk
- Nutzer (Sender) wählt Route durch Netzwerk
- jeder Router hat public / private Schlüsselpaar
- öffentliche Schlüssel zum Erstellen der “Onion”
- an jedem Knoten: Ver- oder Entschlüsselungsschritt auf Daten angewendet
Onion-Netzwerk: Sicherheit vor potentiellen Angreifern
- Nodes kennen höchstens Sender ODER Empfänger (Middle Node kennt keinen der beiden)
- Korrelationsangriffe über Timing und Größe der Daten (Entry und Exit Node kompromittiert)
- malicious exit node: offengelegter Inhalt kann Rückschlüsse auf Sender geben
Onion-Routing: Ende-zu-Ende Verbindungen
- Alices Onion erstellt Route zu Bob und sendet erste Nachricht
- Rückkanal: Onion enthält für jeden Router Schlüsselmaterial (wird für bidirektionale symmetrische Verschlüsselung genutzt)
- für Verschlüsselung von Endknoten zu Benutzer
- je nach Richtung: jeder Router entfernt / fügt Kryptoschicht hinzu
Bitcoin
- P2P virtual Currency
- keine zentrale Kontrolle, selbstregulierend
- auf 21 Mio. beschränkt (geometrisches Wachstum)
Bitcoin: Keys
- jeder Teilnehmer am Währungssystem hat ein oder mehrere Public / Private Key Paare
- Public Key: öffentliche Bitcoin Adresse des Wallets
- Private Key: Beweis, dass man öffentliche Adresse (und damit die Bitcoins) besitzt
- Coins besitzen = Betrag einem public Key zuweisen
Blockchain
- bildet aktuellen Zustand des gesamten Währungssystems ab
- ewiges Logfile
- besteht aus Blocks
Block
- einzelnes Element in Blockchain
- enthält alle Transaktionen der vergangenen 10 Minuten
Transaktionen
- “In die Cloud schreien, dass man Geld überträgt”
- Übertrage X Coins von Adresse Y an Adresse Z
- Legitimierung: Signatur der TA mit private Key von Y
- Blockchain enthält Beweis, dass Y die Münzen besitzt (Blockchain enthält alle vergangenen TAs –> Errechnen des Kontostandes)
- TAs werden an alle Teilnehmer gebroadcastet
Wie wird das Logfile erzeugt?
- jede TA wird an alle Teilnehmer gebroadcastet (P2P)
- jeder Teilnehmer fasst alle empfangenen TAs in einem Block zusammen
- versucht für Block eine gültige Signatur zu erzeugen
Wie wird erzwungen, dass das Logfile korrekt ist?
- Proof-of-Work Beweis (korrekte Signatur für Block) ist schwer zu finden
- Blöcke sind verkettet
- Berechnung von Block X hängt von Block X-1 ab
- längste Kette von Blocks erzählt Wahrheit
Wo kommen Münzen her?
- Erzeugen eines Blocks sehr aufwändig –> wird mit BTC entlohnt
- > höherer Anreiz, Blöcke zu erzeugen
- > mehr Rechenleistung im System
Blockchain: Schwierigkeit
- System ist selbstregulierend
- Schwierigkeit: Erzeugung eines neuen Blocks alle 10 Minuten
- > je mehr Leute mitrechnen desto schwerer ist die Erzeugung eines Blocks und damit auch zu Betrügen
Verteilung der Gesamtmenge von Bitcoins
- 6 Blöcke pro Stunde * 24h/Tag * 365 Tage/Jahr * 4 Jahre pro Vergütungszyklus ~= 210.000
- Summe aller rewards pro Block über alle Vergütungszyklen: 50+25+12,5+6,25+3,125*…=100
- gesamt: 210.000*100 = 21.000.000
Blöcke erzeugen
- Proof-of-work mittels Einweg-Hashfunktion
- Aufgabe: Suche Hash für Menge der aktuellen TAs, der mit X Nullen (Bitweise) anfängt
- “Werfe so oft eine Münze, dass Du X mal hintereinander Kopf bekommst”
Mining
- ein Block pro 10 Minuten (hohe Schwierigkeit)
- Pooled Mining: mehrer Miner pro Block (proportionale Aufteilung auf Helfer nach Rechenleistung)
- Server hilft bei Koordination einzelner Miner
Blockchain: Security
- Betrug
- TA-Fälschung: Brechen des asymm. Kryptosystems (unwahrscheinlich)
- Double Spending (Umschreiben der Geschichte und Erzeugen einer neuen Blockchain –> braucht mehr Rechenleistung als Rest des Systems)
- Diebstahl des privaten Schlüssels
Gründe, Blockchain zu benutzen
- Session speichern
- mehrere Schreiber im System
- sind alle Schreiber bekannt / kann man ihnen vertrauen
- öffentliche Verifizierung benötigt
- Online Trusted Third Party (TTP) nicht möglich