Laden...

Berechtigungen für Konfigurationsdateien implementieren

Erstellt von telnet vor 7 Jahren Letzter Beitrag vor 7 Jahren 1.746 Views
T
telnet Themenstarter:in
327 Beiträge seit 2006
vor 7 Jahren
Berechtigungen für Konfigurationsdateien implementieren

Hallo zusammen,

ich stehe im Moment vor folgender Aufgabenstellung:

Ich habe eine Anwendung, in lokale Konfigurationsdateien als XML vorliegen (teilweise einfach serialisierte Objekte, teilweise auch "selbst erstelles" XML).

Jetzt soll bzw. muss für die Konfigurationdateien ein Mechanismus eingebaut werden, der nur bestimmten Usern Änderungen erlaubt. Der "normale" Anwender soll die Anwendung nur benutzen können, die "Poweruser" sollen die Konfiguration auch ändern dürfen.

Über Windows-Dateiberechtigungen würde ich das ganze nur ungern lösen, da die Anwendung sehr oft installiert werden soll und bei jeder Installation die Anwender verschieden sind -> wird schnell unübersichtlich.

Da es keine weiteren Abstufungen im Berechtigungssystem gibt bzw. geben muss (also nur einen Teil der Konfiguration ändern etc.) hätte ich die Idee gehabt, die Konfigdateien verschlüsselt abzuspeichern. Problem dabei ist, dass ich das so machen müsste, dass die Anwendung selbst beim Start die Konfiguration immer lesen kann, also quasi einen "Generalschlüssel" hat. Zum Speichern / Ändern der Konfiguration müsste der Anwender dann ein Kennwort haben...

Leider weiß ich nicht, nach welchen Schlagwörtern ich hierzu suchen könnte aber hat evtl. jmd. von euch schon mal vor einer ähnlichen Aufgabe gestanden oder hat Tipps?

Vielen Dank!

M
177 Beiträge seit 2009
vor 7 Jahren

Wenn in deiner Umgebung ein Active Directory im betrieb ist, kannst du die Unterscheidung der Benutzergruppen darüber steuern.

Dann musst du in deiner Anwendung nur noch prüfen ob der eingeloggte Benutzer der Gruppe mit der SID x zugehörig ist und stellst ihm die entsprechenden Funktionalitäten zur verfügung.

Die XML kannst du dann lokal verschlüsselt speichern. Alternativ würde es sich sonst noch anbieten die Config an einen Service aus zu lagern.

B
66 Beiträge seit 2013
vor 7 Jahren

The Problematik ist komplex:

Eine XML Datei unterliegt einem bestimmten Schema z.B. XSD das bei der Nutzung validiert werden muss. Das muss auf jedenfall eingehalten werden.
Ein "Super-User" kann z.B. Simulationen bereiben, ob ein neues Schema anomaliefrei läuft in einem versteckten Prozess.

Konfig-Daten, die in von einem Super-User festgelegt werden sollen und nicht vom User gelesen werden können, werden i.d.R. mit einem assymmetischen Verschlüselungsverfahren verschlüsselt, bei dem der Super-User seinen offentlichen Schlüssel zur Verfügung stellt, damit der User mit seinen privaten Schlüsel die Daten der Konfig in der App entschlüsseln kann. Der Algorithmus muss binär bleiben. User und Super-User müssen jeweils ein Schlüsselpaar generieren.

Der verschlüsselte Teil wird i.d.R. mit base64 trasformiert und in dem Schema embedded zu schreiben. Oder umgekehr beim Lesen base64 encoded und entschlüsselt.

<config_superuser>
WEn93kDODPKDOKn4eidgkgidjdnkJKJFUFH999 ...
</config_superuser>

Btw,
Base64
XML Schema
Asymmetrisches Kryptosystem

Die harten Probleme fangen an mit vernetzten Schlüsseln, Sicherheitsstufen, Änderungen von Schlüsseln, nicht rückwärtskompatiblen Schemen und diversifizierte Verwaltungen.