Skip to main content

Die „Trusted Zone“ für das IoT

Eine Sicherheitslücke kann verheerende Folgen haben, aber durch die Anwendung bewährter Verfahren bei der Entwicklung, wie z. B. die Isolierung sicherheitsrelevanter Hardware in „Trusted Zones“ (vertrauenswürdige Zonen), können Versuche, von außerhalb der Zone auf Inhalte zuzugreifen, eingegrenzt und Faktoren wie Temperatur- und Spannungsschwankungen kontinuierlich überwacht werden.

 

Eine Trusted Zone ist das Fundament für IoT-Sicherheit


Zu den bewährten Sicherheitsverfahren gehört die Systempartitionierung, bei der sicherheitsrelevante Hardware, Software und Daten in einer Trusted Zone getrennt und isoliert werden und alle Versuche, von außerhalb der Zone auf vertrauenswürdige Inhalte zuzugreifen, streng begrenzt werden. Nicht-sichere Software kann nicht direkt auf sichere Ressourcen zugreifen. Die Trusted Zone isoliert sicherheitsrelevante Hardware, Software und externe Geräte der Microcontroller Unit (MCU) (Abbildung 1).

 

Abbildung 1: Eine generische sichere eingebettete Systemarchitektur muss sicherheitsrelevante MCU-Hardware, Software und externe Geräte isolieren. 

 

Innerhalb der Trusted Zone

Sicheres Booten und sicheres Herunterladen


Wenn ein Angreifer ein Embedded-System dazu bringen kann, gefälschten Code als authentisch zu akzeptieren, ist alles verloren. Der gesamte Code muss als vertrauenswürdig verifiziert werden. Während der Herstellung erzeugt die Fabrik ein öffentliches/privates Schlüsselpaar. Der öffentliche Schlüssel wird an einem sicheren Ort in der MCU gespeichert, häufig im OTP-Speicher (One-Time Programming). Wenn die MCU beim Einschalten hochfährt oder einen Download empfängt, prüft sie den Code anhand ihres Schlüssels und weist einen nicht konformen Code zurück.

 

Hardware-Beschleuniger


Die Implementierung eines Advanced Encryption Standard (AES), eines Rivest-Shamir-Adleman) Public-Key-Kryptosystems (RSA) oder des Elliptic-Curve Diffie-Hellman (ECDH)-Algorithmus ist rechenintensiv, so dass Mikrocontroller in sicheren Embedded-Systemen in der Regel Hardware-Beschleuniger enthalten, um alltägliche kryptografische Operationen zu beschleunigen. Spezialisierte Befehle in der MCU greifen dann auf die Beschleuniger zu, um Funktionen wie die AES-Verschlüsselung und -Entschlüsselung durchzuführen.

 

Eine sichere Echtzeit-Uhr (Real Time Clock – RTC)


Eine sichere Echtzeituhr (RTC) verhindert, dass ein Angreifer die Uhreinstellungen manipuliert, um den Systembetrieb zu deaktivieren. Die Funktion wird häufig in einem Überwachungsgerät kombiniert, das kontinuierlich die Systemspannung prüft und bei einem Ausfall der primären Stromversorgung auf ein Batterie-Backup umschaltet; fällt die Spannung des Batterie-Backups ab, signalisiert das Überwachungsgerät ein Manipulationsereignis.

 

Echter Zufallszahlengenerator (True Random-Number Generator – TRNG)


Zufallszahlen sind in sicheren Systemen wichtig, um zufällige kryptografische Schlüssel für die sichere Datenübertragung zu erzeugen. Ein Software-Algorithmus kann eine lange Pseudo-Zufallsfolge erzeugen. Dieser Vorgang ist jedoch deterministisch und daher anfällig für Angriffe, weshalb ein sicherer Mikrocontroller einen Hardware-Zufallszahlengenerator (TRNG) enthalten sollte, der eine unvorhersehbare Ausgabe liefert. TRNGs haben eine bewegte Geschichte – die Zahlen eines frühen Online-TRNGs stammen aus den wächsernen Klecksen, die von einer Lavalampe erzeugt wurden –, aber moderne Implementierungen nutzen thermisches Rauschen oder die Interaktion zwischen mehreren freilaufenden Oszillatoren als Zufallsquellen.

 

Temperatur- und Spannungsüberwachung


Bei Seitenkanalattacken werden Messungen und Analysen von physikalischen Hardwareparametern verwendet, um auf die kryptografischen Funktionen eines Systems oder Chips zuzugreifen und den geheimen Schlüssel zu extrahieren. Überhöhte Temperaturen und Spannungsschwankungen können dann zum Beispiel für Hardware-Angriffe genutzt werden. Wird die Systemspannung unterbrochen, schaltet der On-Chip-Umgebungsmonitor auf eine Notstrombatterie um, und die privaten Schlüssel werden gelöscht.

 

Implementierung einer vertrauenswürdigen Zone für IoT-Anwendungen


Es gibt mehrere Möglichkeiten, eine Trusted Zone für eine embedded Internet-of-Things (IoT)-Applikationen zu implementieren. Ein Ansatz besteht darin, ein externes Bauteil zu verwenden, um die Sicherheitsfunktionen einer MCU zu ersetzen oder zu erweitern und die vertrauenswürdige Sicherheitszone bereitzustellen, die für die Entwicklung anderer sicherheitsrelevanter Funktionen erforderlich ist. Das externe Bauteil kann auch die sichersten Elemente von der komplizierten MCU- oder Memory Protection Unit (MPU)-Hardware trennen, was es einfacher macht, die Trusted Zone vor sicherheitsrelevanten Fehlern und Angriffen zu schützen. Der ATECC608A von Microchip ist ein idealer Sicherheitsbaustein zur Unterstützung und Erweiterung jeder MPU- oder MCU-basierten IoT-Anwendung.

 

Der ATECC608A von Microchip als Trusted Zone für das IoT


Der ATECC608A von Microchip implementiert die kritischen Sicherheitsanforderungen für eine IoT-Applikation in einem winzigen Formfaktor; bei sehr geringem Stromverbrauch und mit einer einfach anzuschließenden Schnittstelle benötigt er nur einen einzigen GPIO über einen großen Spannungsbereich. Da er geräteunabhängig ist, kann er mit einer breiten Palette von MPU- und MCU-Bauteilen zusammenarbeiten. Der ATECC608A bietet alle Sicherheits- und Verschlüsselungsfunktionen, die selbst für die robustesten IoT-Applikationen erforderlich sind – und das bei geringem Platzbedarf. Zu den erweiterten Funktionen gehören:

  • Sicherer Hardware-Schlüsselspeicher für bis zu 16 Schlüssel, Zertifikate oder Daten
  • Hardware-Unterstützung für eine asymmetrische Signatur, Verifizierung und Schlüsselvereinbarung mit ECDSA (FIPS186-3 Elliptic Curve Digital Signature)
  • ECDH: FIPS SP800-56A Elliptic-Curve-Diffie-Hellman
  • NIST-Standard P256 Unterstützung elliptischer Kurven
  • Unterstützung von SHA-256 und AES-128
  • Sichere Boot-Unterstützung
  • Ephemere Schlüsselerzeugung
  • Zufallszahlengenerierung (RNG) gemäß FIPS 800-90 A/B/C
  • Zwei monotone Zähler mit hoher Lebensdauer
  • Garantierte einmalige 72-Bit-Seriennummer

Der ATEC608A ist in drei verschiedenen Versionen erhältlich, die jeweils mit wesentlichen Funktionen vorprogrammiert sind, um gängige Sicherheitsanwendungen einfacher zu unterstützen. Diese drei Versionen sind:

  • Die ATECC608A Trust&GO -Version ist optimiert für TLS-basierte sichere Netzwerk-Authentifizierung. Das Bauteil wird vorkonfiguriert und mit Standard-Thumbprint-Zertifikaten und einem Schlüssel ausgestattet. Die Konfiguration und die Anmeldedaten sind im Gerät gesperrt und können nicht geändert werden. Die Cloud-Infrastruktur erfordert keine Überprüfung des Daumenabdruck-Zertifikats durch eine Zertifizierungsstelle, was die Implementierung und Bereitstellung erheblich vereinfacht. Weitere wichtige Merkmale des ATECC608A-TNGTLS sind der AES128-Hardware-Beschleuniger, die hardwarebasierte kryptografische Schlüsselspeicherung und kryptografische Gegenmaßnahmen, die potenzielle Sicherheitsangriffe aufgrund von Software-Schwächen verhindern. Das ATECC608A Trust&Go-Bauteil ist kompatibel mit der  AWS-IoT-Multi-Account-Registrierungs-Architektur. 
  • Die ATECC608A TrustFLEX -Version ist optimiert für TLS-basierte sichere Netzwerk-Authentifizierung. Das Bauteil ist als sicheres Bauteil vorkonfiguriert und bietet mehr Anwendungsmöglichkeiten als nur die sichere Authentifizierung zwischen Bauteil und Cloud, die Trust&GO bietet. Die Cloud-Infrastruktur, entweder ein öffentliches oder ein privates Netzwerk, kann eine Token-basierte Authentifizierung oder eine Authentifizierung mit Kundenzertifikaten (das traditionelle PKI-Modell) implementieren. Sie bietet eine vorbereitete Implementierung für zusätzliche Authentifizierung, Firmware-Validierung, sichere Boot-Unterstützung, Schlüsselrotation und mehr. Das ATECC608A TrustFlex-Gerät ist kompatibel mit AWS IoTMicrosoft AzureGoogle Cloud-Plattform und im Allgemeinen mit jedem Transport-Layer-Security (TLS)-Netzwerk mit Code-Beispielen für WolfSSL, mBedTLS und CycloneSSL. 
  • Die ATECC608A TrustCUSTOM Version ist ein sicheres Element, das vollständig anpassbar ist für Anwendungen mit Sicherheitsanforderungen, die über die Anwendungsfälle von Trust&GO und TrustFLEX hinausgehen. 

 

DM320118-Entwicklungskit von Microchip für ATECC608A-Applikationen


Um die Entwicklung von ATECC608A-basierten Applikationen zu beschleunigen, hat Microchip das DM320118 Entwicklungskit entwickelt. Das Kit enthält alle drei Versionen des ATECC608A und eine Onboard-MCU (ATSAMD21) für die Applikationsentwicklung (Abbildung 2). Das Kit verwendet einen USB-Anschluss zum Herunterladen und Debuggen des Applikationscodes. Die drei ATECC608A-Bausteine teilen sich einen I2C-Bus zur Steuerung der vertrauenswürdigen Sicherheitszonenmerkmale der MCU.

Abbildung 2: Der ATECC608A und das Blockdiagramm (Quelle: Microchip)

 

Eine Vielzahl von Software-Tools unterstützt den Entwickler bei der Erstellung von Anwendungsprojekten für das Kit:

  • Die Microchip Trust Platform für CryptoAuthentication™ enthält eine Vielzahl von Beispielen für bekannte Anwendungsfälle, Konfiguratoren und Schulungsmaterial.
  • Dank der CryptoAuthLib wird die Arbeit mit den CryptoAuthentication-Bauteilen von Microchip zu einem unkomplizierten Prozess. Die CryptoAuthLib wurde mit einem Hardware Abstraction Layer (HAL) entwickelt, um sie leicht für andere Mikrocontroller erweiterbar zu machen. Es sind sowohl C- als auch Python-Versionen der Bibliothek verfügbar.
  • MPLAB® X IDE ist eine integrierte Entwicklungsumgebung (IDE), die unter Windows®-, macOS®- und Linux®-Umgebungen arbeitet. Mit den Tools können neue Embedded-Applikationen entwickelt werden, die den integrierten Mikrocontroller SAM D21 nutzen. Das Tool verwendet automatisch den eingebauten nEDBG-Debugger zur Programmierung des SAM D21-Mikrocontrollers. Der Debugger kann auch verwendet werden, um Debug-Informationen vom Host-Mikrocontroller über einen COM-Port an ein Terminal-Fenster zurückzugeben.
  • Weitere Informationen zum DM320118 finden Sie hier auf der Mouser-Produktseite:https://www.mouser.com/new/microchip/microchip-dm320118-cryptoauth-kit/

Zusammenfassung


Robuste Sicherheit für IoT-Applikationen muss auf einem soliden Fundament mit einer Trusted Zone aus Sicherheitsfunktionen aufgebaut werden, die vor Hacking und Softwarefehlern geschützt sind. Die ATCC608A-Bauteile von Microchip und die zugehörige Entwicklungsplattform können die Entwicklung der robustesten IoT-Sicherheitsimplementierungen drastisch beschleunigen.