Eckdaten

Die Entwicklung einer durchgängig sicheren Kommunikation zwischen IoT-Geräten führt wegen reduzierter Kosten und Entwicklungszeiten häufig zu Kompromissen in der Sicherheit. Mit umfassenden integrierten Sicherheitsfunktionen entgegnet der MAXQ1061 diesem Problem und erlaubt eine schnellere Implementierung in IoT-Komponenten und anderen tief eingebetteten Systemen. Mit diesem Baustein lassen sich Sicherheitsprobleme auf der Transportschicht schnell lösen.

Die Sicherung eines IoT-Designs erfordert mehr als verschlüsselter Datenaustausch. 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 als Grundvoraussetzung

Vom Internet of Things 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.

Maßnahmen auf der Transportschicht

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.

Sicherheitsmechanismen des TLS-Handshake-Protocol

Bild 1: Das TLS-Handshake-Protocol beruht auf Sicherheitsmechanismen wie sichere Speicherung, echte Generierung von Zufallszahlen und Kryptographie. Digi-Key / Wikimedia

Beim TLS-Protokoll beginnen Clients und Server eine TLS-Sitzung, indem sie das TLS Handshake Protocol nutzen (Bild 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.

Erste Kontaktaufnahme

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.

Seite 1 von 41234