Android-basierte IoT Embedded Lösungen

Encryption Key Injection für einen BT-PAN-Kanal

IoT Embedded Lösungen

Android hat sich in den letzten Jahren als eine der treibenden Kräfte für den Erfolg des IoT erwiesen. Die Kombination aus stabilem Kernel, Verfügbarkeit von Open-Source-Bibliotheken und wegfallenden Lizenzgebühren hat Android zu einer beliebten IoT Embedded-as-a-Platform-Lösung gemacht.

Concept Reply verfügt durch die Erstellung kundenspezifischer Versionen des Android-Betriebssystems über umfangreiche Erfahrung in der Entwicklung von Android-basierten IoT-Embedded-Systemen, um dem zunehmend differenzierteren Bedarf der Kunden an Konnektivität gerecht zu werden. Für diese Anforderungen reicht die Kompetenz der IoT-Experten von Concept Reply von Kernelanpassungen bis hin zu Entwicklungen auf Anwendungsebene.

Die Frage der Sicherheit

Ein Thema steht hierbei immer im Mittelpunkt: Durch das wachsende IoT-Geschäft und die stetig zunehmende Vernetzung intelligenter Geräte, wird das Thema Security zwangsläufig zu einem vorrangigen Anliegen für alle, ganz gleich, ob Verbraucher, Marktteilnehmer oder Regulierungsbehörden.

Concept Reply bietet seinen Kunden daher professionelle Beratung über die effektivsten Sicherheitspraktiken, die während des gesamten Softwareentwicklungslebenszyklus anzuwenden sind.

Standardprozesse sind nicht ausreichend

In einem kürzlich abgeschlossenen Projekt stattete Concept Reply für einen großen Automobilhersteller zwei Controller seiner IoT-Embedded-Plattform, die in zwei separaten Electronic Control Units untergebracht sind, mit einem Bluetooth Personal Area Network (BT-PAN) aus. Dank BT-PAN kann eine der Steuerungen als Internet-Gateway für die andere fungieren und die Kommunikation mit dem Backend sicherstellen.

Ein solches Projekt ist auf Android in drei Hauptschritten relativ einfach umzusetzen:
1. Einstellen der Voraussetzungen für den lokalen Bluetooth-Adapter
(Radio eingeschaltet, aktiviert, Remote-Adresse eingestellt, etc.)
2. Auslösen des traditionellen Kopplungsprozesses
3. Aktivieren des lokalen PAN-Dienstes, Einstellen der richtigen Rolle
(z.B. PANU oder NAP) und Verbinden mit dem PAN-Dienst des Remote Device

In Android ist die Funktionalität für die Durchführung dieser drei Schritte verfügbar und umfassend dokumentiert. Während dieser traditionelle Ansatz den Vorteil hat, dass er schnell Ergebnisse liefert, gibt es darüber hinaus Optionen, die sich als besser geeignet herausgestellt haben, wenn es darum geht, das höchste Sicherheitsniveau zu gewährleisten. Der Grund dafür liegt in seinem Kern - dem Paarungsprozess, dessen Diagramm unten dargestellt ist:

Pairing Process

Standard-Lösung

Das obige Schema basiert auf zwei Hauptpunkten:

  • Teileauthentifizierung: Lokale und Remote-Geräte erzeugen ihre Schlüssel und tauschen sie untereinander aus, indem sie auf einen asymmetrischen Verschlüsselungsmechanismus zurückgreifen (in diesem Fall das Elliptic Curve Diffie-Hellman (ECDH) Protokoll).
  • Kanalverschlüsselung: Sobald beide Teile die Authentifizierungsphase abgeschlossen haben, haben sie alles, was sie brauchen, um einen Sitzungs-/Linkschlüssel zu erzeugen, mit dem sie von diesem Moment an Daten verschlüsseln, die durch den Bluetooth-Kanal gehen. Dies geschieht unter Verwendung eines symmetrischen Verschlüsselungsalgorithmus, der traditionell schneller ist als asymmetrische.

