
Sicherheit bei HomeKit-Kommunikation
HomeKit bietet eine Infrastruktur zur Automatisierung häuslicher Umgebungen, die Sicherheitsfunktionen von iCloud und von iOS, iPadOS und macOS nutzt, um private Daten zu schützen und zu synchronisieren, ohne dass Apple darauf zugreifen kann.
Identität und Sicherheit basieren bei HomeKit auf einem Ed25519-Schlüsselpaar mit einem öffentlichen und einem privaten Schlüssel. Auf iOS-, iPadOS- und macOS-Geräten wird für jeden HomeKit-Benutzer ein Ed25519-Schlüsselpaar erzeugt, das die HomeKit-Identität des jeweiligen Benutzers darstellt. Die Identität wird für die Kommunikation zwischen iOS-, iPadOS- und macOS-Geräten untereinander und zwischen iOS-, iPadOS- und macOS-Geräten und Zubehörgeräten verwendet.
Die Schlüssel – sie werden im Schlüsselbund gespeichert und nur in verschlüsselte Backups des Schlüsselbunds einbezogen – werden (sofern zugänglich) unter Verwendung des iCloud-Schlüsselbunds auf dem aktuellen Stand gehalten. HomePod und Apple TV empfangen Schlüssel per „Antippen für die Konfiguration“ oder über den unten beschriebenen Konfigurationsmodus. Schlüssel werden von einem iPhone via Apple IDS (Identity Service) mit einer gekoppelten Apple Watch geteilt.
Kommunikation zwischen HomeKit-Zubehörgeräten
HomeKit-Geräte erstellen ihr eigenes Ed25519-Schlüsselpaar für die Kommunikation mit iOS-, iPadOS- und macOS-Geräten. Beim Zurücksetzen eines Geräts auf die Werkseinstellungen wird ein neues Schlüsselpaar generiert.
Um eine Verbindung zwischen einem iOS-, iPadOS- oder macOS-Gerät und einem HomeKit-Gerät herzustellen, werden die Schlüssel über das 3072-Bit-Protokoll „Secure Remote Password“ ausgetauscht, wofür ein achtstelliger Code des Geräteherstellers verwendet wird, der vom Benutzer auf dem iOS- oder iPadOS-Gerät eingegeben und per ChaCha20-Poly1305 AEAD mit per HKDF-SHA-512 hergeleiteten Schlüsseln verschlüsselt wird. Die MFi-Zertifizierung des Geräts wird bei der Konfiguration ebenfalls überprüft. Geräte ohne einen MFi-Chip können die Unterstützung für die Softwareautorisierung unter iOS 11.3 (und neueren Versionen) integrieren.
Wenn das iOS-, iPadOS- oder macOS-Gerät und das HomeKit-Gerät bei laufendem Betrieb kommunizieren, authentifizieren sie sich gegenseitig über die zuvor ausgetauschten Schlüssel. Jede Sitzung wird über ein Station-to-Station-Protokoll hergestellt und mit von HKDF-SHA-512 abgeleiteten Schlüsseln verschlüsselt, die auf für diese Sitzung erzeugten Curve25519-Schlüsseln basieren. Dies gilt sowohl für IP-basierte Geräte als auch für BLE-Geräte (Bluetooth Low Energy).
BLE-Geräte, die Broadcast-Mitteilungen unterstützen, werden mit einem Broadcast-Verschlüsselungsschlüssel ausgestattet und durch ein gekoppeltes iOS-, iPadOS- oder macOS-Gerät über eine sichere Sitzung bereitgestellt. Dieser Schlüssel wird verwendet, um die Daten über Statusänderungen auf den Geräten zu verschlüsseln, die mittels BLE-Ankündigungen benachrichtigt werden. Der Broadcast-Verschlüsselungsschlüssel ist ein per HKDF-SHA-512 hergeleiteter Schlüssel; die Daten werden mithilfe des ChaCha20-Poly1305 AEAD-Algorithmus verschlüsselt. Der Broadcast-Verschlüsselungsschlüssel wird regelmäßig vom iOS-, iPadOS- oder macOS-Gerät geändert und via iCloud auf anderen Geräten aktualisiert (siehe Beschreibung unter HomeKit-Datensicherheit).
HomeKit und Siri
Siri kann verwendet werden, um Geräte abzufragen und zu steuern und Szenen zu aktivieren. Minimale Informationen zur Konfiguration des Zuhauses werden anonym an Siri gesendet, um Namen von Zimmern, Geräten oder Szenen bereitzustellen, die für die Erkennung von Befehlen erforderlich sind. Audiodaten, die an Siri gesendet werden, können bestimmte Geräte oder Befehle enthalten. Die Siri-Daten werden aber nicht mit anderen Apple-Funktionen (z. B. HomeKit) assoziiert.
Siri-fähige HomeKit-Geräte
Mit der Home-App können Benutzer auf Siri-fähigen Geräten neue Funktionen wie Siri und andere HomePod-Funktionen wie Timer, Wecker, Intercom und Türklingel aktivieren. Wenn diese Funktionen aktiviert sind, kommuniziert das Gerät mit dem gekoppelten HomePod, der diese Apple-Funktionen bereitstellt, im lokalen Netzwerk. Audiodaten werden zwischen den Geräten über verschlüsselte Kanäle ausgetauscht, die sowohl HomeKit- als auch AirPlay-Protokolle nutzen.
Bei aktivierter Funktion „Auf ‚Hey Siri‘ achten“ wird mit einer lokal auf dem Gerät ausgeführten Trigger-Engine überprüft, ob der Befehl gesprochen wird. Erkennt die Engine den Befehl, sendet sie das Audiomaterial mit HomeKit direkt an den gekoppelten HomePod. Der HomePod führt eine zweite Überprüfung des Audiomaterials durch und bricht die Sitzung gegebenenfalls ab, wenn der Trigger-Befehl nicht enthalten ist.
Wenn die Funktion zum Aktivieren von Siri durch Berührung eingeschaltet ist, können Benutzer eine spezielle Taste auf dem Gerät drücken, um eine Konversation mit Siri zu starten. Das Audiomaterial wird direkt an den gekoppelten HomePod gesendet.
Nachdem eine erfolgreiche Aktivierung von Siri erkannt wurde, sendet der HomePod das Audiomaterial an die Siri-Server und führt mit denselben Sicherheits-, Datenschutz- und Verschlüsselungsmaßnahmen, die der HomePod beim Verarbeiten von direkt an den HomePod gestellten Anfragen anwendet, den vom Benutzer initiierten Vorgang aus. Wenn Siri eine Antwort in Audioform hat, wird diese über einen AirPlay-Audiokanal an das Gerät gesendet. Für einige Siri-Anfragen sind zusätzliche Informationen vom Benutzer erforderlich (beispielsweise bei der Nachfrage, ob der Benutzer weitere Optionen hören möchte). In diesem Fall empfängt das Gerät den Hinweis, dass der Benutzer zu einer Eingabe aufgefordert werden sollte. Das zusätzliche Audiomaterial wird an den HomePod gestreamt.
Das Gerät muss einen visuellen Indikator besitzen, um dem Nutzer anzuzeigen, wann es aktiv auf Befehle achtet (beispielsweise eine LED). Das Gerät erhält keine Informationen über die Siri-Anfrage, sondern nur für den Zugriff auf den Audiostream. Es werden keine Benutzerdaten auf dem Gerät gespeichert.