building an iot platform with matrix - fosdem€¦ · matrix is for: group chat (and 1:1) webrtc...

22
Building an IoT Platform with Matrix [email protected] http://www.matrix.org

Upload: others

Post on 18-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Building an IoT Platformwith [email protected]

http://www.matrix.org

Page 2: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

What is Matrix?

Page 3: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

An open decentralisedconversation store and

message bus.

Page 4: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Why?

Page 5: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

To create a global communication

meta-network that bridges all the existing silos &

liberates our communication to be controlled only by us.

Page 6: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Matrix is for:Group Chat (and 1:1)WebRTC SignallingBridging Comms SilosInternet of Things Data

…and anything else which needs to pubsub persistent data to the world.

6

Page 7: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Matrix Architecture

Clients

Home Servers

IdentityServers

ApplicationServers

Page 8: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

The Matrix Ecosystem

The  Matrix  Specification  (Client/Server  API)

client-­‐sideserver-­‐side

Other  Servers  and  Services

Synapse(Reference  Matrix  

Server)

Matrix  Application  Services  and  Bridges

Other  Clients

Matrix  iOS

Console

MatrixKit (iOS)

matrix-­‐ios-­‐sdk

Matrix  Web  

Console

matrix-­‐angular-­‐sdk

matrix-­‐js-­‐sdk

Android  Console

matrix-­‐android-­‐sdk

matrix-­‐react-­‐sdk

Page 9: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

How does it work?https://matrix.org/#about

9

Page 10: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Internet of Things• Lots and lots of vendor silos.• Lots of data that can be liberated into Matrix

– both for control and telemetry.• Matrix provides a trivial standard

HTTP+JSON API for publishing or subscribing to data

• Supports arbitrary alternative transports and encodings too (CoAP+CBOR, MQTT, WebSockets etc)

10

Page 11: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Let’s bust some silos!

11

Page 12: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

12

Matrix to IOT…

Janus WebRTC Gateway(from MeetEcho)

Parrot BebopDrone

Web Matrix exampleclient (Firefox)

synapse(on laptop)

synapse(on laptop)

Page 13: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

L

13

Page 14: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Janus Architecture

janus.c

janus_audiobridge.c

janus_echotest.c

janus_recordplay.c

janus_sip.c

janus_streaming.c

janus_videocall.c

janus_videoroom.c

janus_voicemail.c

janus_matrix.c

Page 15: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Ryan Rix’s IoT exploits• Lightrix: https://youtu.be/4YG9Fk5aP24

• http://rix.si/blog/2015/09/13/body-computing-system-a-redux-and-a-dream

• http://rix.si/blog/2015/11/22/body-computing-system-continuations

15

Page 16: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

16

echo  '{"msgtype":"m.text",  "body":"hello"}'  |perl –MCBOR::XS  –MJSON  –pe '$_=encode_cbor decode_json'  |coap-­‐client  –m  post  \coaps://alice.com/_m/c/a/v1/r/ROOM_ID/s/m.room.message?a=ACCESS_TOKEN

is the same as…

curl  -­‐XPOST  -­‐d  '{"msgtype":"m.text",  "body":"hello"}'  "https://alice.com:8448/_matrix/client/api/v1/rooms/ROOM_ID/send/m.room.message?access_token=ACCESS_TOKEN"

A random CoAP example

Page 17: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

End to End Encryption with Olm• Apache License C++11 implementation of an

Axolotl-style ratchet, exposing a C API.• Axolotl is Open Whisper System's better-

than-OTR cryptographic ratchet, as used by TextSecure, Pond, WhatsApp etc.

• Supports encrypted asynchronous group communication.

• 130KB x86-64 .so, or 208KB of asm.js• https://matrix.org/git/olm

17

Page 18: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

18

The end goal: IOT  Vendor  2IOT

Vendor  1

New  services!

New  platforms!

Page 19: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

• Rolling out End-to-end Encryption• Building more bridges• Group ACLs• File tagging and management• Decentralised identity• Abuse mitigation

19

What’s left?

Page 20: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

We need help!!

20

Page 21: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

• We need people to try running their own servers and join the federation.

• We need people to run gateways to their existing services

• We need feedback on the APIs.• Consider native Matrix support for new

apps• Follow @matrixdotorg and spread the

word!

21

Page 22: Building an IoT Platform with Matrix - FOSDEM€¦ · Matrix is for: Group Chat (and 1:1) WebRTC Signalling Bridging Comms Silos Internet of Things Data …and anything else which

Thank [email protected]

http://matrix.org@matrixdotorg

22