• 20.04.2024, 01:41
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Howto: Emails digital signieren / verschlüsseln

Donnerstag, 2. Dezember 2004, 17:18

Hi,
Ich greife hier mal
Chewy's Vorschlag
auf und poste ein paar Tipps zum Signieren und Verschlüsseln von Emails.

Weitere wichtige Seiten zu dem Thema:

Mac-Installationsanleitung
(Link von crushcoder)

Krypto-Kampagne von heise
(Link von Shoggy)

Intro
Frage: Wozu ist eine digitale Signatur überhaupt gut?
Antwort: Emails sind eine sehr alte Kommunikationsform aus einer Zeit, als es das WWW noch garnicht gab und sich die Menschen im Internet noch grenzenloses Vertrauen entgegenbrachten. Deshalb sind im Email-Protokoll keine Sicherheitsvorkehrungen gegen Missbrauch enthalten.
Es ist sehr leicht möglich, den Absender einer Email zu fälschen oder den Inhalt einer Mail zu ändern. Das Fälschen von Absendern ist beim Versenden von Spam inzwischen sogar zum Standard geworden.
Häufig werden gefälschte Absender auch verwendet, um Intenetbenutzer auf gefälschte Bankseiten zu locken, wo ihnen dann Passwörter und Benutzernamen entlockt werden sollen.

Nur bei einer digital signierten Mail ist es möglich, den Absender zweifelsfrei zu Identifizieren und gleichzeitig sicherzustellen, dass die Mail nicht verändert wurde.

Frage: Warum verschlüsseln?
Antwort:
Eine Mail passiert auf ihrem Weg vom Absender zum Empfänger mehrere Zwischenstationen. Mindestens den Mailserver des Absenders und den des Empfängers. Auf jeder dieser Zwischenstationen kann die Mail kopiert oder verändert werden.
Vom Mail-Provider, von Leuten in eurem Heim-Netzwerk, von den Backbone-Betreibern und vor allem von all den Leuten, die sich Zugang zu diesen Zwischenstationen verschaffen können.
Ab dem 1. Jannuar 2005 müssen außerdem alle deutschen Emailanbieter auf eigene Kosten vollautomatische Systeme vorhalten, mit denen verschiedene Bundesbehörden Emails abhören können.

Die einzige Möglichkeit, Mails vor fremden Augen zu schützen ist die elektronischeVerschlüsselung.

to be continued in a few minutes...

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 17:58

Frage: Welche Methoden zur Verschlüsselung / Signatur gibt es?
Antwort:
(Man verzeihe mir zahlreiche zu weit gehende grobe Vereinfachungen und Ungenauigkeiten... :) )
Im Moment gibt es zwei konkurierende Modelle:
PGP und Signaturen über 'Zertifikate'

1. 'Zertifikate':
Eine Zentrale Zertifizierungsstelle ('CA') gibt Zertifikate aus. Besitzt 'Alice' ein Zertifikat, kann sie damit ihre Mails unterschreiben und an 'Bob' schicken.
Bob kann überprüfen, ob die Unterschrift korrekt ist, indem er sie sich von der CA bestätigen lässt. (Auch die Kommunikation mit der CA ist durch Zertifikate abgesichert...)
Dazu muss er der CA natürlich vertrauen. Bei der recht unübersichtlichen Anzahl von CAs, die es inzwischen gibt, ist die Entscheidung, ob man einer solchen CA vertraut oder nicht nicht ganz einfach :)
Wenn Bob Alice eine vertrauliche (und deshalb verschlüsselte) Nachricht schicken will benutzt er dazu den öffentlichen Schlüssel von Alice, der Teil von Ihrem Zertifikat ist. Bob kann deshalb verschlüsselte Nachrichten an Alice schicken, auch wenn er selbst kein Zertifikat besitzt. Er kann aber ohne eigenes Zertifikat diese Nachrichten nicht unterschreiben.

