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.
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.
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.

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:
Über den Menüeintrag Konten / Hinzufügen in der Kontrolleiste wird das Dialogfenster zum Anlegen eines Jabber Benutzerkontos aufgerufen:
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.
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.
Wurde das OTR Plug-in installiert, findet sich das OTR Plug-in über das Menü Werkzeuge / Plugins in der Pluginübersicht:
Über den Button Plugin konfigurieren gelangt man in die Einstellungen zum OTR Plug-in
Ü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:
Vor Beginn einer verschlüsselten Kommunikation präsentiert sich das 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.

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.
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.

Die Authentifikation wird mit Authenticate buddy im Kontextmenü des OTR Buttons gestartet.
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.





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.

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.
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.
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.