2

シナリオ:

マシンからログインした 2 人のノーツ クライアント ユーザー A と B がいて、次のことが起こります。

ユーザー A は、最後に Notes クライアントを使用したユーザーです (したがって、notes.ini にはユーザー A の情報が含まれています)。そして、私が作業しているデータベースはユーザー B の nsf ファイルです。

行動:

を使用して、暗号化されたメモにファイルを添付していますNSFNoteAttachFileMIMEConvertCDParts添付後、メモをMIMEに変換するために使用したい。(そしてMIMEStreamOpenコンテンツをストリームとして取得するために使用します)

メモを解読するためのキー/ID/パスワードがありません。したがって、に変換するとMIMEConvertCDParts、メモの内容は

"[この MIME ドキュメントの一部は Notes 証明書で暗号化されているため、読み取ることができません。]",

これは期待されています。

問題

しかし、以前に追加した添付ファイルが変換されたストリームにありません (最初に存在していた添付ファイルはまだそこにありますが、キー/pwd を提供しなかったため、サイズはゼロです)。

MIMEConvertCDParts(変換)の前後のノートのフィールドをダンプしてみました。

変換前は、$File自分のアタッチメントを持つ「 」オブジェクトがフィールドの 1 つとして存在し、

しかし、変換後、MIME には表示されませんが、変換によってこれがフィールド " $MIMETrack" に追加されます。

「2013 年 2 月 25 日 10:30:02 AM に CD-MIME が失敗しました: このファイル オブジェクトを抽出するには、一括復号化キーを指定する必要があります。」

添付ファイルを追加したときに、NSF ファイルの元の所有者 (ユーザー B) の公開鍵 (または存在する他の鍵) のいずれかで暗号化されたと思います。

知っておくべきこと

追加するときにファイルをそのままにしておくように notesapi に指示/強制するにはどうすればよいですか。つまり、暗号化なし。

または、変換中に復号化するように依頼するにはどうすればよいですか (ユーザー A の独自のキーを使用して暗号化を行った場合)。また、添付ファイルの暗号化に使用されたキーを確認するにはどうすればよいですか?

どんな助けでも大歓迎です。

ありがとう、リトルボーイ。

PS: ユーザー B の nsf ファイルを、B を認識したことがないドメイン/マシンに移動すると、添付ファイルの追加/取得に問題はありません。これが、B の公開鍵が A に知られている可能性があり、B のメモに追加するとファイルが自動的に暗号化されると私が考えるようになった理由です。

4

1 に答える 1

0

まず、B の公開鍵は... public です。これは Domino ディレクトリにあります。ドメイン内の誰もが知っているので、誰もが B のドキュメントを暗号化できます。しかし、最後の段落には少し驚きました。私は、この操作が機能しないことを期待しています。暗号化された添付ファイルと暗号化されていない添付ファイルを同じメモに混在させることはできないと思います。

いずれにせよ、ドキュメントが誰のために暗号化されたかについての情報は、ITEM_NAME_NOTE_SEALUSERS アイテムである $Seal アイテムにありますが、キーを持っていない場合、このフィールドから有用な情報を引き出すことができるかどうかはわかりません. 関数 NSFNoteDecrypt は、秘密鍵を持っていると仮定して、暗号化されたノートを復号化するために使用されます。キーがない場合は、エラーが返されます。Notes C API ユーザーガイドの第 11-2 章を参照してください。Notes/DOmino 8.0.1 以降で暗号化されたデータの場合、NSFNoteCipherDecrypt が推奨されます。

于 2013-02-26T15:54:51.920 に答える