Der Authentifizierungsteil erfordert eine Geräteerkennung, die wiederum voraussetzt, dass das gesuchte Gerät auffindbar ist, das heißt, sich selbst ankündigt. Und hier liegt ein Sicherheitsproblem: Indem Bluetooth-Geräte auffindbar gehalten werden, bieten sie einen Angriffspunkt für Hacker, die dem System schädigen möchten.

Die Concept Reply Lösung

Um diese Sicherheitsschwäche auf Designniveau zu beheben, verfolgt Concept Reply einen eigenen Ansatz:

  • Der Part der Authentifizierung wird indirekt implementiert, indem ein anderer Controller verwendet wird, der sich bereits als Drittgerät im Zielsystem befindet und sich um die folgenden Punkte kümmert:
    o Generierung des Sitzungs-/Linkschlüssels
    o Weitergabe des generierten Sitzungs-/Linkschlüssels an den Android-Controller und den neuen Controller.
  • Beide Parteien, zum Beispiel der Android-Controller und der neue Controller, führen auf ihren jeweiligen Stacks die sogenannte Encryption Key Injection durch. Das heißt, der Schlüssel, der auf Anwendungsebene vom Drittanbieter-Controller empfangen wird, propagiert ihn auf den unteren Schichten und speichert ihn in seinem Bluetooth-Adapter, der die letztendlich auf der physikalischen Ebene verantwortliche Komponente ist.
  • Der injizierte Schlüssel wird verwendet, um den Kommunikationskanal mit einem symmetrischen Verschlüsselungsalgorithmus zu verschlüsseln, wie es auch beim traditionellen Ansatz der Fall ist.

Der alternative Ansatz erfordert jedoch eine sorgfältige Analyse und Überarbeitung des bestehenden Stacks.
In Android kann dies wie folgt dargestellt werden:

Alternative Process

Die wichtigsten Schritte im Detail

Die sorgfältige Überarbeitung eines so großen Stacks (durchgeführt in C, C++ und Java) lässt sich wie folgt zusammenfassen:

  • Im Application Framework wurde ein Java-Service hinzugefügt, der für den Empfang und die Validierung des Link-Keys von dem für die Orchestrierung zuständigen Third Party Controller zuständig ist.
  • Wenn ein empfangener Verbindungsschlüssel gültig ist, wird er an die Bluetooth-Prozessschicht weitergeleitet, wobei ein AIDL-basierter Remote-Prozeduraufruf speziell für diesen Zweck definiert wurde.
  • In der Bluetooth-Prozessschicht wiederum wurden die Rollen der Steuerung (das heißt diejenige, die als Internet-Gateway und diejenige, die als Client fungieren soll) und die C++-API in der Hardware-Abstraktionsschicht (HAL) definiert, um den Link-Key an den Bluetooth-Stack (bluedroid) weiterzuleiten.
  • Innerhalb des Bluetooth-Stacks wurden die richtigen Funktionen in C-Sprache entwickelt, um ein XML-Profil des Remote-Gerät-/Linkschlüsselpaares zu erstellen, es im Controller-Speicher zwischenzuspeichern und in den Bluetooth-Adapterspeicher einzuspeisen.

Das Ergebnis


Wie hier beschrieben, erforderte dieser Ansatz zum Aufbau einer Bluetooth-PAN-Verbindung ein massives Refactoring über den gesamten Stack hinweg.

Dennoch wurden zusammen mit Concept Reply als erfahrener Partner die Design- und Implementierungsherausforderungen gemeistert, um dem Kunden eine stabile und effektive Lösung termingerecht zu liefern.

Concept Reply ist ein auf innovative IoT-Lösungen spezialisierter Softwareentwicklungspartner und bietet von der Idee über die Konzeptphase bis hin zu Implementierung, Betrieb und Support Lösungen für seine Kunden in den Bereichen Smart Infrastructure, Industrial IoT und Connected Car. Mit seinen IoT Spezialisten erstreckt sich das Angebot von der Implementierung im Embedded-Umfeld bis hin zur Gateway Software oder Cloud-Applikation. www.concept-reply.de