Matter

From Embedded Lab Vienna for IoT & Security
Revision as of 14:02, 26 January 2024 by MBasta (talk | contribs)
Jump to navigation Jump to search
Logo of Matter[1]

Matter ist ein offener Standard, der von der Arbeitsgruppe "Project Connected Home over IP" (kurz CHIP) seit 2019 entwickelt und im Oktober 2022 erstmals publiziert wurde. Er soll die Kommunikation zwischen Geräten diverser Hersteller wie Google, Samsung, Apple und Amazon ermöglichen und damit die Grenzen bestehender Smart-Home Netze erweitern.

Protokoll

Es handelt sich um ein Application-Layer-Protokoll, welches auf Netzwerkprotokolle wie IPv6, Thread und BLE aufsetzt. Um von IP-Netzwerken auf z.B. Thread- oder BLE-basierte Geräte zugreifen zu können werden Bridges benötigt, welche die Netzwerklayer übersetzen.


The Matter Stack in the TCP/IP and OSI Model


Matter Virtual Device

Das Google Developer Center stellt Resourcen zur Entwicklung von Matter-basierten Geräten wie einer Sample App zum Verbinden von Matter-Geräten [2] oder virtuellen Matter-Geräten [3] zum Testen der Schnittstellen bereit.

Ein Matter Virtual Device (MVD) ist eine Emulation eines Matter Devices und simuliert das Verhalten eines Gerätes z.B. das Ein-/Ausschalten eines Lichtschalters.

Möglichkeiten

Das Virtual Device kann man über mehrere Wege bauen und starten. Dazu wurden insgesamt drei Möglichkeiten gefunden:

  • Standalone
  • Docker Image
  • GitHub Repository

Es hat sich herausgestellt, dass das Standalone am Besten geeignet ist, um schnell ein MVD einzurichten. Dazu wird eine Umgebung mit einem 64-bit x86 Prozessor und mindestens Debian 11, Ubuntu 20.04 oder MacOS benötigt.

GitHub Repository

  1. git clone https://github.com/project-chip/connectedhomeip
  2. Initialisieren des Matter-Projektes durch "source scripts/activate.sh"

Diese Variante wurde nicht weiter verfolgt, da das Repository rekursiv aufgelöst wird und das Klonen und Ausführen daher sehr viel Zeit in Anspruch nimmt.

Docker Image Repository

  1. docker pull us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest

Dieser Ansatz lädt ein Docker Image herunter, welches größer als 10GB ist. Entpackt hat es dann mehr als 30GB und ist daher als schneller Ansatz für die Entwicklung mit Matter-Geräten ebenfalls nicht tauglich.

Standalone

Das Standalone-Matter-Device wurde relativ neu von Google publiziert, lässt sich aber sehr einfach aufsetzen. Durch seine vergleichsweise geringe Größe mit weniger als 70MB ist es einfach herunterzuladen und ist innerhalb weniger Minuten lauffähig.

![](Rjqabwb.png)

Installationsschritte (Debian/Ubuntu)

  1. wget https://dl.google.com/mvd/mvd_1.3.0_amd64.deb
  2. sudo dpkg -i mvd_1.3.0_amd64.deb
  3. mvd

Controller GUI

Um mit dem Matter Device zu kommunizieren, wird eine GUI benötigt. Dazu gibt es wieder zwei Möglichkeiten:

Internal GUI über RPC

Das Standalone MVD wird mit einer integrierten GUI geliefert, wobei das Gerät auf einem anderen Port (RPC-Port: 33000) angesprochen wird, als den Matter Port (Matter-Port: 5540).


Bild

GUI über Mobile App

Lorem Ipsum Kotlin Codelab


Connection

Prerequisites

Android Version Google Play Version Google Home App

Steps

Get QR Code or Code from Logs Scan QR or put in manual Code Connected

Security Aspekt

Dieses Thema wurde im Rahmen des Wahlfachprojektes 2 vorgestellt. Die Aufgabe bestand darin, mit dem MVD einen Angriff nachzustellen und zu zeigen, dass dieser daher bereits während der Entwicklung erkennt und mitigiert werden könnte. Aufgrund der Neuheit des Standards ist dieser aber noch nicht in der Breite etabliert und daher sind auch noch wenige Vulnerabilities und Exploits bekannt. Daher konnten wir nur eine DoS Attacke ausprobieren und damit den Zugriff auf das MVD verhindern. Eine Differenzierung ob es dabei zu einem DoS des Gerätes selbst oder der ausführenden Plattform kam konnte nicht evaluiert werden.