Domino 9 und frühere Versionen > ND8: Entwicklung

Problem bei Encryption mit SecretEncryptionKeys

(1/2) > >>

sheponion:
Bei der Verschlüsselung mit einem geheimen Verschlüsselungsschlüssel wird zusätzlich der öffentliche Schlüssel des aktuellen Benuzters verwendet.

Das bedeutet, das Dokument kann entschlüsselt und alle Felder eingesehen werden, von ...

... jedem Benutzer, der den verwendeten Geheimschlüssel besitzt, und
... dem Benutzer, der die Verschlüsselung ausgeführt hat, auch wenn dieser nicht (mehr) den Geheimschlüssel besitzt.

Zweiteres ist in meinem Fall nicht erwünscht. Der öffentliche Schlüssel soll nicht verwendet werden.
Dieses Problem (oder Feature) besteht in allen Notes-Versionen, ob mit LotusScript oder C-API.

Es gibt zwei Möglichkeiten das Problem nachzustellen:

1. Geheimschlüssel erstellen, Dokument mit Geheimschlüssel verschlüsseln, Geheimschlüssel entfernen, Dokument öffnen
2. Kopie der ID-Datei des Benutzers anlegen, Geheimschlüssel in der Original-Datei anlegen, Dokument verschlüsseln, Mit der kopierten ID-Datei anmelden, Dokument öffnen

Das Dokument lässt sich in beiden Fällen entschlüsselt öffnen.

Weiterhin ist ersichtlich, dass zwei Verschlüsselungssiegel verwendet werden: $Seal und $Seal2
Wahrscheinlich ein Siegel für den öffentlichen und ein Siegel für den geheimen Schlüssel.

Ist das Verhalten der Verschlüsselung so gewünscht oder handelt es sich hierbei um einen Fehler/Bug?
Kennt jemand eine Möglichkeit Dokumente einzig mit dem geheimen Schlüssel zu verschlüsseln oder einen Weg, den öffentlichen Schlüssel zu entfernen?

pram:
Das habe ich auch schon beobachtet: Wenn verschlüsselt wird, wird immer der öffentliche Schlüssel des aktuellen Benutzers mitverschlüsselt (sonst könnte man sich so aus einem Dokument "aussperren")

Gruß
Roland

Peter Klett:
So ganz verstehe ich Dein Problem nicht. Ein User, der ein Dokument erstellt und verschlüsselt hat, darf es später nicht mehr entschlüsseln dürfen? Die Information in dem Dokument ist ihm doch bekannt, wozu also? Du kannst ja auch nicht verhindern, dass er sich den Inhalt merkt oder ausdruckt (was gefährlicher wäre, da der Ausdruch unverschlüsselt irgendwo herumfliegt).

Hast Du mal ausprobiert, was passiert, wenn Du eines der Felder löschst?

Call doc.RemoveItem ("$Seal")

sheponion:
Du hast schon recht, Peter. So habe ich das noch nicht gesehen.
Trotzdem verstehe ich nicht, wieso Notes das tut.

Mit den "$Seal"-Feldern habe ich schon herumgespielt. Es sieht so aus, als ob im ersten Feld wichtige Informationen enthalten sind, die auch für weitere Felder gelten. Mit dem Löschen des ersten Feldes ist die Verschlüsselung nicht mehr lesbar.

Sicherer wird es wohl sein, den Inhalt ggf. zu verändern, was in meinem Fall kein Problem ist, und dann nochmals über eine andere Person oder ID zu verschlüsseln.

m3:
Also die Hilfe ("Encrypting documents and fields") meint:

--- Zitat ---Using the SecretEncryptionKeys field.
The SecretEncryptionKeys field can contain either the name of a key, which is automatically used to encrypt documents, or the field can be blank, allowing users to assign the encryption key. To encrypt a field with a secret key using either method, users must have it stored in their ID file.
--- Ende Zitat ---

Nimmt er da trotzdem auch den public key des akt. users?

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln