Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Lloyd am 27.01.14 - 19:54:57

Titel: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 27.01.14 - 19:54:57
Hallo,
ich brauche bei folgender Problemstellung einen Denkanstoß und wäre für Ideen dankbar.

Ich schreibe in einem Dokument den Inhalt aller Feldern in ein Textfile.

Feld1=Wert1
Feld2=Wert2
...

Der Inhalt der Felder soll "verschlüsselt/unleserlich" ins Textfile geschrieben werden. Nehme ich die Notes Hash-Verschlüsselung habe ich das Problem dass ich das aus dem Textfile heraus nicht mehr entschlüsseln kann, lediglich vergleichen wenn mir der Original Inhalt bekannt wäre, den der Endkunde aber nicht hat.

Hat jemand sowas schonmal gemacht, bzw. kann mir kurz erläutern wie ich einen Text an Hand eines bestimmten Algorithmus verschlüssel und auf einem anderen Zielsystem aus einem Textfile heraus wieder entschlüssel.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: flaite am 27.01.14 - 20:18:35
http://javaprogramming.language-tutorial.com/2012/10/encryption-using-bouncy-castle-api.html

Hab ich vor Jahren auch in einem Notes Projekt verwendet.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 27.01.14 - 21:00:30
Danke für die Antwort.
Mit Java hab ich bislang noch nichts gemacht und tue mir da jetzt auch grad ein wenig schwer das irgendwie einzubinden.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: pram am 27.01.14 - 22:12:58
Je nachdem wie sicher es werden soll, kannst du auf deine Passphrase (Entschlüsselungsschlüssel) wiederholt @Password anwenden und deinen Geheimstring damit XOR-verschlüsseln.

Da aber wahrscheinlich Schlüssel und Cipertext im Quellcode irgendwo abgelegt sind, reicht eigentlich auch ROT13  ;)

Muss es unbedingt ein Textfile sein, oder würde auch ein Dokument reichen, dann könntest du die m.E. sehr sichere Notes-Verschlüsselung verwenden.
Aber auch hier kommt es auf den Anwendungsfall an. Beide Seiten brauchen irgendwie Zugriff auf den selben Schlüssel/Schlüsselpaar

Gruß
Roland
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 28.01.14 - 10:24:25
Hallo Roland,
es muss ein Textfile sein.

Ich kann das Schlüsselpaar auf beiden Seiten fest hinterlegen, das ist kein Problem. Hast du ein Beispiel für mich?
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 28.01.14 - 10:32:43
Da fällt mir gerade ein.

Ich könnte aber auch mit Uni(Stringwert) arbeiten und dann eine Multiplikation, Addition, ... dazurechnen.

Und anschließend wieder umgekehrt.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Andrew Harder am 28.01.14 - 11:15:53
Wie sicher muss es denn sein?
Was das rechnen betrifft... ich würde XOR nehmen.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 28.01.14 - 11:40:41
Ich konkretisiere das mal ein wenig.

Ich muss aus datenschutzrechtlichen Gründen den Namen der Mitarbeiter unleserlich in ein Textfile schreiben und auf der Gegenseite wieder lesbar machen.

Mit xor wüßte ich jetzt grad nicht wie ich da weiterkomme.

Der Gedanke mit Uni ist auch unbrauchbar. Da erhalte ich ja nur das erste Zeichen.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Mitch am 28.01.14 - 12:31:10
Dann wird dir ROT nicht reichen.

Für XOR: Google nach Code. Im Notfall eben nicht in Lotus Script, sondern in VB (Visual Basic):

https://www.google.de/#q=xor+encryption+vb (https://www.google.de/#q=xor+encryption+vb)

Da findest du einige Code-Snippets (Beispiel (http://www.freevbcode.com/ShowCode.asp?ID=3353)) die du recht einfach in Lotus Script umwandeln kannst. Wie gut/sicher die sind musst du natürlich selbst prüfen...

Gruß,

Mitch
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: mezz am 28.01.14 - 13:14:25
Oder man nimmt gleich was richtiges, z.b. Twofish:

https://www.schneier.com/twofish-download.html
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: pram am 28.01.14 - 13:23:48
Ich würde mir einen pseudozufälligen Text bauen, der auf einen geheimen Hashwert basiert


Verschlüsseln vorbereiten:

secret = "meingeheimis"
doc = new NotesDocument()
random = doc.universalID ' erzeugt einen 32stelligen Zufallswert, damit nicht alle Textfiles mit dem gleichen XOR-Stream verschlüsselt werden
xorstream =  random ' Startwert, dieser darf noch nicht zur Verschlüsselung verwendet werden

xorstream = @Passwort( xorstream + secret) ' erster 32 stelliger Wert (=16 Byte, 8 Uni-Zeichen!), mit dem du deinen Text verschlüsseln kannst.

Durch wiederholte Anwendung von "xorstream = @Passwort( xorstream + secret)" bekommst du einen pseudozufälligen Stream.
diesen kannst du mit Hilfe von UNI + MID auf deinen Klartext los lassen (also mit MID jeweils einen Buchstaben raus schneiden)

In dein Textfile musst du dann den Wert von "random" (ersten 32 Zeichen) und von deinem XOR-Stream rein schreiben.
Das "secret" muss über einen sicheren Kanal an die Gegenseite übergeben werden

Die Gegenseite kann daraus den selben XOR-Stream ableiten und den Text wieder herstellen.
Dieses Verfahren sollte, sofern das Secret geheim bleibt, schwer knackbar sein.

Gruß
Roland

/edit: würde aber auch "was richtiges" vorziehen, für Twofish scheint es ja schon eine VB-Implementierung zu geben.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 28.01.14 - 13:35:28
Danke an alle die mitgeholfen haben.

Hab was passendes gefunden.
http://www.openntf.org/projects/codebin/codebin.nsf/0/8CF76E7BD997195986256F110049C2DE

Anfangs wundert man sich warum anstelle eines Leerzeichen immer ein k zurückgegeben wird. Aber wenn man dann rausfindet das der Entwickler ä,ö,ü,... im ASCII Zeichensatz abfängt und das entsprechend anpasst hat man eine fertige Lösung die sich problemlos einbinden lässt.

Nochmal vielen Dank an alle.

P.s. Hiermit ist es sogar möglich ganze Texte zu verschlüssen und zu entschlüsseln.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: pram am 28.01.14 - 13:44:48
Zitat
P.s. Hiermit ist es sogar möglich ganze Texte zu verschlüssen und zu entschlüsseln.
... solange diese keine UTF-8 Zeichen enthalten. Nimm besser UChr und Uni anstatt Chr und Asc.

Dies ist übrigens eine relativ einfache Verschlüsselung, gleicher Plaintext wird in gleichen Ciphertext verwandelt.
Ich würde, wenn du planst den Algorithmus zu verwenden, den ENCRYPTION_KEY noch mit einen Zufallswert zu salzen

Gruß
Roland
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 28.01.14 - 14:24:17
Danke für den Hinweis. Probier ich aus.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 28.01.14 - 14:44:08
Ergänzung:
Wenn man versucht als ENCRYPTION_KEY Buchstaben am Anfang zu verwenden die im Alphabet nach dem F kommen, läuft das Script auf einen Fehler. Da bin ich noch nicht hintergestiegen wo das herkommt.
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Tode am 28.01.14 - 14:56:33
Hex?
Titel: Re: Text verschlüsseln - verschicken - und entschlüsseln
Beitrag von: Lloyd am 28.01.14 - 15:01:24
Ah jetzt ja.
Danke für den Hinweis.