Optimale Vorgehensweisen für sichere Modellierung
Das Einrichten eines sicheren Modells in ThingWorx ist einer der wichtigsten Schritte bei der Modellentwicklung, um sicherzustellen, dass Benutzer den richtigen Zugriff auf die Assets im Modell haben und dass Sicherheitsauswirkungen für jeden Schritt berücksichtigt werden. Das Verwalten der Edge-Sicherheit ist ein wichtiger Aspekt in diesem Prozess. In ThingWorx müssen Sie granulare Berechtigungen für Remote-Dinge einrichten, indem Sie Folgendes tun:
• Eindeutige Benutzer erstellen, die die Remote-Dinge darstellen
• Benutzer zur richtigen Organisation zuweisen
• Eindeutige Anwendungsschlüssel im eindeutigen Benutzerkontext erstellen
|
Wenn Sie die Datei-Upload-Funktion in Ihrer Anwendung verwenden, denken Sie daran, dass der Datei-Upload es Benutzern mit entsprechendem Zugriff ermöglicht, beliebige Arten von Dateiinhalten in das System hochzuladen. PTC garantiert nicht, dass die hochgeladenen Dateien sicher sind und dass die Eingabe von einem vertrauenswürdigen Benutzer stammt.
|
Die Informationen in diesem Thema sollen Ihnen Tipps zur Vorgehensweise beim Einrichten von Sicherheit in einem Modell sowie optimale Vorgehensweisen zum Einrichten eines möglichst sicheren Modells bereitstellen.
Edge-Sicherheit verwalten
Das Verwalten der Edge-Sicherheit ist ein wichtiger Aspekt für die Sicherung eines Modells, die mit der Modellerstellung beginnt und mit sicheren Bereitstellungen fortgesetzt wird. Der Edge ist eine Grenze zwischen der Modellierungsumgebung in ThingWorx (Composer) und externen Datenquellen. Es gibt viele Möglichkeiten, die Edge-Sicherheit in ThingWorx zu verwalten, einschließlich der Verwendung der TLS/SSL-Kommunikation für die Kommunikation zwischen Edge und der Plattform. Die Verwendung von TLS/SSL führt zu Folgendem:
◦ Remote-Dinge validieren den Server mit Zertifikaten.
◦ Datenverkehr wird mit TLS verschlüsselt.
◦ Anwendungsschlüssel authentifizieren die Remote-Dinge bei der Plattform, und der Benutzerkontext, der dem Anwendungsschlüssel zugeordnet ist, schränkt den Zugriff innerhalb der Plattform ein.
Zu vermeidende Vorgehensweisen
Während es Schritte gibt, um das Edge möglichst sicher zu machen, können einige Vorgehensweisen die Systemsicherheit insgesamt verschlechtern. Diese umfassen Folgendes:
• Das Deaktivieren von SSL wird nicht empfohlen. Selbst auf Mobiltelefonen weisen bestimmte Netzwerke bekannte Fehler in der Sicherheitsarchitektur auf.
• Verwenden Sie Zertifikate mit bekannten ungeschützten Hashes.
◦ Verwenden Sie nicht MD5, SHA1 usw. Verwenden Sie eine NIST-Empfehlung.
◦ Verwenden Sie selbstsignierte Zertifikate nicht außerhalb der Entwicklung.
• Verwenden Sie denselben Anwendungsschlüssel für mehrere Geräte. Verbindungen werden mithilfe von Anwendungsschlüsseln authentifiziert. Wenn Anwendungsschlüssel auf Geräten nicht eindeutig sind, wird es schwierig, Identitätsverbindungen oder böswillige Verbindungen zu prüfen.
• Anwendungsschlüssel mit breiten Berechtigungen verwenden. Dies kann zu unerlaubtem Zugriff auf Assets führen.
Zu verwendende Vorgehensweisen
• Verwenden Sie eine vertrauenswürdige Zertifizierungsstelle.
• Verwenden Sie die Client-Zertifikatautorisierung – gegenseitiges TLS.
|
Ihr Systemintegrator ist für die Implementierung dieser Technologie verantwortlich. Im C SDK Users Guide (C SDK-Benutzerhandbuch) finden Sie Implementierungsdetails.
|
• Verwenden Sie Anwendungsschlüssel. Gewähren Sie beim Einrichten von Anwendungsschlüsseln und ThingWorx Benutzern zunächst immer möglichst wenige Berechtigungen. Es ist nicht empfehlenswert, ein Mitglied der Gruppe "Administrator" einem Anwendungsschlüssel zuzuweisen.
Modelle einrichten
Um die Anwendung vollständig zu sichern, ist die optimale Vorgehensweise für eine Sicherung immer wie folgt:
• Niedrigste Berechtigung gewähren
• Umfassend sichern
• Standardeinstellungen sicher gestalten
1. Organisationen einrichten
Der erste Schritt beim Erstellen eines sicheren Modells für Edge-Geräte ist, Sichtbarkeit für Entitäten mit einer
Organisation ordnungsgemäß festzulegen. Organisationen können systemweite Sichtbarkeitseinstellungen für Benutzer mit entsprechendem Zugriff auf Ihre Anwendung bereitstellen.
2. Benutzergruppen einrichten
Richten Sie Benutzergruppen ein, um Zugriffssteuerungen basierend auf Benutzerrollen zu entwickeln.
|
ThingWorx bietet mehrere vordefinierte Benutzergruppen. Weitere Informationen finden Sie unter Benutzergruppen.
|
3. Benutzer einrichten
Benutzer bieten granularen Zugriff auf Daten. Nachdem Organisationen und Benutzergruppen eingerichtet wurden, sollte ein Benutzer für jede eindeutig zulässige Entität auf der Plattform erstellt werden. Von einem Edge-Standpunkt bedeutet dies, einen Benutzer für jedes Edge-Gerät zu erstellen, das mit der Plattform verbunden wird.
4. Anwendungsschlüssel einrichten
Anwendungsschlüssel werden verwendet, um sicher auf die Plattform zuzugreifen, und sind mit einem Benutzerkontext verknüpft, um Berechtigungen zu ermitteln. Ein Anwendungsschlüssel sollte für jedes Edge-Gerät erstellt werden, das verbunden wird. Es sollte ein 1:1-Verhältnis für Anwendungsschlüssel, Benutzer und Geräte vorhanden sein.
5. Remote-Dinge einrichten: Sichtbarkeits-, Entwurfszeit- und Laufzeitberechtigungen
Nach der Erstellung des Remote-Dings ist der erste festzulegende Sicherheitskontext die
Sichtbarkeit. Sichtbarkeit wirkt sich auf Organisationen und Organisationseinheiten aus.
Legen Sie als Nächstes die Entwurfszeitberechtigungen fest. Entwurfszeitberechtigungen sollten nur vertrauenswürdigen Benutzern zugewiesen werden, die das Verhalten und das Modell in der Anwendung ändern sollen. Normalerweise bedeutet dies, dass der Benutzer/das Gerät keine Entwurfszeitberechtigung hat, da das Gerät nicht sein Verhalten selbst ändern sollte.
Legen Sie abschließend Laufzeitberechtigungen für den Benutzer fest, der das Gerät darstellt, sodass das Gerät funktionell zur Anwendung beitragen kann. Laufzeitberechtigungen sind wichtig für Granularität. Richten Sie mindestens Laufzeitberechtigungen ein, sodass der Benutzer nur auf das Ding zugreifen kann. Gegebenenfalls kann weitere Granularität für Eigenschaften festgelegt werden.
Zusätzliche Tipps zum Einrichten von Modellen
• Es ist eine optimale Vorgehensweise, alle Entwurfszeitberechtigungen in einer Produktionsumgebung zu entfernen, um mögliche Regressionen in geschäftskritischen Anwendungen zu vermeiden. Der gesamte Entwurf sollte innerhalb einer Sandbox implementiert und validiert und dann nach erfolgreicher Validierung der Anwendung in einer Produktionsumgebung bereitgestellt werden.
• Benutzer, Anwendungsschlüssel und Remote-Dinge können programmgesteuert erstellt werden, aber alle zur Implementierung dieser Funktion erstellten Dienste sollten eng innerhalb des Sicherheitsmodells der Anwendung gesteuert werden und die Anleitung im vorherigen Abschnitt befolgen.
• Wenn zwei Edge-Dinge über dasselbe EMS oder SDK eine Verbindung herstellen, ist es nicht möglich, jedem Edge-Ding einen Anwendungsschlüssel zuzuweisen. Wenn das Berechtigungsmodell für diese Geräte getrennt werden muss, wird empfohlen, dass sie über separate SDKs verbunden sind, um separate Sicherheitskontexte für jeden Verbindungsendpunkt bereitzustellen.
• Wenn es Anwendungen gibt, die mehrere Datenquellen pro Remote-Ding erfordern, oder wenn mehrere Benutzer auf verschiedene Datenquellen desselben Dings von einem Mashup aus zugreifen, können Laufzeitberechtigungen für einzelne Eigenschaften und Dienste festgelegt werden.
• Beim Arbeiten mit beliebigen Entitäten vom Typ
Datenspeicher (Wikis, Blogs, Datentabellen, Streams und Wert-Streams) wird empfohlen, Berechtigungen zur Dienstausführung für den
GetDefaultDataPersistenceProviderName-Dienst des
Plattform-Subsystems anzugeben. Ein Benutzer muss über Sichtbarkeitszugriff auf mindestens einen Persistenzanbieter im System verfügen, um neue Dinge vom Typ "Datenspeicher" zu erstellen.
|
Die Sichtbarkeitsberechtigungsprüfung kann in der RemoteThing-Instanz aktiviert werden. Hiermit wird geprüft, ob der Anwendungsschlüssel-Benutzer, der zum Binden des Edge-Geräts verwendet wurde, über Sichtbarkeitsberechtigungen für das Remote-Ding verfügt. Weitere Informationen finden Sie unter Sichtbarkeitsberechtigungen für RemoteThing konfigurieren.
|