Umsetzung einer verteilten Rechteverwaltung



  • Hi,

    hat vielleicht jemand eine Idee, oder vielleicht ist es auch schon irgendwo gemacht worden, wie ich für in einem eigenen p2p-system abgelegte dateien eine sichere Rechteverwaltung umsetzen könnte?

    Ich beschreib das mal damit verständlicher wird:

    Berechtigungen sind 'Lesen', 'Schreiben' und 'Berechtigungen ändern'.

    Jetzt haben wir z.B. eine Datei 'file.txt' und die Peers A, B, C, D und E

    Lesen dürfen: A, B, D, E
    Schreiben dürfen A, B, D
    Berechtigungen ändern nur A.

    Entsprechend der Leseberechtigung kann die Datei bei A B D E abgelegt werden. Es gibt keinen zentralen peer der die Rechtverwaltung übernimmt.

    Mein erster Gedanke war also: Ganz einfach, hat ja jeder der Peers z.B. einen GPG-Key. Jetzt wird einfach der "Rechteverwaltungsteil" des Files mit dem Key dessen, der die Rechte ändern darf, signiert. Eine änderung wird nur angenommen, wenn diese mit dem gleichen Key signiert ist.

    Aber: Was wenn jetzt A, B und D die Rechte ändern dürfen? Dann müsste das von allen dreien signiert werden.
    Das wird a) ein Problem wenn es viele Berechtigte gibt und b) komm ich nicht drauf wie ich es dann löse wenn z.B. A die Berechtigung von D löschen möchte, so dass D nicht mehr Berechtigungen ändern darf.
    Das könnte D nämlich, in dem er geschickt agiert rückgängig machen, in dem er selbst die Berechtigung von A löscht und seine Daten mit einem früheren Timestamp versieht - da die verteilung dieser Änderung bei vielen Peers (die mal am netz und dann mal wieder weg sind) sich über längere Zeit hinzieht hat D genug Zeit zu reagieren.
    c) müssten dann alle anderen berechtigten ihre Signatur aktualisieren, da diese ja nicht mehr zu den Berechtigungen passt.

    Das funktioniert so also hinten und vorne nicht.

    Normalerweise löst sich so ein Problem wenn ich es aufschreiben, aber hier kommt mir gerade keine Idee. Hat jemand verstanden was ich versucht habe zu erklären und vielleicht eine Idee oder einen Ansatz wie man das lösen könnte?

    Grüße

    peerbeer



  • Geht nicht vernünftig. Stell dir erst mal vor was für ein Chaos das bei 100 oder 1000 Peers wäre.



  • peerbeer schrieb:

    Aber: Was wenn jetzt A, B und D die Rechte ändern dürfen? Dann müsste das von allen dreien signiert werden.

    Nein. Warum? Jeder Peer nimmt die Änderung an, wenn sie eine gültige Unterschrift trägt.

    peerbeer schrieb:

    Das wird a) ein Problem wenn es viele Berechtigte gibt und b) komm ich nicht drauf wie ich es dann löse wenn z.B. A die Berechtigung von D löschen möchte, so dass D nicht mehr Berechtigungen ändern darf.
    Das könnte D nämlich, in dem er geschickt agiert rückgängig machen, in dem er selbst die Berechtigung von A löscht und seine Daten mit einem früheren Timestamp versieht - da die verteilung dieser Änderung bei vielen Peers (die mal am netz und dann mal wieder weg sind) sich über längere Zeit hinzieht hat D genug Zeit zu reagieren.
    c) müssten dann alle anderen berechtigten ihre Signatur aktualisieren, da diese ja nicht mehr zu den Berechtigungen passt.

    Dieses Problem wirst du bei einem dezentralen Ansatz immer haben...

    Was du tun kannst wäre, dass die Berechtigungen immer nach einer Zeit automatisch auslaufen. D.h. sie müssen immer verlängert werden. Du kannst die Berechtigungen also nicht löschen, sondern nur auslaufen lassen...


Anmelden zum Antworten