yey eerste slide · 2020-03-04 · the matrix team used xmpp (open re, ejabberd, spectrum, asmack,...

36
Yey eerste slide

Upload: others

Post on 21-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Yey eerste slide

Page 2: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

IM is nog steeds kapot

Page 3: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative
Page 4: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Silo’s zijn stom!Kom, we gaan het fixen!1

Page 5: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Matrix

November 17, 2017

Page 6: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

What is The Matrix?

“Non-profit open standard for defragmented communication”(So an Instant Messaging protocol.)

(Nog vrij beta though, begonnen rond 2014)

Page 7: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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

Page 8: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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”)

Page 9: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Oke cool, maar waarom?

Page 10: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

“We need to develop one universal standard that covers everyone’suse cases”

Page 11: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative
Page 12: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative
Page 13: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Meer infografiks: een casus

Page 14: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Biem!

Ook eem uitleggen.

Page 15: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Een beetje wat we met Telegram SCNPCW en #scn doen, maardan schaalbaarder.

Page 16: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

The stack

I Clients (the user)

I Servers

I Application-Services servers

I Identity servers

Page 17: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

“No single party owns your conversations”Laat even die animatie op de website zien pl0x.

Page 18: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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

Page 19: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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)

Page 20: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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 :(

Page 21: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Application-Services

I Praat met een server.

I Word gebruikt voor bruggetjes.

Page 22: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Is het populair aan het worden?

Ja.

Page 23: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Laat zien dan

Page 24: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

More greatest hits

Page 25: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Crypto? CRYPTO!

I End-To-End encryption is echt een mustI Het is 2017.I Replicated conversation history is een probleem.

Page 26: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Hier begint mijn kennis te lacken, dus ik copy/paste wel wat hetmain team ervan zegt.

Page 27: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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.

Page 28: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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/

Page 29: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

DEMO!??!?

Page 30: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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”)

Page 31: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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.

Page 32: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Wow nice-e presentatie Remi.Maar wat about XMPP?

Page 33: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

Core team vindt zelf dat ze niet XMPP aan het heruitvinden zijn.

Page 34: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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.

Page 35: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

eind

Page 36: Yey eerste slide · 2020-03-04 · The Matrix team used XMPP (Open re, ejabberd, spectrum, asmack, XMPPFramework) for IM before starting to experiment with open HTTP APIs as an alternative

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