{"id":3045,"date":"2023-11-27T12:13:05","date_gmt":"2023-11-27T11:13:05","guid":{"rendered":"https:\/\/informatik.htwk-leipzig.de\/seminar\/?p=3045"},"modified":"2024-03-19T17:42:34","modified_gmt":"2024-03-19T16:42:34","slug":"matrix","status":"publish","type":"post","link":"https:\/\/informatik.htwk-leipzig.de\/seminar\/lehrveranstaltungen\/betriebliche-informationssysteme\/2023\/matrix\/","title":{"rendered":"Matrix"},"content":{"rendered":"<h2><strong>Was ist Matrix?<\/strong><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/9\/95\/Matrix_logo.svg\/1920px-Matrix_logo.svg.png\" alt=\"undefined\" \/><\/p>\n<p>Matrix ist eine offene Standardsoftware f\u00fcr sichere, dezentralisierte Kommunikation im offenen Web und hat sich in den \u00fcber neun Jahren ihres Bestehens enorm entwickelt. Sie wird von einer wachsenden Anzahl von Regierungen, NGOs und Fortune-100-Unternehmen eingesetzt, um sichere, dezentralisierte und standardbasierte selbst\u00e4ndige Kommunikation zu erm\u00f6glichen.<\/p>\n<p>Ein wesentlicher Vorteil von Matrix ist die Unterst\u00fctzung der Dezentralisierung. In einer Zeit, in der die Risiken zentralisierter Internetdienste, wie staatliche Zensur, umfassende \u00dcberwachung und zentralisierte Datenverletzungen, immer deutlicher werden, bietet Matrix eine Alternative, die Sicherheit und Datenschutz in den Vordergrund stellt.<\/p>\n<p>Matrix wird durch die Europ\u00e4ische Union und ihre Digital Markets Act (DMA) unterst\u00fctzt, die vorschreibt, dass gro\u00dfe zentralisierte Messaging-Anbieter in der EU interagieren m\u00fcssen, um dort t\u00e4tig zu sein. Matrix arbeitet daran, diese Realit\u00e4t zu machen, einschlie\u00dflich der Teilnahme an der IETF im MIMI-Arbeitskreis, um zu demonstrieren, wie beispielsweise Android Messages nativ Matrix sprechen k\u00f6nnte, um mit anderen Diensten zu interagieren, w\u00e4hrend die Ende-zu-Ende-Verschl\u00fcsselung erhalten bleibt.<\/p>\n<p>Matrix 2.0 stellt einen gro\u00dfen Schritt nach vorne in Bezug auf Leistung, Benutzerfreundlichkeit und Stabilit\u00e4t dar. Zu den Neuerungen geh\u00f6ren Sliding Sync (schnelleres Login und Synchronisation), Native OIDC (standardisierte Authentifizierung), Native Group VoIP (Ende-zu-Ende-verschl\u00fcsselte gro\u00dffl\u00e4chige Sprach- und Videokonferenzen) und Faster Joins (schnelleres Beitreten zu R\u00e4umen).<\/p>\n<p>Matrix 2.0 wurde in enger Zusammenarbeit mit dem realen Kundenstamm entwickelt, um sicherzustellen, dass das neue Protokoll den Anforderungen der realen Welt entspricht. Element X, ein Produkt von Element, ist der Haupttreiber f\u00fcr die neuen Funktionen von Matrix 2.0, und es wird demonstriert, dass Matrix in der Lage ist, die Kommunikation f\u00fcr Milliarden von Benutzern zu steuern.<\/p>\n<p>Ein Beispiel f\u00fcr die Anwendung von Matrix in der Regierung ist das Projekt Tchap der franz\u00f6sischen Regierung. Tchap ist ein verschl\u00fcsselter Messaging-Dienst, der f\u00fcr \u00f6ffentliche Bedienstete entwickelt wurde, um vertrauliche Informationen auszutauschen und die Sicherheit des Kommunikationsnetzwerks zu gew\u00e4hrleisten. Die franz\u00f6sische Regierung w\u00e4hlte Matrix und Element, um die Interoperabilit\u00e4t des Dienstes zu gew\u00e4hrleisten und eine Alternative zu anderen Messaging-Anwendungen wie WhatsApp oder Telegram zu bieten, die Sicherheits- und digitale Souver\u00e4nit\u00e4tsrisiken darstellen, wenn sie auf \u00f6ffentlichen Ger\u00e4ten installiert werden. Ebenso hat die Agentur f\u00fcr die Digitalisierung des deutschen Gesundheitssystems begonnen, auf Matrix umzusteigen, um eine umfassende Kommunikation zwischen Krankenh\u00e4usern, Versicherungsgesellschaften und Kliniken zu erm\u00f6glichen.<\/p>\n<p>Insgesamt bietet Matrix eine zukunftsweisende L\u00f6sung f\u00fcr die Herausforderungen der modernen digitalen Kommunikation, insbesondere im Hinblick auf Sicherheit, Dezentralisierung und Interoperabilit\u00e4t, und wird von einer wachsenden Zahl von Regierungen und gro\u00dfen Unternehmen weltweit eingesetzt.<\/p>\n<p>&nbsp;<\/p>\n<h2><strong>Vergleich mit der\u00a0<\/strong>Konkurrenz<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/files.oaiusercontent.com\/file-kv0Dhg3ERlrvQM88WYteNaDb?se=2024-01-15T11%3A54%3A47Z&amp;sp=r&amp;sv=2021-08-06&amp;sr=b&amp;rscc=max-age%3D31536000%2C%20immutable&amp;rscd=attachment%3B%20filename%3D8b8f5e50-a909-4bdd-b427-ed97ac1fe5e5.webp&amp;sig=tCzjmZN6sCrxbdaFWwQT132EgCOg6szBsn%2BYHeEqoFQ%3D\" alt=\"An illustration showing a comparison of various team collaboration software platforms like Microsoft Teams, Slack, and Element. The image depicts a modern, high-tech conference room with three large screens on the wall, each displaying a different interface. One screen shows the Microsoft Teams interface with its features, another shows the Slack interface with its unique chat and integration functions, and the third shows the Element interface, emphasizing its security and customization options. The room is filled with professionals in business attire, interacting and discussing, symbolizing collaboration and communication. The atmosphere is dynamic and productive, with a futuristic, digital vibe.\" \/><\/p>\n<p>Matrix unterscheidet sich von seinen Konkurrenten durch seine Fokussierung auf Dezentralisierung und Sicherheit. Im Gegensatz zu zentralisierten Plattformen wie Slack und Microsoft Teams, erm\u00f6glicht Matrix eine dezentralisierte und selbstverwaltete Kommunikation. Dies bedeutet, dass Nutzer ihre eigenen Server hosten k\u00f6nnen, was mehr Kontrolle \u00fcber Daten und Datenschutz bietet.<\/p>\n<p>Ein weiteres Schl\u00fcsselmerkmal von Matrix ist die Ende-zu-Ende-Verschl\u00fcsselung (E2E), die in allen privaten Kommunikationskan\u00e4len Standard ist. Im Gegensatz dazu bieten Slack und Microsoft Teams diese Verschl\u00fcsselung nicht standardm\u00e4\u00dfig in allen Kommunikationsformen. WhatsApp bietet zwar E2E-Verschl\u00fcsselung, ist aber in einem zentralisierten System verankert, was bedeutet, dass Nutzer weniger Kontrolle \u00fcber ihre Daten haben.<\/p>\n<p>Matrix bietet auch eine hohe Interoperabilit\u00e4t, indem es die Integration mit anderen Plattformen wie Slack, IRC, Gitter und sogar WhatsApp \u00fcber Br\u00fccken erm\u00f6glicht. Diese Offenheit f\u00fcr Integrationen ist bei propriet\u00e4ren Plattformen wie Microsoft Teams und WhatsApp weniger ausgepr\u00e4gt.<\/p>\n<p>&nbsp;<\/p>\n<h3>Vergleichstabelle<\/h3>\n<table>\n<thead>\n<tr>\n<th>Feature<\/th>\n<th>Matrix<\/th>\n<th>Slack<\/th>\n<th>Microsoft Teams<\/th>\n<th>WhatsApp<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Dezentralisierung<\/td>\n<td>Ja<\/td>\n<td>Nein<\/td>\n<td>Nein<\/td>\n<td>Nein<\/td>\n<\/tr>\n<tr>\n<td>Ende-zu-Ende-Verschl\u00fcsselung<\/td>\n<td>Ja (standard)<\/td>\n<td>Eingeschr\u00e4nkt<\/td>\n<td>Eingeschr\u00e4nkt<\/td>\n<td>Ja (standard)<\/td>\n<\/tr>\n<tr>\n<td>Open Source<\/td>\n<td>Ja<\/td>\n<td>Nein<\/td>\n<td>Nein<\/td>\n<td>Nein<\/td>\n<\/tr>\n<tr>\n<td>Selbst-Hosting<\/td>\n<td>M\u00f6glich<\/td>\n<td>Nicht m\u00f6glich<\/td>\n<td>Nicht m\u00f6glich<\/td>\n<td>Nicht m\u00f6glich<\/td>\n<\/tr>\n<tr>\n<td>Interoperabilit\u00e4t mit anderen Diensten<\/td>\n<td>Hoch<\/td>\n<td>Mittel<\/td>\n<td>Niedrig<\/td>\n<td>Niedrig<\/td>\n<\/tr>\n<tr>\n<td>Sprach- und Videokonferenzen<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<\/tr>\n<tr>\n<td>Plattform\u00fcbergreifend<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<\/tr>\n<tr>\n<td>Benutzerdefinierte Integrationen<\/td>\n<td>Hoch<\/td>\n<td>Hoch<\/td>\n<td>Mittel<\/td>\n<td>Niedrig<\/td>\n<\/tr>\n<tr>\n<td>Datensicherheit und Kontrolle<\/td>\n<td>Hoch<\/td>\n<td>Mittel<\/td>\n<td>Mittel<\/td>\n<td>Niedrig<\/td>\n<\/tr>\n<tr>\n<td>Community-Support<\/td>\n<td>Hoch<\/td>\n<td>Mittel<\/td>\n<td>Mittel<\/td>\n<td>Niedrig<\/td>\n<\/tr>\n<tr>\n<td>Anpassbare Benutzeroberfl\u00e4che<\/td>\n<td>Ja<\/td>\n<td>Eingeschr\u00e4nkt<\/td>\n<td>Eingeschr\u00e4nkt<\/td>\n<td>Nein<\/td>\n<\/tr>\n<tr>\n<td>Datei\u00fcbertragung und -speicherung<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<td>Ja<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h2>Matrix in Action<\/h2>\n<p>Matrix wird heute in einer Vielzahl von Bereichen eingesetzt, darunter in gro\u00dfen Unternehmen, Regierungsorganisationen und im Gesundheitswesen. Zu den bemerkenswertesten Eins\u00e4tzen von Matrix geh\u00f6ren:<\/p>\n<ol>\n<li><strong>Regierungen und staatliche Einrichtungen<\/strong>:\n<ul>\n<li><strong>Franz\u00f6sische Regierung<\/strong>: Frankreich hat Matrix f\u00fcr seinen verschl\u00fcsselten Messaging-Dienst Tchap ausgew\u00e4hlt, der speziell f\u00fcr den Austausch vertraulicher Informationen zwischen \u00f6ffentlichen Bediensteten entwickelt wurde. Tchap zielt darauf ab, die Sicherheit des Kommunikationsnetzwerks zu verbessern und die Interoperabilit\u00e4t zwischen verschiedenen Verwaltungseinheiten zu erh\u00f6hen\u200b\u200b.<\/li>\n<li><strong>Deutsche Bundeswehr und \u00f6ffentliche Verwaltung<\/strong>: In Deutschland hat die Bundeswehr einen auf Matrix basierenden Krypto-Messenger f\u00fcr die \u00dcbermittlung von Informationen der Schutzklasse \u201eVerschlusssache \u2013 Nur f\u00fcr den Dienstgebrauch\u201c eingef\u00fchrt. Auch der Bundesmessenger f\u00fcr die \u00f6ffentliche Verwaltung, eine zivile Version des Bwmessengers, basiert auf Matrix und befindet sich derzeit in einem Testlauf\u200b\u200b.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Gesundheitswesen<\/strong>:\n<ul>\n<li><strong>Deutsches Gesundheitssystem (Gematik)<\/strong>: Gematik, der Anbieter digitaler L\u00f6sungen f\u00fcr das deutsche Gesundheitswesen, hat das Matrix-Protokoll gew\u00e4hlt, um eine neue Instant-Communication-Plattform zu untermauern. Diese Plattform wird von \u00fcber 150.000 Organisationen wie Arztpraxen, Krankenh\u00e4usern und Versicherungsorganisationen genutzt\u200b\u200b.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Private Unternehmen und Plattformen<\/strong>:\n<ul>\n<li>Zahlreiche gro\u00dfe Unternehmen und Plattformen haben Matrix in ihre Kommunikationsinfrastruktur integriert. Der E-Mail-Client Thunderbird unterst\u00fctzt das Protokoll, und auch Reddit arbeitet an einer Chat-Funktion, die auf Matrix basiert\u200b\u200b.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Diese Beispiele zeigen, wie vielseitig Matrix eingesetzt wird \u2013 von der Regierungskommunikation \u00fcber das Gesundheitswesen bis hin zu gro\u00dfen Unternehmen und technischen Plattformen. Die Flexibilit\u00e4t, Sicherheit und Dezentralisierung, die Matrix bietet, macht es zu einer attraktiven Option f\u00fcr eine Vielzahl von Anwendungsf\u00e4llen.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/external-content.duckduckgo.com\/iu\/?u=https%3A%2F%2Fwww.ac-paris.fr%2Fsites%2Fac_paris%2Ffiles%2Fstyles%2Fbanner_1340x730%2Fpublic%2F2022-03%2Fdane-tchap-png-20258.png%3Fitok%3DvQYvTWSb&amp;f=1&amp;nofb=1&amp;ipt=f5234cab533042b6625dab97c0d2c8d71781a0c41d8f08c76bbb731070f1e7bb&amp;ipo=images\" alt=\"Tchap, la messagerie instantan\u00e9e des agents de l'Etat | Acad\u00e9mie de Paris\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Matrix-Clients<\/h2>\n<p>Matrix-Clients sind die Schnittstellen, durch die Benutzer auf das Matrix-Netzwerk zugreifen. Sie spielen eine entscheidende Rolle in der Art und Weise, wie Menschen kommunizieren und interagieren.<\/p>\n<p><strong>Diversit\u00e4t<\/strong>: Es gibt eine breite Palette von Matrix-Clients, die f\u00fcr unterschiedliche Bed\u00fcrfnisse und Vorlieben entwickelt wurden. Beispiele sind Element, FluffyChat, Nheko und Mirage.<br \/>\nSpezialisierung: Einige Clients sind auf bestimmte Funktionen oder Benutzergruppen zugeschnitten, wie z.B. FluffyChat, das sich auf eine einfache, benutzerfreundliche Oberfl\u00e4che konzentriert.<\/p>\n<p><strong>Kommunikationsfunktionen<\/strong><br \/>\n<strong>Textnachrichten<\/strong>: Standardfunktion aller Matrix-Clients, mit Unterst\u00fctzung f\u00fcr Gruppenr\u00e4ume und Direktnachrichten.<br \/>\n<strong>Sprach- und Videoanrufe:<\/strong> Viele Clients bieten integrierte M\u00f6glichkeiten f\u00fcr Sprach- und Videoanrufe, sowohl in privaten Chats als auch in Gruppenr\u00e4umen.<br \/>\n<strong>Datei\u00fcbertragung<\/strong>: Benutzer k\u00f6nnen Dateien verschiedener Formate und Gr\u00f6\u00dfen austauschen.<\/p>\n<p><strong>Ende-zu-Ende-Verschl\u00fcsselung<\/strong>: Viele Clients implementieren standardm\u00e4\u00dfig Ende-zu-Ende-Verschl\u00fcsselung, um die Sicherheit der Kommunikation zu gew\u00e4hrleisten.<br \/>\n<strong>Dezentrale Authentifizierung:<\/strong> Authentifizierungsprozesse werden durch das dezentrale Netzwerk von Matrix gesteuert, was zu einer erh\u00f6hten Sicherheit f\u00fchrt.<\/p>\n<p><strong>Anpassbarkeit und Integration<\/strong><br \/>\n<strong>Benutzeroberfl\u00e4che:<\/strong> Die Benutzeroberfl\u00e4che vieler Matrix-Clients kann angepasst werden, um den Bed\u00fcrfnissen und Vorlieben der Benutzer zu entsprechen.<br \/>\n<strong>Integrationen:<\/strong> Durch die Nutzung von Bridges k\u00f6nnen Benutzer ihre Erfahrung durch die Integration mit anderen Diensten und Plattformen erweitern.<\/p>\n<p><strong>Verf\u00fcgbarkeit<\/strong>: Matrix-Clients sind auf verschiedenen Plattformen verf\u00fcgbar, einschlie\u00dflich Desktop-Betriebssystemen und mobilen Ger\u00e4ten.<br \/>\nSynchronisation: Benutzer k\u00f6nnen nahtlos zwischen verschiedenen Ger\u00e4ten wechseln, wobei ihre Nachrichten und Einstellungen \u00fcber das Matrix-Netzwerk synchronisiert werden.<\/p>\n<p><strong>Community-Driven:<\/strong> Viele Matrix-Clients werden von einer engagierten Community entwickelt und gepflegt, was zu einer st\u00e4ndigen Verbesserung und Anpassung f\u00fchrt.<br \/>\nTransparenz: Als Open-Source-Projekte sind die Codebasen der Clients f\u00fcr jeden zug\u00e4nglich, was Vertrauen und Sicherheit f\u00f6rdert.<\/p>\n<p>Matrix-Clients sind ein wesentlicher Bestandteil des Matrix-\u00d6kosystems. Sie bieten eine Vielzahl von Funktionen und Anpassungsm\u00f6glichkeiten, die sie f\u00fcr ein breites Spektrum von Benutzern attraktiv machen. Ihre F\u00e4higkeit, sichere, anpassbare und plattform\u00fcbergreifende Kommunikation zu erm\u00f6glichen, macht sie zu einer wichtigen Wahl f\u00fcr Benutzer, die nach einer zuverl\u00e4ssigen und flexiblen Kommunikationsl\u00f6sung suchen.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Matrix Bridges<\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/zerodya.net\/content\/images\/size\/w960\/2023\/08\/matrix-thumbnail-1.png\" alt=\"All your chats in one app - Self-host Matrix with Bridges and Cloudflare\" \/><\/p>\n<p>Matrix Bridges sind essenziell, um die Kommunikationsl\u00fccken zwischen verschiedenen Messaging-Plattformen zu schlie\u00dfen. Einige der bekanntesten<br \/>\nBridges sind:<\/p>\n<p><strong>Slack Bridge:<\/strong> Erm\u00f6glicht die Integration von Matrix in Slack, wodurch Nachrichten und Dateien zwischen beiden Plattformen synchronisiert werden.<\/p>\n<p><strong>Telegram Bridge<\/strong>: Diese Bridge verbindet Matrix mit Telegram und erlaubt es Nutzern, Telegram-Chats direkt \u00fcber Matrix-Clients zu f\u00fchren.<\/p>\n<p><strong>WhatsApp Bridge<\/strong>: Sie verbindet WhatsApp mit Matrix, was besonders herausfordernd ist, da WhatsApp eine sehr geschlossene Plattform mit eigenen Sicherheitsprotokollen ist. So ist daf\u00fcr ein Client n\u00f6tig der auf Android l\u00e4uft<\/p>\n<p><strong>IRC Bridge:<\/strong> Eine der \u00e4lteren Bridges, die Matrix mit verschiedenen IRC-Netzwerken verbindet und so die Nutzung traditioneller IRC-Chats \u00fcber Matrix erm\u00f6glicht.<\/p>\n<p>Die Bridges m\u00fcssen unterschiedliche Messaging-Protokolle in das Matrix-Protokoll umwandeln, dies beinhaltet die Handhabung verschiedener Nachrichtenformate, Datei\u00fcbertragungen und Benachrichtigungen. Um eine nahtlose Kommunikation zu gew\u00e4hrleisten, m\u00fcssen die Bridges Nachrichten in Echtzeit synchronisieren, was eine Herausforderung bei unterschiedlichen Netzwerkgeschwindigkeiten und -verz\u00f6gerungen darstellt. Da Matrix ein dezentrales Netzwerk ist, k\u00f6nnen Bridges auf verschiedenen Servern gehostet werden. Die Skalierung, um mit einer gro\u00dfen Anzahl von Benutzern und Nachrichten umzugehen, ist eine technische Herausforderung.<\/p>\n<p><strong>Limitierungen und Herausforderungen<\/strong><br \/>\n<strong>Geschwindigkeit und Zuverl\u00e4ssigkeit<\/strong>: Die Verarbeitung und \u00dcbersetzung von Nachrichten in Echtzeit kann zu Verz\u00f6gerungen f\u00fchren. Au\u00dferdem k\u00f6nnen Netzwerkprobleme oder Ausf\u00e4lle bei einer der verbundenen Plattformen die Gesamtkommunikation beeintr\u00e4chtigen.<\/p>\n<p><strong>Datenschutz und Sicherheit:<\/strong> Da Bridges oft Daten zwischen verschiedenen Plattformen \u00fcbertragen, sind Datenschutz und Sicherheit gro\u00dfe Anliegen. Es muss sichergestellt werden, dass die Bridges die Datenschutzrichtlinien aller beteiligten Plattformen einhalten.<\/p>\n<p><strong>Abh\u00e4ngigkeit von Drittanbieter-APIs:<\/strong> Viele Bridges sind von den APIs der Zielplattformen abh\u00e4ngig. \u00c4nderungen an diesen APIs k\u00f6nnen die Funktionalit\u00e4t der Bridges beeintr\u00e4chtigen oder zus\u00e4tzliche Anpassungen erforderlich machen.<\/p>\n<p><strong>Feature-Kompatibilit\u00e4t:<\/strong> Unterschiedliche Plattformen bieten unterschiedliche Funktionen an. Die Bridge muss entscheiden, wie sie mit Funktionen umgeht, die in einer Plattform vorhanden sind, aber in der anderen fehlen.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Matrix Server Intstallation:<\/strong><\/p>\n<p>Diese Installation ist eine sehr sehr wartungsfreie Installation, aus Sicht der IT-Sicherheit sollte unbedingt davon abgeraten werden, LTS-Versionen benutzt werden etc.<\/p>\n<p>oAuth ist machbar, aber &#8230;.<\/p>\n<p>Ausgangspunkt: LXC Container eines Debian Testing (late 2023)<\/p>\n<p>Zuerst werden die grundlegenden Abh\u00e4ngigkeiten installiert und Repositorys eingetragen.<\/p>\n<blockquote><p>apt-get install unattended-upgrades apt-listchanges<br \/>\ndpkg-reconfigure -plow unattended-upgrades<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<blockquote><p>sudo apt install -y lsb-release wget apt-transport-https sudo wget -O \/usr\/share\/keyrings\/matrix-org-archive-keyring.gpg https:\/\/packages.matrix.org\/debian\/matrix-org-archive-keyring.gpg echo &#8222;deb [signed-by=\/usr\/share\/keyrings\/matrix-org-archive-keyring.gpg] https:\/\/packages.matrix.org\/debian\/ $(lsb_release -cs) main&#8220; | sudo tee \/etc\/apt\/sources.list.d\/matrix-org.list sudo apt update sudo apt install matrix-synapse-py3<\/p>\n<p>sudo sh -c &#8218;echo &#8222;deb https:\/\/apt.postgresql.org\/pub\/repos\/apt sid-pgdg main&#8220; &gt; \/etc\/apt\/sources.list.d\/pgdg.list&#8216;<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>Dann wird die Datenbank vorbereitet<\/p>\n<blockquote><p>su &#8211; postgres<br \/>\ncreateuser &#8211;pwprompt synapse_user<\/p>\n<p>createdb &#8211;encoding=UTF8 &#8211;locale=C &#8211;template=template0 &#8211;owner=synapse_user synapse<\/p>\n<p>&nbsp;<\/p><\/blockquote>\n<p>Danach nocht die grundlegendsten Einstellungen in der \/etc\/matrix-synapse\/homeserver.yaml:<\/p>\n<blockquote><p>bind_addresses: [&#8218;::1&#8216;, &#8218;0.0.0.0&#8216;]<\/p>\n<p>enable_registration: true<br \/>\nenable_registration_captcha: true<br \/>\nrecaptcha_public_key: &#8222;xxx&#8220;<br \/>\nrecaptcha_private_key: &#8222;xxx&#8220;<br \/>\nrecaptcha_siteverify_api: &#8222;https:\/\/www.google.com\/recaptcha\/api\/siteverify&#8220;<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>Service neustarten und fertig<\/p>\n<blockquote><p>systemctl restart matrix-synapse.service<\/p><\/blockquote>\n<h2>Matrix Protokoll<\/h2>\n<p>&nbsp;<\/p>\n<h3>1. Daten\u00fcbertragung und API-Interaktion<\/h3>\n<ul>\n<li><strong>Client-Server-API:<\/strong> Clients kommunizieren mit dem Homeserver \u00fcber die Client-Server-API. Diese API verwendet HTTP(S) als Transportprotokoll und JSON f\u00fcr die Strukturierung der Daten. Beispielsweise sendet ein Client eine Nachricht an einen Raum, indem er eine POST-Anfrage an <code>\/rooms\/{roomId}\/send\/{eventType}\/{txnId}<\/code> sendet, wobei der Body der Anfrage die Nachricht im JSON-Format enth\u00e4lt.<\/li>\n<li><strong>Server-zu-Server-API (Federation):<\/strong> Erm\u00f6glicht Homeservern, Nachrichten und Synchronisationsinformationen auszutauschen. Wenn ein Nutzer eine Nachricht sendet, verteilt sein Homeserver diese Nachricht an alle anderen Server, die R\u00e4ume mit Mitgliedern haben, die an der Konversation teilnehmen. Dies geschieht \u00fcber die <code>\/_matrix\/federation\/v1\/send\/{txnId}<\/code>-API.<\/li>\n<\/ul>\n<h3>2. Synchronisation<\/h3>\n<ul>\n<li><strong>Event- und Raumzustand:<\/strong> Jede Aktion in einem Raum wird als Event dargestellt (z.B. Nachrichtenversand, Namens\u00e4nderung des Raums). R\u00e4ume sind durch ihren Zustand definiert, der eine Sammlung von Events ist, die den aktuellen Zustand des Raums beschreiben. Clients synchronisieren ihren lokalen Zustand mit dem des Servers durch die <code>\/sync<\/code>-API, die alle neuen Events seit der letzten Synchronisation zur\u00fcckgibt.<\/li>\n<\/ul>\n<h3>3. Verschl\u00fcsselung<\/h3>\n<ul>\n<li><strong>Ende-zu-Ende-Verschl\u00fcsselung:<\/strong> Matrix verwendet das Olm\/Megolm-Verschl\u00fcsselungsprotokoll f\u00fcr die Ende-zu-Ende-Verschl\u00fcsselung, um sicherzustellen, dass nur die Teilnehmer einer Konversation den Inhalt der Nachrichten lesen k\u00f6nnen. Megolm ist f\u00fcr Gruppenchats optimiert und generiert f\u00fcr jede Nachricht einen neuen Sitzungsschl\u00fcssel, wobei die Schl\u00fcssel periodisch rotiert werden.<\/li>\n<li><strong>Ger\u00e4te- und Identit\u00e4tsmanagement:<\/strong> Jeder Nutzer kann mehrere Ger\u00e4te haben, und jedes Ger\u00e4t hat seine eigenen Schl\u00fcsselpaare. Nutzer verifizieren ihre Identit\u00e4ten und die ihrer Gespr\u00e4chspartner, indem sie ihre \u00f6ffentlichen Schl\u00fcssel vergleichen und best\u00e4tigen. Das Protokoll unterst\u00fctzt auch das Cross-Signing, wobei ein Nutzer seine eigenen Ger\u00e4te sowie die Ger\u00e4te anderer Nutzer verifizieren kann.<\/li>\n<\/ul>\n<h3>4. Persistenz und Datenhaltung<\/h3>\n<ul>\n<li><strong>Datenbank-Speicherung:<\/strong> Homeserver speichern Nutzerdaten, Raumzust\u00e4nde, Events und Historien in einer Datenbank. Die Wahl der Datenbanktechnologie kann variieren (z.B. PostgreSQL, SQLite f\u00fcr kleinere Installationen), und die Datenstruktur ist optimiert, um schnelle Abfragen f\u00fcr Synchronisationsanfragen und Zustandsresolution zu erm\u00f6glichen.<\/li>\n<\/ul>\n<h3>5. Federation und Discovery<\/h3>\n<ul>\n<li><strong>Domain Name System (DNS):<\/strong> Matrix verwendet das DNS, um die Homeserver-Adressen anderer Domains zu entdecken. Ein Homeserver, der eine Nachricht an Nutzer in einem anderen Domain senden m\u00f6chte, l\u00f6st die SRV-Eintr\u00e4ge im DNS auf, um die Adresse des Ziel-Homeservers zu finden.<\/li>\n<li><strong>Zustandsresolution:<\/strong> Bei Konflikten, z.B. wenn zwei Server unterschiedliche Zust\u00e4nde f\u00fcr einen Raum haben, kommt ein Zustandsresolutionsalgorithmus zum Einsatz, der auf einem gerichteten azyklischen Graphen (DAG) der Raumgeschichte basiert, um einen konsistenten Raumzustand herzustellen.<\/li>\n<\/ul>\n<h3>6. API-Rate-Limiting und Abuse-Management<\/h3>\n<ul>\n<li><strong>Rate-Limiting:<\/strong> Um Missbrauch zu verhindern und die Serverlast zu verwalten, implementieren Homeserver in der Regel Rate-Limiting f\u00fcr API-Anfragen. Dies stellt sicher, dass ein einzelner Client oder Server nicht in der Lage ist, den Dienst durch zu viele Anfragen zu \u00fcberlasten.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><strong>Protokoll Layer<\/strong><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3571\" src=\"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-content\/uploads\/2023\/11\/th-3483651376.jpg\" alt=\"\" width=\"474\" height=\"364\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>Architektur\u00fcbersicht des MATRIX-Chat-Protokolls<\/h3>\n<ul>\n<li><strong>Application Layer:<\/strong> Dies ist die oberste Schicht, auf der die Chat-Anwendung l\u00e4uft. Hier werden die Nutzerinteraktionen, wie das Senden von Nachrichten und der Empfang von Benachrichtigungen, verarbeitet. Die Anwendung kommuniziert mit dem Transport Layer, um Nachrichten zu senden und zu empfangen.<\/li>\n<li><strong>Transport Layer:<\/strong> Diese Schicht ist verantwortlich f\u00fcr die End-to-End-Kommunikation zwischen den Chat-Clients und dem Homeserver. Sie kann auf Protokollen wie HTTP\/S oder WebSockets aufbauen, um eine kontinuierliche Verbindung f\u00fcr Echtzeit-Kommunikation zu erm\u00f6glichen.<\/li>\n<li><strong>MATRIX Routing Protocol:<\/strong> Hier wird das eigentliche Matrix-Routing-Protokoll implementiert, das die Logik f\u00fcr das Routing von Nachrichten zwischen verschiedenen Homeservern (im Rahmen der Server-zu-Server-Federation) enth\u00e4lt. Es behandelt auch die Synchronisation von Nachrichten und Raumzust\u00e4nden zwischen Clients und Servern.<\/li>\n<li><strong>Link Layer &amp; Physical Layer:<\/strong> Diese beiden Schichten sind in diesem Kontext weniger spezifisch f\u00fcr das Matrix-Protokoll, da sie allgemeine Netzwerkkommunikationsschichten darstellen, die f\u00fcr die physische Daten\u00fcbertragung und Datenlinkprotokolle (wie Ethernet, WLAN usw.) zust\u00e4ndig sind.<\/li>\n<\/ul>\n<p>Die Komponenten im Bild k\u00f6nnen wie folgt in Bezug auf das Matrix-Protokoll beschrieben werden:<\/p>\n<ul>\n<li><strong>Data Plane:<\/strong> Umfasst die Forwarding Engine, welche die Entscheidungen des Routing-Protokolls umsetzt, um Nachrichten durch das Netzwerk zu leiten. Dies schlie\u00dft das Weiterleiten von Chat-Nachrichten an die richtigen Empf\u00e4nger ein.<\/li>\n<li><strong>Control Plane:<\/strong> Beinhaltet Logik und Protokolle zur Verwaltung des Netzwerkzustands und der Topologie. F\u00fcr das Matrix-Protokoll w\u00fcrde dies die Discovery von anderen Homeservern und die Verwaltung von Routing-Tabellen einschlie\u00dfen.\n<ul>\n<li><strong>CTparent &amp; IParent:<\/strong> Diese k\u00f6nnten Konzepte repr\u00e4sentieren, die f\u00fcr die Hierarchie und Priorisierung innerhalb des Netzwerks verantwortlich sind, wie z.B. die Bestimmung von \u00fcbergeordneten Homeservern oder die Verwaltung von Netzwerkpriorit\u00e4ten.<\/li>\n<li><strong>Aggregation:<\/strong> Dies k\u00f6nnte sich auf die Aggregation von Netzwerkadressen oder Chatr\u00e4umen beziehen, um die Effizienz und Skalierbarkeit des Netzwerks zu erh\u00f6hen.<\/li>\n<li><strong>Addr. Assignment:<\/strong> Steht f\u00fcr die Zuweisung von Adressen, was im Kontext von Matrix die Zuweisung von eindeutigen Identifikatoren f\u00fcr Nutzer, Ger\u00e4te oder R\u00e4ume sein k\u00f6nnte.<\/li>\n<li><strong>Alternative Routing Table &amp; Routing Table:<\/strong> Diese Tabellen enthalten Informationen \u00fcber die besten Wege, um Nachrichten zu bestimmten Zielen zu leiten. Im Matrix-Protokoll k\u00f6nnten dies die besten Wege sein, um Nachrichten zu anderen Homeservern zu senden.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Upper Layer Interface:<\/strong> Dies ist die Schnittstelle, die die Datenplane mit der Anwendungsschicht verbindet, und stellt sicher, dass Nachrichten korrekt an die Anwendungsschicht \u00fcbergeben werden.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Quellen:<\/p>\n<ul>\n<li>https:\/\/matrix.org\/?ref=thestack.technology [abgerufen am 12.12.2023]<\/li>\n<li>https:\/\/itsfoss.com\/best-matrix-clients\/ <a href=\"https:\/\/itsfoss.com\/best-matrix-clients\/\"><span class=\"Apple-converted-space\">\u00a0\u00a0<\/span><\/a>[abgerufen am 16.12.2023]<\/li>\n<li>https:\/\/www.securityweek.com\/meet-matrix-open-standard-de-centralized-encrypted-communications\/ [abgerufen am 23.12.2023]<\/li>\n<li>https:\/\/spec.matrix.org\/latest\/ [abgerufen am 28.12.2023]<\/li>\n<li>https:\/\/discord.com\/ [abgerufen am 01.12.2023]<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li>&nbsp;<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Was ist Matrix? Matrix ist eine offene Standardsoftware f\u00fcr sichere, dezentralisierte Kommunikation im offenen Web und hat sich in den<\/p>\n","protected":false},"author":142,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"templates\/template-fullwidth.php","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[119],"class_list":["post-3045","post","type-post","status-publish","format-standard","hentry","category-betriebliche-informationssysteme","tag-kommunikation"],"_links":{"self":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/3045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/users\/142"}],"replies":[{"embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/comments?post=3045"}],"version-history":[{"count":9,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/3045\/revisions"}],"predecessor-version":[{"id":3572,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/posts\/3045\/revisions\/3572"}],"wp:attachment":[{"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/media?parent=3045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/categories?post=3045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/informatik.htwk-leipzig.de\/seminar\/wp-json\/wp\/v2\/tags?post=3045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}