2012-03-02 46 views

答えて

-5

いいえもちろん、私は「いいえ」と答えることはできませんので、説明する必要があります。

基本的に、コード署名証明書は、既知の権限によって認証された公開鍵に対して検証できる秘密鍵を提供します。その鍵でデジタル署名を作成し、もう一方の端で署名した信頼できるソースからの証明書があることを確認できます。

SSL証明書は、信頼できるソースからのものであることを確認できる署名済みの「ドキュメント」です。自分だけの鍵素材がないため、暗号化や署名はできません。それは署名された文書であり、「私はこの男が誰であると信じていることを証明します」と言っています。

+4

申し訳ありませんが、あなたは完全に間違っています。 SSL証明書には常に秘密鍵があります。 Webサーバーで使用される場合、秘密鍵はサーバー上にあり、Webサーバーソフトウェア(Apache、IISなど)が接続を暗号化するために使用します。 – jcoffland

14

コード署名証明書は、基本的にSSL証明書と同じです。両方とも、データ(ソフトウェアパッケージまたはウェブページコンテンツ)が証明書の「サブジェクト」に由来することを証明するために、いくつかのデータに署名するために使用されます。私は考えることができる2つの主要な違いがあります。

  1. 彼らは、証明書内の異なる「拡張キー使用法」OIDを持っています。コード署名証明書は、コードに署名するためにのみ使用できます。間違った証明書で署名するのを妨げるものはありませんが、クライアント(Webブラウザなど)は、証明書に記載されているすべての「強化された鍵の使用」をチェックし、証明書に適切なOID(「コード署名」など) 。つまり、両方のシナリオで使用できるように、1つの証明書で「コード署名」と「サーバー認証」の両方のOIDを持つことができます。しかし、セキュリティ上の理由から、誰もそれを行うべきではありません。

  2. 有効期限が切れたSSL証明書は無効になります。しかし、コード署名証明書は特別な扱いを受ける。たとえば、10年前にソフトウェアを購入した場合、署名に使用されたコード署名証明書が今日有効期限切れになっている可能性があります。しかし、タイムスタンピングサービスと組み合わせれば、ソフトウェアパッケージが10年前に正しく署名されたことを証明することが可能です。