die raven homepage
Verschlüsseltes & anonymisiertes IM per Jabber - Seite 8
Jabber mit OTR ("Off-the-record") Verschlüsselung und Tor Anonymisierung

Auf dieser Seite wird die mit OTR ("Off-the-record") verschlüsselte Kommunikation per Jabber über die per Tor anonymisierte Verbindung zum Jabber Server anhand des Instant Messaging Client Pidgin vorgestellt, die eine Alternative zur OpenPGP verschlüsselten Jabber Chats darstellt.

Auf die Ende-zu-Ende Verschlüsselung per OpenPGP und OTR wurde bereits im Kapitel Verschlüsselung, Signierung und Authentifizierung eingegangen.

Einrichtung unter Windows

Das Pidgin Installationsprogramm erhält man auf der Downloadseite von Pidgin. Nach dem Download wird einfach das Installationsprogramm ausgeführt und Pidgin in ein beliebiges Verzeichnis installiert. Die OTR Verschlüsselung wird bei Pidgin über ein OTR Plug-in eingebunden, das ebenfalls über ein Installationsprogramm installiert wird – entweder in ein eigenes Verzeichnis oder in das plugins Unterverzeichnis im Pidgin Programmverzeichnis.

Pidgin Profildaten sicher speichern

Normalerweise legt Pidgin im Benutzerprofil im Verzeichnis
C:\Dokumente und Einstellungen\benutzer\Anwendungsdaten\.purple\
alle Konfigurationsdateien, Log-Dateien, SSL/TLS Zertifikate, Avatar-Icons der Kontakte und Kontendaten ab.

Will man den unberechtigten Zugriff auf diese Daten einschränken, indem man die Dateien zum Beispiel auf einem USB-Stick oder innerhalb einer verschlüsselten TrueCrypt Partition bzw. Containerdatei speichern möchte, kann man den Speicherort des .pidgin Verzeichnisses mit zwei Methoden ändern.

Per PURPLEHOME Umgebungsvariable
  1. Über das Startmenü, Untermenü Einstellungen, Systemsteuerung in der System Anwendung unter Erweitert das Fenster für Umgebungsvariablen aufrufen
  2. Mit dem Button Neu die neue Benutzervariable für das Verzeichnis definieren, in dem das .pidgin Datenverzeichnis von Pidgin angelegt und genutzt wird:

    Name der Variablen: PURPLEHOME
    Wert der Variablen: LW:\Pfad\Verzeichnis

    Beispiel:

    Pidgin Umgebungsvariable

    Damit wird Pidgin in diesem Beispiel immer das Verzeichnis H:\pidgindata\.purple\ als Heimatverzeichnis zur Speicherung der oben genannten Daten verwenden. Nach der erstmaligen Anlage der Benutzer-Umgebungsvariable ist die erneute Anmeldung des Benutzers nötig.
Per Kommandozeile

Dazu wird einfach dem Aufruf des Pidgin Programms der vollständige Pfad zum .purple Verzeichnis mit dem Parameter -c übergeben. Für das obige Beispiel:

LW:\Pidginprogrammverzeichnis\pidgin.exe -c h:\pidgindata\.purple
Jabber Konto mit Pidgin anlegen

Über den Menüeintrag Konten / Hinzufügen in der Kontrolleiste wird das Dialogfenster zum Anlegen eines Jabber Benutzerkontos aufgerufen:

Jabber Konto mit Pidgin

Für ein Jabber Konto wird als Protokoll XMPP ausgewählt und der gewünschte Benutzername, als Domain der Hostname des Jabber Servers, die Ressource und das Passwort eingetragen.
Wenn die Pidgin Profildaten sicher gespeichert werden, kann man auch die permanente Speicherung des Passworts aktivieren.

An der fehlenden Zuordnung der Priorität zu einer Ressource lässt sich ablesen, dass es sich bei Pidgin nur um einen rudimentären Jabber Client handelt, dem viele Jabber Funktionalitäten fehlen.

Jabber Konto mit Pidgin

Mit der Option SSL/TLS voraussetzen wird die Verschlüsselung der Verbindung zum eigenen Jabber Server aktiviert.

Nach Informationen eines Pidgin-Anwenders verifiziert Pidgin u. U. nicht die Echtheit des SSL-Serverzertifikats. Die Prüfung wird erst ab Pidgin Version 2.2.0 bei Verwendung von GnuTLS durchgeführt, im Code für die NSS-SSL-Bibliothek ist (noch) kein Code zur Zertifikatprüfung enthalten.

Als Verbindungsserver wird die IP-Adresse des Jabber Server Hostnamens eingetragen, um der nicht-anonymen Namensauflösung durch Pidgin vorzubeugen. Mit der Proxy Konfiguration wird die verschlüsselte Verbindung zum Jabber Server über den lokalen Tor Onion Proxy und das Tor Netzwerk anonymisiert.

Wird erstmalig ein Jabber Konto auf einem Jabber Server registriert, ist die Option Dieses neue Konto auf dem Server anlegen zu aktivieren.

OTR Verschlüsselung einrichten

Wurde das OTR Plug-in installiert, findet sich das OTR Plug-in über das Menü Werkzeuge / Plugins in der Pluginübersicht:

Pidgin OTR Plg-in Übersicht

Über den Button Plugin konfigurieren gelangt man in die Einstellungen zum OTR Plug-in

Pidgin OTR Plug-in Einstellungen

Über My key for account wird die Jabber Adresse ausgewählt, für die ein OTR Schlüssel erstellt werden soll. Die Erstellung wird über den Button Generate durchgeführt. Anschließend wird der Fingerprint des Schlüssels – die Prüfsumme des gesamten Schlüsselnmaterials in Gestalt einer alphanumerischen Zeichenfolge – angezeigt, der bei der Authentifikation von Gesprächspartnern eine wichtige Rolle spielt.

Unter Default OTR Settings befinden sich die OTR Optionen zur Handhabung OTR verschlüsselter Verbindungen zum Gesprächspatner:

  • Die Option Enable private messaging schaltet die Möglichkeit zur OTR Verschlüsselung generell an bzw. aus.
  • Ist die Option Automatically initiate private messaging aktiviert, wird automatisch die OTR Verschlüsselung vom eigenen Client angestoßen.
  • Bleibt die Option Require private messaging deaktiviert, prüfen die Clients, ob sie OTR verschlüsselte Verbindungen aufbauen können und aktivieren sie automatisch, wenn die Fähigkeit besteht. Andernfalls sind auch unverschlüsselte Verbindungen zulässig.
  • Mit Don't log OTR conversations wird das Aufzeichnen OTR verschlüsselter Gespräche deaktiviert, selbst dann, wenn in Pidgin allgemein das Aufzeichnen von Konversationen aktiviert ist, denn ein Ziel der OTR Kommunikation ist die Abstreitbarkeit einer erfolgten Kommunikation gegenüber Dritten, der eine Aufzeichnung zuwiderläuft. Will man trotzdem OTR Chats durch Deaktivierung der Option aufzeichnen, sollte sichergestellt werden, dass Dritte keinen Zugriff auf die Chat-Protokolle erhalten können (s. o.).
OTR Verschlüsselung anwenden

Vor Beginn einer verschlüsselten Kommunikation präsentiert sich das Pidgin Chat Fenster:

Pidgin Chat Fenster

Der OTR Button zeigt mit dem Status Not private an, dass keine verschlüsselte OTR Verbindung zu einem authentifizierten Gesprächspartner besteht.

Pidgin Chat Fenster

Wenn der OTR Button angeklickt wurde, wird nach einer kurzen Zeitspanne eine OTR verschlüsselte Verbindung zwischen beiden Gesprächspartnern hergestellt und beide könnten bereits jetzt verschlüsselt miteinander kommunizieren.

Die Frage an dieser Stelle lautet jedoch auf beiden Seiten: Kann ich mir sicher sein, dass ich mit der echten Person verschlüsselt kommuniziere und nicht vielleicht mit einer dritten Person, die sich zwischen beide Kommunikations-Endpunkte gesetzt hat und dort einen Man-in-the-middle Angriff durchzuführt, um entweder die echte Person vorzutäuschen oder die Kommunikation zwischen den beiden echten Personen aufzuzeichnen.

