Warum eMail Verschlüsselung?
- unverschlüsselte eMails sind so öffentlich wie Postkarten: z.B. Postangestellte können die Postkarten lesen. Unverschlüsselte eMails können vom Computerpersonal bei Sender(in), Empfänger(in) und den Vermittlungsstellen gelesen werden.
- von Ermittlungsbehörden können eMails massenhaft "mitgeschnitten" werden wie Telefongespräche. Die Auswertung ist im Vergleich zum Telefon leichter weil nicht Töne in Buchstaben gewandelt werden müssen. Aber die Auswertung des Inhalts ist sehr schwierig bei grossen Mengen. Ein Anfangsverdacht, warum gerade diese Person überwacht werden soll, ist wohl die Vorraussetzung dafür, dass ein Mensch sich eine eMail ansieht und den Inhalt nachvollzieht. Der Inhalt macht also alleine nicht verdächtig, selbst Worte wie "waffenfähiges Uran" oder "Heroin" werden wohl kein Aufsehen erregen, ausser es wird gerade deswegen gegen die Person ermittelt.
- Informationen über "Wer kommuniziert mit wem" sind heikler: Wenn eine bisher unverdächtige Person mit einer Person kommuniziert, gegen die ermittelt wird, dann wird evtl. die bisher nicht verdächtigte Person auch überwacht. Verschlüsselung hilft hier wenig.
- Welche eMails erfasst werden hängt von der Durchdringung des Internets mit Abhörpunkten ab. In Deutschland sollen nach und nach alle öffentlichen Provider einen Zugang für Ermittlungsbehörden einrichten, vergleichbar zu Handy-Netz-Anbietern.
- Internationale Kommunikation, die über Satellit geht, wird von Echelon mitgeschnitten, das betrifft auch viele Emails.
Wie funktioniert eMail-Verschlüsselung grundsätzlich?
- Verschlüsselung
- zwei Parteien unterhalten sich, eine dritte liest möglicherweise mit, soll aber nichts verstehen
- die Nachrichten werden in Zahlen umgewandelt, die Zahlen verändert
- symmetrisch: Verschluesselung und Entschluesselung benötigen die gleichen Infos
- asymmetrisch: Verschluesselung und Entschluesselung benoetigen verschiedene Informationen
- Public Key Cryptography (ist asymmetrisch)
- die Information zur Verschluesselung (Public Key) ermoeglicht nicht (weil nur mit gigantischem Rechenaufwand) die Entschluesselung
- beide Infos("Das Schluesselpaar") werden zusammen errechnet, beliebig viele Schluesselpaare sind erzeugbar, auch mit verschiedener Länge (=Güte). Empfohlen ist die Länge 1024 bit
- der Public Key kann sorglos verteilt werden und oeffentlich gemacht werden. (Ein vergleichbarer Vorgang in der mechanischen Welt: Wenn ich an meine Freunde Vorhängeschlösser verteile, zu denen ein und der selbe Schlüssel passt, den ich aber ausschliesslich selbst behalte. Dann können die Freunde mir verschlossene Kisten schicken, die nur ich öffnen kann)
- nur die Entschluesselungs-Infos muessen vom Empfaenger geheim gehalten werden (Secret Key)
- bei beidseitiger verschlüsselter Kommunikation: die GesprächspartnerInnen müssen ihre Public Keys austauschen (einmalig)
- Zum Anschauen: so sieht ein public key aus: Beispiel
- Vertrauen in Schluessel
- Verschlüsselte Kommunikation muss vermittelte Kommunikation beruecksichtigen, also dass Zwischenstellen vermitteln und weiterleiten, also die Nachrichten kurze Zeit für sich alleine haben und unkontrolliert verändern und dann erst zustellen können. Jede dieser Stellen kann als "Man in the Middle" begriffen werden, die im schlimmsten Falle alle Stadien der Public-Key Kommunikation mit meinem Kommunikations-Partner mitliest und verändern kann.
- Details: Falls mir ein öffentlicher Schlüssel zukommt (eMail, Webseite, etc.), der angeblich von meinem Partner stammt aber in Wirklichkeit von einem Man in the Middle kommt, können meine (mit diesem öffentlichen Schlüssel) verschlüsselten Nachrichten vonm Man in the Middle entschlüsselt werden (denn es ist ja sein public key und dann passt auch sein private key) und dann mit dem tatsächlchen Schlüssel meines Partners verschlüsselt und zugestellt werden. Dieses Abhören kann von mir und meiner Gegenstelle nicht bemerkt werden ("transparent") und schlimmstenfalls in beide Richtungen funktionieren. Ich und mein Partner würden es nur dann bemerken, wenn wir unsere Public Keys nochmal vergleichen und feststellen, dass wir statt dessen bisher die Public Keys des Angreifers benutzt haben. Dieses Vergleichen muss dann auf einem Kommunikationsweg geschehen, den der Man_In_The_Middle-Angreifer nicht manipulieren kann.
- noch nicht klar geworden? Dann hier das mechanisches Beispiel: Alf schickt mir ein offenes Vorhängeschloß, ohne Schlüssel, den hat nur er. Im Post-Verteilerzentrum allerdings tauscht der Geheimdienst das Schloß gegen ein eigenes offenes Vorhängeschloss aus. Ich lege den Tip, wo Alf das Ersatzteil für sein Raumschiff finden kann, in eine Stahl-Schatulle und mache sie mit dem Vorhängeschloß zu. Der Geheimdienst macht im Post-Verteielrzentrum die Schatulle mit dem eigenen Schlüssel auf, liest den Ort, macht die Schatulle wieder zu, diesmal mit Alf's Schloß. Alf bekommt das Paket, öffnet die Schatulle mit seinem Schlüssel, denkt alles sei sicher und fährt zu dem Ort. Dort wartet schon der Geheimdienst und Alf landet auf dem Seziertisch.
- Man In The Middle Angriffe scheinen zwar kompliziert zu sein, lassen sich aber automatisieren und sind damit nicht mehr total unwahrscheinlich
- Gegenmassnahmen: über unterschiedlicher Kanäle (Web/Email) Public Key empfangen und verschlüsselte Nachricht senden
- Besser: über zweiten Kommunikationskanal, der am besten komplett anders funktioniert (z.B. telefon) den öffentlichen Schlüssel verifizieren, z.B. den "Fingerprint" am Telefon vorlesen und vergleichen, hier der Fingerprint von klausens Schlüssel:
97E2 2F18 549D 0111 9B10 9CB2 33E0 9572 0A40 751E
- weiterführende Stichworte zu "Verttauen in Schlüssel": Public Key Server, Web of Trust, Certificate, Certificate Authority, Verisign & Co., Behörden
- Verschlüsselte Kommunikation muss vermittelte Kommunikation beruecksichtigen, also dass Zwischenstellen vermitteln und weiterleiten, also die Nachrichten kurze Zeit für sich alleine haben und unkontrolliert verändern und dann erst zustellen können. Jede dieser Stellen kann als "Man in the Middle" begriffen werden, die im schlimmsten Falle alle Stadien der Public-Key Kommunikation mit meinem Kommunikations-Partner mitliest und verändern kann.
- Unterschriften
- der Secret Key und die Nachricht ergeben die Unterschrift
- Verschlüsselt werden nicht die Originaldaten sondern nur ein Extrakt dieser Daten, dies wird dann angehängt
- hier mal zum Ansehen: eine nur Unterschriebene E-Mail, eine Verschluesselte E-Mail
- die Nachricht und der public key koennen verifizieren, dass die Unterschrift mit dem zugehörigen Secret Key gemacht wurde und die nachricht seitdem nicht veraendert wurde
- Oder nochmal anders: Schutz ...
- gegen mitlesen: Verschluesseln
- gegen man in the middle attack: key Herkunft sichern
- gegen falsche Herkunft der Nachricht: Unterschrift
- gegen bugs/exploits: aktuelle versionen
- gegen Erstellung von Kontaktprofilen wer kommuniziert mit wem : davor schützt Verschlüsselung nicht!
Wie verschlüssele ich praktisch?
gezeigt am Programm Mozilla unter Windows (Mails per IMAP, nicht per Webmail)
1. Programme installieren
- "Mozilla Thunderbird" (offizielle Mozilla Seite)
- "Gnu Privacy Assistant" ... ab jetzt "GPA" genannt (offizielle deutsche und weltweite Seite)
- als Extension von Thunderbird installieren: "Enigmail" und "Enigmime" (offizielle Enigmail Seite)
2. Einstellungen
- mit GPA ein Schlüsselpaar erzeugen:
- GPA starten, Dialoge beantworten
- Schlüsselpaar auswählen, Optionen -> Standart-Schlüssel
- Ändern -> Benutzervertrauen ändern -> volles Vertrauen -> Übernehmen
- einen email Account in Thunderbird anlegen:
- Erstes Mal Starten und Dialoge beantworten - oder - Menüleiste -> Werkzeuge -> Konten-Einstellungen -> Account/Konto hinzufügen
- enigmail in Thunderbird konfigurieren
- Enigmail -> Preferences: Adresse und "Encryp+Sign if possible"
- Enigmail -> Advanced: "GPG ... Path" z.B.: D:\net\GnuPP\GnuPG\gpg
3. Public Keys austauschen
- dem Adressaten eine eMail mit dem public key senden:
- Thunderbird -> Mail verfassen -> Enigmail -> Insert Public Key
- Enigmail -> Plaintext send (sonst ist das empfangende enigmail verwirrt. Dies ist nur nötig solange der Empfänger den public key noch nicht hat und deshalb die Signierung auch nicht verstehen kann.)
- ( beim Empfänger: Enigmail -> Import public key )
- Schlüssel-"Fingerprint" verifizieren über Telefon oder bei einem Treffen
- Fingerprint anzeigen: GPA starten, Schlüssel anklicken. Der Fingerprint wird unten angezeigt.
- Falls der Angezeigte und vom Besitzer genannte Fingerprint identisch sind: GPA -> Fremd-Schlüssel anklicken -> Signieren
- Falls Du dem Besitzer des Fremd-Schlüssels vertraust: Ändern -> Benutzervertrauen ändern
- ( weitere Quelle für public key: GPA -> Export -> Zwischenablage oder in Datei )
4. meine erste Email mit digitaler Unterschrift
- ( Dies kann mit jeder Mail gemacht werden. Zum reinen Lesen der Mail ist beim Empfangenden nichts notwendig. )
- ( Um Deine Unterschrift zu prüfen braucht der Empfangende Deinen Public Key. )
- Thunderbird -> Verfassen -> (eMail schreiben) -> Enigmail -> Signed Send
5. meine erste verschlüsselte Email
- ein Schlüssel der Zieladresse ist notwendig, siehe oben " Schlüssel austauschen"
- Thunderbrid -> Nachricht verfassen
- eMail Adresse angeben, die beim public key angezeigt wird
- eMail schreiben, dann Enigmail -> Encrypted send oder einfach EnigSend
Verwandte Themen:
- Anhänge = Attachments
- Erst sehr wenige Programme unterstützen verschlüsselte Anhänge: Enigmail, mutt, Evolution. Der Standart, an den sich diese Programme halten heisst PGP/MIME
- Wenn der Empfänger nicht auch eines dieser Programme benutzt, kann er die eMail nicht verstehen, obwohl er die nötigen Schlüssel hat
- Enigmail fragt beim Versandt von Anhängen, ob nur der Textkörper verschlüsselt werden soll (und nennt das "Inline", man muss dann Abbrechen drüchen) oder ob auch der Anhang verschlüsselt werden soll.
- zum Ansehen: GanzUnverschluesselt, UnverschluesseltesAttachment, VerschluesseltesAttachment
- Web of trust:
- Du bekommst nicht nur einen neuen öffentlichen Schlüssel sondern dieser ist (evtl. mehrfach) unterschrieben von verschiedenen anderen Personen. Falls Du eine davon kennst und ihr vertraust ("die Person würde die Unterschrift nicht leichtfertig hierunter setzen, die hat nachgeprüft, dass der Schlüssel wirklich von dieser neuen Person ist."), dann kannst Du Dir das Überprüfen des Fingerprints sparen.
- Je mehr Unterschriften unter den öffentlichen Schlüsseln sind desto grösser die Wahrscheinlichkeit, dass eine Person dabei ist, der Du vertraust und deren Schlüssel Du schon überprüft hast. Desto grösser das Web of Trust.
- um mitzumachen: lasse Dir den von Deinen Freunden unterschriebenen public key (ich meine jetzt Deinen) wieder zuschicken und importiere ihn in GPA. So sammelst Du nach und nach Unterschriften. Dies kannst Du auch mit public keys von anderen Leuten machen.
- Zertifikat oder englisch: Certificate
- "Digitaler Ausweis" aus: Angaben zur Person, öffentlicher Schlüssel und Signatur von einer Zertifizierungsstelle (Certificate Authority, "CA")
- Auf diesem Wege wird die Zuordnung von Personen (Inhaber) zum Schlüssel hergestellt
- der öffentliche Schlüssel der CA muss allerdings erstmal da sein, z.B. beim Browser sind einige dabei
- ein CA ist letztlich nichts anderes als ein wohlbekannter Knoten im Web of trust
- Mailverteiler: diese verteilenden Programme haben die öffentlichen Schlüssel aller Empfänger nicht, können also nicht verschlüsselt senden. Ob es mittlerweile Verteilerprogramme gibt, bei denen mensch seinen öffentlichen Schlüssel hinterlegen kann, weiss ich nicht. Bisher nichts gesehen.
- PGP: war zuerst da, ist aber nicht alles frei, gehört einer Firma
- GPG: "Open PGP", frei, Teil der GNU Initiative für freie Software
- verschluesselte dateien und festplatten
- einzelne Dateien verschlüsseln mit dem GPA: GPA -> Fenster -> Dateiverwaltung
- einzelne Dateien verschlüsseln mit Kommandozeilenbefehl gpg:
gpg --default-recipient-self --output geheim.pdf.crypted -e geheim.pdf
- verschlüsselter Ordner: "pgp disk": "Tresor", in den Dateien verschoben werden können
- unter Linux: ganzes Dateisystem verschluesseln mit einem Modul für "evms"
- verschlüsseltes surfen: https + certifikate
- anonymisiertes Surfen: Proxies, Masquerading
- steganographie
- keyboard sniffer-attacke
- "ssh": Computer verschlüsselt übers internet steuern