Autor Thema: Entschlüsselung von Mails durch User und doc.isEncrypted-Bug  (Gelesen 2856 mal)

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Hallo,

ich baue bei uns (6.5er und 7er Clients) an einer Lösung, E-Mails mit User-Interaktion sehr einfach in einer Notes-DB zu archivieren. Damit die E-Mails auch nach Jahren noch von anderen Personen als der Empfänger-Kreis lesbar werden, überprüfe ich, ob die E-Mails verschlüsselt sind.

Das prüfen auf die Verschlüsselung führe ich über das NotesDocument-Objekt mit der Methode .isEncrypted durch. Klappt in meinen Tests auch sehr gut.

Meine erste Frage:

Ein Kollege hat mich darauf hingewiesen, dass man sich auf den Rückgabewert von .isEncrypted nicht verlassen kann. Ist die Methode buggy? Oder gab es da nur Probleme bei bestimmten Notes-Versionen? Er konnte mir leider nichts weiter dazu sagen.


Die zweite Frage ist folgende:

Ich möchte mittels User-Interaktion die Mail entschlüsseln lassen. Dazu habe ich hier im Forum diesen Tipp gefunden:

http://atnotes.de/index.php?topic=15495.0

Ich habe den Code ein wenig umgebaut und in eine LotusScript-Klasse eingefügt. Die Methode sieht aber grundsätzlich noch so aus:

Code
	Public Function decryptDocument() As Integer
		On Error 4000 Goto cannotDecrypt
		
		decryptDocument = False
		
		Dim item As NotesItem		
		
		' Ist das Dokument überhaupt verschlüsselt?
		If Not Me.doc.isEncrypted Then
			While (Me.doc.HasItem("Encrypt"))
				Set item = Me.doc.GetFirstItem("Encrypt")
				Call item.Remove
			Wend
			
			decryptDocument = True
			
			Exit Function
		End If
		
		
		' #################  Jetzt entschlüsseln  #################
		
		Forall i In Me.doc.Items
			If i.IsEncrypted Then
				i.IsEncrypted = False
			End If         
		End Forall     
		
		Dim dummyitem As NotesItem
		Set dummyitem = New NotesItem ( Me.doc, "DummyItem", "" )
		dummyitem.IsEncrypted = True
		
          'Dokument verschlüsseln, allerdings wird nur das dummy-icon verschlüsselt
		Call Me.doc.Encrypt      
		Call Me.doc.Save(False, False)
		
     	' Jetzt die Items Encrypt und $Seal löschen
		While (Me.doc.HasItem("Encrypt"))
			Set item = Me.doc.GetFirstItem("Encrypt")
			Call item.Remove
		Wend
		While (Me.doc.HasItem("$Seal"))
			Set item = Me.doc.GetFirstItem("$Seal")
			Call item.Remove
		Wend
		Call Me.doc.Save(False, False)
		
	     'Dummy Item wieder löschen
		While (Me.doc.HasItem("dummyitem"))
			Set item = Me.doc.GetFirstItem("dummyitem")
			Call item.Remove
		Wend
		
          ' Speichern...
		Call Me.doc.Save(False, False)
		
		
		decryptDocument = True
		
exitFunction:
		Exit Function
		
		
cannotDecrypt:
		' Dokument kann nicht entschlüsselt werden. Falscher User!
		
		Resume exitfunction
	End Function


Nun sagte mir der Kollege auch dazu, dass das so nicht funktioniert. Hier wird nur zuverlässig der Text entschlüsselt. Anhänge gehen allerdings verloren. Auch dieses Verhalten konnte ich in meinen Tests nicht nachstellen. Bei mir hat in einem reinen ND 6.5.4-Testsystem alles problemlos funktioniert und lesbar entschlüsselt.

Sind euch hier irgendwelche Probleme bekannt, die durch meine Verfahren auftreten können? Gibt es hier ggf. eigenarten, die vom Client kommen? Ist euch irgendetwas bekannt?

Vielen Dank für eure Hilfe.

oson00

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Und es wird noch besser. Mein Dokument wird hier im Testsystem auf einem 6.5.6er Client entschlüsselt, wenn ich das Dokument verändere und dann speichere.

User A hat User B eine verschlüsselte Mail mit Anhängen gesendet. Anschließend führe ich meinen Agenten aus dem Aktionen-Menü einer Ansicht aus. Der hat als Ziel alle ausgewählten Dokumente. Ich nehme mir nur das erste Dokument.

Der Code:
Code
	Dim s As New NotesSession
	Dim db As NotesDatabase
	Set db=s.CurrentDatabase
	
	Dim doc As notesdocument
	Set doc = db.UnprocessedDocuments.GetFirstDocument
	
	Call doc.ReplaceItemValue("Test", "test")
	Call doc.Save(True, False)

Das war's. Anschließend ist das Dokument entschlüsselt und von allen lesbar. Habe ich hier etwas übersehen? Das kann doch nicht wahr sein, oder? Hat da jemand eine Idee?

Viele Grüße

oson00

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
Natürlich kann das wahr sein.

Eine verschlüsselte Nachricht ist ja AFAIk implizit auch digital signiert - sprich Notes gewährleistet, dass die Mail so ankommt, wie sie versendet wurde.
Wenn der Empfänger diese Mail nun ändert, entspricht sie nicht mehr der versendeten Mail, die digitale Signatur ist gebrochen, also könnte nur der Empfänger diese erneut mit seinem Key erneut explizit verschlüsseln/signieren.
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 oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Was bedeutet das?

Heißt das dann, dass ich mir im Grunde die im ersten Beitrag gezeigt Routine sparen kann?

Wenn User A verschlüsselt und User B der empfänger der Mail ist, ist dennoch die Mail entschlüsselt wenn User A (der ja auch die Signatur erstellt) den Agenten ausführt.

Interessanterweise kann aber auch ein User C das Dokument ändern, obwohl er die Mail sonst nicht lesen kann, und dann bleibt sie (natürlich) verschlüsselt. Aber auch dann ist die Signatur doch verändert, oder nicht?

Vor lauter ver- und entschlüsseln bin ich schon ganz wirr im Kopf...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Verschlüsselung <> Signatur. Und in einer Mail ist das (die) Body-Item(s) verschlüsselt, Du lässt aber ein anderes Item ändern.

Bernhard

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Ja so habe ich eigentlich auch immer gedacht.

Wenn ich ein anderes ändere, welches vorher nicht einmal da war, warum ist das Body-Item dann auf einmal entschlüsselt? Da kann ich noch nicht folgen...

Offline oson00

  • Aktives Mitglied
  • ***
  • Beiträge: 240
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Ist das vielleicht ganz einfach zu erklären.

Wenn der richtige User seine verschlüsselte Mail öffnet, bekommt man als NotesDocument-Objekt immer die unverschlüsselte Variante (ohne $Seal usw.) zurück.

Wenn man dann speichert, speichert man auch das entshclüsselte Dokument?

Aus diesem Grund funktioniert auch nicht die Methode doc.isEncrypted bei diesen Usern, da das Dokument nicht mehr verschlüsselt ist.

ABER, seit wann ist das so. Ich weiß, dass das in früheren Notes-Versionen anders war. Gibt es hier eine bestimmte Version seit wann dieses Feature funktioniert?

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz