2009-07-14 13 views
0

署名付き実行可能ファイルを検証したいと思います。要件は、実行可能ファイル自体が有効であり、どこから来たのかを検証することです(恐らく証明書の主題から)。証明書タイプはPKCSです。CertGetCertificateChainを使用してEXEで署名を検証する

私はここに同様の投稿を見つけ、 Validate Authenticode signature on EXE - C++ without CAPICOM

Microsoftのドキュメントには、とりわけ、CertGetCertificateChainを指すように見えますが、例がストアにある証明書で動作する傾向があります。 CertGetCertificateChainと関連するAPIを使用して署名付き実行ファイルを検証する方法を知っている人はいますか?

答えて

0

詳しいことはできますか?あなたがリンクしている質問は、あなたが必要とするすべての回答を提供するようです。

「この例は、ストア内にある証明書で動作する傾向があります」と述べています。これは、マシンの信頼できるストアのルート証明書にチェーンされた証明書で実行可能ファイルを署名する必要があることを意味します。

これは当てはまります。それ以外の方法はありません。そうでなければ、署名者が自分の言う人であると信じる方法はなく、プロバイダが不正に使用されている場合はプロバイダが証明書を取り消す方法がありません。

したがって、WinVerifyTrustは署名された実行可能ファイルを検証する正しい方法です。ひどいAPIなので注意が必要です。 CryptQueryObjectとそれに関連するapiは、証明書が発行された人物や会社の名前など、より多くの情報を提供します。

+0

2つの情報が必要です。 - アプリには署名がありますか? - 署名者は誰ですか? 実行ファイルを確認するにはWinVerifyTrustが機能します。しかし、誰が署名者であるかを知る方法にはまった。誰か(MSalters)が元の投稿に応答して、CertGetCertificateChainが役に立つと言っています。しかし、ディスク上の実行可能ファイルからCertGetCertificateChainのすべての奇妙なparm型に移動する方法を理解できませんでした。 – cobaia

+0

ジョシュKが正しい方向にあなたを指摘したように聞こえます。そうでなければ、私は古いコードを掘り下げて私が書いたサンプルを作り出すことができます。 WinVerifyTrustは重要なステップです。それを越えて飛び越えるには、msdnなどではあまりよく説明されていません。 –

0

私はこの質問をしましたsome time ago。私はあなたの正確な要件を持っていた。あなたに役立つサンプルコードがあります。楽しむ!!

+0

素晴らしい。コメントのリンクの1つ(http://support.microsoft.com/kb/323809)非常に良いです。どうも! – cobaia

関連する問題