Matter - Ein Überblick (Teil 1)

Da der Matter Standard (früher bekannt als Project CHIP) von der Connectivity Standards Alliance (CSA) voraussichtlich im Herbst 2022 veröffentlicht wird, konnten wir bei grandcentrix nicht widerstehen, mit dem Protokoll und den Beispielen, die bereits auf GitHub verfügbar sind, zu basteln.

Wir möchten Ihnen Matter am einfachen Beispiel einer Glühbirne und eines Lichtschalters näher bringen, um einige der grundlegenden Konzepte zu erklären. Wenn Sie einen tieferen Einblick haben möchten, werden wir in kleineren Kästen darauf eingehen.

The Story

In einer (nicht) allzu fernen Zukunft möchte Alice ein neues intelligentes Lichtsystem einrichten und entscheidet sich für ein brandneues Matter-Gerät. Noch warm aus der Fabrik packt sie den neuen Matter Lichtschalter aus. Der neue Lichtschalter funktioniert ohne Cloud-App oder Hersteller-Bridge und benötigt auch keine Hersteller-App, um verwendet zu werden (Matter-Unterstützung wird nativ zu Android und iOS hinzugefügt). Alice braucht nur ihr Heim-IP-Netzwerk mit WLAN, Ethernet oder Thread und schon ist sie startklar. Alice besitzt bereits Matter-Lampen und möchte den neu gekauften Schalter mit ihnen verbinden.

Inbetriebnahme eines neuen Geräts

Nachdem Alice das neue Gerät ausgepackt hat, schaltet sie den Schalter ein und startet die Inbetriebnahme.

1.) Alice scannt den QR-Code, der auf dem Gerät aufgedruckt ist, um alle erforderlichen Informationen zur Einrichtung des Geräts zu erhalten. Der QR-Code enthält base38 kodierte Binärdaten, einschließlich der Werte:

  • Version (Version)

  • Hersteller-ID (Vendor ID)

  • Produkt-ID (Product ID)

  • Benutzerdefinierter Fluss (Custom Flow)

  • Discovery-Fähigkeiten (Discovery Capabilities)

  • Unterscheidungsmerkmal (Discriminator)

  • Kennwort (Passcode)

  • Auffüller (Paddding)

  • TLV-Daten (optional) (für die Konfiguration des benutzerdefinierten Datenflusses (Custom Flow))

2.) Nachdem sie den Anweisungen gefolgt ist, wie man das Gerät in den Inbetriebnahmemodus versetzt. Das Smartphone von Alice startet einen Bluetooth Low Energy Scan (in Zukunft könnten auch andere Schnittstellen wie NFC verfügbar sein), um das Gerät anhand der QR-Code-Daten zu finden und sich mit ihm zu verbinden.

3.) Nun wird die Sitzung zwischen Smartphone und Gerät mit dem PASE (Passcode-Authenticated Session Establishment) Protokoll von Matter gesichert. Das Protokoll basiert auf einem Password-Authenticated Key Exchange (PAKE). Das Passwort wird aus dem Passcode des QR-Codes mithilfe einer Password-Based Key Derivation Function (PBKDF) abgeleitet. Nachdem die Schlüssel festgelegt sind, werden sie zur Verschlüsselung, Authentifizierung und zum Schutz der Privatsphäre der zwischen beiden Parteien gesendeten Matter-Nachrichten verwendet (für die Verschlüsselung und Authentifizierung wird, wie in modernen Protokollen üblich, ein AEAD-Primitive (Authenticated Encryption with Associated Data) verwendet). Das PASE-Protokoll wird nur während der Inbetriebnahme verwendet.

4.) Der Commissioner fordert vom Lichtschalter eine Device Attestation an. Dies geschieht in Form eines Challenge-Response-Protokolls, das mit dem Distributed Compliance Ledger (DCL) abgeglichen wird. Ziel dieses Schritts ist es, dem Benutzer einen kryptografischen Beweis dafür zu liefern, dass das Gerät, das Alice vor sich hat, echt ist. Das Gerät verwendet die Device Attestation Credentials (DAC), um seine Identität gegenüber dem Commissioner nachzuweisen. Der DAC basiert auf einer Zertifikatskette mit einem Stammzertifikat (genannt Product Attestation Authority (PAA)), das von der Connectivity Standards Alliance (CSA) verwaltet wird. Die PAA signiert ein vom Hersteller ausgestelltes Zertifikat (Product Attestation Intermediate (PAI) genannt), das ein eindeutiges DAC des Geräts signiert, das Metadaten wie Vendor ID und Product ID sowie die Zertifizierungserklärung enthält, die von der CSA als Teil des Produktzertifizierungprozesses bereitgestellt wird. Optional könnte die Antwort auch das Ergebnis des empfohlenen gemessenen Bootvorgangs enthalten, das dem Benutzer anzeigen könnte, ob die Firmware manipuliert wurde.

