Jami, das früher “Ring” hieß, ist eine Chat- und Telefon-App, die ohne zentrale Serverinstanz auskommt. Die Gesprächspartner tauschen direkt über das Internet ihre Daten, Chat, Telefon oder Videokonferenz, aus. Natürlich alles verschlüsselt mit Ende-zu-Ende-Verschlüsselung.
Chatdienste gibt es wie Sand am Meer. Die meisten werden meist über einen zentralen Server geregelt, bei vielen (und vor allem bei Instant Messaging Diensten) werden sogar alle Daten auf den zentralen Servern gespeichert. Das ist nicht jedermanns Sache. Wie aber den Kontakt und den Datenaustausch organisieren, ohne einem Dritten alle Daten zu überlassen?

Direkt chatten ohne eine Dritten

Eigentlich ganz einfach und seit dem Internet-Telefon-Protokoll SIP bestens bekannt. Im Klartext: Die Clients werden über eine Vermittlungsstelle in Verbindung gebracht und wickeln anschließend den Datenaustausch direkt miteinander ab. Das einzige, was also eine dritte Instanz zu sehen bekommt, ist ein eindeutiger Name (oder Nummer) des Clients und seine IP-Adresse. Die Kommunikationsdaten (ob im Klartext oder verschlüsselt), tauschen die Kommunikationspartner direkt aus.

Jami greift diese Methode auf und verbessert sie im Detail. Jeder Account (oder Nutzer) generiert eine eindeutige Ring-ID (hier Identität genannt), die bei einem Vermittlungsserver hinterlegt wird. Da aber ein Account mehrere Clients benutzen darf, erhalten diese ebenfalls eine eigene ID. Es existieren Clients für Android, iOS, Windows und Linux.

In Verbindung treten

Es ist nicht ganz richtig zu sagen, dass Jami ohne eine zentralen Vermittlungsserver auskommt. Tatsächlich braucht auch Jami einen Serverdienst, der Bootstrap-Server, der die Nutzer miteinander in Verbindung bringt. Dieser Bootstrap kann, wenn der Serverdienst eigenständig angeboten wird, grundsätzlich frei gewählt werden. Man ist also nicht gezwungen, einen zentralen Server eines wie auch immer gearteten Dienstes zu verwenden. Voreingestellt ist der Bootstrap-Server ring.cx. Dieser kann aber für jeden Account getrennt festgelegt werden.

In Kontakt treten

Es ist eigentlich ganz einfach, Kontakt mit einem Chat-Partner aufzunehmen. Im Chat-Fenster kann man einen Barcode seiner Ring-ID anzeigen lassen, die der neue Accountpartner mit seinem mobilen Gerät scannen kann. Umgekehrt kann geht es an dieser Stelle ebenso. Ein Kontakt ist mit einem mobilen Gerät also schnell hergestellt. Bei stationären Apps stellt man eine Kontaktanfrage.

Ein Account schickt erst eine Anfrage, die erst aktiv angenommen werden muss, bevor die Kommunikation hergestellt wird. Das schützt vor Man-in-the-middle-Atacken, bei denen ein Fremder sich das Vertrauen des Accounts erschleichen kann.

Ist der Kontakt hergestellt, tauschen die Geräte die Ring-ID und die Geräte-ID aus, mit denen der verschlüsselte Kontakt gehalten wird.

Neue Geräte verknüpfen

Will ein Account weitere Geräte verknüpfen, muss dieser aktiv eingebunden werden. Dazu erzeugt der Account auf seinem Gerät mit seinem persönlichen Kennwort auf dem bootstrap-Server eine PIN. Mit diesen beiden Angaben hat er auf dem zweiten Gerät 10 Minuten lang die Möglichkeit, seinen Account zu verknüpfen. Danach verfällt die PIN. das Verfahren gewährleistet, dass eine Identität nicht geklaut und später auf einem fremden Gerät eingerichtet werden kann.

Einstellungen

Jami strotzt nur so vor Einstellungsmöglichkeiten. Allgemeine Einstellungen erlauben Jami, also Telefon-App, auch für SIP-Anrufe zu fungieren oder die Video-Auflösung festzulegen.

Jeder Account verwaltet weitere Einstellungen, ob automatisch Anrufen angenommen werden sollen, welche Audio- oder Video-Codecs verwendete werden dürfen oder welche DHT, STUN- und TURN-Server zugelassen sind. Die Möglichkeiten sind relativ komplex; man sollte also wissen, was man tut.

Fazit

Jami macht das serverlose Chatten (und IP-Telefonie) zu einer angenehm einfachen Vorgang. Da ein zentraler Server fehlt, der Daten zwischenspeichern kann, entfällt die Gefahr, dass Daten zwischengelagert und durchsucht werden können. Aber natürlich entfällt damit auch die Möglichkeit, als Instant Messenger asynchron zu chatten.

 

  • Pro: Sichere dezentrale Kommunikation, auf vielen Plattformen verfügbar,
  • Contra: Einstellungen nicht leicht zu verstehen

 

Link: