So sichern Sie die Kommunikation von IoT-Komponenten mit einem einzigen Chip

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Die Sicherung eines IoT-Designs erfordert mehr als verschlüsseltes Messaging. Die Entwickler müssen die Sicherheit weiter ausbauen, die mit den zugrunde liegenden geheimen Schlüsseln durch Authentifizierung, sichere Sitzungen und sicheres Messaging geboten wird. Jedoch führen die Komplexität des Designs, seine Umsetzung sowie funktionale Aspekte einer intakten Sicherheitskette dazu, dass bei vielen Projekten Kompromisse bei der Sicherheit zugunsten von reduzierten Kosten und reduzierter Entwicklungszeit eingegangen werden.

Diese Notwendigkeit von Kompromissen nimmt allerdings ab – zu einem großen Teil durch Bausteine, mit denen Entwickler auf einfache Weise umfassende Sicherheitsfunktionen in IoT-Komponenten und anderen tief eingebetteten Systemen implementieren können. Ein solcher Baustein ist der MAXQ1061 von Maxim Integrated.

Dieser Artikel beschreibt, wie IoT-Sicherheitssysteme vor der Einführung des MAXQ1061 funktionierten, und zeigt, wie sich mit dem Baustein das Sicherheitsproblem auf der Transportschicht schnell lösen lässt.

Sicherheit ist eine Grundvoraussetzung für das IoT

Vom IoT erwarten seine Benutzer – und das ist seine Grundidee –, dass Anwendungen Datenströme verarbeiten, in denen detaillierte Informationen zum Benutzer, seiner Umgebung und seiner Ausrüstung ausgetauscht werden. Ein Kerngedanke dieser Idee ist, dass diese Anwendungen geschützt sind und die Integrität und Authentizität der Daten gewährleistet sind. Doch die inzwischen bekannt gewordenen Angriffe auf die Systeme und Daten stellen diese Fähigkeit weiterhin in Frage. Entsprechend ist das Interesse an effektiveren Lösungen für die Sicherung von Daten und Systemen stark gewachsen.

Auf der Geräteebene können Entwickler bereits MCUs mit integrierter Hardwarebeschleunigung einsetzen. Sie ermöglichen die Ver- und Entschlüsselung von Daten mit einer Vielzahl von Chiffren, darunter etwa AES, SHA und 3DES. Und doch ist die Datenver- und -entschlüsselung nur ein Mosaikstein unter den Funktionen, die es zur Sicherung von IoT-Anwendungen mithilfe von Standardsicherheitsprotokollen wie TLS (Transport Layer Security) bedarf.

TLS bietet ein Standardprotokoll für die sichere Netzwerkkommunikation zwischen Servern und Clients, wie Webbrowsern und IoT-Komponenten. Bei diesem Protokoll erfolgt die Kommunikation als eine Abfolge von einzelnen sicheren Sitzungen. Diese Sitzungen enthalten Sicherheitsparameter, die üblicherweise für jede einzelne Sitzung eindeutig festgelegt werden. Es sei hier angemerkt, dass TLS auch Methoden der Wiederverwendung von Sitzungssicherheitsparametern aus einer Sitzung in der nächsten umfasst, doch diese Methoden können IoT-Anwendungen zusätzlichen Sicherheitsbedrohungen aussetzen und sollen daher in dieser Diskussion nicht berücksichtigt werden.

Beim TLS-Protokoll beginnen Clients und Server eine TLS-Sitzung, indem Sie das TLS Handshake Protocol nutzen (Abbildung 1). Dabei wird jede Gerät-zu-Server-Verbindung authentifiziert und ein „Master Secret“ erstellt – ein privater Kryptographieschlüssel, der während des TLS Record Protocol gemeinsam verwendet wird, um die während der Sitzung ausgetauschten Daten zu verschlüsseln und zu entschlüsseln. Bei jedem Schritt in diesem Handshake Protocol gewährleisten Clients und Server die Sicherheit des Prozesses durch Nutzung mehrerer grundlegender Sicherheitsmechanismen, wozu die Speicherung des privaten Schlüssels, die echte Generierung von Zufallszahlen und standardmäßige Ver- und Entschlüsselungsalgorithmen zählen.

Abbildung des TLS Handshake Protocol

Abbildung 1: Das TLS Handshake Protocol beruht auf Sicherheitsmechanismen, wozu die sichere Speicherung, die echte Generierung von Zufallszahlen und die Kryptographie zählen. Diese ermöglichen die Durchführung der Abfolge von Schritten, die zur gegenseitigen Authentifizierung und Erzeugung eines gemeinsamen geheimen Master-Schlüssels für den nachfolgenden Datenaustausch mit dem TLS Record Protocol erforderlich sind. (Bildquelle: Wikimedia)

Muss ein Client wie eine IoT-Komponente eine Verbindung zu einem Server herstellen, beginnt er den TLS-Handshake durch Senden einer client_hello-Nachricht, die eine Zufallszahl sowie Informationen zur Fähigkeit des Clients enthält, bestimmte TLS-Methoden zu unterstützen. Der Server antwortet mit der Auswahl der zu verwendenden TLS-Methoden, seines Zertifikats (öffentlicher Schlüssel des Servers) und anderer Details, die von der Art der Cipher-Suite und der verwendeten Sicherheitsrichtlinie abhängig sind.

Beispielsweise authentifizieren zwar Web-Anwendungen den Server normalerweise allein, die Sicherung von IoT-Anwendungen verlangt jedoch, dass beide Geräte – Client und Server – sich gegenseitig authentifizieren, um Bedrohungen wie Man-in-the-Middle-Angriffe abzuwehren. Ohne die Client-Authentifizierung könnten nicht autorisierte Geräte so tun, als seien sie legitime Geräte, und sich mit dem IoT-Netzwerk verbinden, um eine Eintrittspforte für bösartige Aktionen zu öffnen. Zur Implementierung der gegenseitigen Authentifizierung sendet der Server in dieser Phase eine Anforderung für das Client-Zertifikat.

In der nächsten Phase der Handshake-Verhandlungen sendet der Client sein Zertifikat sowie einen Signatur-Hash des vorherigen Satzes von Nachrichten, der mit seinem privaten Schlüssel erzeugt wurde. Der Server verwendet das Client-Zertifikat (öffentlicher Schlüssel des Geräts) und den Signatur-Hash, um zu überprüfen, ob das anfordernde Client-Gerät tatsächlich seinen privaten Schlüssel besitzt. Dabei überprüft er auch die Geräte-Eigentümerschaft des Client-Zertifikats. In einigen Fällen kann der Client auch ein Pre-Master Secret senden, das unter Verwendung des Server-Zertifikats (öffentlicher Schlüssel des Servers) erzeugt wird.

Schließlich verwenden der Client und der Server jeweils die Zufallszahl (und das Pre-Master Secret, sofern enthalten) zur Berechnung eines „Master Secret“, das als der private Schlüssel für den Datenaustausch über das TLS Record Protocol dient. Mit diesem Verfahren stellt das TLS Handshake Protocol einen sicheren Schlüssel bereit, den sowohl der Client als auch der Server beim Datenaustausch verwenden, ohne dass dabei jemals private Schlüssel über das Netzwerk weitergegeben werden. Sobald sie über das Master Secret verfügen, signalisieren der Client und der Server jeweils das Ende der Handshake-Phase und beginnen den Austausch von Nachrichten. Dabei wird das Master Secret für die Dauer der jeweiligen Verbindungssitzung als Schlüssel zum Verschlüsseln und Entschlüsseln dieser Nachrichten verwendet.

Zur Aufrechterhaltung der Sicherheit während des gesamten Prozesses gelten für das Clientgerät und den Server jeweils grundlegende Anforderungen für die sichere Speicherung von Secrets, einschließlich ihrer individuellen privaten Schlüssel und des Master Secret der Sitzung. Außerdem müssen beide in der Lage sein, echte Zufallszahlen zu generieren. Diese werden benötigt, um Angriffe zu verhindern, die auf einer vorhersagbaren Generierung von Zufallszahlsequenzen basieren.

Zur Performance-Sicherung müssen der Client und der Server in der Lage sein, die Verschlüsselung und Entschlüsselung schnell durchzuführen. Zwar ist der eigentliche Handshake-Prozess weitgehend durch die Netzwerkleistung beschränkt, der nachfolgende Datenaustausch kann jedoch durch die Geschwindigkeit der zugrunde liegenden Kryptographie eingeschränkt sein.

Obwohl Serversysteme üblicherweise die erforderliche Kombination aus Rechenleistung und Schutz bieten, war es für Entwickler von IoT-Komponenten bisher alles andere als einfach, diese Anforderungen mit Designs zu erfüllen, die diese Möglichkeiten bieten, ohne dass sich daraus für das endgültige IoT-Design erhebliche Kosten- und Komplexitätszuwächse ergeben.

Dedizierte Kryptographie-Bausteine wie der MAXQ1061 von Maxim Integrated zeichnen sich durch Integration der gesamten Palette von Funktionen und Fähigkeiten aus, die zur Implementierung der TLS-Kommunikation in IoT-Designs nötig sind.

Integrierte Sicherheit

Der MAXQ1061 von Maxim Integrated ist ein Kryptographie-Controller, der die allgemeinen Anforderungen für die Sicherheit von IoT-Komponenten erfüllt. Neben seinem sicheren Speicher und Kryptographie-Engines enthält der Baustein Firmware, die auf Hardware-Sicherheitsmechanismen aufbaut, um High-Level-Sicherheitsmaßnahmen für TLS und andere Algorithmen sowie Sicherheitsverfahren wie Secure Boot zu implementieren.

Der MAXQ1061 liefert eingebettete Sicherheit, die auf der grundlegendsten Ebene beginnt: mit in den Die und die Schaltung integrierten Vorrichtungen zum Schutz vor Side-Channel-Attacken. Side-Channel-Attacken basieren auf einer gründlichen Analyse der Details eines Designs und seiner Leistungsmerkmale. Auf der Systemebene war eines der frühesten Beispiele für Side-Channel-Attacken gegen Rechenzentren die Ausnutzung von Veränderungen der elektromagnetischen Strahlung, die von Anschlussklemmen und anderen Geräten ausgeht, zum Aushebeln der Sicherheit. TEMPEST-gesicherte Anlagen nutzen physische Schutzmaßnahmen und die EM-Abschirmung, um diese Bedrohungen abzuwehren. Anders als Rechenzentren verfügen IoT-Komponenten jedoch selten über den physischen Schutz vor allen möglichen Gefahren. Vielmehr können böswillige Akteure angesichts des leichten Zugangs zu diesen Komponenten nach Herzenslust die unterschiedlichsten Side-Channel-Attacken starten, wozu sie Leistungsüberwachung, Timing, Akustik und anderen Methoden nutzen. Wie viele andere Sicherheitskomponenten besitzt auch der MAXQ1061 eine Reihe von Gegenmaßnahmen, die in den Die und die Schaltung integriert und in das Schaltungsdesign einbezogen sind, um diesen verschiedenen Bedrohungen zu begegnen.

Side-Channel-Attacken erfordern oftmals anspruchsvolle Laboreinrichtungen und Analyseausrüstung, die in der Regel nur großen Unternehmen und nationalen Organisationen zur Verfügung stehen. Dagegen stützt sich eine der einfachsten Methoden zur Überwindung der Sicherheitsmaßnahmen in Designs, die im Zusammenhang mit Kryptographie-Komponenten entwickelt werden, auf dem Abfangen geheimer Daten. Dieses Abfangen kann in einer der vielen Phasen ihrer Verwendung erfolgen, und zwar innerhalb und zwischen der Host-MCU, dem Speicher und den Begleitkomponenten des Kryptographie-Bausteins.

Hacker versuchen, auf Daten zuzugreifen, die sich in einem oder mehreren der drei üblichen Stadien befinden: in Ruhe, in Übertragung oder in Gebrauch. Der MAXQ1061 eliminiert diese Angriffsflächen, indem er einen sicheren Speicher zum Schutz von in Ruhe befindlichen Daten bereitstellt und sichergestellt, dass jegliche Verwendung von geheimen Daten im Gerät selbst erfolgt, wodurch das Abfangen von Daten während der Übertragung oder im Gebrauch verhindert wird. Mit seinen 32 KB an integriertem sicheren EEPROM bietet der Baustein Speicherplatz für alle Schlüssel, Zertifikate und kritische Daten durch ein flexibles Dateisystem, das benutzerdefinierte Sicherheitsrichtlinien unterstützt. Gleichzeitig bietet der Baustein die erforderliche Flexibilität zur Unterstützung benutzerdefinierter Sicherheitsimplementierungen. Das ermöglicht Entwicklern das Exportieren des Master Secret, um zum Beispiel während der Meldungsbearbeitung verwendet zu werden.

Zwar bieten auch andere Kryptographie-Bausteine die sichere Speicherung, doch der MAXQ1061 unterscheidet sich durch Integration von Hardware-Engines und Firmware, die zur Ausführung kryptographischer Algorithmen und Durchführung von Protokollen auf höherer Ebene wie etwa TLS benötigt werden (Abbildung 2). Sichere Daten müssen niemals den Chip verlassen, was die entsprechenden Angriffsflächen wirksam eliminiert.

Schaltbild des Kryptographie-Controllers MAXQ1061 von Maxim Integrated

Abbildung 2: Der Kryptographie-Controller MAXQ1061 von Maxim Integrated integriert grundlegende Sicherheitsmechanismen, die für die sichere TLS-Kommunikation erforderlich sind. Er bietet Entwicklern eine einfache Lösung für die komplexen Herausforderungen einer sicheren Kommunikation. (Bildquelle: Maxim Integrated)

Die integrierten Verschlüsselungs-Beschleuniger sind für ein weiteres praktisches Problem der TLS-Implementierung hilfreich. Die TLS-Leistung ist von der Geschwindigkeit der zugrunde liegenden Kryptographie abhängig. Dieses Problem zeigt sich daran, wie das TLS-Protokoll oftmals umgesetzt wird: Entweder wird eine hochgradig sichere (aber langsame) asymmetrische Kryptographie wie ESDSA (Elliptic Curve Digital Signature Algorithm) in Verbindung mit dem TLS Handshake Protocol genutzt oder eine weniger sichere (aber schnellere) symmetrische Kryptographie wie etwa AES (Advanced Encryption Standard) in Verbindung mit dem TLS Record Protocol. Der MAXQ1061 unterstützt diesen Ansatz, indem er nicht nur die TLS-Ausführung beschleunigt, sondern auch deren Implementierung in IoT-Designs drastisch vereinfacht.

Die in den MAXQ1061 integrierte kryptographische Toolbox kombiniert Hardware-beschleunigte Kryptographie mit geschützter Firmware, wodurch kritische Schichten von TLS sowie SSL (Secure Sockets Layer) und DTLS (Datagram Transport Layer Security) implementiert werden. Bei der Durchführung der Protokolle TLS Handshake und TLS Record entlastet der MAXQ1061 die Host-MCU, indem er die detaillierten Transaktionen bei jeder Abfolge von Operationen übernimmt (Abbildung 3). Für TLS stellt der Baustein das Client-Zertifikat bereit und übernimmt die Authentifizierungssequenz mit dem Remote-Server. Für allgemeine kryptographische Anforderungen mit TLS Record Exchange nutzt der Baustein die integrierte Hardware-basierte AES-Engine zur Beschleunigung von Verschlüsselung und Entschlüsselung.

Abbildung, wie der MAXQ1061 die Host-MCU entlastet

Abbildung 3: Der MAXQ1061 entlastet die Host-MCU, indem er wichtige Sequenzen der Protokolle TLS Handshake und TSL Record übernimmt, die für die gegenseitige Authentifizierung und den nachfolgenden sicheren Datenaustausch erforderlich sind. (Bildquelle: Maxim Integrated)

Eine integrierte 128-Bit-AES-Engine, die so konzipiert ist, dass sie direkt über den SPI-Kanal des Bausteins wirkt, entlastet den Host-Prozessor, indem sie für eine Fast-Stream-Verschlüsselung und Entschlüsselung sorgt. In diesem Modus streamt ein dedizierter DMA-Controller direkt über die SPI-Schnittstelle Daten zu und von der AES-Engine, wodurch eine On-the-Fly-Kryptographie möglich wird.

Der Baustein bietet eine einfache Hardware- und Software-Schnittstelle für seine Integration mit einer Host-MCU in einem IoT-Design. Mit seinem Evaluierungskit MAXQ1061-KIT demonstriert Maxim Integrated die grundlegende Hardware-Schnittstelle (Abbildung 4). Wie aus dem beiliegenden Schaltplan hervorgeht, unterstützt das Kit sowohl SPI- als auch I2C-Schnittstellen. Erkennbar sind auch die einfachen Schaltungen, mit denen die Weck- und Manipulationserkennungsmechanismen implementiert sind. Das Kit enthält auch Schalteinrichtungen, mit denen Entwickler zwischen verschiedenen Betriebsarten umschalten und die Platine mit einem externen Host-Prozessor verbinden können.