5.) Nachdem wir uns vergewissert haben, dass es sich um ein echtes Gerät und nicht um ein gefälschtes Produkt handelt, fahren wir mit der Einrichtung des Geräts fort. In diesem Schritt wird der Commissioner (das Smartphone) die Node Operational Credentials (NOC) erzeugen und auf dem Lichtschalter installieren. Die NOCs bestehen aus der RootCA (die die Fabric symbolisiert und als Vertrauensanker fungiert) und einem Node eindeutigen Zertifikat und privaten Schlüssel. Die RootCA wird vom Commissioner (der als Fabric-weiter Administrator angesehen wird) zur Authentifizierung nach der Inbetriebnahme verwendet. Das Node eindeutige Zertifikat und der private Schlüssel werden für die Kommunikation zwischen verschiedenen Fabric Nodes verwendet.

6.) Da BLE nicht unser primärer Kommunikationsmodus sein wird, müssen wir die Anmeldedaten für unser drahtloses Netzwerk angeben (WLAN oder Thread werden derzeit unterstützt).

7.) Bevor wir unsere Inbetriebnahme abschließen, müssen wir den Commissioner in die Access Control List des Lichtschalters eintragen. Die ACL enthält Informationen über die Fabric, Privilegstufe (hier Administrationsrechte), Authentifizierungsmodus, Subjekte und Ziele. Also im Grunde wer darf welche Art von Aktionen für welche Art von Diensten auf dem aktuellen Gerät durchführen.

8.) Die Inbetriebnahme ist nun abgeschlossen und wir können die PASE und BLE Session schließen.

Ein neues Gerät verbinden

Im Moment ist unser Lichtschalter noch nicht sehr nützlich, da wir mit ihm kein Licht steuern können. Aber das wird sich jetzt ändern, denn wir werden den Lichtschalter an eine unserer Lampen binden.

9.) Alice wird eine Session zu einer (bereits in Betrieb genommenen) Leuchte über WLAN eröffnen. Hierfür wird das Certificate-Authenticated Session Establishment (CASE) verwendet. CASE basiert auf dem SIGMA-Protokoll, im Gegensatz zum PASE-Protokoll, das bei der Inbetriebnahme verwendet wird, stützt sich CASE auf die NOCs für den Schlüsselaustausch. Die ausgetauschten Schlüssel werden dann für die Verschlüsselung und den Schutz der Privatsphäre der Matter-Protokollnachrichten mit AEAD verwendet.

10.) Der Commissioner wird nun die öffentlichen Teile des NOC des Lichtschalters auf der Glühbirne installieren. Hiermit wird sich die Glühbirne später gegenüber dem Lichtschalter authentifizieren.

11.) Außerdem wird eine neue ACL hinzugefügt, um dem Lichtschalter zu erlauben, das Licht ein- und auszuschalten.

12.)-13.) Wiederholt die Schritte für den Lichtschalter, um die NOCs der Glühbirne bereitzustellen.

14.) In diesem Schritt werden wir den Lichtschalter und seine Funktion mit der Glühbirne verbinden. Nun sind wir mit der Einrichtung unseres Lichtschalters und der Glühbirne fertig. Das Besondere an Matter ist, dass die Geräte nun direkt miteinander kommunizieren und keinen Zwischenbroker oder Server zur Weiterleitung der Daten benötigen.

15.) Wenn nun der Schalter gedrückt wird, um das Licht einzuschalten, wird eine sichere Sitzung mit CASE und den NOCs aufgebaut, die der Commissioner zuvor hinzugefügt hat.

16.) Der Schalter sendet die Matter Befehle, um das Licht zu bedienen. Und das Licht geht an.

Mehrere Fabrics - Multi Admin

Mit den Konzepten von Fabrics und Trust, die vom Commissioner stammen, ist es möglich, anderen Benutzern zu erlauben, ihre eigene Fabric auf dem Gerät zu konfigurieren und das Gerät unabhängig voneinander zu betreiben.

Um einer neuen Person die Verwaltung des Geräts zu ermöglichen, öffnet der aktuelle Commi das Inbetriebnahmefenster erneut und gibt der anderen Person einen neuen Inbetriebnahme-QR-Code (mit einem neuen Passcode). Die Inbetriebnahme funktioniert dann wie zuvor. Der Trust/die Sicherheit des vorherigen Gewebes bleibt unangetastet.

Eine weitere Möglichkeit, Ihrer Familie und Ihren Freunden Zugang zu Ihrem Matter Smart Home zu gewähren, ist die Konfiguration spezifischer ACLs für Familienmitglieder (und deren Smartphones), um einen fein granularen Zugang zu den Matter Geräten zu ermöglichen. So können Sie z.B. Ihre eigenen Farb- und Helligkeitseinstellungen vornehmen und die Beleuchtung steuern, obwohl Sie nicht der Commissioner sind.

Demnächst

Dies ist der erste Teil einer Serie von Blogbeiträgen. In den kommenden Beiträgen werden wir eine Matter-fähige Leuchte mit einem ESP32 erstellen. Außerdem führen wir Sie durch die Interna von Clustern, Endpunkten und Attributen. Mehr dazu in Teil 2.

Weitere Informationen:

Tim Conrad — Senior Security Consultant

11. August 2022

Do you have any questions or would you like to realise a Matter project?

Patrick Sernetz — Head of Solution Architecture

Hi, I'm Patrick. Do you have any questions about Matter? Feel free to contact me by e-mail.