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 Server und dem TwinCAT OPC UA Client benötigen Sie den öffentlichen Schlüssel des Serverzertifikats. Der Client muss diesem entsprechend vertrauen. Der Client verwaltet die Vertrauenseinstellungen für Server-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 Serverzertifikaten zwischen den trusted-/rejected-Verzeichnissen können die Vertrauenseinstellungen entsprechend angepasst werden. Der öffentliche Schlüssel eines Serverzertifikats wird beim ersten Verbindungsversuch des Servers 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 Server beim nächsten Verbindungsversuch vertraut und er kann sich verbinden.