Schaltbild des Evaluierungskits MAXQ1061-KIT von Maxim Integrated (zum Vergrößern klicken)

Abbildung 4: Das Evaluierungskit MAXQ1061-KIT von Maxim Integrated bietet ein grundlegendes Referenzdesign für die Integration des MAXQ1061 und kombiniert SPI- und I2C-Schnittstellenverbindungen mit grundlegenden Schaltungen für andere Funktionen, einschließlich Weckfunktion und Manipulationserkennung. (Bildquelle: Maxim Integrated)

Software-Schnittstelle

Wie bei der Hardware-Schnittstelle verfolgt der Baustein auch bei der Software einen einfachen Ansatz. Auf der untersten Ebene der Software-Schnittstelle nutzt der Baustein ein einfaches Protokoll zur Kommunikation mit der Host-MCU über die SPI- oder I2C-Hardware-Schnittstellen. Um mit dem Baustein zu kommunizieren, sendet ein Host-Prozessor einen Byte-String, der wie folgt formatiert ist:

AA CMD LENGTH DATA CRC

Um also z. B. eine Ping-Abfrage an den Baustein zu senden, würde die Host-CPU den folgenden Byte-String senden:

AA 00 F7 00 04 00 01 02 03 E1 09

Als Antwort sendet der Baustein eine ähnliche Byte-Sequenz mit den folgenden Feldern:

55 ERR_CODE LENGTH DATA CRC

Als Reaktion auf die Ping-Abfrage würde der MAXQ1061 den folgenden Byte-String senden:

55 00 00 00 04 00 01 02 03 22 32

Natürlich abstrahiert das Softwarepaket von Maxim Integrated diese Low-Level-Operationen in einer Abfolge von funktionell intuitiven Aufrufen an die bereitgestellte Bibliothek und die zugrunde liegende API (Application Programming Interface). Darüber hinaus vereinfacht die Software von Maxim Integrated die Software-Architektur, indem sie ihre API auf vorhandenen SPI- und I2C-Treibern innerhalb einer Zielplattform aufbaut (Abbildung 5).

Schematische Darstellung des Softwarepakets des Maxim MAXQ1061

Abbildung 5: Das Softwarepaket des MAXQ1061 umfasst einen vollständigen TLS-Stack, der die Hardware-basierten TLS-Mechanismen des Bausteins nutzt, und verwendet eine API, die auf dem Standardtreibersatz jeder Ziel-Host-Plattform aufbaut. (Bildquelle: Maxim Integrated)

Für TLS-Operationen nutzt die Softwareumgebung des MAXQ1061 eine Version von mbed TLS, die zur Nutzung der speziellen Sicherheitsfunktionen des Bausteins modifiziert wurde. Für Softwareentwickler bietet mbed TLS eine Abstraktionsebene oberhalb vom TCP/IP-Netzwerk-Stack der Zielplattform.

Für erfahrene Softwareentwickler bedeutet die Verwendung von mbed TLS einfach, dass vertraute Anrufe an die Netzwerkebene in mbed-TLS-Funktionsaufrufe umgewandelt werden müssen – zum Beispiel durch Ändern von read-Aufrufen an die Netzwerkebene zu mbedtls_ssl_read- und write-Aufrufe zu mbedtls_ssl_write. Zur Nutzung der MAXQ1061-Funktionen brauchen erfahrene mbed-TLS-Entwickler nur die von Maxim Integrated bereitgestellte Version des mbed-TLS-Stacks zu verwenden.

Fazit

Angesichts immer ausgefeilterer Sicherheitsbedrohungen erweist sich die Fähigkeit zur Durchführung der Authentifizierung und zur sicheren Kommunikation zunehmend als entscheidende Anforderung an IoT-Komponenten und alle angeschlossenen Systeme. Für Entwickler bietet der MAXQ1061 und die begleitende Software eine einfache Möglichkeit zur Implementierung grundlegender Sicherheitsmaßnahmen in ihren Anwendungen. Schlüsselsicherheit, High-Speed-Kryptographie und TLS-Kommunikation bilden zwar nur einen Teil einer umfassenden Sicherheitsrichtlinie, und doch bietet der MAXQ1061 eine solide Sicherheitsgrundlage zur Implementierung von Richtlinien auf höherer Ebene, die zum Schutz vor neuen Bedrohungsarten nötig sind.

DigiKey logo

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der DigiKey oder offiziellen Politik der DigiKey wider.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey