Transportsicherheit
Was ist das?
Auflösung
Geschichte
- Antike: Verbreiteter aber unsystematischer Einsatz kryptographischer Methoden (z. B. durch Caesar).
- Ende 19. Jh.: Systematisierung und Formalisierung.
- 1930/40er: Polen, Briten und Amerikaner “brechen” sehr starke deutsche Chiffren (u. a. “Enigma”). Erstmalig Einsatz von Rechenmaschinen zum “Code-Brechen”
- 1970er: Data Encryption Standard (DES). Public-Key-Kryptographie
- 1980er: Zero-Knowledge-Protokolle
- seitdem: Massenhafte Verbreitung der Kryptographie (Geldautomaten, Internet, Mobilfunk, Pay-TV, …)
Notation
- Alice (A): Initiator eines Protokolls
- Bob (B): antwortet auf Anfragen von Alice
- Eve (E): abhörender (passiver) Angreifer (eavesdropper)
- Mallory (M): aktiver Angreifer (malicious attacker)
Ziele beim Einsatz von Kryptographie
- Geheimhaltung von Daten (Vertraulichkeit)
Nur wir können diesen Daten lesen - Authentizität und Integrität von Daten
Du hast diese Nachricht geschrieben, und niemand hat sie verändert - Authentizität von Kommunikationspartnern
Du bist es! - Anonymität in der Kommunikation
elektronisches Geld, Wahlen mit Wahlgeheimnis, …
Chiffren
- Eine Chiffre wird definiert durch drei Mengen
- \( M \): Klartextemenge (Nachrichten)
- \( C \): Chiffretextmenge (Kryptogramme)
- \( K \): Schlüsselmenge (Keys)
- und drei effiziente Algorithmen
- Verschlüsseln: \( E : K \times M \rightarrow C \)
- Entschlüsseln: \( D : K \times C \rightarrow M \)
- Schlüssel erzeugen: \( G : \emptyset \rightarrow K \)
- wir schreiben oft \( D(\cdot) \) anstatt \( D(k, \cdot) \)
Für jeden Klartext \( m \in M \) und für jeden Schlüssel \( k \in K \) gilt \( D(k, E(k, m )) = m \)
Anforderungen an kryptographische Verfahren:
- Sicherheit darf nicht von Geheimhaltung der Algorithmen abhängen!
⇒ keine Security by Obscurity - Kerckhoffs-Prinzip (1835–1903): Stärke des Verfahrens sollte nur von der Güte des geheimen Schlüssels abhängen!
- Brechen eines Schlüssels: Faktoren
- Rechnertechnologie
- Parallelisierungsmöglichkeiten
- Schlüsselraum muss sehr groß sein
⇒ Ausprobieren aller Schlüssel (brute-force) soll nicht mit praktikablem Aufwand möglich sein
Symmetrische Verschlüsselung
- Schlüssel zur Ver- und Entschlüsselung sind gleich
- Es gibt einen gemeinsamen, geheimen Schlüssels (Secret-Key)
- Bekannte Verfahren
- DES (Data-Encryption-Standard), 1975
- AES (Advanced Encryption-Standard), 1998
- RC4, A5/3 (Mobilfunk), 1987
- Salsa20, 2007
Wichtige Faktoren für die Sicherheit
- Schlüsselgenerierung, hohe Entropie, starke Schlüssel
⇒ Gute Zufallszahlen notwendig
⇒ Kryptographische Zufallszahlengeneratoren - Sicherer Austausch des gemeinsamen Schlüssels
⇒ Zusätzlicher, sicherer Kanal benötigt (Kurier, Treffen, …) - Sichere Schlüsselspeicherung
⇒ Schlüsselmanagement und Schutz
Electronic Code Book Mode
Cipher Block Chaining
Asymmetrische Verschlüsselung
Public-Key-Verfahren, 1976
- Basis sind zahlentheoretisch schwierig zu lösenden Problemen (Faktorisierung, Logarithmen, Elliptische Kurven)
- Man gibt Teile des Schlüssel (public Key) preis
- Ein Schlüsselpaar pro Kommunikationspartner A
- private key: privater Schlüssel (nur A bekannt)
- public key: öffentlicher Schlüssel, jedem bekannt
Beispiel für mathematisches Problem
- Was sind die Prim-Faktoren von 3909823?
- Was ist 1153 x 3391?
Viele mathematische Operationen (Einwegfunktionen, one-way functions) können leicht in die eine aber nur sehr schwer in die andere Richtung durchgeführt werden
Prinzip asymmetrische Verschlüsselung
Asymmetrische Verschlüsselung
Reale Implementierung
Mehrere Empfänger
Adversary-in-the-Middle
Digitale Zertifikate
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 1 (0x1)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=XY, ST=Austria, L=Graz, O=TrustMe Ltd, OU=Certificate
Authority, CN=CA/Email=ca@trustme.dom
Validity
Not Before: Oct 29 17:39:10 2000 GMT
Not After : Oct 29 17:39:10 2001 GMT
Subject: C=DE, ST=Austria, L=Vienna, O=Home, OU=Web Lab,
CN=anywhere.com/Email=xyz@anywhere.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:c4:40:4c:6e:14:1b:61:36:84:24:b2:61:c0:b5: ...
Signature Algorithm: md5WithRSAEncryption
12:ed:f7:b3:5e:a0:93:3f:a0:1d:60:cb:47:19:7d:15
Signatur
Verschlüsselung und Signierung
Challenge/Response-Verfahren
HTTP und HTTPS
HTTP ist unverschlüsselt
- Kommunikation kann abgehört werden (z. B. mit Wireshark)
- Passwort und persönliche Daten werden im Klartext übertragen
Wir brauchen einen Schutz der Daten auf dem Transportweg: Transportsicherheit
Transportsicherheit
- Ziel: Nachrichten können während des Transports weder abgehört noch verändert werden
- Technologien: SSL, TLS, IPSec (VPN)
- SSL sichert die Kommunikation zwischen genau zwei Teilnehmern
- VPN verbindet einen Teilnehmer mit einem Netzwerk
- HTTPS (HTTP secure) ist HTTP over SSL
SSL / TLS
Secure Socket Layer (SSL) bzw. Transport Layer Security (TLS)
SSL und Adversary-in-the-Middle
Schwachpunkt der Zertifikate