Hinzufügen eines Sicherheitselements zur Integration von Edge-to-Cloud-Sicherheit in ein IoT-Design

Von Stephen Evanczuk

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Cybersicherheit bleibt ein allgegenwärtiges Problem bei der Entwicklung und Bereitstellung eines Systems, das mit dem öffentlichen Internet verbunden ist. Im Internet der Dinge (IoT) sind die Sicherheitsprobleme besonders dringend, da Benutzer in Frage zu stellen beginnen, ob vernetzte Geräte für Anwendungen im intelligenten Wohnbereich (Smart Home), in intelligenten Fabriken oder intelligenten Städten sicher genug sind. Angesichts kürzerer Lieferzyklen haben Entwickler von IoT-Komponenten jedoch oft das Gefühl, dass sie sich die Komponentenressourcen nicht leisten können, geschweige denn die zusätzliche Zeit, die in der Vergangenheit für die Implementierung der umfangreichen Funktionen für eine effektive Sicherheitslösung benötigt wurde.

Halbleiterhersteller tragen dazu bei, ein ausgewogenes Verhältnis herzustellen, indem sie einfacher zu implementierende Sicherheitslösungen anbieten. In diesem Artikel wird auf die Sicherheitsproblematik eingegangen, bevor eine entsprechende Lösung von NXP Semiconductors vorgestellt wird, nämlich das Sicherheitselement (SE) EdgeLock SE050. Anschließend wird den Entwicklern demonstriert, wie sie mit dieser Einzelchip-Komponente schnell Edge-to-Cloud-Sicherheit in ihren IoT-Geräten implementieren können.

Das IoT-Sicherheitsproblem

Schlecht abgesicherte IoT-Geräte haben sich leider als attraktives Ziel für Cyberangriffe erwiesen. Einmal manipuliert, können Geräte vertrauliche Benutzerdaten wie auch wertvolle Informationen liefern, die zum Erstellen von gefälschten Kopien der Geräte erforderlich sind. Hacker können diese ungeschützten Geräte auch nutzen, um größere Schäden anzurichten, indem sie tiefer in Netzwerke eindringen und so andere vernetzte Geräte, Systeme und Unternehmensressourcen erreichen. Dies hat zur Folge, dass die Auswirkungen kompromittierter IoT-Geräte sich durch die verschiedenen Ebenen der IoT-Hierarchie ziehen und sogar die öffentliche Sicherheit bei neu entstehenden IoT-Anwendungen wie Gebäudeautomation, Industriesysteme, Transport und Medizinprodukte gefährden.

Für Entwickler, von denen erwartet wird, dass sie effizientere IoT-Designs liefern, können Sicherheitsaspekte eine unliebsame Erweiterung einer wachsenden Liste von Anforderungen sein, die bereits von der Forderung nach höherer Leistung und geringerem Stromverbrauch geprägt ist. In der Tat hängt eine effektive Sicherheit von einer wachsenden Anzahl von Anforderungen ab, die zur Abwehr von Bedrohungen vom Randknoten bis zur Cloud erforderlich sind.

Isoliert angewendet, sind vertraute Techniken wie Verschlüsselung und Authentifizierung allein nicht ausreichend. Die IoT-Sicherheit muss auf einem Vertrauensanker aufbauen, der sicherstellen soll, dass Sicherheitsmechanismen und -protokolle vor Gefahren geschützt sind. Gleichzeitig müssen Sicherheitsmethoden zunehmend mit höherer Granularität angewendet werden, um nicht nur Verbindungen zwischen IoT-Geräten, sondern auch Verbindungen zwischen Komponenten eines bestimmten IoT-Designs zu schützen.

Das NXP EdgeLock SE050 SE wurde speziell entwickelt, um die Bandbreite an Sicherheitsmechanismen und -protokollen bereitzustellen, die erforderlich sind, um Edge-to-Cloud-Sicherheit in IoT-Geräten zu integrieren.

Robuste Sicherheitslösung

Das SE050 wurde als betriebsfertige Lösung für die Sicherheit von IoT-Geräten entwickelt und baut auf der umfangreichen Erfahrung von NXP im Bereich der Smartcard-Sicherheit auf, um einen Hardware-Vertrauensanker für IoT-Designs zu bieten. Das Gerät kombiniert einen eigenen Mikrocontroller und einen sicheren Berechtigungsspeicher mit einem Software-Stack, der auf dem Smartcard-Betriebssystem Java Card OpenPlatform (JCOP) basiert. Die SE050-Betriebsplattform ist von unabhängiger Stelle bis auf Betriebssystemebene nach den Common Criteria (CC) Evaluation Assurance Level (EAL) Stufe 6 Augmented (EAL 6+) zertifiziert und bietet eine sehr hohe Sicherheit für den Betrieb in Umgebungen mit hoher Bedrohung (Abbildung 1).

Grafik: Die SE050-Plattform bietet ein außergewöhnliches Maß an Sicherheit (zum Vergrößern anklicken)Abbildung 1: Unter den zertifizierten Produkten bietet die SE050-Plattform mit ihrer Zertifizierung bis auf Betriebssystemebene nach CC EAL 6+ ein sehr hohes Maß an Sicherheit. (Datenquelle: Common Criteria)

Ein spezielles NXP-IoT-Sicherheits-Applet, das für den Betrieb auf dieser robusten Sicherheitsplattform optimiert wurde, verwendet eine integrierte Kryptobibliothek, um einen umfassenden Satz von Kryptografiealgorithmen zu unterstützen, darunter:

  • Symmetrische Kryptografie mit den Algorithmen Advanced Encryption Standard (AES) und Data Encryption Standard (DES)
  • Asymmetrische Kryptografie unter Verwendung der Algorithmen Rivest-Shamir-Adleman (RSA) und Elliptic-Curve Cryptography (ECC) mit Unterstützung für eine Reihe von ECC-Kurven, einschließlich der vom National Institute of Standards and Technology (NIST) festgelegten Standardkurven
  • Mehrere Hash-Funktionen, die zum Erstellen von Message Authentication Codes (MACs) verwendet werden
  • Mehrere KDF-Algorithmen (Multiple Key Derivation Function), die unter anderem für das Hashing von Passwörtern, die Schlüsselvereinbarung und die Schlüsselverstärkung verwendet werden

Zur Leistungssteigerung sind in das SE050 Hardwarebeschleuniger für die Kryptografiestandards Advanced Encryption Standard (AES), Data Encryption Standard (DES) und Fast Attribute-based Message Encryption (FAME) integriert.

Um die bei kryptografischen Operationen verwendeten Berechtigungsdaten zu schützen, stellt das Gerät bis zu 50 Kilobyte an sicherem Benutzer-Flash-Speicher zur Verfügung und ist mit Stammschlüsseln ausgestattet, die zur Unterstützung typischer IoT-Transaktionen entwickelt wurden. Entwickler, die großvolumige Designs entwerfen, können auch die Vorteile benutzerdefinierter Schlüssel und Berechtigungen nutzen, die von NXP oder autorisierten Drittanbietern auf sichere Weise bereitgestellt werden.

Neben dem eingebetteten Flash-Speicher unterstützt die Komponente den Zugriff auf den RAM (Random Access Memory), um beispielsweise öffentliche Zertifikate zu speichern, während die zugehörigen privaten Schlüssel im sicheren Flash-Speicher verbleiben. Darüber hinaus verfügt das IoT-Applet des SE050 über eine sichere Import-/Exportfunktion, mit der Entwickler Schlüssel oder beliebige Daten sicher im externen Speicher ablegen können. Dessen ungeachtet verwendet die Komponente eine Speicherverwaltungseinheit, die den Zugriff auf verschiedene Speicherbereiche auf das IoT-Applet beschränkt und so einen unbefugten Zugriff über den Mikrocontroller verhindert. Zum weiteren Schutz vor Manipulationen und vor ausgeklügelten Seitenkanalangriffen verfügt das Gerät zudem über mehrere logische und physische Barrieren gegen unbefugten Zugriff.

Bei der Sicherheit geht es jedoch ebenso sehr darum, autorisierten Geräten den Zugriff zu ermöglichen, wie darum, Barrieren gegen unbefugten Zugriff zu errichten.

Geräteauthentifizierung

Die Kryptografiemechanismen und sicheren Speicherfunktionen des SE050 dienen als Vertrauensanker für IoT-Geräte und unterstützen direkt sichere Verbindungen, die für die Kommunikation mit autorisierten Remote-Hosts wie Cloud-Servern erforderlich sind. Mit den gleichen Funktionen können Entwickler die Authentizität von Verbindungen auf den untersten Ebenen der IoT-Hierarchie zwischen separaten IoT-Geräten mit den Sicherheitselementen SE050 sicherstellen.

