Security
Die Sicherheitsmechanismen von OPC UA
OPC Unified Architecture (UA) etabliert sich mehr und mehr in der Automatisierungsindustrie. Doch wie sicher ist dieser Kommunikationsstandard beziehungsweise wie lassen sich die Security-Funktionen OPC UA in der Praxis nutzen?
Der Kommunikationsstandard OPC hat in den vergangenen 15 Jahren in der industriellen Automatisierung eine breite Akzeptanz und eine flächendeckende Verbreitung gefunden. Steuerungstechnik, Produktionsanlagen und operative Systeme werden damit herstellerübergreifend vernetzt und tauschen Daten und Informationen aus, um die Prozesse der gesamten Wertschöpfungskette zu optimieren. Mit der neuen „Unified Architecture“ (OPC UA oder IEC 62541) hat die OPC Foundation eine überarbeitete und verbesserte Kommunikationsarchitektur auf den Markt gebracht. Diese vereint neben Plattformunabhängigkeit, Objektorientierung und Typsicherheit nun auch IT-Sicherheit als zentrale Technologie und lässt sich durchgängig vom kleinsten Gerät bis zur Enterprise IT und sogar in der Cloud verwenden. Dabei eignet sich OPC UA aber nicht nur für industrielle Automatisierung, sondern wird zunehmend auch in anderen Branchen adaptiert, in denen ebenfalls ein flexibles Sicherheitskonzept gefragt ist.
Um die Sicherheitsmechanismen optimal nutzen zu können, bedarf es neben der Implementierung des Standards selbst einer Infrastruktur zur Verwaltung und Konfiguration der angebotenen Sicherheitsmechanismen. Genau an dieser Stelle sind Lösungen gefragt, die es einerseits ermöglichen, Maschinen und Anlagen bezüglich ihrer Sicherheitsfeatures zu beherrschen und langfristig sicher zu betreiben, und die andererseits für den Benutzer verständlich und nachvollziehbar sind.
(Un-)Sicherheit in der Automatisierung
Die jüngsten Enthüllungen bezüglich der NSA-Affäre, Industrie-Spionage, Stuxnet und andere Viren-Bedrohungen von außen sowie das gesamte Thema Cybersecurity sind in der jüngeren Vergangenheit verstärkt in die Öffentlichkeit gelangt und immer öfter werden neue Sicherheitslücken in Automatisierungssystemen bekannt. Manchmal ist es nur der relativ harmlose Zugriff auf die automatisierten Kirchturmglocken, aber auch Brauereien und andere Produktionsanlagen sind betroffen. Niemand mag sich vorstellen, dass Atomkraftwerke oder die städtische Wasserversorgung ein Angriffsziel abgeben sollten. Die Marschrichtung ist klar: Das Thema darf nicht länger ignoriert werden.
Der Fairness halber sei erwähnt, dass „Altanlagen“, deren Systeme noch vor der Verbreitung des Internets installiert wurden, lediglich für „Insel-Netze“ ausgelegt waren. Die Bedrohungen, die durch zunehmende Vernetzung entstanden sind, waren noch nicht abzusehen. Jedoch zeigt die Statistik, dass ein Großteil der Angriffe nicht von außen erfolgt, sondern von innen kommt. Zwar besitzen viele Systeme bereits Schutzmechanismen; vielfach werden diese jedoch deaktiviert, weil die Verwaltung und Konfiguration einen erheblichen zusätzlichen Aufwand bedeutet. So wird der Virenscanner – obwohl vorhanden – gerne mal abgeschaltet, weil der Datentransfer sonst so lange dauert. Oder es wird die Firewall kurzerhand deaktiviert, da deren korrekte Konfiguration spezielles Wissen erfordert und aufwendig ist.
Mit der „klassischen“ OPC-Technik war genau das alltägliche Praxis. Basierend auf Microsoft-DCOM-Technologie ließen sich OPC-Kommunikationsverbindungen in der Praxis nur dann herstellen, wenn auf allen beteiligten Rechnern Administratoren mit Vollzugriff eingeloggt und Firewalls abgeschaltet waren. Der Grund dafür lag allerdings nicht nur in der Technologie, die sicherlich ihre Schwächen hatte. Vielfach haben die Anwender frustriert aufgegeben und die Sicherheit einfach „abgeschaltet“, um die Kommunikation überhaupt zum Laufen zu bekommen. Es bestand also dringender Handlungsbedarf, sowohl hinsichtlich der Technologie selbst als auch bezüglich deren Beherrschbarkeit. Die OPC Foundation hat aus diesen Fehlern der Vergangenheit gelernt und nun mit der neuen OPC-UA-Technologie eine Lösung bereitgestellt.
Sicherheitskonzepte innerhalb OPC-UA-Technologie
Anwendungsspezifisch kombinierbare Schichten der in OPC UA definierten Sicherheitsmechanismen.
© AscolabZunächst einmal wurden von Sicherheitsexperten die verschiedenen Bedrohungsszenarien analysiert. Die Kommunikation zwischen zwei Applikationen, einem Informationsanbieter (Server) und einem Informationskonsumenten (Client), über ein beliebiges Netzwerk inklusive dem Internet unterliegt verschiedenen Angriffen auf unterschiedlichen Kommunikationsebenen. Dementsprechend berücksichtigt OPC UA insgesamt sieben verschiedene Sicherheitsaspekte:
- Confidentiality: Auf der Transportebene müssen die Nachrichten verschlüsselt übertragen werden, um sie vor „Mithörern“ zu schützen.
- Integrity: Die Datenintegrität stellt sicher, dass die Nachricht auf dem Weg zum Empfänger nicht modifiziert wurde.
- Application Authentication: Die miteinander Daten austauschenden Software-Anwendungen müssen sich gegenseitig kennen. Sie vertrauen gegenseitig ausgetauschten Zertifikaten – nur dann kommt überhaupt eine Kommunikationsverbindung zustande.
- User Authentication: Die Person vor dem Rechner, welche die Anwendung bedient, muss ebenfalls authentifiziert sein, damit überhaupt ein Verbindungsaufbau erfolgt.
- User Authorization: Anhand der gegebenen Rolle eines Nutzers erlaubt der Datenanbieter (Server) den Zugriff auf die Daten oder er sperrt den Zugriff auf bestimmte Daten. Dies erfolgt datenpunktgranular für lesenden und/oder schreibenden Zugriff sowie für die Sichtbarkeit des Datenpunktes generell.
- Auditing: Der Server zeichnet alle sicherheitsrelevanten Ereignisse auf. Somit bleibt nachvollziehbar, wer zu welchem Zeitpunkt welche Änderung, beispielsweise einer Sollwertvorgabe, vorgenommen hat.
- Availability: Verschiedene Mechanismen stellen die Verfügbarkeit der Daten sicher. Hierbei wird einerseits geprüft, ob Nachrichten innerhalb einer Sequenz fehlen. Andererseits werden Redundanzmechanismen zur Verfügung gestellt, um die Verfügbarkeit zu erhöhen.
OPC-UA-Erweiterung eines bestehenden Rechte-Verwaltungs-Systems: OPC-UA-fähige Geräte erneuern automatisch ihre zentral verwalteten Trust-Listen.
© AscolabZur beidseitigen Authentifizierung kommen moderne kryptographische Verfahren zum Einsatz. Dabei basiert OPC UA auf offenen und etablierten Sicherheitsstandards wie etwa X.509-Zertifikaten inklusive der vollständigen Unterstützung von zentralen CAs (Certificate Authorities) sowie verketteten Vertrauensbeziehungen, wie sie in großen Netzwerken üblich sind. Dabei wurde bewusst auf eine proprietäre Implementierung verzichtet und stattdessen ein etablierter Standard genutzt. Die verwendeten Algorithmen und Schlüssellängen sind über Sicherheitsprofile definiert, die in Zukunft durch aktuellere Kombinationen ersetzbar sind.
Neu sind die Sicherheitsmechanismen also nicht. Neu ist lediglich, dass sie direkt in den Industriestandard OPC UA und in die entsprechenden Kommunikations-Stacks integriert wurden. Mit anderen Worten: Jeder, der ein OPC-UA-fähiges Gerät oder eine OPC-UA-fähige Software anbietet, bekommt diese Sicherheitsmechanismen „frei Haus“ geliefert. Es ist kein Mehraufwand erforderlich, sie sind bereits im Kern enthalten. Lediglich die Verwaltung der X.509-Zertifikate muss von den Konfigurationstools der Hersteller implementiert werden.
Security in Embedded-Systemen – ein eigenes Thema!
Gerade in eingebetteten Systemen, die in einem Schaltschrank installiert sind, meist selbst keine Benutzeroberfläche haben und oft nicht einmal ein Dateisystem besitzen, ist das Ausrollen, Verwalten und Erneuern der Zertifikate heute noch eine Herausforderung, mit der sich die Hersteller schwer tun und für die bisher keine einheitliche Lösung existiert. Genau das wird aber zur Kernfrage des gesamten Sicherheitskonzeptes. Eine einheitliche und handhabbare Lösung ist nötig, damit der Anwender die Sicherheitsfunktionen am Ende nicht wieder abschaltet, weil die Konfiguration kompliziert oder die Administration in der Praxis mit zu hohem Aufwand verbunden ist.
Die OPC Foundation arbeitet daher mit Hochdruck an einer Lösung, um die Zusammenarbeit von OPC-UA-Geräten und -Anwendungen mit den Tools zum Verwalten von X.509-Zertifikaten zu standardisieren. Hierbei wird von zwei Ansätzen ausgegangen:
- Das UA-Gerät holt sich seine Zertifikate von einer zentralen Stelle selbstständig ab (pull model) oder
- ein zentraler Server versorgt alle Geräte im Netzwerk mit entsprechenden Zertifikaten (push model).
Die Administration kann somit an einer zentralen Stelle erfolgen, ähnlich wie bei einem Domain-Controller. Trotzdem sind auch die Hersteller der OPC-UA-fähigen Applikationen und Konfigurationstools gefragt: Sie müssen diese Schnittstelle integrieren und ihre Konfigurationstools mit verständlichen Oberflächen ausstatten! Genau an dieser Stelle setzt eine Zusammenarbeit von Ascolab und Wibu-Systems an – und zwar bestehende sowie etablierte Tools zur Verwaltung und Verteilung von Zertifikaten, Rechten und Rollen mit standardisierten OPC-UA-konformen Schnittstellen auszustatten und praxistaugliche Konzepte zum Verteilen der Zertifikate zu erarbeiten. Ziel ist es demnach, Lösungen zu finden, die speziell für Embedded-Systeme mit eingeschränktem Zugang tragfähig sind.
Verwaltung und Verteilung von Zertifikaten
Sind in einer Anlage oder Maschine viele Sensoren, Aktoren, Steuerungen, Anzeigesysteme bis hinauf zum ERP-System vorhanden, die alle sicher per OPC UA kommunizieren sollen, so stellt die Verteilung der Zertifikate eine Herausforderung dar. Ein manuelles Verteilen und regelmäßiges Verlängern wäre ein mühsames Unterfangen. Ergo ist ein zentrales System nötig, das sich wahlweise beim Hersteller oder auch in der Cloud betreiben lässt. Hier kommt die datenbankbasierte „CodeMeter License Central“ von Wibu-Systems ins Spiel. Sie wurde ursprünglich zum Ausrollen von Schlüsseln zur Lizenzierung von Software entwickelt.
CodeMeter Container zum sicheren Speichern von Lizenzen und Zertifikaten: skalierbar als dateibasierte CmActLicense oder als Smartcard-basierte CmDongles.
© Wibu-SystemsEin aktuell neu entwickeltes Modul soll nun auch OPC-UA-Zertifikate erstellen und verteilen. Gespeichert werden die Zertifikate in sogenannten CmContainern, die entweder in einem Smartcard-basierten Dongle liegen oder in einer wiederum signierten und verschlüsselten Datei. Diese Datei, auch CmActLicense genannt, wird an das Zielsystem durch Aktivierung gebunden und ist dann nur auf diesem System nutzbar. Ein ähnliches Verfahren ist von der Aktivierung von Software wie Microsoft Windows oder Adobe Acrobat bekannt. Ist der Container einmal auf dem Zielsystem – also einem Sensor, Aktor oder einer Steuerung – vorhanden, so lässt er sich eindeutig identifizieren. Dadurch können Zertifikate automatisiert verteilt werden und liegen gesichert auf dem Zielsystem – unabhängig davon, ob eine Hardware von Wibu-Systems zum Einsatz kommt, oder die rein softwarebasierte Variante. Die Hardware selbst ist für viele Schnittstellen, wie USB, (µ)SD, CF, CFast und weitere verfügbar und für industrielle Umgebungsbedingungen wie erweiterter Temperatur- und Feuchtebereich geeignet sowie für erhöhte ESD-Festigkeit ausgelegt.
Die CodeMeter License Central erstellt Zertifikate und verteilt sie über UA TCP an MES-Server und Geräte wie PLCs.
© AscolabDem Management der Rechte kommt in diesem Kontext eine wichtige Rolle zu. Im Gegensatz zu den von OPC-UA-Geräten selbst erstellten Zertifikaten lässt sich über Zertifikatsketten die Kommunikation zwischen einer größeren Anzahl von Geräten einfacher verwalten. So wird auf einer höheren Ebene klar definiert, gegen welches Root-Zertifikat die Kette der Zertifikate zu prüfen ist. Ist dies korrekt vorbereitet, kann eine sichere Kommunikation erfolgen und die Zertifikate sind auch für weitere Zwecke, wie beispielsweise Integritätsschutz, nutzbar. Bei OPC UA gibt es Zertifikate für User – sprich Anwender – genauso wie für Devices respektive für Geräte. Die konkrete Verwaltung und Ablage der Zertifikate lässt die OPC-UA-Spezifikationoffen, um hier verschiedenste Management-Modelle anbinden zu können. Die CodeMeter License Central bietet an dieser Stelle wiederum Hilfestellung beim Erstellen und Verwalten der Zertifikatskette oder verwendet Zertifikate einer externen CA (Certificate Authority).
Die Anbindung an OPC UA
In den beiden „großen“ OPC-UA-Profilen – Standard und Embedded UA Server – sind die Security-Funktionen Pflicht. Bei den beiden „kleinen“ OPC-UA-Profilen – Micro und Nano Embedded Device Server – sind sie optional. Um auch kleinsten Embedded-Systemen eine möglichst sichere Kommunikation zu ermöglichen, besteht ein wesentliches Ziel der Zusammenarbeit von Ascolab und Wibu-Systems darin, eine weitere Option zur Zertifikatsverwaltung zu schaffen und diese mit dem OPC-UA-Stack zu verbinden. Somit wird auch für die Micro- und Nano-Profile eine Umsetzung in ressourcenarmen kleinen Systeme ermöglicht. Die Auslagerung der Kryptoalgorithmen, beispielsweise in die Smartcard-basierte CodeMeter-Dongle-Hardware, spart Programmcode und Ressourcen und hilft zusätzlich Systemressourcen einzusparen.
Neben der Unterstützung der OPC-UA-Sicherheitsfunktionen mit CodeMeter – standardkonform gemäß IEC 62541 und interoperabel mit beliebigen OPC-UA-konformen Geräten – ergeben sich weitere Vorteile. So können Gerätehersteller die Technologie zusätzlich nutzen, um ihre Geräte vor Nachbau und Manipulation zu schützen. Weiterhin sind neue Geschäftsmodelle durch flexible Lizenzierung umsetzbar.
Autoren:
Matthias Damm ist Executive Director der Firma Ascolab, Erlangen; Oliver Winzenried ist Vorstand von Wibu-Systems, Karlsruhe.














