To top
Resources Resources
[Translate to German:]

CoDeSys-Anwendungen schützen leicht gemacht

Im Jahr 2010 sind Wibu-Systems und die Firma 3S-Smart Software Solutions eine Kooperation eingegangen, die einen in der Entwicklungsumgebung CoDeSys V3.5 integrierten, wirkungsvollen Schutz für die Steuerungssoftware von Maschinen zur Verfügung stellt. Wie einfach dieser wichtige Schutz in der Umgebung von CoDeSys genutzt werden kann, erläutert dieser Artikel.

Haben auch Sie auf einer Messe schon einmal ein Plagiat Ihrer Maschine oder Anlage gefunden? In einer aktuellen Umfrage des VDMA (Verband Deutscher Maschinen- und Anlagenbau) bei seinen Mitgliedern aus dem Jahre 2010 mussten über 50% diese Frage mit „Ja“ beantworten. Der dadurch entstehende Umsatzschaden bei den Unternehmen geht in die Milliarden. Technische Schutzsysteme von Wibu-Systems erschweren den Nachbau von Geräten, Steuerungen und Maschinen, indem sie die eingebaute Software wirkungsvoll durch Verschlüsselung des Programm-Codes gegen Kopieren und Manipulation schützen. 

Um den Aufwand für die Verschlüsselung beim Entwicklungsprozess so gering wie nötig aber so effektiv wie möglich zu gestalten, wurde in die neue Version der Entwicklungsumgebung CoDeSys V3.5 die bewährte CodeMeter-Technologie von Wibu-Systems perfekt integriert. Damit lassen sich nun Anwendungen auf speicherprogrammierbaren Steuerungen (SPS) ohne Programmieraufwand wirkungsvoll und nachhaltig schützen.
Das Grundprinzip ist ganz einfach. Durch Verschlüsselung des verwendeten Programmcodes und die Speicherung von Schlüsseln in einem Dongle wird der Schutz an ein bestimmtes Gerät oder eine bestimmte Steuerung gebunden. Bei einer SPS wird die darin verwendete Embedded-Software auf genau diese Art und Weise geschützt. Der komplette Programmcode wird verschlüsselt im Speicher des Zielsystems abgelegt, sodass eine statische Analyse durch Disassemblieren und Dekompilieren nicht möglich ist. Der Code kann nicht ohne passende Lizenz entschlüsselt werden. 

CoDeSys V3.5 und CodeMeter

Ab der Version CoDeSys V3.5 ist das Schutzkonzept CodeMeter in die Entwicklungsumgebung von CoDeSys integriert. Automatisierungshersteller, die ihre Steuerungssoftware mit CoDeSys entwickeln, können ihren erzeugten Code vor dem Transfer auf die Steuerung verschlüsseln. Danach liegt der Code verschlüsselt auf dem Datenträger in der Steuerung und kann nur mit einer passenden Lizenz, die auf einem CmStick gespeichert ist, entschlüsselt und genutzt werden. Die Entschlüsselung passiert automatisch durch die CoDeSys-Runtime im Speicher der Steuerung, sodass die Automatisierungssoftware sicher vor unautorisierter Vervielfältigung und Reverse-Engineering geschützt ist. 

Die Entwicklung einer SPS-Anwendung erfolgt grundsätzlich in zwei Stufen. Die Erstellung des Source-Codes wird auf einer Entwicklungsmaschine mit CoDeSys durchgeführt. Anschließend wird eine Bootapplikation mit dem lauffähigen Code erstellt und über ein Gateway an die SPS übertragen.
Der erstellte Code ist in dieser Form einfach sowohl auf dem Entwicklungsrechner als auch auf der Steuerung auslesbar und damit auch kopier- und manipulierbar. Um das zu verhindern, kann die CoDeSys Version 3.5 nun ähnlich den Mechanismen des AxProtectors eine Verschlüsselungsschale um die Anwendung legen. 
Die Nutzung der Verschlüsselungsfeatures lässt sich am einfachsten an einem Beispiel erklären. Die Eigenschaften für die Verschlüsselung der Anwendung werden über die rechte Maustaste beim Listeneintrag „Application“ im Geräte-fenster aufgerufen. 

Es öffnet sich anschließend ein Dialog, bei dem im Registerblatt „Optionen Applikationserzeugung“ die Parameter für den einzusetzenden CmDongle eingegeben werden können. Dem Hersteller der Steuerungssoftware stehen zwei Verschlüsselungsoptionen für eine Anwendung zur Verfügung:

1. Die einfache Verschlüsselung

Bei dieser Form der Verschlüsselung kann der Hersteller beim Anbieter von CoDeSys, der Firma 3S-Smart Software Solutions GmbH, einen bereits vorprogrammierten CoDeSys Security Key erwerben, den er anschließend zusammen mit seiner Software an die Kunden ausliefert. Dieser CmDongle enthält bereits einen weltweit eindeutigen, individuellen Schlüssel, der in Form von Firm Code und Product Code abgespeichert ist. Der Product Code muss in das entsprechende Eingabefeld übernommen werden. Ist die Steuerung bereits im Netzwerk verfügbar, so kann der Product Code auch über den Button „Lade vom Zielgerät …“ direkt von dem dort angeschlossenen CmDongle ausgelesen werden.

2. Verschlüsselung mit Lizenzmanagement

Ein neues Feature, das in Kürze zur Verfügung stehen wird, ist die Verschlüsselung mit Lizenzmanagement. Sie bietet eine deutlich höhere Flexibilität, bei der der Hersteller der Steuerungssoftware die Lizenzen selbst erstellen und verwalten kann. Er verwendet dabei CmDongles von Wibu-Systems, die er über seinen Master-Dongle mit den von ihm gewünschten Lizenzparametern (Firm Code und Product Code) selbst programmieren kann. Diese Parameter werden beim Verschlüsseln in die Eingabefelder eingetragen. 

Im Rahmen dieser festgelegten Parameter arbeitet der spätere Nutzer mit der verschlüsselten Software. Während bei der einfachen Verschlüsselung jedes Gerät eine individuelle Anwendung erhält, kann der Hersteller hier eine Serienproduktion mit beispielsweise 100 identischen Steuerungen realisieren.

Um die Verschlüsselungsoptionen nutzen zu können, ist es in der aktuellen Version CoDeSys V3.5 erforderlich, die Entwicklungsumgebung und die Emulation der Steuerung auf unterschiedlichen Rechnern laufen zu lassen. Auf dem Zielrechner, auf dem die Steuerungs-Emulation läuft, darf keine CodeMeter Runtime laufen!

Über die Kommunikationseinstellungen bei der Applikation wird die Steuerung (dort Gerät genannt) über das Netzwerk eingebunden:

Dabei muss sichergestellt werden, dass der zur Verschlüsselung der Software notwendige CodeMeter Runtime-CmDongle auf dem Rechner verfügbar ist, auf dem die Steuerung verwendet wird. Damit sind alle Voraussetzungen erfüllt, um die Applikation erfolgreich zu verschlüsseln und auf die Steuerung zu übertragen. Dort wird die verschlüsselte Applikation von der CoDeSys-Runtime geprüft und für den Betrieb entschlüsselt. Diese Prüfung wird bei Start der Applikation einmalig durchgeführt. Der eigentliche Betrieb der Steuerung bleibt somit unbeeinflusst.

CoDeSys V3.5 verwendet die Technologie von Wibu-Systems auch in der Entwicklungsumgebung selbst. Mit einem speziellen Entwicklerdongle können Projekte in der Entwicklungsumgebung verschlüsselt und somit gegen unbefugte Benutzung gesichert werden.

Mit der kombinierten Lösung von Entwicklungsumgebung und Verschlüsselungstool steht im Embedded-Bereich nun ein einfach zu verwendendes und wirkungsvolles Werkzeug zur Softwareerstellung mit eingebautem Schutz vor Raubkopien, Reverse-Engineering und Manipulation zur Verfügung.