2009-04-28 23 views
1

自動ソフトウェアアップデートをアプリケーションに追加したいが、当社は信頼できるルートCAからコード署名証明書を購入する準備がまだ整っていないため、自己署名証明書を使用してコード更新に署名する.exeと.dll)を使用してください。自己署名証明書で署名されたバイナリを確認するにはどうすればよいですか?

質問:MicrosoftのCryptography APIを使用して、証明書をインストールすることなく、自己署名証明書で署名されたバイナリを確認する方法を教えてください。確認する.cerファイルは、アプリケーションにバンドルされます。または、汎用のCryptoライブラリを使用する方が簡単ですか?

答えて

3

あなたがする必要がまず、...あなたはあなた自身の証明書を使用するつもりなら、あなたが本当にそれを必要としない、すべての後、あなたが何をしたいのかについては

を全体X509の事をスキップすることができますRSA秘密鍵と公開鍵のペアを生成します。次に、アプリケーションに公開鍵を格納します。

更新プログラムを入手したら、MD5またはSHA-1などを使用してサイトで署名します。そのハッシュを秘密鍵で暗号化します。インストールされたアプリケーションは、アップデートと署名(暗号化されたハッシュ)を取得します。アプリケーションがバイナリファイルを取得すると、そのハッシュを計算し、次に、公開鍵を使用してもう一方を復号化し、比較します。それらが同一であれば、それは有効な更新です。それ以外の場合は、それを拒否してユーザーまたは何かに警告します。

自己署名されたX509証明書では、メカニズムはまさにそのようになりますが、公開鍵には、証明書と同じアイデンティティになる発行者のIDのような追加データがたくさんあります。

0

私は、数年前にWin2kの日に戻ってきた自己署名証明書を有効にする方法を聞いたようですが、非常にハッキーで、公共の展開には適しておらず、たぶん "修正"されています。あなたが他の暗号ライブラリを使うことを考えたり、独自のライブラリを開発しようと思ったら、良い暗号と悪い暗号を区別することは非常に難しいです。

関連する問題