Die Frage signalisiert OTR mit dem Fragezeichen und den Hinweisen, dass die Echtheit des vom Gesprächspartner benutzten OTR Schlüssels bzw. dessen Fingerprints noch nicht mittels eines Authentifikationsverfahrens überprüft und bestätigt wurde.

Authentifikation

Bevor mit einem Gesprächspartner per OTR verschlüsselt kommuniziert werden kann, müssen sich die Gesprächspartner gegenseitig überprüfen und sich vergewissern, dass sich hinter einem OTR Schlüssel bzw. dessen Fingerprint tatsächlich die reale Person verbirgt, mit der man als Gesprächspartner eines OTR Chats kommuniziert. Dafür muss die Zuordnung einer Person zu einem OTR Schlüssel bzw. dessen Fingerprint vor einem ersten Gespräch mit einer von zwei möglichen Methoden überprüft werden.

Ohne Durchführung der Authentifikation kann man die OTR Verschlüsselung auch gleich sein lassen.

Pidgin OTR Icon Kontextmenü

Die Authentifikation wird mit Authenticate buddy im Kontextmenü des OTR Buttons gestartet.

1. Methode

Die erste Methode setzt voraus, dass man mit seinem Gesprächspartner bereits vor der ersten Kontaktaufnahme mit OTR kommuniziert hat bzw. so engen Kontakt hatte, dass es Themen gibt, zu denen der Gesprächspartner auf eine Nachfrage nach einem Begriff sofort weiß, worauf die Frage anspielt, denn die Frage und die richtige Beantwortung macht den Authentifikationsprozess aus.

Pidgin OTR Authentifikation

Im Chat Fenster stellt einer der Gesprächspartner dem Kontakt eine Frage, deren Antwort beide kennen.

Pidgin OTR Authentifikation

Danach gibt er die Antwort ein.

Pidgin OTR Authentifikation

Der Kontakt erhält ebenfalls das Fenster zur Eingabe der bekannten Antwort angzeigt und trägt die Antwort ein.

Pidgin OTR Authentifikation

Da sich die Eingabe des Kontakts in der Groß- bzw. Kleinschreibung von der vorgegebenen Antwort unterschiedet, stimmen die beiden Antworten nicht überein und die Authentifikation schlägt fehl.

Pidgin OTR Authentifikation

Erst als der Kontakt die gleich geschriebene Antwort einträgt, stimmen die Antworten überein und die Authentifikation ist erfolgreich. Deshalb sollte bereits die Frage ausreichend bestimmt und genau gestellt werden, damit der Kontakt die Antwort nicht nur vom Inhalt her richtig eingibt, sondern auch in der richtigen Form. Zum Beispiel durch Angabe der Anzahl der Wörter und Informationen zur Groß- bzw. Kleinschreibung. Die obige Frage könnte dann lauten: "Welchen Filmtitel (in zwei Wörtern mit großgeschriebenen Anfangsbuchstaben) mögen wir beide am liebsten?"

Wie deutlich wird, eignet sich die Methode nur bei Personen, mit denen man bereits einen engeren und persönlicheren Kontakt hatte und nicht für neue und unbekannte Gesprächspartner.
2. Methode

Wenn die Gesprächspartner bereits über einen sichereren Kanal miteinander kommunizieren, kann der Fingerprint des OTR Schlüssels über den sicheren Kanal mitgeteilt bzw. ausgetauscht werden. Verfügen zum Beispiel beide Gesprächspartner über ausreichend zertifizierte OpenPGP Schlüssel oder S/MIME Zertifikate, mit denen sie verschlüsselte E-Mail Kommunikation betreiben, können sich beide Gesprächspartner ihren Fingerprint in einer signierten und verschlüsselten E-Mail zusenden. Sie können sich auch gegenseitig telefonisch kontaktieren – im besten Fall über eine verschlüsselte VoIP Verbindung – oder persönlich treffen und sich die Fingerprints vorlesen bzw. übergeben.

Für neue OTR Gesprächspartner, zu denen kein vorheriger sicherer Kanal besteht, kann der OTR Anwender auch den Fingerprint seines OTR Schlüssels mit seinem ausreichend zertifizierten OpenPGP Schlüssel signiert veröffentlichen.

Pidgin OTR Icon Kontextmenü

Pidgin OTR Authentifikation

Nach Aufruf von Authenticate Buddy im Kontextmenü des OTR Buttons erscheint wieder die Eingabeaufforderung für die erste Methode, nur wird an dieser Stelle nichts eingetragen, sondern der Button Advanced angeklickt.

Pidgin Fingerprint Authentifikation

Im dann erscheinenden Fenster wird zuerst der eigene und darunter der zu überprüfende Fingerprint des OTR Schlüssels des Gesprächspartners angezeigt. Hat man zuvor den Fingerprint über einen sicheren Kanal erhalten oder liest sich an dieser Stelle die Fingerprints telefonisch vor, kann der Fingerprint bei Übereinstimmung und korrekter Zuordnung zur richtigen Jabber Benutzerkennung mit I have verified... bestätigt werden. Bei fehlender Übereinstimmung ist der Fingerprint mit I have not verified... die Bestätigung zu versagen. Diesen Vorgang muss beidseitig von jedem Gesprächspartner durchgeführt werden.

Pidgin Fingerprint Liste

Wurde zwischen zwei Gesprächspartnern einmal eine OTR verschlüsselte Verbindung aufgebaut, werden die Fingerprints des jeweiligen Gesprächspartners zusammen mit der dazugehörenden Jabber Benutzerkennung in der Liste der bekannten Fingerprints gespeichert, die man bei Pidgin (umständlich) über die Konfiguration des OTR Plug-in (s. o) aufrufen kann.

Hier ist auch zu sehen, ob gerade eine aktive OTR Verbindung zu einem Gesprächspartner besteht (Status: Private) oder nicht (Status: Not private) und ob es sich um überprüfte (Verified: Yes) oder nicht überprüfte (Verified: No) Fingerprints handelt, die das OTR Plug-in gespeichert hat.

Bestehen Zweifel, ob der Schlüssel bzw. der Gesprächspartner vielleicht durch einen Angriff kompromitiert wurde, kann man mit Forget fingerprint einen Fingerprint löschen lassen oder über Verify Fingerprint eine erneute Prüfung bzw. Änderung des Status durchführen.

Verwendet ein Gesprächspartner die gleiche Jabber Benutzerkennung, aber mit Jabber Clients auf verschiedenen Computern, muss für jede Computernutzung eine eimalige Authentifikation durchgeführt werden.

Man kann die erste auch mit der zweiten Methode kombinieren, je nachdem, ob die Voraussetzungen vorliegen. Zum Beispiel kann man sich die Fingerprints verschlüsselt per E-Mail zusenden, aber trotzdem auch die Frage nach dem "gemeinsamen Geheimnis" stellen oder zuerst die Frage beantworten und trotzdem zusätzlich die Fingerprints abgleichen oder verschlüsselt zusenden. Gerade der letztere Fall kann ausschlaggebend sein, wenn es eine dritte Person als Angreifer gibt, der über die "gemeinsamen Geheimnisse" genauso gute Kenntnisse verfügt wie die beiden eigentlichen Gesprächspartner.

Insgesamt krankt die OTR-Verschlüsselung bei der Authentifikation. OTR lädt dazu ein, mit einem schnellen Mausklick ohne eingehende Prüfung die Authentizität des Kommunikationspartners zu bestätigen. Dies umso mehr, je öfter sich der Fingerprint ändert, weil sich etwas an der Konfiguration bei einem der Kommunikationspartner geändert hat. Der Anspruch, ohne komplizierte GnuPG Installation die Verschlüsselung von Instant Messaging zu realisieren, wird negiert, wenn die OTR Entwickler selbst dazu raten, sich zur Authentifikation vor Beginn einer Kommunikation die Fingerprints über OpenPGP verschlüsselte und signierte E-Mails zuzusenden. Der einzige Vorteil, den OTR gegenüber OpenPGP hat, ist die Abstreitbarkeit, während Perfect Forward Secrecy bei Kompromitierung des privaten OTR Schlüssels durch die sichere Speicherung des privaten OpenPGP Schlüssels aufgewogen werden kann.

[ Inhalt | Top | Zurück | Weiter ]