Kategorien: Embedded Security
Aktivierung von Lizenzen auf Embedded Devices
Industrie 4.0 und Internet of Things liefern die Vision, dass alle Embedded Devices in der Zukunft miteinander vernetzt sind. In dieser zukünftigen Welt steht die Sicherheit der Geräte im Fokus. Wenn alle Geräte vernetzt sind, entstehen neue Bedrohungsszenarien, in denen Hacker vom Sofa aus Züge kidnappen oder die Stromversorgung eines ganzen Landes sabotieren. CodeMeter bietet mittels Verschlüsselung und Identitäts- und Berechtigungsprüfungsmechanismen ein Rahmenwerk für diese Sicherheit.
Neben der Sicherheit spielt auch die Freischaltung von Features On Demand eine zunehmend größere Rolle. Oft enthalten unterschiedliche Geräte die gleiche Hardware. Die Funktionalität und damit der Preis unterscheiden sich nur durch Einstellungen in der Software oder zusätzliche Module in der Software. Neben den Sicherheitsfunktionen bietet CodeMeter ein schlüsselfertiges System für Softwareschutz und Lizenzmanagement. Doch wie gelangen Lizenzen auf ein Embedded Device?
Vernetzte Welt
In der zukünftigen vernetzten Welt ist dies ganz einfach. Der Hersteller liefert das Gerät mit einem CmContainer aus. Dieser kann leer sein oder bereits aktivierte Lizenzen enthalten. Im Falle eines Hardware-Dongles wird der CmDongle einfach mit dem Gerät verbunden. Dies kann in Form einer CF-Karte, eine SD-Karte, einer µSD-Karte oder eines USB-Dongles erfolgen. Im Falle einer rein softwarebasierten Lösung wird eine CmActLicense im System registriert. Dies erfolgt über einen Aufruf des CodeMeter-APIs.
Um eine Lizenz zu aktivieren, erstellt der Hersteller zuerst ein Ticket mit der CodeMeter License Central. Ein Ticket hat die Form NFGSX-VWNYJ-T74CD-48H5B-7NEEJ. Die Erstellung kann automatisch über SAP oder ein anderes ERP-System erfolgen. Dabei werden die zu erstellenden Lizenzen mit dem Ticket verknüpft und in der CodeMeter License Central zum Abholen bereitgelegt. Die CodeMeter License Central kann wahlweise vom Hersteller selber gehostet werden oder von Wibu-Systems. Der Hersteller schickt das Ticket als E-Mail oder als Lieferschein an den Anwender.
Der Anwender gibt das Ticket auf dem Embedded Device ein. Der Hersteller hat dies entsprechend im Gerät vorgesehen. Nach der Eingabe des Tickets wird eine Remote-Context-Datei vom CmContainer erzeugt. Diese enthält die Seriennummer des CmDongles oder einen Fingerabdruck des Gerätes im Falle einer softwarebasierten Lizenzierung. Ticket und Remote-Context-Datei werden über das Netzwerk an die CodeMeter License Central übertragen.
In der CodeMeter License Central wird geprüft, ob das Ticket gültig ist und noch nicht verwendet wurde. Ist dies der Fall, wird eine Remote-Update-Datei mit den hinterlegten Lizenzen erzeugt. CodeMeter sichert kryptografisch ab, dass diese Remote-Update-Datei nur in denjenigen CmContainer eingespielt werden kann, für den sie erzeugt wurde. Die Remote-Update-Datei wird als Antwort an das Embedded Device zurückgeschickt und dort eingespielt. Für das Erzeugen und Einspielen der Remote-Context- und Remote-Update-Dateien stehen CodeMeter-API-Funktionen zur Verfügung.
Neben der CodeMeter License Central besteht auch die Möglichkeit, eine Remote-Update-Datei per CodeMeter-API oder per Kommandozeilenwerkzeug zu erzeugen. Dies ist vor allem für Test- und Integrationsszenarien nützlich.
Offline-Welt
Prinzipiell ist die Übertragung der Remote-Context-Datei und der Remote-Update-Datei auch offline möglich. Der Hersteller des Embedded Devices integriert die entsprechenden Prozesse in sein Entwicklungswerkzeug oder sein Supportwerkzeug auf dem PC. Das Tool auf dem PC verbindet sich mit dem Embedded Device. Dabei wird auf dem Embedded Device die Erstellung einer Remote Context Datei angestoßen. Alternativ kann diese im Hintergrund automatisch erstellt worden sein. Diese Remote-Context-Datei wird dann vom PC-Tool auf den PC übertragen. Dieser Vorgang ist natürlich auch möglich, falls das Embedded Device weder über Display noch über Tastatur verfügt.
Anschließend nimmt das PC-Tool Kontakt mit der CodeMeter License Central auf. Dieser Schritt kann zeitlich versetzt erfolgen, auch nachdem die Verbindung zum Embedded Device längst getrennt wurde. Das PC-Tool fragt vom Anwender das Ticket ab und sendet dann Ticket und Remote-Context-Datei an die CodeMeter License Central. Es erhält die Remote-Update-Datei als Antwort.
Im nächsten Schritt wird der PC erneut mit dem Embedded Device verbunden. Die Internet-Verbindung wird nicht mehr benötigt. Das PC-Tool lädt die Remote-Update-Datei auf das Embedded Device. Der Aktualisierungsprozess kann dann entweder vom PC-Tool angestoßen werden oder ein Prozess auf dem Embedded Device scannt regelmäßig nach neuen Remote-Update-Dateien und startet die Aktualisierung automatisch im Hintergrund.
Optional kann eine erneut erzeugte Remote-Context-Datei vom Embedded Device auf den PC übertragen werden und bei bestehender Internet-Verbindung als Quittung an die CodeMeter License Central geschickt werden.
Offline ohne Rückkanal
Es gibt Anwendungsfälle, in denen der Rückkanal vom Embedded Device zum Hersteller verboten ist. In diesen Fällen ist es möglich, die Remote-Context-Datei in der CodeMeter License Central anhand von Seriennummer, Fingerabdruck, originaler Remote-Context-Datei und durchgeführten Updates zu simulieren. Der Prozess vereinfacht sich dann: Der Anwender startet mit dem PC-Tool. Er gibt das Ticket ein, wählt die Seriennummer des Embedded Devices und lädt die Remote-Update-Datei herunter. Der Rest erfolgt wie oben beschrieben.
In diesem Fall ist es für den Hersteller nicht möglich, zu sagen, welche Lizenzen wirklich auf dem Embedded Device aktiviert wurden. Ändert sich der Fingerabdruck, weil Hardware getauscht oder ein neuer CmDongle verwendet wurde, wird eine neue Remote-Context-Datei benötigt.
Fazit
Die Aktivierung einer Lizenz mit CodeMeter erfolgt auf einem Embedded Device analog zu einer Online-Aktivierung auf einem PC. Über ein Ticket wird autorisiert, welche Lizenzen ausgeliefert werden. Das Ticket ist ein 25-stelliger Code, den der Hersteller erzeugt. Im Offline-Fall kann ein PC als Brücke dienen, auf dem Anfrage und Lizenz als Remote-Context-Datei oder Remote-Update-Datei zwischengespeichert werden.