0
MimeKit
を使用して、SMIMEマルチパート署名済みメッセージが特定のエンティティによって署名されていることを確認しています。私はこのエンティティの公開証明書を持っています。 MultipartSigned
オブジェクトでVerify(context)
を呼び出すと、証明書がサーバー証明書リストにインポートされています。私が望むのは、証明書が見つからない場合にこのエラーが発生するということです。そうでない場合、悪意のあるユーザーがファイルに署名すると、そのファイルが通過し、さらに悪いことに、彼の証明書がインストールされた状態になります。Mimekitが証明書を検証時にインストールする
ここに私の推論に欠陥がありますか?
これは私が使用しているコードです。あなたの証明書ストアに証明書を持つ
var signed =(MultipartSigned)MimeEntity.Load(ParserOptions.Default,@"C:\mysignedfile.txt");
using (var context = new WindowsSecureMimeContext(StoreLocation.LocalMachine))
{
foreach (var signature in signed.Verify(context))// This install the certificate!
{
try
{
bool valid = signature.Verify();
}
catch (DigitalSignatureVerifyException)
{
throw;
// There was an error verifying the signature.
}
}
}
合意。私は証明書が信頼されているかどうかをチェックするコードを追加しました。ありがとう。 – Klaws86