Ansicht umschalten
Avatar von fesh
  • fesh

mehr als 1000 Beiträge seit 31.05.2000

Re: Clientseitiges AES mit Benutzer hierarchie

Bei AES gibt es keine private/public keys. AES ist ein symmetrisches Verfahren, der Schlüssel zum Entschlüsseln ist genau der mit dem verschlüsselt wurde.

Was Du willst sind zwei Datenbanken. In der ersten sind alle Texte, mit unverschlüsselten Metadaten (ID, Titel, Author, Datum, etc.pp) damit man die suchen und auflisten kann, und AES-verschlüsseltem Inhalt. Jeder Datensatz hat einen eigenen AES-Key.

Sodann eine zweite DB mit hierarchischem Zugriffschutz, welche für obige IDs den jeweiligen AES-Key speichert. User X loggt sich ein und kann für alle für ihn freigeschalteten IDs die AES-Keys abfragen.

Wenn User Y einen neuen Artikel schreibt, generiert sie einen zufälligen neuen AES-Key, verschlüsselt den Text und erstellt einen neuen Datensatz (Titel, Author, Datum, etc.pp plus Cyphertext) in der ersten DB. Die liefert ihr die eindeutige ID zurück. User Y trägt dann diese ID plus AES-Key in die zweite DB ein und bestimmt dabei wer diesen Datensatz lesen darf (z.B. Gruppen G, H, K und User X, Y, Z).

Nachteil: wenn User X den AES-Key eines Artikels abruft, kann er ihn auch seiner Freundin geben die keinen Zugriff darauf haben sollte. Da er ihr aber auch gleich den ganzen Text geben kann ist das nicht wirklich unsicherer.

Die erste DB kann ein öffentliches Standard-Forum sein. Das weiß nix von Verschlüsselung und Keys, hat halt Threads mit Klartext-Titeln und Cyphertext.
Die Clientsoftware zum Lesen kontaktiert für jeden Beitrag anhand dessen ID die zweite (nichtöffentliche) DB um sich die AES-Keys vom privaten Server zu holen bzw. beim Schreiben den neuen AES-Key für die Beitrags-ID einzutragen.
Man braucht noch einen Admin der verhindert dass Klartext in das Forum gepostet wird. Oder jeder neue Beitrag muss erst vom Admin freigeschaltet werden, der dann auch überprüft dass der AES-Key in der zweiten DB zum Entschlüsseln funktioniert.

Bewerten
- +
Ansicht umschalten