In der Praxis finden sich Schwachstellen meist nicht in den kryptographischen Verfahren selbst, sondern in der Umsetzung auf realen Geräten. Dies zeigen z.B. die Erfahrungen, die im vergangenen Jahrzehnt bei Pay-TV-Systemen gemacht wurden. Bei Embedded-Systemen wie im Automotive-Bereich hat der Angreifer häufig das anzugreifende Gerät in der Hand und kann teilweise direkt die gespeicherten Schlüssel angreifen: über Betriebssystem-Schwachstellen, direkten Hardware-Zugriff, JTAG oder andere Ansatzpunkte. Gegen solche Angriffe hilft der Einsatz spezieller Security-Hardware, der allerdings auch mit zusätzlichen Kosten verbunden ist. Auch auf Standard-Hardware lässt sich die Sicherheit jedoch erhöhen, z.B., indem man Schlüssel im prozessorinternen Flash speichert. Bei einem größeren abzusichernden Datenumfang ist es möglich, diesen mit einem intern gespeicherten Schlüssel zu verschlüsseln und im externen Speicher abzulegen.
Ein sicherer Speicher allein gewährleistet aber immer noch keine absolute Sicherheit: Ist ein direkter Zugriff auf die Schlüssel nicht möglich, gibt es auch noch andere Angriffe. Vor allem im Hinblick auf Smartcards wurden Verfahren entwickelt, um auf Basis so genannter Seitenkanäle interne Parameter zu rekonstruieren. So kann man durch Messung des Stromverbrauchs oder der elektromagnetischen Abstrahlung während einer kryptographischen Berechnung z.B. Rückschlüsse auf den verwendeten Schlüssel ziehen. Die Kenntnisse solcher Angriffsmöglichkeiten sind von wesentlicher Bedeutung, wenn Kryptoalgorithmen auf einem Embedded-System sicher umgesetzt werden sollen.
Umsetzung in die Praxis
Die Beschränkungen typischer Automotive-Hardware bezüglich Performance und Speicherressourcen sowie die Anforderungen an Echtzeit-Fähigkeit bzw. Unterbrechbarkeit der relativ rechenintensiven kryptographischen Routinen stellen bei der Umsetzung herausfordernde Einschränkungen dar. Zum Teil kann diesen Einschränkungen bereits durch die Auswahl geeigneter kryptographischer Verfahren begegnet werden. Zusätzlich sind aber auch noch Standardisierungsbestrebungen, wie in der „Hersteller-Initiative Software“ (HIS) oder im AUTOSAR-Konsortium, Effizienzbetrachtungen sowie natürlich Fragen der kryptographischen Sicherheit für die im Automobilbau relevanten Produktzyklen zu berücksichtigen.
Während symmetrische Kryptographie, also etwa Blockchiffren, Hash-Funktionen und Message Authentication Codes (MAC), bezüglich Performance und Langzeitsicherheit meist unproblematisch sind, ist die Auswahl bei asymmetrischen Verfahren und geeigneten Schlüssellängen deutlich komplexer. Hier lohnt es sich – je nach Anwendungsfall –, neben gängigen Lösungen wie RSA auch fortschrittlichere Verfahren, z.B. auf Basis elliptischer Kurven (ECC), zu betrachten.
Neben der Auswahl ist vor allem die effiziente und dabei sichere Implementierung der kryptographischen Routinen von zentraler Bedeutung. Je nach vorgesehener Anwendung stehen dabei die erreichbare Performance oder der möglichst geringe Speicherbedarf im Vordergrund. Während z.B. bei externen Gateways im Fahrzeug-Bordnetz zur Kommunikation nach außen ein hoher Durchsatz im Vordergrund steht, müssen bei kryptographischen Routinen auf kleineren Steuergeräten vor allem die sehr knappen Speicherressourcen berücksichtigt werden. Sowohl durch Wahl geeigneter Parameter und Protokollvarianten als auch durch Codierungstechniken bei der Implementierung selbst können entweder die Laufzeit oder die Code-Größe erheblich optimiert werden.
Aus diesen Typen von Algorithmen lassen sich verschiedene andere herleiten:
Die Unterschiede zwischen symmetrischen und asymmetrischen Verfahren sind bei der Umsetzung sehr groß: Symmetrische Verfahren basieren auf relativ schnellen Operationen, während für asymmetrische Verfahren arithmetische Langzahl-Operationen notwendig sind, die zu relativ hohen Rechenzeiten führen. So erreicht man beispielsweise bei symmetrischer Verschlüsselung auf üblichen Embedded-Prozessoren einen Durchsatz von einigen Kilobyte pro Sekunde, während die Erstellung einer einzelnen digitalen RSA-Signatur mehrere Sekunden benötigt. Typische Verfahren sind in Tabelle 1 zusammengefasst. Mit diesen Verfahren lassen sich nun verschiedene Aufgaben erfüllen: