Zum Hauptinhalt Zur Navigation

Embedded Entwicklung: Nvidia ersetzt C mit Ada und Spark für bessere Sicherheit

Die Firmware und Boot-Sequenz auf Nvidia -Karten ist besser abgesichert worden. Dafür wird das anfällige C ersetzt.
/ Sebastian Grüner
1 Kommentare News folgen (öffnet im neuen Fenster)
Nvidia sichert seine Hardware strikt ab. (Bild: Reuters)
Nvidia sichert seine Hardware strikt ab. Bild: Reuters

Die Programmiersprache C gilt als besonders fehleranfällig, was sie in sicherheitskritischen Anwendungsbereichen in den vergangenen Jahren immer mehr zum Ärgernis gemacht hat. Zahlreiche Initiativen verschiedener Unternehmen ersetzen deshalb inzwischen ihren C-Code. Das Mittel der Wahl ist dabei meist Rust. Nvidia setzt stattdessen aber auf Ada und Spark, worauf der Hauptsponsor der Sprachen, Adacore, hinweist(öffnet im neuen Fenster) .

Dass Nvidia die Nutzung von Ada und der formal verifizierten Variante Spark unterstützt(öffnet im neuen Fenster) , ist bereits länger bekannt. Weitere Details dazu, welche Komponenten der Grafikkartenhersteller mit dieser Software betreibt, sind bisher aber rar. Einblicke dazu gaben die Nvidia-Entwickler selbst aber auf der Sicherheits- und Hackerkonferenz Def Con vor wenigen Wochen(öffnet im neuen Fenster) und zeigten etwa, auf welche Probleme und Fehler sie dabei stießen.

Die Arbeiten mit Spark begannen bei Nvidia laut Adacore ( PDF(öffnet im neuen Fenster) ) bereits im Jahr 2018 mit Beispielcode für einen auf den Grafikkarten genutzten Root-of-Trust sowie einem Echtzeitbetriebssystem (RTOS), das geschützte Partitionen verwendet. Die Arbeiten waren dabei auch für die bisherige Nutzung von Ada und Spark ungewöhnlich, weil der Code selbst auf einem von Nvidia eigens designten ASIC lief.

Das führte trotz der Nutzung des sichereren Codes in einem Teil des Softwarestapels zu einer Speicherlücke, die über die RISC-V-ISA ausnutzbar war. Bei dem Chip dürfte es sich also um den GPU System Processor (GSP) handeln, der als Controller für die Grafikkarten fungiert und auf RISC-V basiert. Die Sicherheitsmöglichkeiten der Sprache (g+) sowie die Anbindungen von Spark und Ada an C (g+) überzeugten Nvidia aber wohl dennoch, so dass die Technik nun unter anderem zur Authentifizierung und Integritätsüberprüfung der GPU-Firmware, dem Bootrom und der Secure Monitor Firmware genutzt wird. Letztere sichert den Austausch von Information zwischen abgesicherten und nicht speziell abgesicherten Bereichen des Systems ab.


Relevante Themen