Aber heute schon gilt: Über Lizenzverfahren lassen sich Maschinen konfigurieren. Wie geschieht dies sicher?
Einfach gesagt, läuft es so ab, dass der Fingerabdruck der Hardware bzw. der Applikation verschlüsselt an das Lizenzierungs-Tool geschickt wird. Daraus wird dann der Freischalt-Code, also die Lizenz, generiert und die Applikation aktiviert. Für diese Aufgabe haben wir das Sentinel Licence Development Kit (LDK) für Softwareschutz, Lizensierungs- und Entitlement-Management entwickelt. Es sorgt für die Dateiverschlüsselung, Code-Verschleierung und Anti-Debugging-Funktionen.
Es kommt also darauf an, dass die Kommunikation verschlüsselt abläuft. Doch Verschlüsselungen lassen sich doch knacken?
Aber wir machen es den Angreifern sehr schwer. Dazu ein aktuelles Beispiel: Vor kurzem haben wir eine neue Version unseres Sentinel-Envelope-File-Wrapper vorgestellt, der Bestandteil des LDK ist. Die neue AppOnChip-Funktion erlaubt es, speziell zu schützenden Code sozusagen abgekapselt außerhalb des eigentlichen Prozessors auszuführen. Der Code wird auf den Sentinel HL Security Chip transferiert und dort ausgeführt. Dabei ist ganz wichtig, dass nicht der Code zurückgeschickt wird, sondern das Ergebnis. Der Code ist also zu keiner Zeit sichtbar. Das ist der Trick bei der Sache.
Wie sicher ist der Chip selber, und wo kommt er her?
Es handelt sich um ein Smartcard-IC, das wir zukaufen, die Sicherheit ist also auf einem sehr hohen Niveau angesiedelt. Das Wichtige dabei: Auf dem Sentinel HL Security Chip arbeitet unser eigenes Betriebssystem.
Warum ist es so wichtig, den Code außerhalb des Prozessors in einem eigenen Chip ausführen zu lassen?
Weil der Prozessor ja nur unverschlüsselte Software versteht. Die Software muss ihm also unverschlüsselt zugeführt werden, und im Cash liegen die Daten unverschlüsselt vor. Wenn sich nun als schützenwert identifizierte Teile der Software in kleine Pakete verpacken lassen, die auf unserer AppOnChip-Funktion auf dem Smartcard-IC ablaufen, dann hat ein Hacker praktisch keine Chance, an diesen Teil heranzukommen.
Und wenn es ihm doch in einem Fall gelingt?
Ein Hacker kann vielleicht Teile des Programms knacken, vielleicht einzelne Funktionen. Weil aber jede Funktion innerhalb des Lizenz-Codes einen eigenen Schlüssel besitzt, ist das sehr schwierig. Denn er müsste ja jede einzelne Funktion entschlüsseln. Und über allem liegt der Sentinel-Envelope-File-Wrapper, der noch einmal alles verschlüsselt, um die übrigen Funktionen auch zu schützen. Und jeder Systemehrsteller bekommt noch einmal einen eigenen Code. Dann generiert Hersteller A andere Lizenzen als Hersteller B.
Einen Schutz auf der Ebene, die die AppOnChip-Funktion bietet, gab es bisher einfach noch nicht, eben weil AppOnChip Teile des Programmcodes extrahiert, verschlüsselt, signiert und im Sentinel HL Chip ausführt. Das ist neu.
Wie groß sind die Pakete typischerweise, und wie wirkt sich das auf die Leistungsfähigkeit des Systems insgesamt aus. Wieviel Performance geht verloren?
Die Größe liegt typischerweise bei 30 KByte. Es sollen ja nur die wirklich wichtigen Algorithmen noch einmal zusätzlich geschützt werden. Natürlich wirkt sich das auf die Performance aus. Wie hoch die Auswirkungen sind, hängt von der Größe der Pakete ab, die in Hardware geschützt werden sollen, und von der Anzahl der Routinen. Wir gehen davon aus, dass die Leistungsfähigkeit nicht wesentlich abfällt.
Wie groß die Code-Pakete sein sollen, die besonders zu schützen sind, und wie viele es sind – das muss der Systementwickler selber herausbekommen?
Unser Tool analysiert den Code, den der Entwickler schreibt, und schlägt ihm vor, welche Teile geschützt werden sollten. Dazu könnte beispielsweise der Steueralgorithmus zum Abbremsen eines Motors gehören oder weitere Steueralgorithmen, die das Kern-Know-how des Systemherstellers bilden.