Mit einem Verfahren ähnlich der herkömmlichen Authentifizierung im Internet kann sich ein intelligenter IoT-Sensor beispielsweise gegenüber einem IoT-Steuergerät authentifizieren. Dieser Prozess beginnt damit, dass die Sensoreinheit das im sicheren Speicher des SE050 gespeicherte Zertifikat an das Steuergerät sendet. Das Steuergerät wiederum validiert das empfangene Zertifikat mithilfe von SE050-Kryptofunktionen. Nach erfolgreicher Validierung sendet das Steuergerät einen Zufallswert, die so genannte Challenge, an die Sensoreinheit zurück. Die Sensoreinheit wiederum verwendet das eigene SE050 SE, um die Challenge mit dem privaten Schlüssel zu signieren, der dem gleichen Zertifikat zugeordnet ist, das sie zuvor an das Steuergerät gesendet hat. Da diese signierte Challenge nur mit dem zugehörigen öffentlichen Schlüssel validiert werden kann, kann das Steuergerät sicher sein, dass das ursprünglich von der Sensoreinheit gesendete Zertifikat wirklich im Besitz dieser Komponente ist. Somit kann das Steuergerät die Sensoreinheit zuverlässig authentifizieren.

Durch den Wechsel von Rollen im gleichen Prozess kann sich das Steuergerät umgekehrt gegenüber dem Sensor authentifizieren.

Diese Art der gegenseitigen Authentifizierung ist für den Aufbau vertrauenswürdiger IoT-Netzwerke unerlässlich, insbesondere mit dem Aufkommen von mehr Zwischenschichten einschließlich Edge-Computing-Geräten. Obwohl der Prozess der gegenseitigen Authentifizierung unkompliziert ist, können selbst einfache Implementierungsfehler oder unterschiedliche Interpretationen des Protokolls zu schwerwiegenden Sicherheitslücken führen. Insbesondere bei ressourcenbeschränkten IoT-Designs kann die Notwendigkeit einer sicheren Speicherung und schnellen Ausführung komplexer Kryptoalgorithmen eine zuverlässige Implementierung zusätzlich erschweren. Durch das Hinzufügen des SE050 zu einem beliebigen IoT-Design können Entwickler kritische Sicherheitsfunktionen wie die gegenseitige Authentifizierung implementieren, ohne die Gesamtleistung oder Sicherheit des Designs zu beeinträchtigen.

Einfache, sichere Integration

Eine Ergänzung zu den erweiterten Möglichkeiten der SE050 ist die einfache Integration in das Design. Entwickler können die Komponente problemlos in ihr IoT-Hardware-Design integrieren, ohne die Komplexität oder den Platzbedarf des Designs zu beeinträchtigen. Die 3 x 3 mm große Komponente wurde als Add-on-Komponente konzipiert und bietet eine Reihe einfacher serieller Schnittstellen (Abbildung 2).

Diagramm: Das NXP SE050 SE besitzt mehrere Schnittstellen.Abbildung 2: Das SE050 SE bietet mehrere Schnittstellen, sodass es als I2C-Slave für Verbindungen zu Host-Mikrocontrollern, als I2C-Master für ISO7816-basierte Verbindungen zu digitalen Sensoren und als kontaktlose Schnittstelle nach ISO 14443 Near Field Communication (NFC) verwendet werden kann. (Bildquelle: NXP)

Zur Kommunikation mit dem Host-Mikrocontroller fungiert das Gerät als I2C-Slave. Das SE050 kann auch als I2C-Master für ISO7816-basierte Verbindungen zu einem anderen seriellen Gerät, beispielsweise einem digitalen Sensor, dienen. Das Gerät unterstützt auch eine dritte Schnittstelle für die kontaktlose Konnektivität nach ISO 14443 NFC.

Das IoT-Applet des SE050 koordiniert für die verschiedenen Verbindungen sichere Schlüssel und Zugriffskontrollregeln, um für jede Verbindung Sitzungen einzurichten und zu verwalten.

Für die Kommunikation mit dem Host bietet das SE050 eine sitzungsbasierte Authentifizierung, die das Abfangen von I2C-Befehlen und -Daten sowie die Verwendung von Man-in-the-Middle-Angriffen verhindert. Um eine Sitzung über eine serielle Verbindung einzuleiten, können sich Entwickler mit einer Benutzer-ID authentifizieren, die genauso wie ein Passwort oder eine persönliche Identifikationsnummer (PIN) verwendet wird.

Die einfache passwortbasierte Authentifizierung zwischen dem Mikrocontroller und dem SE050 ist für bestimmte Anwendungen möglicherweise nicht immer ausreichend. Bei kritischen Anwendungen müssen Entwickler eventuell sicherstellen, dass die Kommunikation zwischen dem Host-Mikrocontroller und dem SE050 SE vertraulich bleibt, um Angriffe zu verhindern, die Sitzungen reproduzieren, Out-of-Order-Fragmente senden oder kryptografische Algorithmen durch gehackte Versionen ersetzen mit dem Ziel, vertrauliche Daten zu gewinnen.

Sichere Bus-Transaktionen

Mit dem SE050 SE können Entwickler Authentifizierungsmethoden verwenden, um einen sicheren Kommunikationskanal zwischen dem SE050 und dem Host-Mikrocontroller aufzubauen. Hierbei können Entwickler die Unterstützung des SE050-Schaltkreises für den SCP03-Standard (Secure Channel Protocol) nutzen, der allgemein zur sicheren bidirektionalen Kommunikation zwischen einem Java-Card-Gerät und einem Host verwendet wird.

Bei mikrocontrollerbasierten Designs, die mit dem SE050 SE erstellt wurden, bindet die Verwendung des SCP03-Protokolls den SE050 SE während der I2C-Bus-Sitzungsauthentifizierung praktisch an den Host-Mikrocontroller, wodurch die Verwendung von verschlüsselten Nachrichten während der Sitzung möglich ist. Bei der Nachrichtenverschlüsselung mit dem SCP03-Protokoll wird die Klartextnachricht zunächst mit dem AES-Algorithmus verschlüsselt und ein MAC für die verschlüsselte Nachricht erzeugt. Durch das Senden sowohl der verschlüsselten Nachricht als auch des zugehörigen MAC schützt dieses Verfahren mit der Bezeichnung „Encrypt-then-MAC“ die verschlüsselte Nachricht und ermöglicht es dem Empfänger, Änderungen an der Nachricht zu erkennen.

Das SE050 ergänzt auch die Sensordaten um einen besonderen Schutz. Hierzu können Entwickler das SE050 anweisen, die Antworten auf Hostbefehle um Metadaten zur Attestierung zu ergänzen, die einen eindeutigen Identifikator, Aktualitätsdaten in Form eines Zufallswerts für jede Instanz, einen Zeitstempel und eine Signatur enthalten. Innerhalb des Hosts kann die Software die von der SE050 empfangenen Attestierungsdaten untersuchen, um die Quelle und Aktualität der Daten der an die SE050-I2C-Masterschnittstelle angeschlossenen Sensoren zu überprüfen.

Da die Daten einzelner Sensoren in Strömen zusammengeführt werden, die innerhalb der IoT-Hierarchie nach oben fließen, können Anwendungen diese Attestierungsdaten verwenden, um die Quelle ungewöhnlicher Datenmuster zu identifizieren, die auf beeinträchtigte, ausgefallene oder gefährdete Sensoren hinweisen könnten. Mit SCP03-Host-Sitzungen und Sensordatenattestierung können Entwickler zuverlässig und sicher wichtige Sensordaten für kritische Anwendungen erfassen.

Funktionsschnittstelle

Attestierungsanforderungen und -antworten durchlaufen, wie bei allen Interaktionen zwischen dem Host-Mikrocontroller und dem SE050 SE, einen Kommunikationsstack, der in den funktionalen Schnittstellenstandards des ISO-Standards 7816 für Smartcard-Geräte definiert ist (Abbildung 3). Dieser APDU-Standard (Application Protocol Data Unit) definiert Format, Inhalt und Protokoll für den Nachrichtenaustausch zwischen dem Hostgerät (Host Device, HD) und einem SE.

Diagramm: Kommunikation zwischen einem NXP SE050 SE und einem HDAbbildung 3: Die Kommunikation zwischen einem NXP SE050 SE und einem HD erfolgt über einen ISO 7816 Smartcard-Standardstack, der Anfragen und Antworten auf Anwendungsebene unter Verwendung des APDU-Standards ISO 7816 umfasst, die von einer Datenverbindungsschicht unter Verwendung des Halbduplexprotokolls ISO 7816-3 T=1 über I2C übertragen werden. (Bildquelle: NXP)

