Sicher chatten

RetroShare

E-Mails sind schlecht geeignet, um schnell etwas zu besprechen, darum setzen viele Internetnutzer auf Instant-Messaging-Programme, die einen Livechat erlauben. Neben der direkten Kommunikation zwischen zwei Gesprächspartnern bieten diese oft auch Räume, in denen sich mehrere Anwender treffen können. Klassisch laufen hier alle Übertragungen unverschlüsselt ab, so dass Instant Messaging für vertrauliche Nachrichten keine gute Wahl ist.

Es gibt aber verschiedene Ansätze, auch solche Nachrichtendienste durch Verschlüsselung abzusichern, ein früher Vertreter ist das Netzwerk SILC (Secure Internet Live Conferencing), das eine sichere Alternative zum Chatsystem IRC (Internet Relay Chat) bietet. SILC haben wir 2006 in einem Artikel vorgestellt [4], es hat sich aber nicht durchsetzen können, und die letzten Überarbeitungen der SILC-Software (Client und Server) gab es 2009 [5].

Ähnlich wie beim sicheren E-Mail-Versand mit GPG sind auch beim sicheren Chatten Vorarbeiten nötig – verschlüsselte Kommunikation setzt immer voraus, dass beide Partner diesen Wunsch nach Vertraulichkeit umsetzen möchten. Sie können nicht "einseitig" entscheiden, mit jemandem verschlüsselt zu chatten, und Sie können auch nicht Ihr sonst übliches Messenger-Programm verwenden. (Eine Ausnahme gibt es: Einige Instant Messenger bieten Plug-ins für OTR-Verschlüsselung, siehe Kasten Alternativen.) Beide Seiten müssen stattdessen eine spezielle Software installieren, die verschlüsselte Verbindungen unterstützt. Wir stellen in diesem Artikel das Programm RetroShare [1] vor, das neben dem Chatten auch File Sharing und einen E-Mail-ähnlichen Dienst unterstützt.

Alternativen

Wenn Sie bereits ein Instant-Messaging-Programm wie Kopete oder Pidgin oder einen IRC-Client zum Chatten unter Linux verwenden, haben Sie auch die Möglichkeit, dort ein Verschlüsselungs-Plug-in nachzurüsten, das die Unterstützung für Off-the-record Messaging (OTR) nachrüstet; einige Anwendungen können das von Haus aus, z. B. KDEs Kopete (Abbildung 1).

Welche Schritte dafür mit Pidgin notwendig sind, beschreibt ein älterer EasyLinux-Artikel [2]. Eine Liste der IM-Clients und IRC-Chatprogramme, für die es OTR-Support gibt, finden Sie bei den OTR-Entwicklern [3].

Abbildung 1

Abbildung 1: Die Kopete-Installation enthält bereits ein OTR-Plug-in.

Ansonsten bietet auch Skype eine eingebaute Chatfunktion, und die Chatnachrichten werden (genau wie über Skype geführte Telefonate) verschlüsselt – allerdings verwendet Skype ein nicht offengelegtes Verfahren, so dass man dem Anbieter vertrauen muss.

RetroShare installieren

RetroShare ist bei Ubuntu und OpenSuse nicht in den Standard-Repositories enthalten, es ist aber unter beiden Distributionen möglich, schnell eine Paketquelle für das Programm einzurichten und die Software zu installieren – Details zur Installation aus dem Netz finden Sie im Kasten Installation übers Netz. Außerdem finden Sie RetroShare auch auf unserer Heft-DVD, was die Einrichtung erleichtert. Auf beiden Distributionen starten Sie das Programm nach der Einrichtung über das Startmenü oder indem Sie mit [Alt]+[F2] ein Schnellstartfenster öffnen und darin RetroShare eingeben.

Installation übers Netz

