Das Internet of Things (IoT) ist zurzeit ein Hypethema par excellence. Es bezeichnet die Kombination von physischen Produkten mit digitalen Diensten, z.B. von Maschinen einer Fabrik mit Diensten für die Früherkennung von Maschinenstörungen, von Haushaltsgeräten mit Diensten für die Optimierung ihres Stromverbrauchs oder die moderne Gebäude- automation. Die digitalen Dienste können dabei zentral als Cloud Services realisiert sein, dezentral z. B. auf Smartphones, oder als Kombination von Smartphone-Apps und Cloud Services.
Doch benötigt jedes Accessory seine eigene App?
Typischerweise kommt mit jedem Smart Device eine eigene App. Es ist selten möglich, eigene Apps für solche Accessories zu schreiben, da die Kommunikationsprotokolle auf Anwendungsebene proprietär sind. Folglich gibt es auch keine Interoperabilität zwischen Produkten verschiedener Anbieter. Für den Endbenutzer hat dies äusserst lästige Konsequenzen: Für Lampen von drei verschiedenen Herstellern muss er drei verschiedene Apps installieren und bedienen lernen, und es ist keine Automation möglich, um beispielsweise abends automatisch alle Lampen im Aussenbereich abzuschalten und die Aussentüren zu schliessen.
Es gibt verschiedene Initiativen, um dieses Problem mittels standardisierter Anwendungsprotokolle zu lösen, zum Beispiel die AllJoyn-Initiative von Qualcomm und einer Reihe weiterer Firmen; Googles Thread, Weave und Brillo Technologien; oder Apples HomeKit-Initiative. In diesem Artikel wird HomeKit genauer betrachtet.
Mit Apple-HomeKit alles in einem App verwalten – einfach und sicher
Apples Ziel für HomeKit besteht darin, das Benutzererlebnis komfortabler zu machen, etwa durch Vereinfachung und Standardisierung des Installationsprozesses für neue Accessories, sowie durch einen Qualitätssicherungsprozess: jedes HomeKit-Accessory muss eine Apple-Zertifizierung durchlaufen. Neben Einfachheit der Benutzung und Interoperabilität gibt es eine dritte Qualität, die bei der Entwicklung von HomeKit eine massgebliche Rolle gespielt hat: Sicherheit. Dazu hat Apple auf Anwendungsebene ein eigenes End-to-End-Sicherheitsprotokoll entwickelt: das HomeKit-Accessory-Protocol (HAP). HAP ist in iOS 9 implementiert und benutzt WLAN, Ethernet oder BLE als Transportschicht, um mit Accessories zu kommunizieren. Ein HomeKit-kompatibles Accessory muss die HAP-Spezifikation erfüllen, wobei Apple die Entwicklung der nötigen Software auf Seite Accessory der Halbleiterindustrie überlässt. Auf Seite iPhone bietet iOS eine Programmierschnittstelle (API), die es jedem iOS-Programmierer erlaubt, eigene HomeKit-Apps zu schreiben. Eine solche App kann auf alle HomeKit-kompatiblen Accessories zugreifen, egal von welchem Anbieter. Eine Reihe von Standardprofilen sind vordefiniert, beispielsweise für Lampen, Türschlösser, Thermostate, Garagentore usw. Falls die Funktionalität dieser Profile nicht ausreicht, kann ein Accessory-Produzent sie erweitern oder auch komplett neue, eigene Profile definieren.
Schritt für Schritt entsteht ein System, mit dem jeder mitwachsen kann
Da das HomeKit ein komplexes System mit vielen Teilnehmern darstellt (Apple-Gerät, Hausbesitzer, Mitbewohner, Gäste, Accessory-Hersteller, Auftragsfertiger, Halbleiterhersteller, App-Entwickler, Installateure), führt Apple diese Technologie nicht wie gewohnt mit einem «Big Bang» ein, sondern quasi schleichend: Zuerst die technischen Grundlagen an ihrer Entwicklerkonferenz 2014 und kürzlich eine erste Webseite für Konsumenten. Das ganze System ist langsam im Entstehen. Erste kompatible Produkte von kleineren Firmen kamen im Sommer 2015 auf den Markt, seit Oktober ist mit der neuen Philips-Hue-Bridge auch ein Schwergewicht auf den Markt gekommen. Weitere wie z. B. General Electric haben Produkte angekündigt. Das HomeKit funktioniert normalerweise in einem lokalen Netz und benötigt deshalb keine permanente Cloud-Verbindung. Mittels Apple-TV kann man jedoch auch über das Internet auf die eigenen Geräte zugreifen und sie mittels Siri-Sprachkommandos fernsteuern.
So viel Aufwand treiben wie nötig, aber nicht mehr
Bei Home Automation muss Security eine zentrale Rolle spielen. Potentiell kann ein Nachbar per Funk das Torschloss der Haustür hacken. Apple hat mit HAP zwar ein eigenes Protokoll entwickelt, jedoch auf bewährte State-of-the-Art-Verschlüsselungsalgorithmen zurückgegriffen:
- Secure Remote Password (SRP) der Stanford University
- Curve25519, ChaCha20 und Poly1305 der University of Illinois, Chicago
SRP wird für das initiale Pairing eines Gerätes mit einem Smartphone benutzt. Dieser Algorithmus ist sehr rechenintensiv – ohne Optimierungen ca. 60 Mio. Multiplikationsoperationen. Zudem benötigt er relativ viel RAM für einen Low-Cost-Mikrocontroller. Die anderen genannten Algorithmen implementieren Elliptic-Curve-Cryptography für einzelne Sessions. Auch sie sind rechenintensiv, mit ca. einer Million Multiplikationsoperationen pro Verbindungsaufbau. Beim Pairing werden Langzeitschlüssel ausgetauscht. Während einer Session werden Kurzzeitschlüssel ausgetauscht auf eine Art, welche sogenannte Forward-Secrecy sicherstellt: Selbst falls der Datenverkehr aufgezeichnet wird und die Langzeitschlüssel dem Angreifer später zugänglich werden, kann er den Datenverkehr trotzdem nicht nachträglich entschlüsseln.
Damit hat Apple ein sehr ambitiöses Sicherheitsprotokoll definiert. Es ist nicht trivial, HAP z. B. für einen Cortex-M0-Mikrocontroller mit 32 KByte RAM zu implementieren. Erste HAP-Implementierungen benötigten teilweise eine Grössenordnung zu viel Speicher und für einen Verbindungsaufbau mehrere 10 s. Dies brachte HomeKit die Kritik ein, dass HAP-Security zu überdimensioniert sei, da sie nicht zu konkurrenzfähigen Preisen implementiert werden könne.
Schweizer Know-how
Die Schweizer Firma Oberon Microsystems, ein Spin-Off der ETH Zürich, hat sich seit über 15 Jahren mit IoT-Projekten beschäftigt, und damit auch den entsprechenden Security-Herausforderungen. Für einen industriellen IoT-Gateway entwickelte Oberon einen sicheren Firmware-Update-Mechanismus auf Basis eines Cortex-M4-Mikrocontrollers. Um Firmware-Updates signieren und verschlüsseln zu können, wurde die NaCl-Elliptic-Curve-Bibliothek verwendet. Durch eine Kombination aus mathematischen Umformungen und optimierter Assemblerprogrammierung konnte der bereits recht schnelle NaCl-Code um bis zum Faktor 30 beschleunigt werden.
Als Apple sein HomeKit angekündigt hat, erkannte Oberon, dass die von Apple gewählten Algorithmen zur gleichen Familie wie die NaCl-Algorithmen gehören und der vorhandene Code entsprechend angepasst werden kann. Damit war die Firma plötzlich in einer hervorragenden Ausgangslage, um Halbleiterhersteller in aller Welt eine hochoptimierte HAP-Implementierung anbieten zu können – made in Switzerland. Nach einer Reihe von Messungen und weiteren Optimierungen läuft der Code inzwischen selbst auf Cortex-M0- und Cortex-M3-Prozessoren hinreichend schnell. Nordic Semiconductor hat als erster Halbleiterhersteller ein HomeKit-Software-Development-Kit herausgebracht, das die Oberon-HAP genannte Bibliothek enthält. Oberon ist ein unabhängiger Anbieter der HAP-Implementierung. Ermöglicht wurde der Erfolg in einer sehr speziellen Marktnische dank spezifischem Know-how und interdisziplinärer Arbeit in den Bereichen Mathematik, Informatik und Elektrotechnik. Inzwischen sind Varianten von Oberon-HAP auch für andere Mikrocontrollerarchitekturen in Arbeit.
Infoservice
Oberon microsystems AG
Neugasse 10, 8005 Zürich
Tel. 044 520 35 21
info@oberon.ch, www.oberon.ch