Zertifikate im „Flow“ mit Node-Red

20.11.2023

Zertifikate im „Flow“ mit Node-Red

Wenn Sie auch zu der Personengruppe gehören, die auf digitale Zertifikate angewiesen ist, aber Schweißausbrüche bekommt, sobald es darum geht, einen Workflow zu programmieren, der Ihnen diese Zertifikate beschafft, dann sollten Sie weiterlesen. Um Ihnen aus der Patsche zu helfen, haben wir am Campus Schwarzwald zwei Node-Red-Pakete geschrieben, die Ihnen die Arbeit mit Zertifikaten deutlich erleichtern sollen.

Wenn Ihnen digitale Zertifikate auch nichts sagen, Sie aber trotzdem “Irgendetwas mit Digitalisierung und Vernetzung” machen, dann kann Ihnen der folgende Artikel auch nicht weiterhelfen (Wir schon. Kontaktieren Sie sich doch bei uns: industrial-security@campus-schwarzwald.de). Worum geht es denn jetzt eigentlich? Mit unseren beiden Node-Red Paketen node-red-contrib-ejbca und node-red-contrib-pkcs11 ermöglichen wir einfache Workflows zur Handhabung von kryptographischen Schlüsseln, Zertifikaten und zur Kommunikation mit einer Public Key Infrastructure (PKI). Das ist deshalb so charmant, weil Node-Red auf vielen industriellen Endgeräten bereits vorinstalliert ist oder auf vielen Linux-basierten Systemen mit wenigen Befehlen nachinstalliert werden kann.

Eine “Einschränkung” vorweg: Hinter dem Kürzel ejbca verbirgt sich die “Enterprise JavaBeans Certificate Authority” unseres Partners Keyfactor. Diese gibt es sowohl als Open Source als auch als Enterprise Version. Zum Testen der Nodes reicht jedoch die Open-Source-Version, die sich zum Beispiel als Docker-Container in 45 Minuten einrichten lässt. Alle notwendigen Schritte finden Sie hier.

node-red-contrib-ejbca

Nun aber zurück zu den versprochenen Node-Red Paketen. In den entsprechenden Dokumentationen finden Sie detaillierte Beschreibungen der einzelnen Nodes und wie diese eingesetzt werden können. Als Beispiel sehen wir uns einen typischen Workflow an, bei dem auf einem Endgerät ein Schlüsselpaar generiert (und gespeichert) wird, dann ein sogenannter Certificate Signing Request (CSR) erstellt wird, dieser dann an eine PKI gesendet wird und wir im Gegenzug ein Zertifikat erhalten. Um nicht zu viele Fragen aufzuwerfen, beginnen wir mit dem Workflow in node-red-contrib-ejbca. Der Vorteil von Node-Red: Wir sehen auf einen Blick, welche Funktionen abstrahiert wurden. Der oben beschriebene Workflow sieht dann in Node-Red wie folgt aus.

node-red-contrib-ejbca

Das Ergebnis ist in diesem Fall ein DER-codiertes Zertifikat, das wir je nach Anwendung als P12 oder Zertifikat (.cert, .pem, …) speichern können. Um nicht in technische Details zu verfallen: Probieren Sie es aus. Anhand der Logs und des msg-Objekts sehen Sie die jeweiligen Strukturen, die im Workflow entstehen oder von der PKI als Feedback zurückkommen.

node-red-contrib-pkcs11

Ok, wenn der Workflow mit node-red-contrib-ejbca funktioniert, warum brauchen wir dann ein zweites Paket node-red-contrib-pkcs11? Und was ist pkcs11 überhaupt? Eine PKCS#11 Schnittstelle ist eine standardisierte API, die es ermöglicht, kryptographische Funktionen in Softwareanwendungen zu integrieren. Damit können wir das Schlüsselpaar, das wir im vorherigen Beispiel erzeugt haben, nicht mehr auf unserem Dateisystem speichern, sondern auf einem Hardware Security Module (HSM). Nachdem wir unser Schlüsselpaar erzeugt haben, können wir auf ähnliche Funktionen zurückgreifen, mit dem Unterschied, dass sowohl unser Private-Public Key-Paar als auch das Zertifikat, das wir von der PKI erhalten, sicher gespeichert werden. In diesem Fall verwenden wir jedoch keinen sicheren Hardwarespeicher, sondern softhsm

node-red-contrib-pkcs11

Bei der Anwendung der beiden Pakete sind Ihnen keine Grenzen gesetzt. Sie können den Prozess durch ein bestimmtes Ereignis auslösen, Informationen in Datenbanken speichern oder in anderen Workflows weiter- oder zwischenverarbeiten.

Zusammenfassung

Node-Red bietet ein flexibles Framework um Low- und No-Code Anwendungen zu implementieren. Immer mehr Anwendungen (OPC UA, MQTT, …) verwenden digitale Zertifikate um eine sichere Verbindung herzustellen. Mit unseren beiden Paketen haben Sie die Möglichkeit ein einfaches und flexibles Zertifikatsmanagement auf Endgeräten zu etablieren. Wir wünschen Ihnen viel Spaß beim Ausprobieren.

Sie haben Fragen? Dann melden Sie sich gerne bei

Florian

Florian Handke

Leiter Industrial Security

  • Industrial Security
  • Softwareentwicklung 
  • Analytics 
  • 5G in der Produktion