Dieser Blogbeitrag ist für Entwickler und andere Personen mit technischem Hintergrund und Interesse an einem sicherheitsorientierten Überblick über Matter geschrieben.
Bitte beachten Sie, dass die Matter-Spezifikation ständig weiterentwickelt wird und Teile des Artikels möglicherweise veraltet sind. Wenn Sie einen Fehler entdecken, wenden Sie sich bitte an matter@grandcentrix.net.
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.
Nodes: Eine adressierbare Einheit, die den Matter-Protokollstack unterstützt und (sobald sie in Betrieb genommen wurde) über eine eigene Operational Node ID und Node Operational Credentials verfügt. Ein Gerät kann mehrere Nodes beherbergen.
Fabric: Eine logische Sammlung von kommunizierenden Nodes, die eine gemeinsame Vertrauensbasis und einen gemeinsamen verteilten Konfigurationsstatus haben.
Commissionee: Ein neues Gerät, das zu einer Fabric hinzugefügt/in Betrieb genommen wird, um ein Node zu werden.
Commissioner: Die Rolle, die neue Geräte zur Fabric hinzufügt. Die Inbetriebnahme erfolgt über ein Smartphone oder einen Smart Speaker, die ihrerseits Nodes der Fabric sind.
Administrator: Einen Node mit Administrator-Rechten über einen anderen Node.
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))
Der QR-Code enthält Informationen (siehe Punkt c.) darüber, wie das Gerät in den Inbetriebnahmemodus versetzt werden kann. Ein Beispiel wäre: “Drücken Sie die Taste auf der Rückseite für X Sekunden.” oder “Schalten Sie das Gerät mit gedrückter Lautstärke + Taste ein.”, die nahtlos in die Benutzererfahrung des Smartphones integriert sind. Man muss nicht mehr im Handbuch oder Internet suchen, wie man ein Gerät einrichtet.
Matter ist voll von Funktionen, die es den Kunden sehr komfortabel machen sollen, Matter-Produkte von verschiedenen Anbietern in ihre Netzwerke zu integrieren.
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.
Der Schutz der Privatsphäre kümmert sich um die Verschleierung und Entschleierung von Nachrichten-Header-Feldern nach der Verschlüsselung und Entschlüsselung. Geschützte Felder sind:
Der Nachrichtenzähler (Message Counter)
Quell-ID (Source ID)
Ziel-ID (Destination ID)
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.
Das DCL ist ein verteilter Datenspeicher, der sich im Besitz von CSA-Mitgliedern befindet und von diesen gehostet wird. Er dient der Verfolgung des Zertifizierungsstatus und der vom Hersteller gepflegten Informationen wie Produktname, Produktbeschreibung und URL der Upgrade-Firmware.
Schreibzugriff: Beschränkt auf Mitglieder
Lesezugriff: Jeder
Die DCL könnte den Verlust von Informationen verhindern, wenn ein Anbieter nicht mehr im Geschäft ist, die Geräte aber weiterhin funktionieren und die nahtlose Integration von produktspezifischen Metadaten in die Benutzeroberfläche ermöglichen.
Diese Funktion soll es dem Benutzer ermöglichen, Geräte mit selbst signierten/Entwickler-Geräte-Attestierungszertifikaten in Ihrer Fabric zuzulassen. Der Benutzer erkennt an, dass die Akzeptanz eines Geräts mit fehlgeschlagener Bescheinigung Teile der Sicherheit/Vertrauenswürdigkeit der Fabric unterminieren wird.
Es wird aber auch Technikbegeisterten ermöglichen, ihre eigenen Geräte zu bauen und sie auf der Grundlage der Open-Source-Software Matter zu verwenden.
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.