2. PGP
PGP (Pretty-Good-Privacy) ist ein offener Standard. (d.h., dieser Standart kann von jedem implementiert werden, es entstehen keine Gebühren)
Es gibt inzwischen eine OpenSource-Implementierung dieses Standarts namens GPG. Diese ist für Windows, Linux und Unix verfügbar (http://www.gnupg.org) und natürlich Freie Software (also kostenlos). Die Entwicklung von GPG wurde übrigens von der Bundesregierung maßgeblich mitfinanziert (ja, genau die Bundesregierung, die jetzt die vereinfachte Email-Überwachung eingeführt hat...)
Bei PGP gibt es keine zentralen Vertrauensstellen ('CA's) sondern ein auf persönlichem Vertrauen basierendes Netz.
Wenn Bob feststellen möchte, ob Alice' Unterschrift korrekt ist, überprüft er das, indem er nachschaut, ob jemand dem er vertraut Alice Vertrauen entgegenbringt. Oder ob jemand, dem er vertraut jemandem vertraut, der Alice vertraut u.s.w. ...


Fazit:
Beide Verfahren gelten seit vielen Jahren als kryptographisch 'sicher' - das heißt, sie können nicht innerhalb eines vernünftigen Zeitramens gebrochen werden und enthalten keine (mathematischen) Schwächen, mit denen man sie aushebeln könnte.
Das Problem bei der 'Zertifikate'-Lösung ist, dass die CA, die Alice das Zertifikat ausgestellt hat, in Besitz von Alice' Originalschlüssel ist. Diese CA kann also Alice Unterschrift fälschen und für Alice verschlüsselte Nachrichten lesen. (Und selbstverständlich kann sie diese Schlüssel auch weitergeben).
Bei PGP/GPG ist das NICHT möglich, da sich Alice ihre 'Zertifikate' (oder das entsprechende PGP-Äquivalent) selbst ausstellt!
Außerdem ist PGP-Verschlüsselung grundsätzlich kostenlos, da keine Organisationsstruktur wie bei einer CA mitgeschleppt werden muss.

Aus diesem Grund werde ich im Folgenden nur die Verschlüsselung / Signatur mit PGP behandeln!

(Disclaimer: Ich habe mich wirklich aufrichtig bemüht, das alles so einfach wie möglich darzustellen... ehrlich...)

to be continued

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 18:10

Nützler Link zum Thema: Krypto-Kampagne der c't

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 18:14

Frage: Wie funktioniert PGP/GPG eigentlich genau?
Antwort:
PGP basiert auf dem Prinzip der asynchronen Verschlüsselung.
Diese funktioniert wie folgt:
Alice erzeugt zwei voneinander abhängige Schlüssel.
Wenn eine Nachricht mit dem ersten Schlüssel verschlüsselt wurde, kann sie mit diesem Schlüssel NICHT wieder ENTschlüsselt werden. (Klingt paradox, ist aber so :)) Zur Entschlüsselung benötigt man den zweiten Schlüssel. Ebenso können Nachrichten die mit dem zweiten Schlüssel verschlüsselt wurden NUR mit dem ersten Schlüssel entziffert werden.
(So, kurze Pause um das erstmal zu verdauen... Ist schon toll, was die Mathematiker so machen, wenn man sie nicht ständig beaufsichtigt, oder? :))

Einen dieser Schlüssel nennt man Secret-Key, den anderen Public-Key.
Der Secret-Key ist Alice Geheimnis. Er darf niemals in die Hände von anderen Menschen fallen, sonst ist das Schlüsselpaar wertlos.
Den Public-Key nennt Alice Gott und der Welt. Er wird sogar auf einem speziellen Webserver hinterlegt (die pgp-keyserver, z.B. wwwkeys.de.pgp.net, dort liegt MEIN öffentlicher Schlüssel :))

Wenn Bob Alice eine Nachricht schreiben will, dann verschlüsselt er sie einfach mit Alice öffentlichem Schlüssel (public-key). Niemand kann diese Nachricht wieder entschlüsseln (nichtmal Bob...) solange er nicht den secret-key (den privaten Schlüssel) von Alice besitzt. Im Normalfall ist das nur Alice selbst :)

Wenn Alice eine Nachricht unterschreiben will, dann bildete sie einfach eine Quersumme über die Buchstaben der Nachricht. Diese Quersumme verschlüsselt sie dann mit Ihrem privaten Schlüssel und hängt sie an die Nachricht an. Wenn Bob die Korrektheit der Unterschrift / Signatur überprüfen will, entschlüsselt er die richtige Quersumme im Anhang mit Alice öffentlichem Schlüssel (den er von den öffentlichen Keyservern holt) und vergleicht sie mit der selbst errechneten Quersumme der Nachricht. Stimmen beide überein, MUSS die Nachricht von Alice stammen und wurde auf dem Weg zu Bob nicht verändert!

to be continued...

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 18:15

feine sache god0815 TM

so kann man mal wenigstens wieder was lernen das auch sinn macht und nicht als äußerst mißverständliche anleitung nur die gemüter erhitzt.

thx!

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 18:27

Frage: Woher weiß Bob, dass der öffentliche Schlüssel auf dem Keyserver wirklich von Alice stammt und nicht von jemand anderem?
Antwort:
Genauso, wie man Nachrichten unterschreiben kann, kann man auch Schlüssel unterschreiben (also: durch Verschlüsseln der Quersumme mit dem eigenen Secret-Key).
Nehmen wir an, Alice und Bob kenne sich nicht, haben aber einen gemeinsamen Bekanten, Charlie. Charlie hat Alice Schlüssel unterschrieben und Bob hat bereits den öffentlichen Schlüssel von Charlie.
Dann kann er Alice Schlüssel vom Keyserver laden, feststellen, dass dieser von Charlie unterschrieben wurde und Charlies Unterschrift mit Charlies Public-key überprüfen.
Da jetzt feststeht, dass Alice' öffentlicher Schlüssel wirklich von Alice stammt, kann Charlie diesen benutzen. Außerdem kann er, wenn er möchte, auch allen Schlüsseln vertrauen, die Alice unterschrieben hat. Des weiteren kann er Alice Schlüssel selbst unterschreiben, so dass alle seine Freunde wissen, dass er Alice vertraut.
So entsteht das 'net of trust' bei GPG.
Einzelnen Personen/Organisationen (wie z.B. der oben erwähnten c't) signieren sehr viele Schlüssel. Wenn Bob also der c't vertraut, hat er auf einen Schlag viele tausend neue 'Freunde' :)

Frage: Wo bekomme ich noch mehr Informationen über die Funktionsweise von PGP?
Antwort:
http://kai.iks-jena.de/pgp/gpg/
http://www.gnupg.org/gph/en/manual.html

to be continued...

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 18:48

UND JETZT GEHT'S LOS: SOFTWARE

(Diese Installationsanleitung gilt für ein System mit WindowsXP oder Windows 2000)

So, nachdem ich gerade ewig viel zur Theorie geschrieben habe, hier der Teil in dem's zur Sache geht:
Installation und Einrichtung eines möglichst einfachen und umfassenden Verschlüsselungssystems :)

Benötigte Software:

GPG (kryptographischer Kern)



Thunderbird 0.9 (Email-Client)



Eingmail 0.89de (Thunderbird-Erweiterung für GPG, sehr komfortabel)



Miranda (kann ICQ, MSN, AIM, Jabber und MSN)


Miranda-GPG-Plugin (trotz niedriger Versionsnummer stabil :))


WinPT Explorer Extensions 0.3.0 (NICHT das ganze WinPT-Paket, das ist ... wie soll ich sagen... instabil :) )


Mit diesem Software-Paket kann man:
-Verschlüsselte und signierte Emails verschicken und empfangen
-Verschlüsselte ICQ/MSN/AIM/... Nachrichten zu anderen Miranda/GPG-Benutzern schicken
-Dateien ver- und entschlüsseln (mit rechtsklick)

Ich habe einige Software ausprobiert und die hier zusammengestellten Programme arbeiten sehr sauber zusammen, sind stabil und einfach zu bediene - zumindest so einfach, wie man es sich bei einer derart komplexen Sache wie PGP nur wünschen kann :)
Außerdem sind alle diese Programme Open Source und Free Software.


(PS: Wenn sich jemand fragt, ob ich zu viel Zeit habe: Ja, habe ich: Ich liege krank im Bett und habe nix besseres zu tun :) )

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 19:17

Installationsanleitung:

1. GPG
-Den Inhalt des Archivs gnupg-w32cli-2.2.5.zip (siehe Downloadlink oben) in den Ordner c:\programme\gpg entpacken.
-Die Datei de.mo in den Ordner c:\Programme\gpg\locale verschieben und in gnupg.mo umbenennen. (Dadurch wird gpg deutsch)
-die beiden Registry-Keys
HKEY_CURRENT_USER -> Software -> GNU -> GnuPG; Typ String, Name HomeDir, Wert c:\programme\gpg
und
HKEY_CURRENT_USER -> Control Panel -> Mingw32 -> NLS; Typ String, Name MoDir, Wert c:\programme\gpg\locale
anlegen.
Wer die Registry nicht selbst bearbeiten will:
Einfach diese Datei runterladen und mit Doppelklick installieren :)
http://god0815.gmxhome.de/wakue/gpg.reg

Damit ist GPG einsatzfähig.
Am besten legt man jetzt gleich ein Schlüsselpaar an. Dazu gibt man unter Start>Ausfürhen folgendes ein:
\programme\gpg\gpg.exe --gen-key
Bei den dann folgenden Auswahlschirmen wählt man:
DSA/ElGamal ; 2048 bit Schlüssellänge ; 4y Gültigkeit (oder auch länger, wie man will...) und ein leicht zu merkendes, schnell zu tippendes Passwort (passphrase), mit dem der private Schlüssel zusätzlich gesichert wird.
GPG erzeugt dann das Schlüsselpaar und speichert es in den Dateien secring.gpg und pubring.gpg
Um eine Sicherheitskopie der Schlüssel anzulegen gibt man bei Start > ausführen ein:
gpg --export-secret-key --armor --output mein.secret.key.asc
und dann nochmal
gpg --export --armor --output mein.public.key.asc

Die Dateien mein.public.key.asc und mein.secret.key.asc enthalten dann den Public- und den Secret-Key. Achtung: Den Secret-key niemals weitergeben!!!

Um der Welt euren öffentlichen Schlüssel bekannt zu machen gibt es folgenden Befehl: Start > Ausführen...
C:\Programme\gpg\gpg.exe --send-keys --keyserver wwwkeys.de.pgp.net

So, Abschied von der Kommandozeile, im nächsten Teil geht es um das (sehr komfortable) Verschlüsseln von Emails.

...

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 19:35

Als Mailanwendung kann ich euch leider nur Thunderbird mit Enigmail empfehlen. Es gibt zwar auch für Outlook und Outlook-Express GPG-Plugins, aber diese sind wesentlich unpraktischer und weniger gut integriert...

Ich empfehle unbedingt, die von mir verlinkten Versionen von Thunderbird (0.9deutsch) und Enigmail (0.89deutsch) zu benutzen, mit anderen Versionen kann es unter Umständen zu Problemen kommen (vor allem bei deutscher vs. englischer Version)

Ist ganz einfach: Thunderbird installieren, dann evtl. die Einstellungen von Mozilla/Outlook/Outlook Express importieren und dann unter Exras>Erweiterungen auf installieren klicken. Dann die enigmail-....-DE.xpi auswählen, installieren und Thunderbird neu starten.
Nach dem Neustart gibt es neben Extras ein neues Menü Enigmail.
Dort auf Einstellungen klicken und beim Pfad zur GPG-Anwendung
C:\Programme\gpg\gpg.exe
eingeben.
Direkt darunter könnt ihr einstellen, dass Enigmail sich die Passphrase 60 Minuten merken soll (das ist ein vernünftiger Wert für die meisten Benutzer).
Bei den Schlüsselservern sollte man noch den deutschen Server
"wwwkeys.de.pgp.net, "
eintragen.
Bei den PGP/Mime - Einstellungen empfehle ich euch 'immer' auszuwählen. PGP/MIME ist die am wenigsten aufdringliche Variante, die Signatur in der Email unterzubringen.

Das war's. Beim versenden von Mails könnt ihr unten rechts am Fensterrand mit dem Stift und dem Schloß die Signatur (Stift) und die Verschlüsselung (Schloß) aktivieren oder deaktivieren. Default-Werte lassen sich unter Extras, Konten, OpenPGP-Sicherheit (als Unterpunkt im Konten-Baum links) festlegen.
Mit den übrigen Einstellungen kann man rumspielen - aber nicht zu viel, sonst macht man noch was kaputt :)

