Autor Thema: Problem bei Encryption mit SecretEncryptionKeys  (Gelesen 2294 mal)

Offline sheponion

  • Frischling
  • *
  • Beiträge: 5
Problem bei Encryption mit SecretEncryptionKeys
« am: 05.02.11 - 14:03:33 »
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?

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Problem bei Encryption mit SecretEncryptionKeys
« Antwort #1 am: 05.02.11 - 14:53:35 »
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
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Problem bei Encryption mit SecretEncryptionKeys
« Antwort #2 am: 05.02.11 - 18:28:31 »
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")

Offline sheponion

  • Frischling
  • *
  • Beiträge: 5
Re: Problem bei Encryption mit SecretEncryptionKeys
« Antwort #3 am: 05.02.11 - 23:20:24 »
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.

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Problem bei Encryption mit SecretEncryptionKeys
« Antwort #4 am: 07.02.11 - 10:33:06 »
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.

Nimmt er da trotzdem auch den public key des akt. users?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Problem bei Encryption mit SecretEncryptionKeys
« Antwort #5 am: 07.02.11 - 11:49:09 »
Also es gibt ja zwei Felder:

SecretEncryptionKeys - vom Typ Text, hier stehen die geheimen Schlüssel drin
PublicEncryptionKeys - vom Typ Names (Text sollte auch gehen) hier stehen die Namen drin

Wenn ein Dokument verschlüsselt wird, egal wie, wird (soweit ich das durch probieren heraus gefunden habe) immer der PublicKey des aktuellen Users mit dazu verschlüsselt. (Der Wert der in PublicEncryptionKeys kann also von den tatsächlich verwendeten Schlüsseln abweichen, das Feld lässt sich sogar nachträglich ändern/entfernen ohne dass die Verschlüsselung "kaputt" geht)

In Notes 7 ist aber ein blöder Bug, bevor wer in die Falle tappt:
Steht ein Name in PublicEncryptionKeys und das Feld SecretEncryptionKeys existiert NICHT so wird NUR für den aktuellen User verschlüsselt, der Inhalt von PublicEncryptionKeys wird nicht beachtet (in 8.5 ist dieses Verhalten definitiv anders)
Ein Setzen von SecretEncryptionKeys = "", falls es nicht existiert löst das Problem

Beim Verschlüsseln wird EIN "Zwischen"-Schlüssel erzeugt, mit welchem die Felder in das Feld $sealData verschlüsselt werden.
Der Zwischenschlüssel wird mit ALLEN verwendeten Schlüsseln nochmals verschlüsselt in $seal abgelegt.
Sobald man auf das Dokument zugreift, verschwinden diese $Seal* Felder (und die darin verschlüsselten erscheinen) wenn man entschlüsseln kann.

Gruß
Roland

Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz