Root-of-Trust für IoT und andere IoT-Sicherheitstrends

Das Thema Informationssicherheit wird von Jahr zu Jahr relevanter. Der Informationssicherheits-Hub steht bei der Bewertung an erster Stelle und bei der Anzahl der Teilnehmer an zweiter Stelle. Die Materialien sind jedoch hauptsächlich verschiedenen Netzwerk-, Web-, Cloud- und anderen Technologien gewidmet, die traditionell im Kontext der Sicherheit betrachtet werden. Und gelten fast nicht für eingebettete Anwendungen, insbesondere mit begrenzten Ressourcen. Während die Anzahl der letzteren mehr als Größenordnungen beträgt. In diesem Artikel werden wir einige der Merkmale und Trends in der Sicherheit des Internets von Dingen betrachten, die ihren Ursprung im Entwicklungs- und Vertriebsmodell haben.


Die Entwicklung für eingebettete Anwendungen hat darüber hinaus immer bestimmte Funktionen mit sich gebracht, so dass die meisten "normalen" Programmierer nicht einmal darüber nachdenken, und das Konzept der Qualitätssicherung und der Testprozess unterscheiden sich in vielen Fällen grundlegend von dem, was allgemein verstanden wird.

Eines der beliebtesten und regelmäßig diskutierten Themen im großen IT-Kanal der Telegram Embedded Group lautet: „Warum versteht niemand Embedded-Entwickler und zahlt so wenig? (vor dem Hintergrund "gewöhnlicher" Programmierer) ":) Ein

eingebettetes System ist ein System, das funktioniert, indem es direkt in das von ihm gesteuerte Gerät eingebaut wird. Ein paar Fotos zur Verdeutlichung:



Das linke Bild stammt aus einem Wikipedia- Artikel über eingebettete Systemeist ein Beispiel für ein großes komplexes System. Auf der rechten Seite ist ein Foto aus dem Test des Redmond Smart Home zu sehen. Hier ist alles viel einfacher und kompakter. Tatsächlich wird das gesamte Gerät auf einem Chip mit minimaler Bindung hergestellt. Es ist wichtig, dass beide Geräte als vollständige Geräte fungieren (ein Einplatinencomputer benötigt noch ein Gehäuse und einige Peripheriegeräte).

In der Regel stellt ein Hersteller fertige Geräte her, die hauptsächlich Hardware enthalten, und Software wird in der Regel gebündelt und funktioniert nur auf dieser Hardware. Fast niemand hätte die Idee, ein „nacktes“ Smartphone ohne Software zu kaufen und dann auf dem Betriebssystem und den erforderlichen Anwendungen zu installieren. Alles sollte sofort funktionieren. Infolgedessen führen Entwickler häufig das gesamte Aufgabenspektrum für die Entwicklung von Geräten aus, sowohl Software als auch Hardware.

Ein weiteres Merkmal der Entwicklung für eingebettete Systeme besteht darin, dass sie fast immer viel weniger Ressourcen haben, sowohl in Bezug auf Rechenleistung und Speicher, Datenkanal als auch Verbrauch. Die meisten Technologien, die vielen bekannt sind, können auf solchen Systemen nicht ausgeführt werden, selbst das Betriebssystem ist nicht überall. Es ist notwendig, in die verfügbaren Ressourcen zu passen und oft erheblich zu sparen. Dies wirkt sich auch auf die Sicherheit aus - viele Standards aus der Big World werden nicht oder nur eingeschränkt unterstützt.

C ist nach wie vor die am häufigsten verwendete Sprache für die Entwicklung eingebetteter Systeme. Die Arbeit mit dem Speicher weist eine Reihe von Mängeln auf, die sich direkt auf die Sicherheit auswirken. Um sie zu lösen, wurde Rust entwickelt , es gewinnt an Popularität (an erster Stelle Ihrer Lieblingssprachenauf StackOverflow seit mehreren Jahren und überholt sogar Python und Kotlin (besonders beliebt in letzter Zeit), ist aber aufgrund der unterstützten Systeme und Bibliotheken immer noch weit von der führenden Anwendbarkeit in Embedded entfernt. Höhere Sprachen sind für eingebettete Systeme selten und werden wahrscheinlich so bald bleiben.

Ein wichtiges Merkmal bei der Entwicklung eingebetteter Systeme ist die Einschränkung der vom Hersteller bereitgestellten Hardwarefunktionen der Plattform und des SDK. Es ist einfach unmöglich oder äußerst kostspielig, viele Technologien für ein einzelnes Projekt von Grund auf neu zu implementieren. Daher ist es unbedingt erforderlich, dass der Chiphersteller modernste Sicherheitstechnologien unterstützt. Bis vor kurzem wurde dem so viel Aufmerksamkeit geschenkt. Wenn zum Beispiel die Hardware AES vor langer Zeit bei fast allen aufgetaucht ist, wissen viele Menschen immer noch nicht, wie sie TLS / DTLS unterstützen sollen. Die Frage ist, wie dies erreicht werden kann. Ich habe kürzlich über das neue Nordic Zephyr SDK geschrieben , das dieses Problem durch die Integration in ein großes Projekt löst, das von der Linux Foundation unterstützt wird. Dies ist ein Ansatz. Im Folgenden werden wir andere betrachten.

Im Rahmen der Prüfung der Sicherheit eingebetteter Systeme ist eine Gruppe von Anwendungen zu beachten, die unter die Anforderungen der Standards für funktionale Sicherheit fallen: Medizin, Automobil, Eisenbahnausrüstung, industrielle Automatisierung. Dies sind Anwendungen, die sich direkt auf das Leben und die Gesundheit einer Person auswirken, sowie für Systeme, die nicht gestoppt werden können (z. B. ein Kernreaktor). Hier ist in allen Entwicklungsstadien alles klar geregelt und das Ausfallpotential sowie die Auswirkungen auf den Betrieb des gesamten Systems werden berücksichtigt. Die Entwicklung erfolgt an speziellen Hardware- und Softwarelösungen, die zukünftig auch zertifiziert werden müssen. Infolgedessen fällt es lang und teuer aus. Daher denken diejenigen, die mit der Entwicklung beginnen, nicht darüber nach, wenn es keine verbindlichen Standards gibt.

Wir empfehlen eine Reihe von Artikeln zur funktionalen Sicherheit zur Überprüfung .

Neben dem Entwicklungsproblem ist es wichtig, die Betriebsbedingungen der Systeme zu berücksichtigen.

In der Regel kümmern sich große Unternehmen, Hersteller von Cloud-Diensten, aus mehreren Gründen um die Sicherheit ihrer Dienste:

  • Sie befassen sich direkt mit der Entwicklung und Unterstützung des Funktionierens des Dienstes
  • Sie haben einen viel engeren Kontakt zwischen Entwicklern und Support-Ingenieuren.
  • Die Ausrüstung ist für Ingenieure direkt zugänglich, auch wenn sie sich in den Wolken befindet
  • Breite Datenübertragungskanäle und eine hohe Rechenfähigkeit der Geräte ermöglichen die Verwendung von Überwachungssystemen und die Erkennung abnormaler Aktivitäten

Geräte des Internet der Dinge funktionieren genau umgekehrt:

  • In der Regel sind sie Eigentum des Endkunden, und die Endkundeningenieure, Kompetenzen, die in den meisten Fällen aus objektiven Gründen unterlegen sind, sind an der Konfiguration und dem Support beteiligt.
  • Die Ressourcen jedes Geräts sind sowohl hinsichtlich der Leistung als auch der Datenübertragung begrenzt. Infolgedessen ist ein System zum Überwachen und Erkennen abnormaler Aktivitäten in diesem Fall praktisch unmöglich.

Der Klarheit halber werde ich eine Vergleichstabelle geben. Machen Sie sofort eine Reservierung, dass:

  • Es gibt viele Optionen für die Bereitstellung und den Support von Software. Zur Veranschaulichung werden nur allgemeine Gruppen angegeben.
  • Die Anzahl der Geräte im Internet der Dinge ist schwer genau abzuschätzen, da jeder etwas anderes darunter versteht und es auch keine guten Statistiken darüber gibt.

Server und Cloud-Lösungen (SaaS und dergleichen)Benutzergeräte (PCs, Smartphones usw.)Internet der Dinge
Wer entwickelt sich?Lösungsanbieter--
/ ?
/?
,
()( )
(Amazon, Google)2019 : ~266 K, ~1.379

Infolgedessen kommt es regelmäßig zu Situationen, in denen die Geräte gehackt wurden, und aus objektiven Gründen ist darüber nichts bekannt. Leider ist diese Situation nicht ungewöhnlich und kann Monate und manchmal Jahre dauern.

Die bekanntesten Hacks eingebetteter Systeme der letzten Jahre:

  • Mirai Botnetz im Jahr 2016, arbeitet hauptsächlich an Camcordern. Nach verschiedenen Schätzungen betrug die Anzahl der infizierten Geräte mehr als 380.000 . Sein Nachfolger Satori im Jahr 2018 hat bereits 700.000 Geräte erfasst, wobei er sich hauptsächlich auf Cryptocurrency Miner konzentriert.
  • KRACK hat WPA2 Wi-Fi im Jahr 2017 (fast alle Wi-Fi-Geräte in den letzten 15 Jahren) und seinen Erben Kr00k mit mehr als einer Milliarde Geräten im Jahr 2019 erreicht.
  • Im Jahr 2018 traf Bleedingbit die BLE-Chips von Texas Instruments. Offiziell waren nur wenige Access Point-Modelle betroffen, die die CC26xx-Familie verwendeten, und das Problem selbst wurde in der neuen Version des Stacks gelöst. In diesem Fall wird jedoch nicht berücksichtigt, dass diese Chips in einer viel größeren Anzahl von Geräten verwendet werden (der zweitgrößte BLE-Hersteller der Welt, 16% von 3,9 Milliarden für 2018).

Die meisten Hardwarehersteller veröffentlichen Patches für ihre Geräte. Diese Korrekturen müssen jedoch weiterhin auf die Geräte selbst angewendet werden, was für Geräte des Internet der Dinge schwierig oder in einigen Fällen unmöglich ist. Infolgedessen bleibt ein erheblicher Teil der Geräte potenziell anfällig. Und sie werden möglicherweise aufgrund der mangelnden Kontrolle und der gebührenden Beachtung dieses Themas nie davon erfahren.

Dementsprechend ist es notwendig, grundlegend unterschiedliche Ansätze zu verwenden, um Schwachstellen zu verhindern und die Konsequenzen für Geräte im Internet der Dinge zu beseitigen. Sicherheit sollte in der Plattform selbst von der Phase ihres Entwurfs an liegen und in allen Phasen der Entwicklung und des Betriebs des Endgeräts ausgeführt werden, gleichzeitig aber einfach und kostengünstig für die Massenimplementierung sein (zumindest in Bezug auf funktionale Sicherheit und TEE leistungsfähiger Prozessoren).

ARM sprach 2017 über die Sicherheit eingebetteter Systeme auf Basis von CryptoCell und Cortex-M33. Serienproben von Chips auf dem M33 wurden jedoch erst im letzten Jahr veröffentlicht. Die vorgestellte Technologie heißt Platform Security Architecture (PSA).


Der Kern der Idee bestand darin, kritische Teile des Systems (Schlüssel, Rechte, Firmware) von potenziell hackbaren Komponenten, sowohl Hardware als auch Software, für Systeme zu trennen, bei denen die vollständige Implementierung von TEE unmöglich oder schwierig ist. Die Technologie konzentriert sich hauptsächlich auf Cortex-M, ist jedoch mit allen Cortex-A / -R / -M-Familien kompatibel.



Betrachten Sie grundsätzlich 4 Stufen des Schutzes von Geräten des Internet der Dinge. Betrachten Sie sie nacheinander, wenn sie während des Betriebs des Geräts auftreten.

Sicherer Startvorgang
  • Es wird überprüft, ob die Firmware echt ist, nicht geändert wurde und nicht heruntergestuft werden kann.

Sicheres Firmware-Update über Funk (Secure FOTA)
  • Es können nur authentifizierte und verifizierte Updates heruntergeladen werden.
  • ( )

API
  • , .
  • «» API.


  • (MITM)

Zum Schutz des Geräts wird vorgeschlagen, Daten zu identifizieren / zu verifizieren, die in jeder Phase eintreffen. Das Konzept basiert auf der Idee der Vertrauenswurzel (Root-of-Trust, RoT). Unter dem Strich wird eine bestimmte Kennung (Schlüssel) in das Gerät eingenäht und eine Hardwareprozedur überprüft, ob der Schlüssel für die aktuelle Plattform und den ausführbaren Code eindeutig ist. In Zukunft nutzen alle wichtigen Bibliotheken RoT für ihre eigene Arbeit.


In der Regel erfolgt dies in drei Hauptstufen:

  1. Bereitstellung von Vertrauen: Einbeziehung des Root-of-Trust in der Produktionsphase in die Chipstruktur. Die
    unveränderliche Chip-ID und der Hardware-Root-of-Trust bieten grundlegende Sicherheit und eindeutige Identifizierung des Geräts.
  2. :
    ,
  3. :
    , 2 .

Die gängigste Lösung auf dem Markt ist die TrustZone von ARM. Es wurde viel über die Implementierung auf Habré geschrieben, da die Technologie selbst schon lange eingeführt wurde. Das meiner Meinung nach klarste wurde in einer der neuesten Veröffentlichungen zusammengefasst .

Im Zusammenhang mit diesem Artikel ist anzumerken, dass die frühere TrustZone das Privileg von Hochleistungsprozessoren der Cortex-A-Familie war. Und im vergangenen Jahr haben fast alle Hersteller von drahtlosen Systemen auf Kristallbasis Cortex-M- basierte Lösungen herausgebracht , am beliebtesten ist Cortex-M33 .

In Bezug auf die Informationssicherheit lohnt es sich, an das System der allgemeinen Kriterien zu erinnern(Gemeinsame Kriterien), sowohl international als auch als nationaler Standard übernommen. Hiermit können Sie die Vertrauensstufe (EAL) von 1 bis 7 (EAL1 - EAL7) bestimmen. Eine höhere Zahl zeigt eine höhere Sicherheitsstufe an. Um zu verstehen, die meisten Windows- Betriebssysteme haben eine EAL4- oder EAL4 + -Ebene, LInux / Unix, EAL5 haben grundsätzlich Smartcards (Banking, Transport, einschließlich kontaktlos). Mit EAL6 können Sie die Lösung in Situationen mit hohem Risiko verwenden, EAL7 beispielsweise in Situationen mit extremem Risiko. für unidirektionale Netzwerke (Datendioden).

Im April dieses Jahres wurden der Cortex-M33 und der M35P nach EAL6 + zertifiziert. Dies ist eine sehr hohe Ebene, mit der Sie Lösungen in Situationen mit hohem Risiko anwenden können.

ARM TrustZone Cryptocell im neuen Cortex-M33 / M23 bietet sicheren Schlüsselspeicher (einschließlich eines mit einer eindeutigen Hardware-ID), Firmware-Überprüfung sowohl während des Downloads als auch des drahtlosen Updates, Beschleunigung der Hardware-Verschlüsselung AES, SHA, ChaCha, ECC, in einschließlich mit DMA (als Ergebnis können alle Daten in Flash und RAM verschlüsselt werden), Zufallszahlengeneratoren (TRNG, PRNG).


Es ist interessant festzustellen, dass Sie mit CryptoCell mehrere Vertrauenswurzeln für verschiedene Aufgaben haben können (z. B. ein zusätzliches RoT für einen Kunden einbetten, der eine Massenlösung vom Markt in sein geschlossenes IT-System integrieren möchte, z. B. eine Bank, ohne an das Haupt-RoT des Herstellers gebunden zu sein). sowie sicheres Debuggen (Secure Debug) mit Berechtigungsrechten.

Die CryptoCell-Serie 300 richtet sich speziell an Internet-of-Things-Geräte mit geringem Stromverbrauch. Der Verbrauch des neuen M33 ist etwa 20-40% niedriger als der des M4. Angesichts des Energieverbrauchsverlusts für TrustZones Arbeit von 20% haben wir den gleichen oder einen niedrigeren Verbrauch als jetzt. Infolgedessen können wir sagen, dass die Hardwaresicherheit mit dem Cortex-M33 / M23 das massivste Budgetsegment erreicht hat und in naher Zukunft die Anzahl der darauf basierenden Produkte nur noch zunehmen wird.

Zu den TrustZone-Alternativen gehört OpenTitan, das von Google gesponsert wird. Es ist jedoch noch nicht weit verbreitet und konzentriert sich auf andere Anwendungen als Endgeräte des Internet der Dinge.

Es ist erwähnenswert, dass die Hardware-Implementierung der Vertrauenswurzel kein Allheilmittel ist und auch gehackt werden kann. Ein Beispiel ist die jüngste Geschichte mit Intel . Es ist wichtig zu erwähnen, dass in diesem Fall ein Fehler im ROM gefunden wurde und ein Schlüssel für alle Generationen von Chipsätzen verwendet wurde, sodass er reproduziert werden kann. Und selbst eine solche Implementierung erschwert den Hack erheblich.

Betrachten Sie die 5 Phasen der Entwicklung der Implementierung von Root-of-Trust in den uBlox- Mobilfunkkommunikationsmodulen , die in Zusammenarbeit mit der Kudelski-Gruppe entwickelt wurden. Dies ist aus Sicht der Aufgabe interessant, da sich ihre Lösungen erheblich von den Ansätzen anderer Unternehmen unterscheiden. Cat-M Nb-IoT / LTE-Mobilfunkmodule gehören zu den Übergangsklassen zwischen der 4. und 5. Generation von LTE und sind auf LPWAN-Netze mit geringem Stromverbrauch ausgerichtet. In den meisten Fällen sollten Geräte jahrelang ohne menschliches Eingreifen funktionieren. Moderne Lösungen ermöglichen es Ihnen, 7-10 Jahre mit einer Batterie (Batterie) zu arbeiten. Die durchschnittliche Lebensdauer des Geräts beträgt häufig 15 Jahre. Während dieser Zeit können sich die Sicherheitsanforderungen erheblich ändern und neue Bedrohungen werden angezeigt. Geräte sollten während der gesamten Lebensdauer ohne menschliches Eingreifen stabil funktionieren. Dementsprechend ist es notwendig, solche Geräte unter Berücksichtigung der Dauer und Art ihrer Arbeit zu schützen.


Wie Sie in der Struktur sehen können, ändert die Wurzel des Vertrauens mit jeder nächsten Generation ihre Position. Dies ist ein wichtiger Punkt, der die Sicherheit der gesamten Lösung beeinträchtigt.

Die Optionen 1 und 3 gelten laut uBlox / Kudelski aufgrund der Software-Implementierung von RoT und des wahrscheinlichsten Hacks als unzuverlässig. Einschließlich für den Fall, dass das Vertrauen in das externe eSIM (eUICC) gestärkt wird, das einen ausreichenden Schutz für Bankanwendungen des Einstiegs- EAL4 bietet (Schlüssel in eUICC können nicht gelesen oder geändert werden, damit sie von außen nicht wahrgenommen werden). Dieser Ansatz bringt jedoch Mängel und potenzielle Schwachstellen mit sich, die sich aus der Tatsache ergeben, dass die Kommunikation mit einer externen Komponente abgefangen und möglicherweise verzerrt werden kann, sowie aus der Komplexität der Interaktion in den Anfangsstadien der Systeminitialisierung (Bootloader-Verifizierung)komplizierter Programmiermechanismus aufgrund begrenzter Chipressourcen in UICC. Darüber hinaus kann das externe Modul ersetzt oder aus dem System entfernt werden (einfach durch Auswechseln der SIM-Karte), wodurch das gesamte System ohne Vertrauensbasis bleibt.

Daher besteht der weitere Entwicklungspfad darin, die Vertrauenswurzel in den geschützten Bereich des Chips zu integrieren. Dieser Ansatz steht im Einklang mit ARM TrustZone CryptoCell Composition.

Die Version mit der Implementierung von Root-of-Trust in einem sicheren Betriebssystem ist die am weitesten verbreitete auf dem Markt und bietet ein Sicherheitsniveau, das für die meisten Aufgaben ausreicht. Die gängigste Lösung auf dem Markt ist ARM TrustZone (siehe oben), jedoch ohne CryptoCell, das Schlüssel in einem geschützten Bereich speichert.

Die Lösung mit im Chipsatz integriertem Schutz, zu der von außen praktisch kein Zugang besteht, bietet den größten Schutz. Die aktuelle Lösung verwendet das integrierte Sicherheitselement (Secure Element), das gemäß der Stufe EAL5 + zertifiziert ist . Dies ermöglicht die Common Criteria-Zertifizierung für das gesamte Gerät sowie das Platzieren von SIM-Kartenfunktionen und MNO-Profilen (Mobile Network Operator) im Gerät. Dies entspricht der aktuellen Sicherheitsstufe.

Die nächste Generation des uBlox-Chipsatzes befindet sich in der Entwicklung, wobei Secure Element in das Silizium des Modem-Chipsatzes selbst integriert wird. Dies reduziert die Angriffsfläche weiter und verbessert die Sicherheit auf höchstem Niveau. Es wird über iUICC implementiert(Integrated Universal Integrated Circuit Card) - Die nächste Generation von UICC, bei der sich der gesamte Code und die SIM-Kennung auf einem Chip im System befinden. Der Standard ist noch nicht abgeschlossen.

Ergebnisse:

  • Immer mehr Hersteller elektronischer Komponenten entwickeln und produzieren Geräte mit Blick auf die Sicherheit, beginnend mit den frühesten Entwicklungsstadien.
  • Endpoint-Unternehmen erhalten sofort Sicherheitsmanagement-Tools. Wenn Sie Experten für die Entwicklung von Tools gewinnen, können Sie Fehler vermeiden und die Kosten für die gesamte Lösung erheblich senken.
  • Der Preis für neue Lösungen liegt häufig in der Nähe der aktuellen Lösungen, bietet jedoch ein grundlegend anderes Schutzniveau, was auch den Übergang erheblich vereinfacht
  • Die wachsende Anzahl von Geräten, die ein neues Sicherheitsniveau bieten, ist nur eine Frage der Zeit.
  • Bei neuen Secure-Element-Lösungen wird UICC in den Chip-Chip übertragen, um die Sicherheit zu erhöhen und Angriffe zu verhindern
  • Moderne Lösungen bieten Sicherheitsstufen bis EAL6 +, die für den Einsatz in Situationen mit hohem Risiko ausreichen.
  • Lösungen der EAL7-Ebene befinden sich in der Entwicklung. Sie verwenden jedoch Technologien ohne endgültig genehmigten Standard. Daher ist der Begriff für ihre Marktverfügbarkeit nicht definiert.

All Articles