Aufbauend auf der physikalischen I2C-Schicht trennt die Datenverbindungsschicht Anforderungen und Antworten der Anwendungsschicht in eine Folge von Transaktionen, die dem ISO-Standard 7816-3 T=1 über das I2C-Protokoll für Halbduplex-Kommunikation folgen. Bei diesem Protokoll wartet die Datenverbindungsschicht auf dem HD und auf dem SE nach jeder Übertragung in einer Transaktionssequenz auf die Bestätigung.

So fragt beispielsweise die Datenverbindungsschicht des Hosts bei einer Leseanforderung durch die Hostanwendung zunächst das SE ab und wartet auf eine Bestätigungsantwort (ACK), die anzeigt, dass das SE sendebereit ist (Abbildung 4).

Diagramm: Datenverbindungsschicht verarbeitet HD-AnfragenAbbildung 4: Die Datenverbindungsschicht verarbeitet HD-Anfragen einschließlich der hier gezeigten Leseanforderung als eine Reihe von Transaktionen, die T=1 über das I2C-Protokoll entsprechen, beginnend mit einer Abfrageschleife, die die Anforderung wiederholt, bis sie eine Bestätigungsantwort (ACK) empfängt, die anzeigt, dass das SE bereit zum Übertragen von Daten ist. (Bildquelle: NXP)

Nach der ACK-ready-Antwort sendet die Datenverbindungsschicht im SE Daten als eine Folge von Datenblockübertragungen an den Host und wartet auf eine Bestätigung von der Datenverbindungsschicht des Hosts für jede Blockübertragung (Abbildung 5). Schließlich wird die vollständige Antwort an die Host-Anwendung geliefert.

Diagramm: SE sendet eine Datenantwort als Folge von DatenblöckenAbbildung 5: Nachdem das SE angezeigt hat, dass es bereit zum Senden von Daten ist, sendet es eine Datenantwort als eine Folge von Datenblöcken und wartet auf eine Bestätigung durch das HD, bevor es den nächsten Block in der Folge sendet. (Bildquelle: NXP)

Softwareimplementierung

Auf Anwendungsebene erfolgt der Austausch zwischen dem Host-Mikrocontroller und dem SE050 SE über den ISO 7816 APDU-Standard. Für das SE050 basieren APDUs für Befehle und Antworten auf dem in ISO 7816-4 definierten TLV-Format (Tag, Length, Value). Jede APDU umfasst mindestens ein CLA-Byte (Class; ein Festwert für alle SE050-Operationen), ein INS-Byte (Instruction) und zwei Parameter-Bytes (P1, P2). Datenanforderungen und -antworten können auch zusätzliche Felder für die Anzahl der zu lesenden Bytes (Le), die Länge des Datenfeldes (Lc) und das Datenfeld beinhalten.

So würde beispielsweise eine Leseanforderung durch die Hostanwendung ein TLV-Paar verwenden, um die SE050 I2C-Schnittstelle zu konfigurieren und die Leseanforderung auszuführen (Listing 1). Wie bereits erwähnt, würde die Host-Datenverbindungsschicht diese Anforderung dann in eine Reihe von I2C-Bustransaktionen gemäß dem T=1-Protokoll aufgliedern.

Kopieren
static smStatus_t i2cm_Read(
    ex_sss_boot_ctx_t *pCtx, uint8_t *readbuf, uint32_t readLength)
{
    smStatus_t status;
    TLV[0].type = kSE05x_I2CM_Configure;
    TLV[0].cmd.cfg.I2C_addr = I2C_SENSOR_BUS_ADDRESS;
    TLV[0].cmd.cfg.I2C_baudRate = kSE05x_I2CM_Baud_Rate_400Khz;
 
    TLV[1].type = kSE05x_I2CM_Read;
    TLV[1].cmd.rd.readLength = readLength;
    TLV[1].cmd.rd.rdBuf = readbuf;
 
    status = Se05x_i2c_master_txn(&pCtx->session, &TLV[0], 3);
    return status;
}