Wenn Ihr eine Mail verschlüsselt versenden wollt, braucht ihr dafür natürlich den public-key des Empfängers. Enigmail bietet euch bei Bedarf an, diesen Schlüssel von den öffentlichen Servern herunterzuladen. Damit ihr Ihn benutzen könnt muss er jedoch entweder von jemandem dem ihr vertraut signiert sein, oder von euch selbst. Um Schlüssel zu signieren, bietet es sich an, auf Enigmail > OpenPGP-Schlüsselverwaltung zu klicken :)

Viel Spaß beim ausprobieren :)

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 19:47

So, nächster Punkt: Verschlüsseltes Instant-Messaging.

Geht nur mit Miranda IM wirklich gut. Einfach Miranda installieren und dann die Datei gnupg.dll aus dem Download-Archiv (Link siehe oben) in das Verzeichnis \plugin im Miranda-Ordner (im Programme-Ordner) kopieren und Miranda neu starten.
Die Konfiguration ist nicht weiter kompliziert, muss ich glaube ich nicht erklären...
Na GUT :)
Also: Unter Options/Plugins/GPG den Pfad zur GPG.exe eingeben:
C:\Programme\gpg\gpg.exe und darunter den Pfad zu den Schlüsselringen:
c:\programme\gpg
Darunter auf refresh klicken und den zum Verschlüsseln zu benutzenden privaten Schlüssel auswählen (evtl. Miranda neustarten, bin mir nicht sicher...)
Im Fenterausschnitt darunter kann man für jeden Kontakt den entsprechenden Public-Key auswählen.
Achtung: Auch hier kannst Du nur dann einen Schlüssel zum verschlüsseln benutzen, wenn dieser von Dir selbst oder jemandem dem Du vertraust unterschrieben wurde!! (Schlüssel unterschreiben geht am besten mit Enigmail unter Thunderbird)

Um die Nachrichten dann tatsächlich zu verschlüsseln setzt man nach Rechtsklick auf den Kontakt im Kontakte-Fenster einen Haken bei 'use gpg'. Das wars.

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 20:03

So, langsam hab ich keine Lust mehr...

Noch schnell das Verschlüsseln von Dateien:
Aus dem (oben verlinkten) Download-Archiv die Datei winptee.dll nach c:\windows\system kopieren.
Dann noch den Registry-key
http://god0815.gmxhome.de/wakue/winptee.reg
mittels Doppelklick installieren.
Dann:
Start > Ausführen...
regsvr32 c:\windows\system\winptee.dll

Das wars. Nach einem Windows-Neustart steht beim Rechtsklick auf eine Datei die Option WinPT> zur Verfügung. Damit kann man Dateien ver- und entschlüsseln sowie signieren. (Leider schießt der Prozess dabei jedesmal den Explorer ab, aber das stört eigentlich kaum ;) )

Und als krönenden Abschluß:
Hier mein gpg-public-key:
http://www.peterengel.com/mail@peterengel.com.pgp.pub.asc
Hier meine ICQ-Nummer:
135245339
und meine Mailadresse für Tests:
peter@gmx.org

Mal sehen, wer es als erster schafft, mir sowohl eine signierte Mail als auch eine verschlüsselte ICQ-Botschaft zu schicken :)

Gruß
god0815
aka
Peter Engel

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 22:12

da morgen freitag ist (und ich da sowieso nie was richtiges arbeite) :-X werde ich dich morgen mal hochverschlüsselt anschreiben ;D

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 22:40

Zitat von »Chewy«

da morgen freitag ist (und ich da sowieso nie was richtiges arbeite) :-X werde ich dich morgen mal hochverschlüsselt anschreiben ;D


Na toll,
jetzt kann ich die ganze Nacht nicht schlafen, weil ich total aufgeregt bin wegen Deiner Email... :(


:)
Gruß
god0815

Re: Howto: Emails digital signieren / verschlüssel

Donnerstag, 2. Dezember 2004, 22:47

ich installiere gerade nach dieser anleitung für mac os x und eudora (andere gehen bestimmt auch)
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.