Ubuntu- und Kubuntu-Anwender installieren die Software am schnellsten, indem sie auf der Konsole ein spezielles Repository ergänzen: Öffnen Sie über [Alt]+[F2] und Eingabe von konsole ein Terminalfenster und geben Sie darin die folgenden Befehle ein.

sudo add-apt-repository ppa:csoler-users/retroshare
sudo apt-get update
sudo apt-get install retroshare

Nach dem ersten Befehl müssen Sie Ihr Passwort eingeben und danach noch mit [Eingabe] bestätigen, dass Sie das neue Repository wirklich hinzufügen möchten. Auch das dritte Kommando erwartet eine Bestätigung, weil neben dem Paket retroshare auch eine benötigte Bibliothek namens libupnp3 auf die Platte wandern soll. Sie finden danach das Programm im KDE-Startmenü unter Anwendungen / Internet / RetroShare.

Unter OpenSuse ist der Ablauf ähnlich: Nach dem Eintragen eines neuen Repositorys installieren Sie das Paket (das hier retroshare-svn heißt) mit zypper:

sudo zypper addrepo http://download.opensuse.org/repositories/home:/AsamK:/RetroShare/openSUSE_12.2/home:AsamK:RetroShare.repo
sudo zypper install retroshare-svn

(Wenn Sie OpenSuse 12.1 verwenden, ersetzen Sie in dem langen Pfad die Versionsnummer 12.2 durch 12.1.) Im KDE-Startmenü taucht danach ein neuer Eintrag Anwendungen / Internet / Tauschbörse / RetroShare auf.

Ersteinrichtung

Was vor dem ersten praktischen Einsatz des Programms zu erledigen ist, hängt davon ab, ob Sie bereits ein GPG-Schlüsselpaar besitzen: Wenn Sie, wie im Artikel Briefgeheimnis ab Seite 36 beschrieben, GPG für die E-Mail-Verschlüsselung eingerichtet haben, fällt ein Schritt weg.

Findet RetroShare beim ersten Programmstart ein GPG-Schlüsselpaar, dann bietet das Programm an, dieses zu verwenden, und fragt nur nach einer Ortsbezeichnung. In diesem Fall füllen Sie nur das Feld Ort im Dialogfenster aus und klicken links unten auf Erstelle neuen Ort.

Gibt es noch kein Schlüsselpaar, füllen Sie im Dialogfenster die Felder Name, E-Mail, Passwort, Ort aus und klicken Sie dann auf Generiere neues Profil (Abbildung 2). Das Programm erzeugt dann ein neues GPG-Schlüsselpaar, was ein paar Sekunden Zeit benötigt.

Abbildung 2

Abbildung 2: Nur beim ersten Start richten Sie ein neues Profil ein. RetroShare erzeugt für Sie ein GPG-Schlüsselpaar.

Im nächsten Schritt erscheint ein kleiner Dialog, in dem Sie das im ersten Schritt gewählte Passwort (bzw. die bei einer bereits erfolgten GPG-Einrichtung gewählte GPG-Passphrase) eingeben müssen. Danach ist die Erstkonfiguration erledigt, und das Hauptfenster erscheint (Abbildung 3).

Abbildung 3

Abbildung 3: Das Hauptfenster zeigt zunächst nur einen Eintrag für Sie selbst an.

Freunde einladen

Nun haben Sie eine funktionierende RetroShare-Installation, aber noch keine einzigen Chatpartner. Das wird sich auch nicht ändern, solange Sie keine Freunde einladen und mit ihnen die Schlüssel austauschen.

RetroShare bietet Ihnen die Möglichkeit, neue Freunde per E-Mail einzuladen (Abbildung 4) – das funktioniert nur, wenn Sie das Standard-Mailprogramm (unter KDE z. B. kmail) auch konfiguriert haben. Nutzen Sie nur einen Webmailer (wie Google Mail) und keinen lokal installierten E-Mail-Client, können Sie diese Funktion nicht verwenden. Es ist aber auch ohne automatische E-Mails kein Problem, die nötigen Informationen an Ihre Kontakte weiterzugeben.

