Bild: bratan007, iStock

Software & Security Know-how perfekt geschützt

27.02.2014

Wenn Hersteller Software entwickeln, die Funktionen in ihren Geräten, Maschinen und Anlagen realisiert, steckt viel Know-how dahinter. Um zu verhindern, dass Produktpiraten dieses Expertenwissen knacken, um damit Plagiate zu erstellen, müssen sich Unternehmen um einen passenden Schutz kümmern.

Hersteller können ihr Know-how mit einer technisch präventiven Lösung auf einfache Weise schützen, wenn diese Lösung bereits als Option im Entwicklungswerkzeug integriert ist. So wie jeder Anwender im Word „Drucken“ wählt, wenn er seinen Text zu Papier bringen möchte, kann er mit der Option „Schutz“ einfach seine Applikation schützen.

Wibu-Systems arbeitet seit 2011 als Validated Partner für Industrial und Medical mit Wind River zusammen. Als Security-Experte hat Wibu-Systems ein Schutz-Plug-In für das Echtzeitbetriebssystem VxWorks im Markt eingeführt. Das Resultat der Zusammenarbeit von Wind River, Emerson und Wibu-Systems ist ein Embedded Development Kit, das über Emerson weltweit erhältlich ist. Es unterstützt VxWorks-Entwickler beim Schutz ihrer Anwendungen gegen Piraterie, Reverse-Engineering und Manipulations-Angriffe. Von den Vorteilen der Kooperation ist Alexander Damisch, Director of Industrial Solutions von Wind River, überzeugt: „Die Integration von CodeMeter in VxWorks und das gemeinsame Embedded Development Kit, EDK, ist einzigartig und lässt Entwickler zielstrebig die Verfahren verstehen und anwenden. Auf Basis dieser Lösung haben Wind River und Wibu-Systems in VxWorks 7 Basic Security standardmäßig integriert. Dies eröffnet die Lizenzierung von eingebetteten Applikationen als optionale Erweiterung, womit im Sinne des Internet of Things neue Geschäftsmodelle für Hersteller und Anwender möglich werden.“

Verschlüsselung ist der Punkt, um den sich Wibu-Systems kümmert. Die Schutztechnologie CodeMeter wurde speziell für das Echtzeitbetriebssystem VxWorks erweitert: Das Verschlüsselungstool „AxProtector für VxWorks“ schützt verschiedene Projekte wie VIP, DKM und RTP. Der Hersteller hat CodeMeter als Plug-In so in die Eclipse-basierte Wind River Workbench integriert, dass der Anwender ohne zusätzliche externe Tools sofort seinen Code aus der gewohnten Entwicklungsumgebung heraus schützen und seine VxWorks-Projekte auch lizenzieren kann. Sobald das erste Projekt mit CodeMeter verschlüsselt wurde, wird der VxWorks-Loader durch einen Secure VxWorks-ELF-Loader ersetzt. Dies stellt sicher, dass nur korrekt signierte Projekte auf das Zielsystem übertragen und entschlüsselt werden. Nicht passend signierte Projekte werden nicht ausgeführt.

Wie CodeMeter eingesetzt werden kann, zeigen die Schritt-für-Schritt-Anleitung und vorbereitete Beispiele, die mit der passenden Schutzhardware CmDongles funktionieren. Hersteller können folgende Schutzkonzepte umsetzen:

  • Softwareschutz gegen Kopieren der Software auf andere Systeme durch Verschlüsselung des Programmcodes und sichere Speicherung der Schlüssel

  • Know-how-Schutz gegen Reverse-Engineering und Verstehen der implementierten vorteilhaften Algorithmen durch Codeverschlüsselung

  • Integritätsschutz gegen unberechtigtes Verändern des Programmcodes, beispielsweise durch Cyberangriffe, mit Codesignaturen und ausgefeilter Prüfung gegen eine Zertifikatskette

  • Feature-on-Demand ermöglicht neue Geschäftsmodelle

Zum Lieferumfang des Wind River Embedded Development Kits gehören ein Emerson-NITX-315-Target-Board mit Intel-Atom-CPU der E6xx-Serie und die folgenden CmDongles: CmStick/M für USB mit 8 GByte Speicher, ein kleiner CmStick/C und eine winzige CmCard/µSD. Die komplette VxWorks-Entwicklungsumgebung wird direkt vom Speicher des CmStick/M (LiveUSB Drive) vom Host-Computer gestartet. Die CmCard/µSD steckt man in die MikroSD-Schnittstelle des Target-Boards und enthält das VxWorks-Boot-Image sowie die dazu notwendigen CodeMeter-Lizenzen. Den CmStick/C kann man optional an der USB-Schnittstelle des Target-Boards anschließen. Er enthält eine Lizenz, um weitere Merkmale der Software, die bereits im Image enthalten ist, nutzen zu können.

Schwerpunkt Integritätsschutz

Beim Integritätsschutz werden verschiedene Ebenen durchlaufen, die aufeinander aufbauen, beginnend mit der untersten. Die jeweils nachfolgende Ebene wird nur geladen und durchlaufen, wenn ihr Vorgänger zuvor korrekt geprüft und als vertrauenswürdig eingestuft wurde. Die Prüfungen gehen immer von einer Ebenen zur nächsten als auch wieder zurück – anhand folgender Schritte: Signierung der Anwendung, Prüfung gegen eine Zertifikatskette und Rückwärtsprüfung.

Für jeden Programmcode oder alle Daten werden ein Hash-Wert und eine Signatur erzeugt. Über den Hash-Wert erkennt das System, ob die Daten verändert wurden. Und die Prüfung der Signatur gegen eine Zertifikatskette zeigt an, ob der Programmcode oder die Daten vom berechtigten Herausgeber stammen. Mit Hilfe der Rückwärtsprüfung wird sichergestellt, dass die Folgeebene erst freigegeben wird, wenn die Vorgängerebene korrekt durchlaufen wurde.

Signaturen: Sobald das verschlüsselte VxWorks-Projekt auf das Zielsystem übertragen wurde, prüft CodeMeter die Richtigkeit des Projekts vor Manipulationen und zwar über asymmetrische Verschlüsselung, Signaturen und Zertifikate. Ein Schlüsselpaar bestehend aus Public-Key und Private-Key wird über ein separates Tool erzeugt. Im CmDongle wird der Private-Key durch den Entwickler festgelegt und sicher als „Secret Data“ gespeichert. Dieser Private-Key wird zum späteren Signieren benutzt. Der AxProtector nutzt für Signaturen asymmetrische Kryptografie und elliptische Kurven (ECDSA) in drei Schritten.
Erstens: Über eine Checksumme, einem Hash-Wert, erzeugt der AxProtector eine digitale Signatur. Diese wird mit dem im CmDongle gespeicherten Private-Key erstellt und entspricht einem digitalen Fingerabdruck für dieses Projekt.
Zweitens: Gleichfalls errechnet der Secure VxWorks-Loader den Hash-Wert, um diesen mit dem signierten Hash abzugleichen. Dabei wird der Public-Key benutzt, um den digitalen Fingerabdruck zu prüfen.
Drittens: Nach erfolgreicher Prüfung gilt das VxWorks-Projekt als unverändert und wird ausgeführt.

Zertifikatskette: Um zu authentifizieren, nutzt Wibu-Systems eine Kette von Zertifikaten, bevor ein VxWorks-Projekt als korrekt erkannt und auf dem Zielsystem ausgeführt wird. Programmcode und Parameter sind mit privaten Schlüsseln („private keys“) signiert, die in einer sicheren Hardware wie dem CmDongle gespeichert sind. Die unterschiedlichen Zertifikate werden vom Rootzertifikat abgeleitet, das als eigentlicher Vertrauensanker sicher aufbewahrt wird. Es findet nur selten Verwendung. Damit lässt sich dieses Rootzertifikat sicher vor Missbrauch aufbewahren. Es ist auch die Basis für so genannte „Certificate Revocation Lists“ (CRLs), mit deren Hilfe sich bei Bedarf die im Feld befindlichen Zertifikate zurückziehen lassen.

Rückwärtsprüfung: Die Prüfung einer Ebene und ihrer Folgeebene ist schwierig, da der nachfolgende Schritt jeweils nur begrenzten Zugriff auf den vorherigen hat. Nur mit einer Zustandsmaschine in einer vertrauenswürdigen Hardware wie TPM (Trusted Platform Module) oder CmDongle ist diese Rückwärtsprüfung möglich. Die Freigabe, um das Betriebssystem zu entschlüsseln, erfolgt erst, wenn der Bootprozess mit korrekter Integrität durchlief. Auch können gemeinsame Geheimnisse genutzt werden, was aber erst möglich ist, wenn der vorherige Schritt in Ordnung war.

Schwerpunkt Lizenzierung

Neben den Sicherheitsfunktionen ist es auch wichtig, die Erstellung und Verteilung der Lizenzen und Schlüssel in die Vertriebs- und Herstellungsprozesse zu integrieren. Genau dafür gibt es die CodeMeter License Central. Sie wird über einen Browser oder eine Webschnittstelle bedient und lässt sich leicht in bestehende ERP-Systeme wie SAP oder MS Dynamics, CRM-Systeme wie Sales Force oder Online-Shops integrieren. Entweder läuft die CodeMeter License Central beim Hersteller oder als Wibu-Cloud-Lösung. Mit diesem Tool können die Hersteller aus ihrem bestehenden Prozess die Softwarelizenzen überblicken, ohne dass dafür eine weitere Lösung dafür notwendig ist.

Mit dem Wind River Embedded Development Kit sieht der Entwickler, wie verschiedene Funktionen in einer Anwendung so unterschiedlich geschützt sind, dass zu deren Ausführung später eine individuelle Lizenz erforderlich ist. Dies kann sinnvoll sein, um Gerätefunktionen separat zu verkaufen, auch für After-Sales, oder um bestimmten Personen, zum Beispiel Servicetechnikern, die Nutzung spezieller Funktionen zu ermöglichen.

Bildergalerie

  • CodeMeter-AXProtector-Plugin zur Festlegung der Verschlüsselung, Signatur und Zertifikatskette in der Eclipse-basierten Wind River Workbench

    Bild: Wibu-Systems

Firmen zu diesem Artikel
Verwandte Artikel