Das Notes Forum
Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: skywook am 05.01.19 - 11:39:23
-
Hallo,
ich habe ein Dokument in dem ein Feld verschlüsselt wird. Das funktioniert auch (denke ich) soweit, obwohl ich kein Feld PublicEncryptionKeys mit dem Usernamen fülle bzw das Feld ist auch nicht vorhanden.
Der User bearbeitet sein Dokument, der Username steht in einem unverschlüsseltem Feld und vor dem speichern wird doc.encrypt aufgerufen. Ruft ein anderer User das Doc von User A auf wird das verschlüsselte Feld nicht angezeigt.
Ist das der richtige Ablauf?
-
Schau mal in der Ansicht in die Eigenschaften von dem gespeicherten Dokument.
Wenn dort Felder mit $Seal bzw. $SealData sind, wurde min. ein Feld verschlüsselt.
-
Die SeaL-Felder sind vorhanden, aber mich irritiert das es ohne das Feld PublicEncryptionKeys funktioniert. Denn auch hier im Forum wird immer erwähnt, dass das Feld vorhanden sein muss.
-
NUR dann wenn auch damit verschlüsselt wird.
-
jetzt bin ich etwas verwirrt.
Ich habe das mal zusammengetragen:
1. Ich verschlüssle mit doc.encrypt ohne Feldangeben bzw. Feldzuweisungen z.B. PublicEncryptionKeys. Beim speichern wird encrypt aufgerufen, und das entsprechende Feld wird "nur" mit dem öffentlichen Schlüssel aus dem NAB des aktuellen Users verschlüsselt. Beim öffnen erkennt Notes die Seal-Felder und prüft ob die aktuelle UserID zum Schlüssel passt und entschlüsselt das Feld. Das Feld muss vor dem Anzeigen nicht per Script explizit entschlüsselt werden, das macht Notes automatisch.
2. Verschlüsseln mit PublicEncryptionKeys. In dem Feld gebe ich die User an mit deren öffentlichen Schlüssel dann das Feld verschlüsselt wird. Rest ist wie oben.
3. Beim PrivatEncryptionKey liegt der Schlüssel in der ID-Datei. Das Feld muss vorhanden und im Script mit dem Schlüsselnamen befüllt werden. Beim öffnen muss das Feld explizit entschlüsselt werden.
Passt das, oder habe ich doch ein Verständnisproblem?
-
zum verschlüsseln wird IMMER den Public Key verwendet, bei Entschlüsseln den Private key (der also in der ID drin ist und dort nicht extrahierbar ist).
-
@skywook: Du hast das vollkommen korrekt zusammengetragen (ausser dem 2. Feldnamen: der heißt "SecretEncryptionKeys", nicht "PrivatEncryptionKeys").
-
Vielen Dank für die Antworten.
Ich habe jetzt eine DB entwickelt die mit dem PublicKey ein Feld verschlüsselt und zusätzlich mit Leser- und Autorenfelder arbeitet.
Kann man dann davon ausgehen dass diese "sicher" ist und z.B. nicht übers Backend manipulierbar ist.
Natürlich unter der Voraussetzung die ACL und Programmierung passt.