Abbildung 4

Abbildung 4: RetroShare bereitet auf Wunsche eine E-Mail-Einladung mit Ihrem öffentlichen Schlüssel vor.

Wir gehen im Folgenden davon aus, dass zwei Anwender (Sie und Ihr Kontakt) live an Ihren Rechnern sitzen. Sie können die für das gegenseitige Hinzufügen nötigen Schritte parallel ausführen.

  1. Zunächst klicken Sie beide auf das oberste Icon in der am linken Rand liegenden Symbolleiste, es zeigt eine blaue Person und ein grünes Plussymbol und zeigt als Erläuterung Assistent zum Hinzufügen von Freunden an, wenn Sie mit der Maus darüber fahren.
  2. Damit öffnet sich ein neues Fenster mit dem Assistenten, der Ihnen hilft, den neuen Freund hinzuzufügen. Übernehmen Sie hier die vorausgewählte Option Gib das Zertifikat manuell ein und klicken Sie auf Weiter.
  3. Sie sehen dann einen zweigeteilten Dialog (Abbildung 5). In der oberen Hälfte zeigt das Programm Ihren eigenen öffentlichen Schlüssel an, und der untere Bereich ist noch leer.

    Abbildung 5

    Abbildung 5: Oben sehen Sie Ihren Schlüssel, in die untere Hälfte gehört der Schlüssel eines Kontakts.

  4. Kopieren Sie aus dem oberen Bereich Ihren eigenen Schlüssel per Copy & Paste in eine E-Mail und schicken Sie diese an Ihren Kontakt. Wenn Sie das Ganze synchron erledigen, erhalten Sie beide nach kurzer Zeit eine E-Mail, die jeweils den Schlüssel des Kontakts enthält.
  5. Der fremde Schlüssel gehört in den unteren Bereich des Fensters. Fügen Sie also die Textzeilen aus der E-Mail unten ein – achten Sie dabei darauf, dass Sie nichts auslassen und nicht zu viel Text einfügen: Der relevante Bereich beginnt mit einer Zeile -----BEGIN PGP PUBLIC KEY BLOCK----- und endet mit einer Zeile der Form --LOCAL--192.168.178.1:12345;--EXT--111.222.111.222:0;. Klicken Sie auf Weiter, wenn Sie den Schlüssel eingefügt haben.
  6. Es erscheinen nun Informationen über den Schlüssel; u. a. sehen Sie den Namen Ihres Kontaktes (Abbildung 6). Da Sie bei der gewählten Schlüsselaustauschmethode recht sicher sein können, dass Sie wirklich den Schlüssel Ihres Kontakts eingefügt haben, aktivieren Sie noch die Option Authentifiziere Freund (GPG Schlüssel unterzeichnen) und klicken dann auf Abschließen.

    Abbildung 6

    Abbildung 6: Beim Import eines GPG-Schlüssels zeigt RetroShare die Daten des neuen Kontakts an.

  7. Sie werden dann aufgefordert, Ihr Passwort für den GPG-Schlüssel (die GPG-Passphrase) einzugeben.

Haben Sie (auf beiden Seiten) das Hinzufügen des neuen Kontakts erledigt, sehen Sie nach einer Weile in einer Statusmeldung, dass Sie mit einem neuen Freund verbunden sind (Abbildung 7).

Abbildung 7

Abbildung 7: Auf dem Reiter "Neuigkeiten" sehen Sie u. a., wenn das Programm Verbindungen mit Freunden aufnimmt.

Chatten

Einen Chat können Sie nur mit Freunden beginnen, mit denen Sie auch verbunden sind. Dazu reicht ein Doppelklick auf den Eintrag in der Freundesliste; es öffnet sich dann ein klassisches Chatfenster, in dem Sie Ihre Nachrichten eingeben und die Antworten lesen (Abbildung 8). Sie können es auch verwenden, um dem anderen eine Datei zuzusenden.

