A presentation at Chaos Communication Congress in in Berlin, Germany by Jutta Horstmann
Fragen ● Wie erzeuge ich mir ein Schlüsselpaar? ● Wie veröffentliche ich meinen öffent. Schlüssel? ● ● ● ● Wie komme ich an Schlüssel meiner Kommunikationspartnerin? Woher weiss ich, dass der Schlüssel wirklich von ihr ist? Wie verschlüssele ich Daten und Datentransfer? Was mache ich, wenn ich meinen Schlüssel verloren habe oder er kompromittiert wurde?
Grundlagen: Verschlüsseln Signieren Vertrauen Zertifizieren
Verschlüsselung mit GPG
Verschlüsseln, Signieren, Authentizität ● ● ● Verschlüsselung: Übertragung von Geheimnissen Signatur: Gewährleistung der Authentizität des Senders, der Integrität der Nachricht (wie Siegel) Wie stelle ich Authentizität des Gegenübers fest? – Direktes Vertrauen – Web Of Trust – Hierarchisches Vertrauensverhältnis
Woher weiss ich, das Schlüssel zur Person gehört? ● Web of Trust ● PGP/GPG ● Key Signing Party ● ich vertraue Berta, weil ich Alice vertraue und Alice vertraut Berta ● Public Key Infrastructure mit hierarch. Zertifizierung ● SSL, S/MIME ● Behörden/Firmen ● zentrale Zertifizierungsinstanz
Web Of Trust ● ● inwieweit traut man Eigentümer eines öff. Schlüssel korrekte Authentisierung zu (Unbekannt, kein/teilweises/volles Vertrauen) Vertrauen: Schlüssel ist von genügend gültigen Schlüsseln unterschrieben: – persönlich – von einem Schlüssel vollen Vertrauens – von drei Schlüsseln teilweisen Vertrauens – Pfad unterschriebener Schlüssel von Schlüssel K zurück zu eigenem Schlüssel führt < 5
Zertifizierung ● ● Public Key Infractructure: hierarchisches Netz von Zertifizierungsstellen Zertifizierungsstelle (Certification Authority, CA): Zertifikate ausstellen und veröffentlichen ● Cross-Signing zwischen CAs ● Public Keys einiger CAs im Browser ● Zertifikat enthält Infos über Schlüssel, Person, und digitale Unterschrift der zertifizierenden Behörde
Gnu Privacy Guard (GPG) Grundlagen Schlüssel erzeugen Schlüssel anzeigen Schlüssel exportieren Schlüssel importieren Schlüssel signieren Schlüssel widerrufen
Grundlagen: PGP und GPG ● ● Was ist Pretty Good Privacy (PGP)? – Software für Verschlüsselung, Schlüsselerzeugung, Schlüsselverwaltung – standardisiert in OpenPGP – unabhängig von Datenformaten – kann symmetrisch und asymm. verschlüsseln Was ist Gnu Privacy Guard (GPG)? – basiert auf OpenPGP – vollständig kompatibel zu PGP, benutzt die gleiche Infrastruktur (Schlüsselserver usw.)
So klappt’s mit GPG ● Download: www.gnupg.org ● bei Linux-Distributionen dabei ● gibt’s auch für Windows ● Benutzung: – Kommandozeile – Frontends: GPA, KGpg / Kleopatra – aus der Applikation heraus (Mail, IM…) ● man gpg ● www.gnupg.org/(en)/howtos/de/index.html
Schlüssel erzeugen
Schlüssel erzeugen (2)
Schlüssel erzeugen (3)
Schlüssel erzeugen (4) ● ● Passphrase (Mantra): – symmetrische Verschlüsselung des privaten Schlüssels (einzige Sicherung!) – nicht zu kurz, Sonderzeichen… Zum Erzeugen von Schlüsseln muss “Zufall” generiert werden – Bsp. RSA: Man wählt zufällig zwei grosse Primzahlen p und q sowie ein zufälliges e
Schlüssel erzeugen mit KGpg
Schlüssel anzeigen
Schlüssel exportieren
KGpg: Schlüssel exportieren
Schlüssel bekannt machen ● Keyserver – gpg —send-keys [names] —keyserver [name] – z.B. hkp://wwwkeys.eu.pgp.net – eigenen Schlüssel vom Keyserver aktualisiert holen (unterschrieben) – unterschriebene Schlüssel hochladen ● versenden per Mail ● eigene Website ● Visitenkarte (Fingerprint)
GPG – importieren ● ● Importieren des Schlüssels einer Kommunikationspartnerin: – gpg —import [Datei] – ohne Dateiname: von Kommandozeile – z.B. aus Mail: von Enigmail unterstützt Schlüssel anhand des Fingerprints verifizieren
GPG: Schlüssel signieren (1) ● ● Fremdschlüssel: – ist der Schlüssel überprüft, kann man ihn signieren – mit “check” gucken, wer den Schlüssel sonst schon beglaubigt hat eigener (öffentlicher) Schlüssel: – könnte manipuliert werden – daher: signieren (Eigenbeglaubigung) mit privatem Schlüssel (automatisch)
gpg —edit-key UID
KGpg: signierter Schlüssel
Key Signing Party ● HOWTO: http://www.cryptnet.net/fdp/crypto/gpgparty/gpg-party.de.html ● Ziel: gegenseitig Schlüssel signieren ● Web Of Trust vertiefen ● Identität der Person verifizieren (Ausweis) ● Schlüssel verifizieren und signieren ● signierten Key an Schlüsselbesitzer oder Keyserver exportieren
Key Revocation (1) ● gpg —gen-revoke ● gpg —output revoke.asc —gen-revoke ● ● Widerrufsurkunde ausdrucken und an sicherem Ort aufbewahren jeder kann damit den Schlüssel ungültig machen
Key Revocation (2)
Key Revocation (3)
Praxis Dateien verschlüsseln Mailverkehr verschlüsseln
Verschlüsseln von Dateien ● ● ● Asymmetrisch verschlüsseln: – gpg —output test.gpg —encrypt —recipient EF2EC201 test.txt – bei recipient auch mehrere Empfänger Asymmetrisch entschlüsseln: – gpg —output test.klar —decrypt test.gpg – Passphrase eingeben Symmetrisch verschlüsseln: – gpg —output test.sym —symmetric test.txt – Passphrase zum Ver- und Entschlüsseln
Mail verschlüsseln ● ● Mailprogramme: – Linux: Enigmail (Mozilla/Thunderbird), Evolution, KMail, mutt, Sylpheed… – Win: Enigmail (Mozilla/Thunderbird), Outlook Plugin, EudoraGPG… – Mac: Enigmail (Mozilla/Thunderbird), Apple Mail Plugin… Beispiel Enigmail: – http://enigmail.mozdev.org/
Enigmail einrichten
Enigmail: Verschlüsselt senden
Enigmail: Verschlüsselt empfangen
Sonstige Datenströme Grundlagen SSL Datenverkehr im WWW Mailserver: Sichere Authentifizierung SSH FTP
SSL ● Zunächst zur Absicherung von HTTP (“https”) ● Später generalisiert zu TLS ● Sicherheitsprotokoll der Transportschicht ● Sichert beliebige Anwendungen, die auf TCP aufsetzen ● Meist Server-Authentisierung ● X.509 Zertifikate (wichtigster Standard) ● ● verschiedene kryptographische Verfahren mit variablen Schlüssellängen Open Source: OpenSSL, GnuTLS
Datenübertragung im WWW ● Ist der Server der, für den ich ihn halte? (z.B. wirklich www.berliner-sparkasse.de?) – ● ● Server hat zertifizierte Schlüssel Aufbau einer SSL-Verbindung: – Server sendet zertifizierten Public Key – Browser überprüft Key und Zertifikat – nicht ok: Warnmeldung von Browser – okay - dann verschlüsselter Austausch zwischen Browser und Server keine Client-Authentisierung
Mail: SSL, STARTTLS ● Serverseitiges Angebot für POP, IMAP, SMTP ● Im Mail-Client anschalten! ● ● ● StartTLS (Start Transport Layer Security): TLS für SMTP es werden auch Inhalt und Attachment (der gesamte Datenstrom) der Mail verschlüsselt! (aber nur von Punkt zu Punkt) SMTP AUTH: nur Login/PW verschlüsselt
Secure Shell (SSH) ● Eigenes Protokoll unabhängig von SSL ● Kommandozeilenzugriff auf entfernten Rechner ● ● ● sichere authentifizierte und verschlüsselte Verbindung zwischen zwei Rechnern über ein unsicheres Netzwerk X11-Sitzungen und andere TCP/IP-Verbindungen über ssh tunneln Sendet RSA Key Fingerprint, der geprüft werden und bei späteren Logins verglichen werden kann
File Transfer (FTP) ● SCP, SFTP: nutzen SSH zum Datentransfer ● FTP mit SSL (FTPS) – ● Serverseitig: SSL nutzen (Zertifikat generieren, TLS im Server anschalten, z.B. proftp, vsftp) Clients/Frontends: – Linux: Gftp (scp, sftp, ssl), Konqueror (sftp, ssl) – Win: WS FTP (SSL), Putty (SFTP), WinSCP – Mac: Fugu (SFTP, SCP)
Verschlüsselung in Funknetzen Wireless LAN Mobiles Telefonieren
WLAN ● ● Wireless Equivalent Privacy (WEP): – meiste Produkte: nur 40bit Schlüssel – gezielte Modifikationen an Nachrichten, Mitlesen, Schlüsselberechnung sind möglich – kein Schlüsselmanagement, es gibt einen Shared Key für das gesamte Netzwerk – nur Client authentisiert, nicht AP oder Nutzer Lösungen: – stattdessen SSL, SSH, IPSec o.ä. verwenden – VPN hinter Access Point aufbauen
WLAN (2) ● ● 2002: WPA (Wi-Fi Protected Access) – Verschlüsselung: TKIP (Temporal Key Integrity Protocol), basiert auf WEP, behebt dessen gröbste Fehler – Geräte per Firmware-Update aufrüsten 2004: Standard IEEE 802.11i: – TKIP – WRAP (Wireless Robust Authenticated Protocol) basierend auf AES (Advanced Encryption Standard) und CCMP (vollständig neues Protokoll ohne Verwandtschaft zu WEP) – neue AP-Geräte notwendig
Mobil Telefonieren ● ● ● ● Drahtlose Übertragung leichter anzuzapfen Gerät muss immer neu authentifiziert werden, wenn es den Netzzugangspunkt wechselt Aufenthaltsort des Gerät u.U. ähnlich interessant wie Inhalt des Gesprächs Location Privacy ist nicht gegeben
Mobil Telefonieren (2) ● GSM: – an sich immer Verschlüsselung - zwischen Handy und Basisstation – Provider kann Verschl. jederzeit deaktivieren ● Es gibt Software zur End-zu-End-Verschlüsselung ● anonyme Pre-Paid-Karten nutzen ● Verschlüsselungssoftware für die Daten auf dem Handy (Fotos, Notizen…)
Noch Fragen?
Cryptography workshop at Chaos Communication congress 2004, Berlin