-

SEC_VERIFY_DEVICE_IDENTITY

TypFunktionsbaustein
BeschreibungMit diesem Funktionsbaustein können Sie prüfen, ob Ihr IEC-Programm auf einem vertrauenswürdigen Gerät läuft. Wenn nicht, können Sie Schutzmaßnahmen ergreifen, um z.B. Schäden am Gerät zu verhindern oder Know-How-Diebstahl zu erschweren.

Der Funktionsbaustein verifiziert die Identität des Gerätes mit kryptographischen Mitteln und liefert bei erfolgreicher Verifizierung Informationen zum Gerät. Zur Verifikation verwendet der FB die Phoenix Geräte-Zertifikatshierarchie (enthält die Wurzelzertifikate in PEM-kodierter Form). Die Phoenix Geräte-Zertifikatshierarchie kann mit dem Funktionsbaustein SEC_TA4PLCNEXT_1ST_GEN ermittelt werden. Nach einer erfolgreichen Verifikation zeigen die Ausgänge Details der verifizierten Identität.

Zur Verifikation der Identität wird überprüft, ob das Gerät einen passenden privaten Schlüssel besitzt und diesen anwenden kann. Falls es sich dabei um ein an das Secure Element (zum Beispiel TPM-Chip) des Gerätes gebundenen privaten Schlüssel handelt, ist damit auch sichergestellt, dass es sich um ein im Sinne des Ausstellers der Identität "echtes" Gerät handelt.

Mit einer steigenden Flanke am Eingang EXECUTE wird die Verifikation der am Eingang TRUSTED_CERTIFICATES angelegten Zeichenkette mit der Phoenix Geräte-Zertifikatshierarchie gestartet. Die aktive Prüfung wird mit BUSY = TRUE signalisiert. Nach der Prüfung wird der Ausgang BUSY wieder auf FALSE und der Ausgang DONE auf TRUE gesetzt, wenn die Verifikation ein positives Ergebnis liefert. Im Fehlerfall oder wenn die Identität nicht verifiziert werden kann, bleibt der Ausgang DONE FALSE und der Ausgang ERROR wird auf TRUE gesetzt. Falls ERROR = TRUE ist, liefert der Ausgang ERROR_ID Details zum Fehler.
Hinweise zur sicheren Verwendung
  • Am Eingang TRUSTED_CERTS sollten hart im IEC-Programm kodierte Zertifikate hinterlegt werden. Würde das IEC-Programm die Zertifikate beispielsweise aus einer Datei lesen, könnte ein Angreifer das IEC-Programm auf einer nicht vertrauenswürdigen Steuerung dazu bringen, eine positive Verifikation der Geräteidentität zu bewirken. Dies könnte dem Angreifer gelingen, indem er im IEC-Programm sowohl eine von ihm bestimmte Identität als auch eine von ihm bestimmte Menge vertrauenswürdiger Zertifikate hinterlegt, die zu der Identität passen.
  • PLCnext Technology-Steuerungen verfügen über die Identität mit dem Namen "IDevID" (Initial Secure Device Identifier). Diese Identität ist an das Secure Element (SE) der Steuerung gebunden. Der "IDevID"-Wert (STRING#'IDevID') kann als Wert für den Eingang IDENTITY_NAME verwendet werden (siehe unten stehendes Beispiel). Andere Identitäten sind möglicherweise nicht an das Secure Element des Gerätes gebunden. Bei der Identität "IDevID" enthält im Falle der positiven Verifikation der Ausgang SUBJECT_CN die Bezeichnung des Gerätetyps und der Ausgang SUBJECT_SN die Seriennummer des Gerätes.
ParameterEingänge

EXECUTE

TRUSTED_CERTS

IDENTITY_NAME

Ausgänge

DONE

BUSY

SUBJECT

SUBJECT_CN

SUBJECT_SN

ERROR

ERROR_ID
Anwendungsbeispiel