Abbildung 8

Abbildung 8: Das Chatten mit einem Kontakt funktioniert wie bei klassischen IM-Programmen.

RetroShare baut direkte Verbindungen zwischen den Chatpartnern auf, es gibt keinen zwischengeschalteten Server. Abhängig von der Netzwerkanbindung der beiden Partner ist es unterschiedlich aufwendig, diese Verbindung herzustellen, z. B. dann, wenn beide Anwender hinter einer Firewall sitzen. Im Test hat es teilweise mehrere Minuten gedauert, bis die Verbindung stand. Wie sich die Partner überhaupt finden können, lesen Sie im Kasten Technische Details.

In den meisten Fällen wird keine Anpassung an den Netzwerkeinstellungen nötig sein, denn RetroShare unterstützt unter anderem Verbindungen über UPnP (Universal Plug & Play). Wenn Sie Schwierigkeiten beim Verbindungsaufbau haben und einen DSL- oder ähnlichen Router für den Internetzugang verwenden, können Sie am Router einen Port auf den Rechner weiterleiten, an dem Sie RetroShare benutzen. Bei den meisten Routern ist das einfach über die Weboberfläche zu erledigen.

Suchen Sie (nur bei Problemen!) eine nicht benutzte Portnummer aus, 2323 ist ein guter Kandidat – die Nummer darf nicht kleiner als 1024 sein. Dann tragen Sie im Router ein, dass diese Portnummer an dieselbe Portnummer auf Ihrem RetroShare-Rechner weitergeleitet wird, sowohl für TCP als auch UDP. Bei der FritzBox sind dafür zwei Einträge in der Tabelle nötig, jeweils einer für TCP und einer für UDP (Abbildung 9).

Abbildung 9

Abbildung 9: Bei den meisten DSL-Routern (hier eine FritzBox) können Sie Ports für TCP- und UDP-Verbindungen an bestimmte Rechner im lokalen Netz weiterleiten.

Wenn Sie die Weiterleitung eingerichtet haben, müssen Sie auch RetroShare noch darüber informieren; dazu klicken Sie im Programm auf das Zahnrad-Icon in der Symbolleiste am linken Rand, wechseln im Einstellungsfenster zum Reiter Server, schalten dort oben auf Portweiterleitung von Hand um und tragen dann in den beiden Port-Feldern die neue Portnummer (im Beispiel 2323) ein. Nach einem Neustart sollten Verbindungen dann leichter zustande kommen.

Technische Details

Beim Verbindungsaufbau zwischen zwei Chatpartnern gibt es zwei große Probleme, welche die Software lösen muss – die Lösungsideen sind aus anderen Systemen schon bekannt, aber bei RetroShare kombiniert:

IP-Adresse des Partners finden

In klassischen Instant-Messaging-Systemen gibt es einen zentralen Server, an dem sich jeder Anwender anmelden muss. Der Server hat dann den Gesamtüberblick darüber, welche Teilnehmer gerade aktiv sind und unter welchen IP-Adressen man sie erreichen kann. Will ein Partner den anderen erreichen, fordert er den Server auf, die Verbindung herzustellen.

Bei RetroShare gibt es keinen Server, deswegen ist die Kontaktaufnahme viel schwieriger. Das Programm setzt dazu auf Techniken, die auch Peer-2-Peer-Netzwerke für Filesharing einsetzen, u. a. verwendet es so genannte verteilte Hashtabellen (distributed hash tables, DHTs) [7], deren Beschreibung hier zu weit führen würde. Vereinfacht gesagt, sucht RetroShare zunächst seine "nächsten Nachbarn", von dort wird die Anfrage dann weitergeleitet, bis schließlich die gesuchte Information gefunden wird.

Um die Suche überhaupt starten zu können, enthält RetroShare eine Liste mit 500 IP-Adressen von RetroShare-Anwendern, von denen einige online sein müssen.

Direktverbindung aufbauen

Ist die IP-Adresse des Gesprächspartners gefunden, steht das Programm vor dem nächsten Problem: Selbst wenn beide Seiten gleichzeitig eine Verbindung aufbauen möchten, finden sie nicht so leicht zueinander. Die meisten PCs von Privatanwendern haben keine öffentliche IP-Adresse, über die sie aus dem Internet heraus ansprechbar sind, sondern hängen an einem Router (z. B. einem DSL-Router). Der Router wählt sich ins Internet ein und erhält eine öffentliche IP-Adresse (ist also von außen erreichbar), aber dem PC teilt der Router nur eine private IP-Adresse (die meist mit 192.168. beginnt) zu.

Wenn beide Seiten ein solches Netzwerk-Setup haben, ist mit klassischen Mitteln keine Direktverbindung möglich. Dann muss entweder einer der Teilnehmer auf seinem Router eine Portweiterleitung einrichten, oder die Programme müssen sich Tricks bedienen, um dennoch kommunizieren zu können. Dazu gibt es ein Verfahren namens UDP Hole Punching [8], die z. B. auch Skype für denselben Zweck nutzt. Weil das Hole Punching kein schnelles Verfahren ist, dauert es damit manchmal ca. zehn Minuten, bis eine Chatverbindung steht.

Gruppenchat

Wenn Sie einen Chatraum betreten, sehen Sie dort auch Teilnehmer, mit denen Sie nicht befreundet sind – und können mit ihnen chatten. Das funktioniert aber nur so lange, wie jeder der Chatraumbesucher auf Umwegen mit allen übrigen befreundet ist. Wenn also z. B. Anton mit Berta, Berta mit Chris, Chris mit Dora und Dora mit Emil befreundet sind (aber keine der fünf Personen darüber hinaus weitere Verbindungen untereinander haben), dann können alle gemeinsam in einem Chatraum miteinander sprechen. Verlässt in diesem Szenario Chris ("in der Mitte") den Raum, dann zerfällt der Raum in zwei Teile: Anton und Berta bleiben in der ersten Hälfte, Dora und Emil in der zweiten. Die beiden getrennten Gruppen können nicht weiter gemeinsam miteinander chatten, weil das Bindeglied (Chris) fehlt.

Auch das liegt daran, dass es keinen Server gibt, über den die Teilnehmer alle miteinander verbunden wären: Wenn im obigen Beispiel Anton etwas im Chatraum schreibt, legt seine Botschaft einen langen Weg bis zum Rechner von Emil zurück, nämlich über alle "dazwischen" liegenden Kontakte.

Wir danken dem RetroShare-Entwicklerteam, das sich die Zeit für ein zweistündiges Interview mit EasyLinux genommen hat, um technische Fragen zu beantworten – das Interview haben wir in einem RetroShare-Chatraum geführt.

Weitere Funktionen

Neben dem Chatten bietet RetroShare noch weitere Features, die wir hier nur kurz erwähnen

  • Dateiversand: In jedem Chatfenster gibt es ein kleines Ordner-Icon, über das Sie Dateien auswählen und dem Chatpartner anbieten können. Er erhält in seinem Chatfenster dann einen anklickbaren Link und kann darüber die Übertragung der Datei (direkt von Ihrem auf seinen Computer) anstoßen.
  • Dateifreigabe: Allgemein können Sie mit RetroShare klassisches File Sharing betreiben, also z. B. den Ordner mit Ihren MP3-Dateien freigeben – anders als bei klassischen P2P-Netzen machen Sie diese aber nicht öffentlich (und laden damit Rechteverwerter ein, Abmahnschreiben zu verschicken), sondern erlauben nur Ihrem Freundeskreis den Zugriff: Schließlich können nur Anwender, mit denen Sie erfolgreich die Schlüssel ausgetauscht haben, Verbindung mit Ihnen aufnehmen. Geben Sie Dateien auch für "Freunde von Freunden" weiter, erweitert sich der Kreis der Zugriffsberechtigten – dabei wird aber die letztliche Quelle nie sichtbar, denn Dateiübertragungen laufen immer von Freund zu Freund.
  • RetroShare-E-Mails: Eingebaut ist auch eine Möglichkeit, E-Mails zu verschicken – nicht direkt über das Internet, sondern über die RetroShare-Verbindungen. Wenn Sie diese Funktion nutzen, müssen Sie also nicht zusätzlich GPG im Mailprogramm konfigurieren. Allerdings ist es wahrscheinlicher, dass einer Ihrer Kontakte bereits mit verschlüsselten Mails arbeitet.
  • Foren: Es gibt mehrere Arten von Foren, in denen Sie sich zu verschiedenen Themen austauschen können, darunter sind auch öffentliche "Lobbys".
  • Suchfunktion: Über eine integrierte Suche finden Sie Dateien, die andere Anwender freigegeben haben – Sie können aber nur auf die Dateien zugreifen, zu deren Besitzer Sie eine Freundschaftskette herstellen können.

Leere Kontaktliste?

Wer mit RetroShare starten möchte, aber zunächst niemanden überreden kann, die Software auch einzusetzen und Schlüssel auszutauschen, kann auf der RetroShare-Chatserver-Seite [6] den Benutzer Chat Server zu seinen Kontakten hinzufügen – nach erfolgreichem Schlüsseltausch mit diesem Bot sehen Sie mehrere neue Chaträume, in denen Sie andere Anwender finden, die auch auf Kontaktsuche sind.

Beachten Sie nur beim Hinzufügen neuer unbekannter Kontakte, dass Sie für diese ein niedriges Vertrauen einstellen. Vor allem sollten Sie die Schlüssel dieser Personen nicht mit GPG signieren – schließlich wissen Sie nicht, um wen es sich wirklich handelt.

Fazit

Wenn Sie RetroShare als Instant-Messaging-Lösung einsetzen, können Sie sicher sein, dass Ihre Kommunikation nicht belauscht wird – allerdings müssen dann alle Gesprächspartner dasselbe Programm installieren und vor der ersten Chatsitzung die Schlüssel austauschen. Das bedeutet einmalig etwas erhöhten Aufwand, garantiert aber für alle späteren Gelegenheiten die Sicherheit Ihrer Chats. Damit ist das Verhältnis Aufwand / Nutzen sehr gut: wenn Sie Ihre Kontakte überreden können, auch von bisherigen IM-Programmen zu RetroShare zu wechseln.

Infos

[1] RetroShare: http://retroshare.sourceforge.net/

[2] Artikel zu Chat-Verschlüsselung mit Pidgin und OTR: Martin Loschwitz, "Unbeobachtet chatten", EasyLinux 04/2009, S. 49 ff., http://linux-community.de/artikel/19249

[3] OTR-kompatible IM-Clients: http://www.cypherpunks.ca/otr/software.php

[4] SILC-Artikel: Hans-Georg Eßer, "Ohne Mithörer chatten", EasyLinux 08/2006, S. 50 ff., http://www.easylinux.de/2006/08/050-silc/

[5] SILC: http://silcnet.org/

[6] RetroShare Chatserver: https://www.f2f-fr.net/w2c/en/

[7] Wikipedia zu verteilten Hashtabellen (DHTs): http://de.wikipedia.org/wiki/Verteilte_Hashtabelle

[8] Artikel zu UDP Hole Punching: Jürgen Schmidt, "Der Lochtrick", Heise Security, 2006, http://www.heise.de/security/artikel/Wie-Skype-Co-Firewalls-umgehen-270856.html

Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare