2

X509Certificate.CreateFromSignedFileを使用してファイルの署名に使用される証明書を取得する場合、信頼できる機関によって署名されていることを確認できますか?これは、ある種の「自己署名」証明書ではありませんか?

証明書から「Subject」(会社)名を抽出して、使用しているアンマネージDLLが無秩序であり(頻繁に独立して更新されるためチェックサムできません)、正式なものであることを確認したいと思います。

ただし、偽のDLLが「自己署名」証明書で署名され、元の会社の名前が返される可能性があるのではないかと心配しています。したがって、証明書がVersign、Thwateなどによって発行されたことを確認したいと思います(マシンの証明書リポジトリにインストールされているものはすべて問題ありません)。

X509Certificate.CreateFromSignedFileを使用している場合、これを行うにはどうすればよいですか?または、これを自動的に実行しますか(つまり、「自己署名」証明書は失敗します)?

4

2 に答える 2

1

有効な証明書でない場合は、例外が発生します。会社名などを確認したいのですが…コードは次のとおりです。

  ServicePointManager.ServerCertificateValidationCallback +=
            new System.Net.Security.RemoteCertificateValidationCallback(customXertificateValidation);

    private static bool customXertificateValidation(
        object sender, X509Certificate cert,
        X509Chain chain, System.Net.Security.SslPolicyErrors error)
    {

        // check here 'cert' parameter properties (ex. Subject) and based on the result 
        // you expect return true or false

        return false/true;
    }

編集:上記のコードは、有効でない(自己署名、期限切れなど)証明書を取得していないhttpsリソースを要求する場合にのみ適しています。署名されたファイルからの署名の抽出に関する事項は、こちらを確認してください:.NETを使用した署名されたファイルからのデジタル署名の抽出

于 2010-05-18T11:10:43.710 に答える
0

Verification()メソッドでは不十分ですか?

于 2010-05-18T11:10:07.800 に答える