Listing 1: Die NXP Plug&Trust-Middleware umfasst Quellcode, der die Verwendung des ISO 7816-4 TLV-Formats in Hostbefehlen wie diesem einfachen Lesebefehl für das SE050 SE demonstriert. (Codequelle: NXP)

Wie in Listing 1 dargestellt, kodiert der Code die TLVs für die Konfigurations- und Leseanforderungen mit einer einfachen C-Struktur. Dabei wird jedes TLV über eine Struktur SE05x_I2CM_cmd_t instanziiert (Listing 2).

Kopieren
typedef struct _SE05x_I2CM_cmd
{
    SE05x_I2CM_TLV_type_t type;
    SE05x_I2CM_INS_type_t cmd;
} SE05x_I2CM_cmd_t;
 
typedef enum _SE05x_I2CM_TLV_type
{
    kSE05x_I2CM_None = 0,
    kSE05x_I2CM_Configure,
    //kSE05x_I2CM_Security,
    kSE05x_I2CM_Write = 3,
    kSE05x_I2CM_Read,
    kSE05x_I2CM_StructuralIssue = 0xFF
} SE05x_I2CM_TLV_type_t;
 
typedef union _SE05x_I2CM_INS_type {
    SE05x_I2CM_configData_t cfg;
    SE05x_I2CM_securityData_t sec;
    SE05x_I2CM_writeData_t w;
    SE05x_I2CM_readData_t rd;
    SE05x_I2CM_structuralIssue_t issue;
} SE05x_I2CM_INS_type_t;
 
typedef struct _SE05x_I2CM_readData
{
    uint16_t readLength;
    SE05x_I2CM_status_t rdStatus;
    /* Output. rdBuf will point to Host buffer */
    uint8_t *rdBuf;
} SE05x_I2CM_readData_t;

Listing 2: Die Softwaredistribution NXP Plug&Trust bietet Strukturen zur Definition des Anforderungstyps (grün hervorgehoben) und der zugehörigen Befehlsparameter (blau hervorgehoben). (Codequelle: NXP)

Innerhalb dieser Struktur SE05x_I2CM_cmd_t ist das type-Mitglied durch eine C-Enum SE05x_I2CM_TLV_type_t definiert, die die möglichen Werte einschließlich des Standardwertes 4 für eine Leseanforderungs-ADPU (kSE05x_I2CM_Read) auflistet. Das cmd-Mitglied der Struktur SE05x_I2CM_cmd_t ist in einer Vereinigung von Strukturen definiert. In diesem Fall ist das cmd-Element eine rd-Struktur, die wiederum Elemente umfasst, die die Länge der angeforderten Daten (readLength) und den Zielpufferzeiger (rdBuf) angeben.

Dieser Satz von Definitionen abstrahiert auf einige wenige Zeilen Code, um das typ-Element der TLV[1]-Instanz in Listing 1 so einzustellen, dass es eine Leseanforderung angibt (kSE05x_I2CM_Read) und das cmd-Element auf die gewünschten Pufferzeiger readLength und readBuf setzt.

Entwicklungsunterstützung

Zur Vereinfachung der Softwareentwicklung abstrahiert NXP die Host-Interaktionen mit dem SE050 SE über die Plug&Trust-Middleware und die zugehörigen Bibliotheks-APIs (Application Programming Interfaces) (Abbildung 6). Das NXP Plug&Trust-Middleware-Distributionspaket kombiniert Middleware und APIs mit einer Reihe von Beispielanwendungen, die auf mbed TLS, OpenSSL und anderen Paketen basieren. Darüber hinaus ermöglicht eine Python-basierte Befehlszeilenschnittstelle (CLI) Entwicklern die Verwendung von SE050-Funktionen in einem interaktiven Modus.

Diagramm: NXP Plug&Trust-SoftwarepaketAbbildung 6: Zusammen mit Beispielsoftware enthält das NXP Plug&Trust-Softwarepaket Middleware und zugehörige APIs, die die Details der Interaktionen mit dem SE050 über den ISO 7816-basierten Stack abstrahieren, der die APDU-Anwendungsschicht, die Datenverbindungsschicht T=1 über I2C und die physische I2C-Schicht umfasst. (Bildquelle: NXP)

