51979.jpg

Auf einen Blick

Die Sicherheit von eingebetteten Systemen wird immer mehr zum Problem. Ein ordnungsgemäß abgesicherter Bootvorgang, der sich auf bewährte Kryptografie-Algorithmen stützt, bürgt dafür, dass auf dem jeweiligen Gerät ausschließlich autorisierte Software läuft. Damit gehen jedoch einige Herausforderungen einher. Wird ein als Coprozessor fungierender sicherer Mikrocontroller wie etwa der MAXQ1050 hinzugefügt, wird ein sicherer Bootvorgang effizient unterstützt und gleichzeitig wird ein hohes Maß an Sicherheit erreicht.

Täglich gibt es neue Attacken auf eingebettete Systeme, die unter anderem in gesundheits- oder sicherheitsrelevanten Anwendungen eingesetzt werden. Ein Angriffstyp ist das Einschleusen von Schadprogrammen (Malware) beziehungsweise das Einfügen von Schadcode in eine Webseite. Ist es dem Angreifer erst einmal gelungen, ein attackiertes Gerät zum Ausführen der manipulierten Software zu bringen, kann diese Schadsoftware verschiedene Schäden anrichten:

  • Herausschleusen vertraulicher Daten. Im medizinischen Bereich kann injizierte Schadsoftware ein Gerät (zum Beispiel ein EKG-Gerät) dazu bringen, Informationen über den Gesundheitszustand einer Person zu versenden. Noch weitreichender wären die Folgen, wenn die Schadsoftware einen Chiffrierschlüssel der Öffentlichkeit zugänglich macht.
  • Verursachen fehlerhafter Betriebsabläufe im Gerät. Ein berühmt gewordenes Beispiel hierfür ist der Computerwurm Stuxnet, der speicherprogrammierbare Steuerungen (SPS) befiel und dafür sorgte, dass Zentrifugen mit nicht vorgesehener Drehzahl liefen.
  • Provokation eines unvorhersehbaren Verhaltens in einem Gerät. Unter anderem können Geräte dadurch Menschenleben gefährden.

Ein ordnungsgemäß abgesicherter Bootvorgang bürgt dafür, dass auf dem jeweiligen Gerät ausschließlich autorisierte Software läuft. Er verhindert damit das Einschleusen von Schadprogrammen auch im Zuge von Updates. Um ein hohes Maß an Vertrauen zu erzielen, muss sich ein abgesicherter Bootvorgang auf bewährte Kryptografiealgorithmen stützen. Dies jedoch bringt eine ganze Reihe von Herausforderungen mit sich:

  • Die geeignetsten Algorithmen sind asymmetrisch und verlangen nach erheblicher Rechenleistung.
  • Die zu den Algorithmen gehörenden Schlüssel müssen sicher aufbewahrt werden.
  • Die Implementierung muss frei von Fehlern sein.

Diese Anforderungen zu erfüllen, kann sich in vielen Systemen äußerst anspruchsvoll gestalten. Durch das Hinzufügen eines als Coprozessor fungierenden sicheren Mikrocontrollers wie etwa des MAXQ1050 lässt sich die Implementierung eines sicheren Bootvorgangs effizient unterstützen und gleichzeitig ein sehr hohes Maß an Sicherheit erzielen.

Authentisierung und digitale Signierung der Firmware

Es muss gewährleistet werden, dass das eingebettete Gerät ausschließlich autorisierte Software verarbeitet. Zu diesem Zweck ist es notwendig, die besagte Firmware zu authentisieren. Es muss also sichergestellt werden, dass die verwendete Software echt ist und von einer autorisierten Instanz geschrieben oder freigegeben wurde. Möglich ist dies, indem die Firmware mit einer digitalen Signatur versehen wird, ähnlich wie man einen Brief mit einem Siegel versieht oder handschriftlich unterschreibt.

Nicht nur die bei der Produktion geladene Software, sondern auch jedes Firmwareupdate sollte digital signiert sein. Auf diese Weise lässt sich mit digitalen Signaturen Vertrauen schaffen über die gesamte Einsatzdauer eines Geräts hinweg.

Eine robuste digitale Signatur muss mithilfe eines kryptografischen Algorithmus berechnet werden. Um hier für maximale Sicherheit zu sorgen, müssen die Algorithmen öffentlich zugänglich und bestens erprobt sein. Im vorliegenden Fall sollen asymmetrische Kryptografiealgorithmen betrachtet werden, nämlich der Elliptic Curve Digital Signature Algorithm (ECDSA) und RSA im Verbund mit SHA.

