To top
Resources Resources

CodeMeter Embedded trifft TPM

Wie bringt man CodeMeter Embedded und ein TPM zusammen? Manchmal ist auf einem Embedded-Gerät oder einem IoT Device bereits ein TPM oder ein ähnliches Secure Element vorhanden. Da liegt die Frage nahe, ob man dieses Secure Element nicht auch wie einen CodeMeter ASIC als sicheren Schlüsselspeicher nutzen kann, zumal diese Module bei hohen Stückzahlen sehr preiswert sind oder für Bezahlsysteme ohnehin bereits auf der Zielhardware vorhanden sind.

Die Antwort lautet: Ja, das geht mit CodeMeter Embedded. Die Leistung eines CodeMeter ASIC wird ein TPM jedoch nie erreichen können. Die CodeMeter-Hardware im Dongle oder ASIC ist hinsichtlich des Secure Elements sehr leistungsfähig und hat eine für den CodeMeter-Betrieb optimierte Speicherstruktur und Firmware. TPM-Chips und andere Secure Elements sind mit einem anderen Ziel entworfen worden: möglichst preisgünstig einen oder mehrere sichere Anker für Secure Boot oder andere betriebssystemnahe Prozesse bereitzustellen. Allein beim verfügbaren sicheren Speicher ist ein CodeMeter-Chip haushoch überlegen, von den Möglichkeiten wie Code Moving ganz zu schweigen.

Falls der Einsatz eines  hochsicheren CodeMeter ASIC nicht notwendig ist,  kommt oft CmActLicense zum Einsatz. Die Struktur der Datenspeicherung ist kompatibel zum CmDongle, die Daten werden jedoch in einer speziellen Lizenzdatei abgelegt. Damit diese sicher ist, muss sie an bestimmte Merkmale des Systems gebunden werden. Ohne eine feste Verankerung im System könnte die Datei kopiert werden. Bei CmActLicense gibt es dafür die kundenspezifischen Bindungen. Hier wird die Lizenz an individuelle, auf dem Embedded-System verfügbare Merkmale gebunden wie zum Beispiel CPU ID, MAC, GPU ID oder IMEI. Diese Anpassung muss von jedem Hersteller vorgenommen werden.

An dieser Stelle kann die TPM-Integration helfen. Im einfachsten Fall stellt das TPM mit dem Endorsement Key ein individuelles Merkmal bereit, an dem die CmActLicense verankert werden kann. Auf diese Weise werden beide Welten miteinander verknüpft: Die CmActLicense stellt die sichere Speicherstruktur und als sicherer Anker dient das TPM oder ein anderes Secure Element, aus dem eine individuelle, kryptographisch gesicherte Identität gelesen werden kann. 

Mit einem TPM lässt sich auch eine Bindung realisieren, die auf unterschiedlichen Systemen funktioniert und die nicht an jede Hardware neu angepasst werden muss. Dazu wird anstelle des reinen Auslesens der individuellen Identität ein kryptographischer Prozess initiiert: die Platform Attestation. Damit wird die Authentizität des Schlüssels geprüft und sichergestellt, dass der CodeMeter Embedded-Prozess in der gesicherten Software wirklich direkt mit dem TPM kommuniziert. 

In dieser Kombination funktioniert die CmActLicense als sicherer Speicher für Schlüssel und Zertifikate. Dieser Softwaretresor ist mit einem Schlüssel abgeschlossen, der sich im TPM, also in einer gesicherten Hardware, befindet. Damit ist die Kombination von TPM und CmActLicense ein guter und universeller Weg, wenn kein CmDongle oder CodeMeter ASIC zum Einsatz kommt, aber trotzdem ein hardwarebasierter Schlüsselspeicher gewünscht ist.