Zertifikatsaustausch

Für eine Absicherung der Kommunikationsverbindung auf Transportebene über einen sicheren Endpunkt ist die Herstellung einer gegenseitigen Vertrauensstellung zwischen Client und Server notwendig. Standardmäßig generieren hierzu sowohl der TwinCAT OPC UA Server als auch der TwinCAT OPC UA Client beim ersten Start ein maschinenspezifisches, selbstsigniertes Schlüsselpaar bestehend aus einem Public- und einem Private-Key. Sie können jedoch zur Integration in Ihre IT-Infrastruktur auch eine beliebige Zertifizierungsstelle bzw. -technologie verwenden, z. B. Active Directory oder OpenSSL. Für die einfache Verwaltung sowie den sicheren Zugriff auf Zertifikate ist die Einrichtung eines Global Discovery Server sinnvoll.

Zur Einrichtung einer Vertrauensstellung zwischen einem OPC UA Client und dem TwinCAT OPC UA Server benötigen Sie den öffentlichen Schlüssel des Clientzertifikats. Der Server muss diesem entsprechend vertrauen. Der Server verwaltet die Vertrauenseinstellungen für Client-Zertifikate in einem Unterverzeichnis des Applikationsverzeichnisses.

Das folgende Schaubild verdeutlicht den Zusammenhang von Client- und Serverzertifikat beim Aufbau einer sicheren Kommunikationsverbindung:

Zertifikatsaustausch 1:

Beim CreateSession Request übermittelt der Client seinen Public Key. Der Server hat daraufhin die Möglichkeit die Vertrauensstellung zu überprüfen. Vertraut der Server dem Client, so übermittelt er in seiner Response seinen eigenen Public Key. Der Client hat somit ebenfalls die Möglichkeit, die Vertrauensstellung mit dem Server zu überprüfen.

Ist die beiderseitige Vertrauensstellung gewährleistet, so wird die Kommunikationsverbindung initiiert. Für die Verschlüsselung eines Requests vom Client an den Server wird der Public Key des Servers verwendet. Die Response vom Server an den Client wird dann mit dem Public Key des Clients verschlüsselt. Beide Kommunikationsteilnehmer haben die Möglichkeit, die jeweils empfangene Nachricht mit ihrem Private-Key zu entschlüsseln.

Das Signieren von Nachrichten erfolgt jeweils umgekehrt: Die Signatur einer Nachricht erfolgt jeweils mit dem Private-Key des Absenders. Da der Empfänger den Public-Key des Absenders erkennt, kann damit die Signatur überprüft werden.

Vertrauensstellung per Dateisystem konfigurieren

Durch das Verschieben von Clientzertifikaten zwischen den trusted-/rejected-Verzeichnissen können die Vertrauenseinstellungen entsprechend angepasst werden. Der öffentliche Schlüssel eines Clientzertifikats wird beim ersten Verbindungsversuch des Clients mit einem sicheren Endpunkt automatisch im Verzeichnis für nicht-vertrauenswürdige Zertifikate abgelegt. Durch das anschließende Verschieben des öffentlichen Schlüssels in das Verzeichnis für vertrauenswürdige Zertifikate wird dem Client beim nächsten Verbindungsversuch vertraut und er kann sich verbinden.

Zertifikatsaustausch 2:

AutomaticallyTrustAllClientCertificates

Wenn diese Konfigurationsoption im Server aktiviert ist, vertraut der Server automatisch allen Clientzertifikaten. Diese werden in diesem Fall nicht in einem der oben genannten Verzeichnisse aufgelistet.

Vertrauensstellung per Konfigurator konfigurieren

Sie können die Vertrauenseinstellungen auch über den Konfigurator durchführen. Der TwinCAT OPC UA Configurator beinhaltet entsprechend eine grafische Benutzeroberfläche zur Konfiguration der Vertrauenseinstellungen.

Zertifikatsaustausch 3: