Verschluesseln eingehender Mails bezogen auf den Absender

  • Hi,


    Nun habe ich auch noch einmal eine kleine Aufgabe.


    Ich moechte einen Agenten erstellen - Before new Mail arrives - der die eingehende Mail mit dem Public Key des Eigentuemers der Mailbox verschluesselt, wenn es sich bei dem Absender um einen ganz bestimmten handelt.


    Das Verschluesseln an sich ist ja nicht das Problem.


    Nur wie bekomme ich den Agenten dazu, den Public Key des Eigentuemers der Mailbox zu verwenden.


    %Edit
    Verschluesseln beim Senden ist leider nicht moeglich, da es sich um ein externes Programm handelt.



    Andreas

    • Offizieller Beitrag

    Schau dir in der Hilfe mal EncryptionKeys property an.

    Zitat

    If there are no encryption keys specified for a document, the document is encrypted with the current user's public key and can only be decrypted by that user.


    Ungetestet!


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hi,


    Waere zu testen.


    Was mich in der Beziehung aber dennoch etwas misstrauisch macht ist die Tatsache, dass der Agent aller Wahrscheinlichkeit nach nicht durch den Benutzer (Eigentuemer) erstellt werden wird, sondern ueber ein Designupdate in das Mailfile gelangen wird.


    Somit wuerde der Agent dann unter dem Kontext des Anwenders laufen, der diesen zuletzt gespeichert hat, bestenfalls unter dem Kontext des Servers.


    Greift dann immer noch das was in der Hilfe beschrieben ist?
    (siehe Antwort von Diali)



    Andreas

  • Wenn du den im Namen des Owners der Mailbox ausführen lässt, sollte es tun. Allerdings besteht da das Problem, dass ein Agent aus der Schablone ins Mailfile übernommen in jedem Mailfile selbst noch einmal angepasst werden muss. Oder aber du baust einen zweiten Agenten ins Template, der die entsprechende Property nach Benutzerinteraktion von sich aussetzt.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    sobald der User den Agent aktiviert, müsste dieser mit den Rechten des Users laufen.
    Natürlich darf dann nichts bei "Ausführen als" eingegeben werden.


    Ansonsten würde ich beim OoO abgucken.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Hi,


    RockWilder
    Wenn Du auf "Run on behalf of" anspielst, dann duerfte es nich so einfach werden dieses zu setzen, da im Lotus Script diese Eigenschaft "Read Only" ist.


    Diali
    Somit koennte ich zwar einigermassen sicherstellen, dass der Agent auch im Kontext des Eigentuemers blaeuft, jedoch sollten die Anwender nicht pro-aktiv taetig werden, um den betreffenden Agenten zu aktivieren.


    Ich habe mir schon ueberlegt, den PostOpen bei den Db-Scripts zu schnappen und hier eine kleine Routine einzufuegen, die den Agenten enabled, wenn er
    a. nocht nicht enabled ist und
    b. der aktuelle Benutzer auch der Eigentuemer der Mailbox ist
    (Problem Chef und Sekretaerin)


    Dann bliebe eigentlich in der Konstellation nur noch das Problem, was passiert, wenn der Benutzer seinen Posteingang als
    HOME-Page definiert hat.
    Sofern ich mich erinnere, werden hier einige Events nicht durchlaufen.



    Andreas

  • andreas: Doch, ist einfach. Ein Agent oder sonstiges Designelement ist nichts weiter als ein Dokument. Dokumente haben Items. Items kann man manipulieren.


    Weiters hast du das Problem, dass die Encrypt-Methode der NotesDocument-Klasse restricted operations verlangt, wenn der Agent auf dem Server läuft. Willst du deinen Usern wirklich restricted operations gestatten? Ich hätte dabei ja Bauchschmerzen.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hi,


    Nun habe ich bereits eineiges versucht, die Verschluesselung hnizubekommen.


    Der Agent laeuft auch an und verschluesselt mir das Dokument (die eingegangene Mail).


    Das Problem ist jedoch, dass er anscheinend nicht den
    PUBLIC Key des Anwenders verwendet, dem das Mailfile gehoert.
    (Eigentuemer der Mailbox ist auch der Signer des Agenten)


    Nun habe ich mir gedacht, die API-FUnktin zum Verschluesseln zu verwenden. (NSFNotesCopyAndEncrypt)


    Jedoch habe ich hier das Problem, dass ich mir nicht sicher bin, wie ich diese API-Funktio in meinen Script-Code einbinde und anspreche.


    Haette hierfur jemand eine kleine Anregung fuer mich?



    Andreas

  • Und was macht das jetzt für einen Unterschied ob du die API Funktion oder direkt den Script Aufruf verwendest ?


    Mit welcher ID wird denn das Dokument durch deinen Agenten verschlüsselt ?


    Evtl der Server ID ?

  • Eindeutig zu identifizieren ist es nicht, jedoch tippe ich sehr stark aud die ID des Servers.


    Zitat

    Und was macht das jetzt für einen Unterschied ob du die API Funktion oder direkt den Script Aufruf verwendest ?


    Bei der API-Funktion kann ich als Parameter mitgeben, dass er den PUBLIC Key des Anwenders verwenden soll.


    Eventuell schaffe ich es dann so, das Dokument mit dem richtigen Schluessel zu versehen.



    Andreas

  • Wieso nicht eindeutig zu identifizieren? doc.Encrypt verwendet die EncryptionKeys-Property. Und dazu sagt die Hilfe unzweideutig, dass -wenn nichts anderes angegeben- eben der Public Key des Signers hergenommen wird. Ist der Agent mit der Server.ID unterzeichnet und kein Run On Behalf Of gesetzt, wird das Dokument halt mit dem Public Key der Server.ID verschlüsselt.


    Ändern kannst du das, indem du entweder den Run On Behalf Of setzt, oder eben ein Feld "PublicEncryptionKeys" ins Dokument schreibst, dort den Owner der Mail-DB und dann verschlüsselst. Wie das geht, siehst du an den Location-Dokumenten der PerNames.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • RockWilder,

    Zitat

    Wieso nicht eindeutig zu identifizieren? doc.Encrypt verwendet die EncryptionKeys-Property. Und dazu sagt die Hilfe unzweideutig, dass -wenn nichts anderes angegeben- eben der Public Key des Signers hergenommen wird. Ist der Agent mit der Server.ID unterzeichnet und kein Run On Behalf Of gesetzt, wird das Dokument halt mit dem Public Key der Server.ID verschlüsselt.


    Ich gebe Dir ja recht mit dieser Aussage.


    Jedoch habe ich auch schon folgendes geschrieben

    Zitat

    Das Problem ist jedoch, dass er anscheinend nicht den
    PUBLIC Key des Anwenders verwendet, dem das Mailfile gehoert.
    (Eigentuemer der Mailbox ist auch der Signer des Agenten)


    Und das Stueckchen Code was letztendlich fuer die Verschluesselung zustaendig ist sieht so aus


    Code
    ... set the value of doc
    
    
    Call doc.Encrypt()
    Call doc.Save(True, False, False)


    Es wird also nichts in Bezug auf die Property der EncryptionKeys gesetzt.


    Dennoch wird NICHT der PUBLIC Key des Signers verwendet.



    Andreas

  • UserName = Name des Servers
    EffectiveUserName = Name des Signers des Agenten.


    Wenn sich Notes nun beim Verschluesseln der Mail auf den Name aus UserName stuerzt, dann wird es interessant, denn wie bringe ich den Agenten dazu unter dem Kontext des Signers zu laufen, damit dessen Key verwendet wird.



    Andreas

  • Ich frage mich eigentlich, wie oft ich das noch erwähnen soll? Run On Behalf Of ist dein Freund! Spreche ich denn chinesisch?

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • RockWilder


    Nein.
    Chinesisch sprichst Du nicht.
    Ich hatte nur den Rest Deines Posts ueberlesen.


    So. Nun zurueck zum Thema.


    Einen Dank an RockWilder.
    Nachdem ich den Agenten entsprechend umgeschrieben habe,
    Feld "PublicEncryptionKeys" eingefuegt und mit dem Wert des Datenbankeigentuemers belegt, funktioniert die Verschluesselung des Dokumentes tadellos.


    Dabei ist es dem Agenten auch absolut egal, wer der Signer desselben ist.
    Ein "Run on behalf of" ist ebenfalls nicht notwendig.


    Es wird auf jeden Fall der Schluessel des Benutzers verwendet, der im oben angegebenen Feld hinterlegt wurde.



    Andreas