Asymmetrische Kryptografieverfahren für sichere Bootvorgänge

Das entscheidende Prinzip eines auf asymmetrischer Kryptografie basierenden sicheren Bootvorgangs besteht darin, dass der Softwareentwickler im Besitz des bei der Signierung verwendeten privaten Schlüssels ist, während im eingebetteten Gerät der für die Verifikation verwendete öffentliche Schlüssel abgelegt ist. Der Hauptvorteil, den dieses Verfahren gegenüber einem sicheren Bootvorgang auf der Grundlage symmetrischer Kryptografie bietet, besteht darin, dass das vertrauliche Element (der private Schlüssel) nicht im Endprodukt gespeichert werden muss. Beim Einsatz von ECDSA (Elliptic Curve Digital Signature Algorithm; -deutsch: digitaler Signatur-Algorithmus mit elliptischen Kurven) oder RSA (RSA = Rivest, Shamir und Adleman; ein asymmetrisches kryptographisches Verfahren, das sowohl zur Verschlüsselung als auch zur digitalen Signatur verwendet werden kann) hat ein Angreifer also niemals die Möglichkeit, an den privaten Schlüssel zu gelangen, auch wenn er sich einer noch so raffinierten invasiven Angriffsmethode bedient, denn der private Schlüssel ist nirgendwo in einem im Feld installierten Gerät zu finden. Alles, was sich ein Angreifer aneignen könnte, ist der öffentliche Schlüssel. Bei der asymmetrischen Kryptografie aber ist es praktisch unmöglich, Rückschlüsse auf den privaten Schlüssel zu ziehen, wenn man ausschließlich den öffentlichen Schlüssel kennt. Hierin liegt ein grundlegender Vorteil der asymmetrischen Kryptografie.

Bild 1: Ablauf eines sicheren Bootvorgangs über die verschiedenen Phasen im Lebenszyklus eines Geräts.

Bild 1: Ablauf eines sicheren Bootvorgangs über die verschiedenen Phasen im Lebenszyklus eines Geräts.Maxim Integrated

Den Ablauf eines mit asymmetrischer Kryptografie implementierten sicheren Bootvorgangs zeigt Bild 1. Die Authentizität der Firmware wird per ECDSA oder RSA verifiziert, was für ein sehr hohes Maß an Sicherheit sorgt, sofern ein ausreichend langer Schlüssel verwendet wird (in der Regel 2048 Bit für das RSA- oder 224 Bit für das ECDSA-Verfahren). Mit SHA-256 lassen sich ECDSA und RSA effizient und sicher umsetzen. Eine Firmware komplett digital zu signieren wäre allerdings nicht praktikabel. Stattdessen berechnet man einen Hash-Wert, der aufgrund der Eigenschaften des Hash-Algorithmus SHA-256 garantiert einzigartig und fälschungssicher ist. Der errechnete Hash-Wert wird anschließend per ECDSA oder RSA signiert. Der gleiche Ablauf lässt sich auch für Firmwareupdates verwenden, mit dem einzigen Unterschied, dass das Laden der Firmware hier nicht im Herstellerwerk erfolgt. Der entscheidende Punkt ist in jedem Fall, dass der private Schlüssel zu keinem Zeitpunkt das Software-Designzentrum verlassen muss.

Die entscheidenden Vorteile der asymmetrischen Kryptografie stehen also außer Zweifel. Nicht verschwiegen werden darf jedoch, dass diese Technik erhebliche Berechnungsressourcen erfordert. Das Berechnen eines SHA-x für eine umfangreiche Software ist sehr zeitaufwändig, wenn dies per Software erfolgt. Die ECDSA- oder RSA-Signatur zu errechnen, verlangt ebenfalls nach umfangreichen Ressourcen, speziell wenn der Haupt-Mikrocontroller des Systems über keinen Multiplizierer verfügt.

Eine weitere Herausforderung stellt die Integrität des öffentlichen Schlüssels und seines Zertifikats dar. Ein öffentlicher Schlüssel muss, wie der Name schon andeutet, nicht geheim gehalten werden. Er darf vielmehr öffentlich zugänglich sein, da er lediglich für die Verifikation genutzt werden kann. Allerdings kann ein Angreifer versuchen, den ursprünglichen öffentlichen Schlüssel gegen einen eigenen öffentlichen Schlüssel auszutauschen. Würde dieser Austausch gelingen, könnte das Gerät eine vom privaten Schlüssel des Angreifers signierte Software als echt authentifizieren. Um dies auszuschließen, ist unbedingt die Integrität des öffentlichen Schlüssels sicherzustellen. Es muss also garantiert werden, dass der öffentliche Schlüssel nicht verändert oder ausgetauscht wird.

Lösung für sichere Bootverfahren

Der sichere Mikrocontroller DeepCover MAXQ1050 von Maxim Integrated erfüllt alle soeben genannten Bedingungen. Bild 2 gibt das Blockschaltbild einer typischen, auf dem MAXQ1050 basierenden Implementierung eines sicheren Bootvorgangs für ein eingebettetes Gerät wieder.

Bild 2: Blockschaltbild eines typischen eingebetteten Systems. Der sichere Mikrocontroller MAXQ1050 wird hier als sicherer Coprozessor verwendet.

Bild 2: Blockschaltbild eines typischen eingebetteten Systems. Der sichere Mikrocontroller MAXQ1050 wird hier als sicherer Coprozessor verwendet. Maxim Integrated

Dank seiner eingebauten sicheren Hash-Engine beschleunigt der Mikrocontroller die Berechnung der Hash-Funktion für die Firmware, so dass das Gerät entsprechend schneller bootet. Außerdem kann er eine schnelle Verifikation einer ECDSA- oder RSA-Signatur vornehmen, da er über einen MAA-Hardwarebeschleuniger für modulare Arithmetik-Operationen verfügt.

Der MAXQ1050 führt die in Bild 1 unter „Field Usage“ genannten Arbeitsschritte aus. Abgesehen von der Hash-Berechnung der Firmware und der Verifikation der digitalen Signatur informiert er den System-Mikrocontroller und/oder das Power-Management-IC (PMIC) über den Status der Firmware-Authentifizierung. Dazu die folgenden Implementierungs-Beispiele:

  • Der MAXQ1050 kann, über eine GPIO-Leitung, dem PMIC die Erlaubnis erteilen, den Mikrocontroller mit Strom zu versorgen.

oder:

  • Ein GPIO-Anschluss des MAXQ1050 kann mit dem Reset-Pin des Haupt-Mikrocontrollers verbunden werden. Das Reset-Signal wird erst aufgehoben, wenn die Authentizität der Firmware verifiziert wurde.

oder:

  • Beide obigen Optionen, gefolgt von einer digitalen Sequenz, die vom MAXQ1050 auf mehreren GPIO-Leitungen gesendet wird.

Die Integrität des öffentlichen Schlüssels, des zugehörigen Zertifikats und des Referenz-Hash-Wertes wird durch die sicheren Speicherfunktionen des Bausteins gewährleistet.

Das richtige Maß an Sicherheit

Häufig ist es schwierig, die für ein Produkt angemessene Sicherheit zu definieren, denn das Anstreben des höchstmöglichen Sicherheits-Levels hat in der Regel hohe Entwicklungs- und Produktionskosten zur Folge. Es gilt also, einen Kompromiss zu finden. Welches im Einzelfall der richtige Mittelweg ist, richtet sich häufig danach, wie hoch die Angriffswahrscheinlichkeit ist und welcher Schaden bei einer erfolgreichen Attacke droht. Bei der Ermittlung der adäquaten Sicherheitsstufe müssen zahlreiche Risikofaktoren berücksichtigt werden, wie zum Beispiel:

  • Die Werkzeuge, die den Angreifern zur Verfügung stehen: Ein Angreifer kann wesentlich mehr anrichten, wenn er Zugriff auf hoch entwickelte Technik wie etwa ein Rasterelektronenmikroskop oder ein Focused-Ion-Beam-Mikroskop (FIB) hat.
  • Das Angreiferprofil: Es ist entscheidend, ob ein Angreifer allein agiert oder einer kriminellen Organisation mit starkem finanziellem Rückhalt angehört.
  • Die Motivation des Angreifers: Ein Angreifer kann es auf finanzielle Vorteile oder auf Anerkennung für seine Fähigkeiten abgesehen haben.
  • Die finanziellen Konsequenzen eines erfolgreichen Softwareangriffs.

Generell kann man das Angriffspotenzial in drei Stufen unterteilen:

  • Gering: Der Angreifer kann das System mit allen softwaremäßigen Mitteln angreifen, darunter auch durch das Einschleusen von Schadsoftware. Er ist jedoch nicht fähig oder nicht hinreichend ausgerüstet, um irgendwelche physischen Merkmale des Systems zu manipulieren.
  • Mittel: Abgesehen von Softwareangriffen kann der Angreifer auch physische Attacken ausführen. Dazu gehört das Abtasten einer Leiterbahn, um ein Signal abzugreifen oder einem digitalen Signal einen bestimmten Status aufzuzwingen, sowie das Entfernen eines ICs von der Leiterplatte.
  • Hoch: Der Angreifer besitzt die Fähigkeit zum Ausführen sehr invasiver Attacken. Hierzu zählt das Mikroprobing von Bonddrähten eines ICs oder des ICs selbst.

Maxim Integrated kann für jede dieser Stufen den passenden Schutz bieten:

Geringes Angriffspotenzial: Die in Bild 2 gezeigte Basisimplementierung bietet hier einen hinreichenden Schutz, ohne dass irgendwelche besonderen Empfehlungen zu beachten sind.

Mittleres Angriffspotenzial: Weil die sichere Bootsequenz von Maxim jede gefälschte Software erkennt, bietet bereits die Basisimplementierung Schutz vor einigen Attacken, darunter beispielsweise vor Angriffen, bei denen der serielle Flashspeicher, der das System enthält, durch einen gefälschten Speicher mit der Software des Angreifers ausgetauscht wird. Um die Widerstandsfähigkeit des Systems gegenüber Hardwareattacken auch ohne Anstieg der Entwicklungs- oder Produktionskosten zu verbessern, werden bestimmte Vorsichtsmaßnahmen beim Layout empfohlen. Dazu hier einige Beispiele:

  • Leiterbahnen, die den MAXQ1050 mit dem PMIC oder dem Haupt-Mikrocontroller des Systems verbinden, sollten auf den inneren Lagen der Leiterplatte verlaufen, um den Zugang zu erschweren. Das Abtasten dieser Signale oder das Erzwingen bestimmter Zustände ist dann nicht ohne weiteres möglich.
  • Es sollten dynamische Signale (das heißt Impulse oder eine Impulsabfolge) verwendet werden, um dem Haupt-Mikrocontroller einen erfolgreichen Bootvorgang zu signalisieren. Für einen Angreifer reicht es dann nicht aus, die betreffenden Pins mit einem konstanten Potenzial (zum Beispiel VDD) zu verbinden.
  • Ein erfolgreicher Bootvorgang sollte dem Haupt-Mikrocontroller nach Möglichkeit über mehrere Pins mit unterschiedlichen dynamischen Signalen gemeldet werden. Die betreffenden Leiterbahnen sollten ferner so verlegt werden, dass es dem Angreifer nur unter Schwierigkeiten möglich ist, beide Pins gleichzeitig zu kontrollieren.

Hohes Angriffspotenzial: Wenn sich der Schutz auch auf die raffiniertesten Angriffsmethoden erstrecken soll, muss die Implementierung den Sicherheitsanforderungen gemäß FIPS 140-2 Level 3 oder 4 entsprechen. Sie sollte jeglichen mechanischen Manipulationsversuch erkennen und darauf umgehend reagieren, indem sie alle sensiblen Informationen zerstört und das System damit lahmlegt. Da in diesem Fall eine Wartungsmaßnahme erforderlich ist um das Gerät wieder funktionsfähig zu machen, sollte diese Absicherungsstufe nur dann gewählt werden, wenn die Sicherheit wichtiger ist als die Verfügbarkeit des Systems.

Dank seiner „Selbstzerstörungs-Eingänge“ und seines umgehend löschbaren NV-SRAM kommt der sichere Mikrocontroller MAXQ1050 auch für diese hohen Sicherheitsanforderungen infrage. Die Implementierung dieser hohen Sicherheitsstufe geht jedoch über den Rahmen dieses Beitrages hinaus.

Infobox

  • RSA (Rivest, Shamir und Adleman), asymmetrisches kryptographisches Verfahren, das sowohl zur Verschlüsselung als auch zur digitalen Signatur verwendet werden kann.
  • SHA (secure hash algorithm, englisch für sicherer Hash-Algorithmus) bezeichnet eine Gruppe standardisierter kryptologischer Hash-Funktionen. Diese dienen zur Berechnung eines eindeutigen Prüfwerts (Digitale Signatur) für beliebige digitale Daten (Nachrichten).
  • FIPS (Federal Information Processing Standard) ist die Bezeichnung für öffentlich bekanntgegebene Standards der Vereinigten Staaten, u.a. der Data Encryption Standard FIPS 46 oder der Advanced Encryption Standard FIPS 197.

Christophe Tremlet

ist Security Segment Manager bei Maxim Integrated im französischen La Ciotat.

(ah)

Sie möchten gerne weiterlesen?

Unternehmen

Maxim Integrated

160 Rio Robles
95134 San Jose
United States