Yey eerste slide
IM is nog steeds kapot
Silo’s zijn stom!Kom, we gaan het fixen!1
Matrix
November 17, 2017
What is The Matrix?
“Non-profit open standard for defragmented communication”(So an Instant Messaging protocol.)
(Nog vrij beta though, begonnen rond 2014)
Matrix main features (“first-class citizen”)
I Federated (like email)
I Easy bridging to other chat systems (bridging is considered a“first-class citizen”)
I End-to-End encryption
Waar ken je het voor gebruiken
I Group chat
I Group-group chat (meerdere group chats die bij eenorganisatie horen)
I 1-op-1 chat (=kleine group chat)
I WebRTC signalling (om een voice/video chat te initialiseren)
I Huidige silo’s aan elkaar koppelen (bridging)
I Niet-chat data (“een open database”)
Oke cool, maar waarom?
“We need to develop one universal standard that covers everyone’suse cases”
Meer infografiks: een casus
Biem!
Ook eem uitleggen.
Een beetje wat we met Telegram SCNPCW en #scn doen, maardan schaalbaarder.
The stack
I Clients (the user)
I Servers
I Application-Services servers
I Identity servers
“No single party owns your conversations”Laat even die animatie op de website zien pl0x.
The Spec
I HTTP alle dingen
I JSON alle dingen
Omdat ze allebei lekker toegankelijk zijn.
I Client-Server API
I Server-Server API
I ApplicationService-Server API
Clients
I SDK’s (Android, IOS, JavaScript, React)
I Riot (voorbeeld applicatie voor Android, IOS en web)
I Niet-officiele clients (¿40. Weechat :D , etc)
I Niet-officiele SDK’s (ook veel)
(Demo straks)
Servers
I SynapseI PythonI MonolitischI Schaalt niet meerI (Mijne gebruikt 2GB ram en heeft regelmatig dat hij aan 100%
van de OVH SSD CPU core zit)
I DendriteI Go :DI Gedistribueerd :DI Built around append-only event logs (Apache kafka) :DI Gaat vet mooi schalen :DI Nog niet af :(
Application-Services
I Praat met een server.
I Word gebruikt voor bruggetjes.
Is het populair aan het worden?
Ja.
Laat zien dan
More greatest hits
Crypto? CRYPTO!
I End-To-End encryption is echt een mustI Het is 2017.I Replicated conversation history is een probleem.
Hier begint mijn kennis te lacken, dus ik copy/paste wel wat hetmain team ervan zegt.
E2E encryption goals
I Keuze om wel of niet encrypted berichten te laten lezen doortoekomstige participanten in een chat.
I Encrypt en vertrouw per apparaat, niet per gebruiker.
I Geen geouwehoer in grote chats, met duizenden apparaten.
I Standaard niet-publieke chats encrypten.
I Alle Matrix clients moeten het ondersteunen.
E2E encryption: is het goed?
I Signals E2E ding, maar aangepast om aan bovenstaande goalste voldoen.
I Is in november 2016 door een Cryptographic Review vanNCCGroup (ofzo) gekomen1
I UX is lastig.
I Nog steeds beta though.
I Werkt ook nice in de webapp want assembly.
1https://www.nccgroup.trust/us/our-research/matrix-olm-cryptographic-review/
DEMO!??!?
Dingen die ik niet heb ge-demod, maar die wel werken
I End-To-End encryption (ik heb geen E2E vrienden :¡ )
I Voice/video chat (te veel geouwehoer, moet dan een telefoonof tweede laptop lenen)
I Groups-groups (“communities”)
Funding
Core team kreeg eerst funding van het bedrijf waar ze werkten.Nu niet meer though, maar hun huidige werkgever laat ze onderwerktijd aan Matrix werken.Maar ze hebben in ieder geval money nodig pl0x. Het doel is omnog een ontwikkelaar in de huren.
Wow nice-e presentatie Remi.Maar wat about XMPP?
Core team vindt zelf dat ze niet XMPP aan het heruitvinden zijn.
The Matrix team used XMPP (Openfire, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting toexperiment with open HTTP APIs as an alternative in around 2012. The main issues with XMPP that drove us inthis direction as of 2012 were:
I Not particularly web-friendly - you cant easily speak XMPP from a web browser. N.B. Nowadays you haveoptions like XMPP-FTW and Stanza.io that help loads with letting browsers talk XMPP
I Single logical server per MUC is a single point of control and availability. MUCs can be distributed overmultiple physical servers, but they still sit behind a single logical JID and domain. FMUC improves thiswith a similar approach to Matrix, but as of Oct 2015 there are no open source implementations. The MIXXMPP extension also aims to address this limitation.
I History synchronisation is very much a second class citizen featureI Bridging to other protocols and defragmenting existing communication apps and networks is very much a
second class citizen featureI Stanzas arent framed or reliably delivered without extensions. See wiki.xmpp.org for an XMPP take on thisI Multiple device support is limited. Carbons and MAM aim to resolve thisI Baseline feature set is so minimal that fragmentation of features between clients and servers is common,
especially as interoperability profiles for features have fallen behind (as of July 2015)I No strong identity system (i.e. no standard E2E PKI, unless you count X.509 certs, which are questionable)I Not particularly well designed for mobile use cases: push; bandwidth-efficient transports. Since the time of
writing a Push XEP has appeared, and wiki.xmpp.org states that XMPP is usable over a 9600bps + 30slatency link.
This said, the whole area of XMPP vs Matrix is quite subjective. Rather than fighting over which openinteroperable communication standard works the best, we should just collaborate and bridge everything together.The more federation and interoperability the better.
We think of Matrix and XMPP as being quite different; at its core Matrix can be thought of as an eventually
consistent global JSON db with an HTTP API and pubsub semantics - whilst XMPP can be thought of as a
message passing protocol. You can use them both to build chat systems; you can use them both to build pubsub
systems; each comes with different tradeoffs. Matrix has a deliberately extensive kitchen sink baseline of
functionality; XMPP has a deliberately minimal baseline set of functionality. If XMPP does what you need it to do,
then were genuinely happy for you :) Meanwhile, rather than competing, an XMPP Bridge like Skaverats xmpptrix
beta or jfreds matrix-xmpp-bridge or Matrix.orgs own purple-matrix has potential to let both environments coexist
and make the most of each others benefits.
eind
Meer info pl0x
https://matrix.org
https:
//video.fosdem.org/2017/Janson/encrypting_matrix.mp4
Wekelijks een filmpje van de main devs opyoutube.com/matrixdotorg
Top Related