Zusammen mit der NXP Plug&Trust-Software können Entwickler das SE050 mit dem Entwicklungskit OM-SE050ARD schnell evaluieren, das ein SE050 SE und einen einfachen unterstützenden Schaltkreis mit mehreren Headern umfasst. Neben Anschlüssen für eine externe I2C-Schnittstelle und direktem Zugriff auf die SE050-Pins verfügt die OM-SE050ARD-Karte über einen Arduino-R3-Stecker. Mit dem Arduino-R3-Stecker können Entwickler die OM-SE050ARD-Karte einfach an eine Reihe von Entwicklungskarten anschließen, darunter die Evaluierungskarte NXP I.MX 6ULTRALITE und die Evaluierungskarte NXP FRDM-K64F.

Mithilfe der unterstützten Evaluierungskarten können Entwickler schnell spezifische Anwendungsfälle für die Sicherheit untersuchen, entweder programmgesteuert über die Plug&Trust-Softwarebeispiele oder interaktiv über die Python-basierte CLI. Unter den Beispielanwendungen in der Plug&Trust-Softwaredistribution veranschaulicht die Beispielsoftware den kompletten Prozess zum Auslesen von Sensordaten über die SE050 I2C-Masterschnittstelle. Entwickler können diese Beispielanwendung schnell wieder neu erstellen, um herkömmliche l2C-Lesevorgänge durch Attestierungs-Lesevorgänge zu ersetzen. Die Verwendung von Attestierungs-Lesevorgänge erfordert keine Änderungen an der in Listing 1 dargestellten TLV-Konfiguration. Tatsächlich geht es bei den Änderungen im Wesentlichen darum, die in Listing 1 gezeigte I2C-Lesefunktion Se05x_i2c_master_txn() durch die attestierte Leseversion Se05x_i2c_master_attst_txn() samt den zugehörigen Funktionsparametern zu ersetzen.

Weitere Anwendungsbeispiele zeigen den letzten Schritt in puncto Edge-to-Cloud-Sicherheit – die Authentifizierung und sichere Kommunikation mit Cloud-Diensten. Unter den Plug&Trust-Softwarebeispielen finden Entwickler eine Schritt-für-Schritt-Anleitung für die Verwendung des SE050 zur Authentifizierung und sicheren Verbindung mit öffentlichen Cloud-Diensten wie Microsoft Azure, IBM Watson, Amazon Web Services (AWS) und Google Cloud Platform (GCP). Der größte Aufwand bei diesen Cloud-Verbindungsbeispielen besteht darin, ein Konto für den jeweiligen Cloud-Dienst zu erstellen und Schlüssel und Zertifikate hochzuladen (ebenfalls in den Beispielroutinen enthalten). Das SE050 SE übernimmt die umfangreichen Aufgaben, die Entwickler in der Regel zu bewältigen haben, um eine sichere Cloud-Konnektivität zu gewährleisten.

Durch die Verwendung des NXP Plug&Trust-Software-Stacks in Kombination mit NXP-Entwicklungskarten können Entwickler die Vorteile der umfassenden Unterstützung von Edge-to-Cloud-Sicherheit für IoT-Geräte durch das SE050 SE schnell voll ausschöpfen.

Fazit

Schlecht gesicherte IoT-Geräte laufen Gefahr, große Mengen an vertraulichen Daten preiszugeben und können zu Einstiegspunkten zu anderen vernetzten Ressourcen werden. Entwickler müssen IoT-Designs auf einer sicheren Basis entwickeln, die sich vom Gerät bis in die Cloud erstreckt und den gesamten Lebenszyklus von IoT-Geräten unterstützt. Wie dargestellt, kann dies durch die Erweiterung von Designs mit dem SE050 von NXP erreicht werden. Mit diesem SE können Entwickler neue Anforderungen an eine effektivere Sicherheit erfüllen, die sich vom Randknoten bis zur Cloud erstreckt.

 
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 Autor

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk hat mehr als 20 Jahre Erfahrung im Schreiben für und über die Elektronikindustrie zu einem breiten Spektrum von Themen wie Hardware, Software, Systeme und Anwendungen einschließlich des IoT. Er promoviertein Neurowissenschaften über neuronale Netzwerke und arbeitete in der Luft- und Raumfahrtindustrie an massiv verteilten sicheren Systemen und Methoden zur Beschleunigung von Algorithmen. Derzeit, wenn er nicht gerade Artikel über Technologie und Ingenieurwesen schreibt, arbeitet er an Anwendungen des tiefen Lernens (Deep Learning) zu Erkennungs- und Empfehlungssystemen.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey