Treibersignierung
TwinCAT C++-Module müssen durch ein Zertifikat signiert werden, damit sie ausgeführt werden können.
Durch die Signatur wird sichergestellt, dass auf Produktiv-Systemen nur C++-Software ausgeführt wird, deren Herkunft nachvollziehbar ist.
Zu Testzwecken können Zertifikate zum Signieren verwendet werden, die nicht überprüft werden können. Dies ist allerdings nur möglich, wenn das Betriebssystem im Testmodus ist, damit diese Zertifikate nicht auf Produktiv-Systemen genutzt werden.
Engineering erfordert keine Signierung Lediglich die Ausführung erfordert Zertifikate - das Engineering nicht. |
Es gibt zwei Arten, wie Module geladen werden. Hierfür werden unterschiedliche Zertifikate zur Signierung verwendet:
- TwinCAT: Hierbei werden die C++-Module durch das TwinCAT-Laufzeitsystem geladen und müssen dafür mit einem TwinCAT-Nutzerzertifikat signiert sein.
- Mit TwinCAT 3.1. 4024, und neuer, steht dieses Verfahren zur Verfügung.
- Dieses Verfahren wird benötigt, um neue Funktionen wie versionierte C++-Projekte und damit auch den C++ Online Change durchzuführen.
- Für TwinCAT/BSD notwendig.
- (Für <4024.0, nicht mehr empfohlen für Neuprojekte. Bestandsprojekte sollten migriert werden)
Betriebssystem: Hierbei werden die C++-Module als normale Kernel-Treiber geladen und müssen somit auch eine Signatur besitzen. - Mit TwinCAT 3.1. 4022, oder früher, steht nur dieses Verfahren bereit.
- Windows 7 (Embedded) x86 (32bit) erfordert keine Signierung.
- Kann nicht mit TwinCAT/BSD genutzt werden.
Da ein veröffentlichtes Modul auf verschiedenen PCs lauffähig sein soll, ist für eine Veröffentlichung (Publish) immer eine Signierung erforderlich.
Organisatorische Trennung von Entwicklungs- und Produktiv-Software
Beckhoff empfiehlt organisatorisch mit (mindestens) zwei Zertifikaten zu arbeiten.
- Ein Zertifikat, welches nicht gegengezeichnet ist, somit den Testmodus benötigt, für den Entwicklungsprozess. Dieses Zertifikat kann sich ggf. auch individuell jeder Entwickler selber ausstellen.
- Nur die Software, welche durch entsprechende finale Tests gelaufen ist, wird durch ein gegengezeichnetes Zertifikat signiert. Diese Software kann damit auch auf Maschinen aufgespielt und ausgeliefert werden.
Eine solche Trennung der Entwicklung und des Betriebes stellt sicher, dass nur getestete Software auf produktiven Anlagen läuft.