Skip to content
Snippets Groups Projects

Brücken

Arten von Brücken

Hier halte ich mich lose an https://matrix.org/bridges/. Eine Brücke kann auf jeder Seite unterschiedliche Typen sein und ist dies in Matrix in der Regel auch. (Ausnahme XMPP und IRC)

Puppeting

Puppeting kommt von dem Namen Puppet was so viel wie Marionette bedeutet. Hierbei erstellt die Brücke mehrere Accounts die Nutzer auf der anderen Seite darstellen. Für die Nutzer bedeutet dies die Illusion, dass es so aussieht als wäre die Marionette ein normaler Matrix Nutzer. Alles was der Nutzer auf der anderen Seite macht, macht die Marionette auf der Puppet Seite. Anhand des Nutzernamens erkennt man in der Regel aber, dass es sich um eine Puppet macht. Dies ist heutsotage der Regelfall auf Matrix Seite und die beste Erfahrung für die Nutzer.

Double Puppeting

Double Puppeting bedeutet Puppeting auf beiden Seiten der Brücke. Dies ist die beste Art von allen Brücken. Dies ist bei XMPP und Matrix der Fall.

Portal Räume

Diese Räume sind Portale zu schon bestehenden Räumen auf anderen Plattformen. Im Regelfall werden diese Räume von der anderen Plattform aus verwaltet. Beispiel IRC: #freenode_#channelname:matrix.org ist ein IRC Raum auf Freenode. Beispiel XMPP: #_bifrost_MUCNAME_MUCDOMAIN:aria-net.org ist ein XMPP Raum. MUCDOMAIN ist dabei der Server und MUCNAME der Raumname

Dies wird derzeit benutzt bei Brücken für:

  1. XMPP
  2. IRC

"Plumbed" Räume

Dies wird in der Regel genutzt um schon bestehende Räume auf verschiedenen Plattformen zu "verbinden". Anders als bei Portal Räumen, sieht man es Plumbed Räumen nicht am Raumalias an, dass sie mit einer anderen Plattform verbunden sind. Wird dies in der Raumbeschreibung nicht erwähnt, ist dies eventuell noch an den Mitgliedern im Raum ersichtlich. Bei XMPP Räumen ist dies z.B. dadurch ersicht, dass die MXID mit @bifrost beginnt.

Dies kann bei eigentlich allen aktuellen Matrix Brücken auf der Matrix Seite verwendet werden. Weitere Erläuterung hierzu siehe Bridgebot-style und Puppeting

Bridgebot-style

Hier spricht auf einer Seite ein Bot. Dieser ändert dann seinen Namen und Avatar mit jeder Nachricht. Bei Telegram und Discord ist das die einzige Möglichkeit konform mit den Terms of Service (ToS) der jeweiligen Dienste eine Brücke zu machen. Hierfür wird ein Bot Account auf der jeweiligen Plattform benötigt. Auf der Matrix Seite gibt es diese Bridge-Art nicht.

Relaybot-style

Der Relaybot ist eine Art des Bridgebots. Hier spricht allerdings in der Regel kein Bot, sondern ein User-Account. Daher wird hier auch ein User-Account auf der jeweiligen Plattform benötigt. Dort schreibt dann der Account am Anfang den Usernamen, der es geschrieben hat und danach dessen Nachricht. Unter Matrix kennt man dies in der Regel in folgenden Fällen: Wenn IRC Räume betreten wird. Ein typischer Anwendungsfall ist das Bridgen zwischen IRC und Discord. Wenn jemand seinen Account von einer andern Plattform nutzt um darüber mehrere Matrix Nutzer sprechen zu lassen. Dies ist zum Beispiel bei WhatsApp und Signal der einzige Weg Gruppen zwischen verschiedenen Messengern zu bridgen. In der Regel verstößt diese Art der Brücke gegen die Terms of Service (ToS) der jeweiligen Dienste!

User-Account

User-Account Bridge ist in der Regel wie Relaybot Style mit dem Unterschied, dass nur die Nachrichten von einem User an die andere Plattform weitergegeben wird. Daher ist es nicht notwenig, einen Usernamen in der Nachricht zu erwähnen.
Hierfür wird ein Account auf der anderen Plattform benötigt.
In der Regel verstößt diese Art der Brücke gegen die Terms of Service (ToS) der jeweiligen Dienste, ist aber in einigen Fällen wie z.B. bei WhatsApp die einzige Möglichkeit bis das EU-DMA Gesetz umgesetzt ist!

Matrix <-> <?>

Matrix <-> XMPP

Geschichte

matrix.org Bridge

Die Matrix <-> XMPP Bridge wird Bifröst bridge genannt. Ursprünglich wurde sie von matrix.org entwickelt. Leider ist die Entwicklung von matrix.org Seite eingeschlafen. Es fehlen hier nach Meinung des Autors wichtige Funktionen wie zum Beispiel, dass /myroomnick nicht von der Brücke übertragen wird. Insbesondere für Matrix Nutzer die ein Emoji im Namen ist, ist das schmerzlich, da einige XMPP Server mit dem Emoji im Namen nicht umgehen können und deswegen die Nachricht verwerfen. Dies ist zum Beispiel bei ejabberd der Fall. Prosody hingegen kann damit umgehen. Bei Nutzung der matrix.org Bridge ist für Emoji Nutzer die einzige Möglichkeit seinen Globalen Nick zu ändern. Damit ändert man seinen Nick in allen Räumen.

maranda

Die derzeitige Weiterentwicklung von wird von Maranda mit einem Fork betrieben. Maranda hat versucht seine Weiterverbesserungen bei der Matrix.org Bridge einzubringen. Leider hat keiner auf seinen Pull-Request reagiert. Ehemalige Mitarbeiter berichten von einem bürokratischen Review Prozess. Maranda hat schließlich aus Gründen des aufwands Abstand davon genommen etwas zur matrix.org Bridge beizutragen und entwickelt seinen Fork unabhängig von der Matrix.org Bridges weiter. Er hat einen eigenen Supportraum und eigenen Issue Tracker.

Datenintegrität

Auf freie-messenger.de (Weiter infos zu freie-messenger.de) wird bemängelt, dass die Bifröst Bridge die Datenintegrität verletze, weil XMPP Links automatisch zu Matrix Links umgeändert werden. Hierzu sind folgende Punkte zu sagen.

  1. Dies ist nicht korrekt. Dies ist nur ein Feature der Bridge von maranda. Wer dies nicht möchte, muss entweder diesen Teil aus dem Fork von Maranda entfernen oder die matrix.org Bridge nehmen.
  2. Vielleicht ist dieses Feature vom Matrix-Nutzer gewollt. Anhand des Bifrost typischen Schema ist klar zu erkennen, dass es ein XMPP Raum ist.
  3. Der Autor beschwert sich zwar über die Funktion, bemängelt auf der anderen Seite, das dies bisher niemand für die XMPP Seite programmiert hat. Seltsam...

Limitierungen

Verschlüsselung

Es ist derzeit nicht möglich über die Bridge verschlüsselte Nachrichten zu senden. Matrix arbeitet gerade daran MLS (IETF Standard für Verschlüsselung) in Matrix zu implementieren. Leider ist auf XMPP Seite keinerlei Bestrebungen in diese Richtung zu entdecken, würde dies doch evtl eine Möglichkeit eröffnen, verschlüsselte Nachrichten zwischen den beiden Plattformen aus zu tauschen.

Matrix Alias mit Großbuchstaben.

XMPP behandelt Adressen mit Großbuchstaben, als wären es Kleinbuchstaben. Daher ist Matrix-Raumadmins, die auch offen für XMPP Nutzer sind, zu empfehlen zumindest auch einen alternativen Alias mit kleinbuchstaben dem Raum hinzuzufügen.

Semi-Anonyme XMPP Räume

Zwar hat der Autor in letzter Zeit keine Probleme in dieser Richtung mti dem Fork von maranda erlebt, trotzdem soll dieser vorsichtshalber trotzdem erwähnt werden. Da die Bridge bei Semi-Anonymen Räumen keine eindeutige XMPP-ID kennt, kann es sein, dass sie Probleme bekommt, wenn z.B. eine Nachricht editiert wird, wenn sie nicht mehr zweifelsfrei eine Änderung einer Nachricht zuordnen kann. Dann wird diese geänderte Nachricht als neue Nachricht angezeigt, statt die alte Nachricht zu editieren.

Features

Die Bridge unterstützt nur die grundlegenden Basics und orientiert sich gerade auf XMPP Seite scheinbar daran, was die meisten XMPP Clients unterstützen. So wird von der Bridge meines wissens derzeit nicht unterstützt (keine abschließende Liste)

  • Redactions (Löschen von Nachrichten)
  • Threads
  • Reaktionen
  • Spaces
Matrix-User mit Emoji im Nicknamen

Einige XMPP Server können mit Emojis im Namen nicht umgehen und verwerfen deswegen die Nachrichten von diesem Usern. Dies ist zum Beispiel bei ejabberd der Fall. Prosody hingegen kann damit umgehen.
Insbesondere für Nutzer der matrix.org Bridge ist das schmerzlich, da bei der matrix.org Bridge der Befehl /myroomnick nicht von der Brücke übertragen wird und daher nur ein Ändern des globalen Nicknamens hilft.
Bei den Bridge Anbieter, die den Fork von Maranda nutzen, reicht es seinen Nick in dem Raum mit dem Befehl /myroomnick zu ändern, damit seine Nachrichten wieder von allen XMPP Usern gelesen werden können.

Technik

Möchte man die Bridge selber aufsetzen, ist bifrost wohl einer der kompliziertesten Matrix Brücken. Für die Brücke benötigt man sowohl einen XMPP Server, als auch einen Matrix Server und bifrost selber. Dies ist der Fall weil auf beiden seiten Marionetten erzeugt werden müssen, welche als User auf der jeweiligen Seite erstellt werden müssen.

Nutzung der Bridge

Bridge Anbieter

Folgende Anbieter der Bifröst Bridge sind dem Autor bekannt:

  1. matrix.org Nachteile hierbei sind, das immer der globale Nick auf XMPP Seite angezeigt werden und wenn dies ein Emoji ist, verwerfen manche XMPP-Server (z.B. ejabberd) Nachrichten von diesem Sender. Bei dieser Bridge werden XMPP Links für Matrix nutzer nicht automatisch umgeändert! Adress Syntax
  2. aria-net.org Dies ist der Server von maranda, dem aktivsten und vermutlich einzigen derzeitigen Weiterentwickler der Bridge. Adress Syntax
  3. tchncs.de Die Bridge nutzt den aria-net Zweig statt aria-net-develop, welches aria-net.org nutzt. Die Bridge ist offiziell noch nicht im Betrieb, kann aber schon über das gleiche Schema wie aria-net.org genutzt werden.
Adress-Syntax

Der Adress-Syntax ist für alle Bridges sehr ähnlich. Da der Autor den Fork von Maranda deutlich besser findet, wird er die Syntax von dieser benutzen. Aber der einzige Unterschied ist eigentlich, dass mit dem Fork von Maranda wurde aus xmpp in Adresse bifrost, ansonsten ist die Vorgehensweise gleich geblieben.

Möchte man beispielswiese einen XMPP Chatraum (MUC) beitreten, muss folgendermaßen vorgegangen werden: Beispiel für den Raum freie-messenger@conference.jabber.de: Der MUCNAME ist in diesem Fall freie-messenger Die MUCOMAIN ist in diesem Fall conference.jabber.de Also lautet der Raumname, den man in Matrix beitreten muss, wenn man die aria-net.org Brücke nutzen möchte #_bifrost_freie-messenger_conference.jabber.de:aria-net.org

Diese Adresse muss man nun in seinem Chat Client wie hier beschrieben eingeben um beizutreten: https://github.com/JokerGermany/Matrix-Tipps/blob/main/README.md#wie-man-einen-raum-mithilfe-des-raum-alias-beitritt

Wann sollte man einen Raum "plumben" und wann sollte man einfach den Portalraum nutzen?

Ein plumben bedeutet für den Administrator immer Mehraufwand, daher sollte dies nur verwendet werden, wenn schon zwei (lange) bestehende Matrix und XMPP Räume miteinander verbunden werden sollen. Ansonsten ist es einfacher als XMPP Raumadmin den jeweiligen Bridge den ermittelten Matrix Alias mitzuteilen und den Wunsch, das man dort Admin werden möchte und falls gewünscht auch Features wie mjolnir hinzugefügt werden sollen. Anschließend kann man anschließend als Raum Admin sich den Raum so herrichten, wie man es möchte.

Nicht Nutzung der Bridge

Möchte man als Matrix Raum Admin keine XMPP User zulassen, sollte man zuerst evtl. vorhandene Brücken mit !bifrost leave zum gehen auffordern. Anschließend bannt man den User Bifrost Bot in der in der Regel eine MXID hat die mit @bifrost: beginnt. Dies muss man für jeden Anbieter seperat machen!