web-dev-qa-db-ja.com

コード署名証明書の有効期限が切れるとどうなりますか?

XBAPに署名するために、VeriSignまたはThawteからコード署名証明書を購入することを検討しています。私の質問はこれです:その証明書の有効期限が切れるとどうなりますか? 299ドルと599ドルは1年2年証明書のかなりの価格であり、証明書の有効期限が切れるたびに新しく署名したビルドを顧客に提供する必要がある場合、今。

自分の証明書を作成するのが好きでないのは、XBAPを使用するすべてのクライアントマシンに証明書を配布するのが難しいことです。私のアプリケーションはLANでのみ使用されるため、Windowsインストーラーを使用して自家製の証明書をインストールすることができると思います(これを行う方法はわかりませんが、誰にもアイデアはありますか?)。

部分信頼アプリケーションを配信する場合、これは実際には問題になりませんが、アプリケーションはWCFサービスと通信するため、Web権限が必要です。したがって、部分信頼と完全信頼の間の灰色の領域にあり、証明書、XBAPをロードしようとすると、そのole Trust Not Grantedメッセージが表示されます。

何か案は?

48
Rob

閉じた(LAN)環境で使用する場合は、独自のCAをセットアップする必要があります。 Windows Serverバージョンには、使いやすい認証局が含まれていますが、さらに簡単なのは、複数のスクリプトで構成される openssl で提供されるdemoCAを使用して最小限のCAをセットアップすることです。 openssl demoCAは、Windowsでは Cygwin または natively で実行できます。このdemoCAは、opensslコマンドを呼び出して要求を生成し、証明書/ crlsなどに署名するいくつかのPerl/bashスクリプトで構成されます。

独自のCAがある場合、インストールする必要があるのはCAルート証明書であるため、CA証明書は同じままであるため、ユーザー証明書を更新する手間はもうありません。通常、CA証明書の有効期間は5〜10年ですが、必要なだけ設定できます(独自のCAであることを忘れないでください)。

CA証明書は、すべてのクライアントマシンにインストールされます。アプリケーションがWindowsシステムのセキュリティを信頼している場合、IExplorer Certificate Authoritiesキーストアにインストールする必要があります。 Javaアプリケーションを使用する場合は、使用するJavaキーストア内でCA証明書を配布する必要があります。

7

証明書の有効期間中にコードにタイムスタンプを付けるを指定すると、有効期限が切れた証明書が有効になります。

Thawteコード署名証明書に関するFAQ

コード署名証明書はいつまで使用できますか?

  • コード署名証明書は、証明書の購入時に選択したライフサイクルに応じて、1年間または2年間有効です。注:Microsoft®Authenticode®(多目的)の場合、署名されたコードにタイムスタンプを付けて、証明書の有効期限が切れたときにコードが期限切れにならないようにする必要があります。

コード署名証明書の有効期限が切れた後、タイムスタンプ付きコードは有効ですか?

  • Microsoft®Authenticode®(多目的)では、署名済みコードにタイムスタンプを付けることができます。タイムスタンプは、ブラウザがタイムスタンプを検証するため、証明書の有効期限が切れてもコードが期限切れにならないようにします。タイムスタンプサービスは、VeriSignの厚意により提供されています。コードの署名時にタイムスタンプサービスを使用すると、コードのハッシュがVeriSignのサーバーに送信され、コードのタイムスタンプが記録されます。ユーザーのソフトウェアは、信頼されるべきではない有効期限が切れた証明書で署名されたコードと、コードが署名された時点で有効であるがその後有効期限が切れた証明書で署名されたコードを区別できます。
77
Martin Vobr

WTD_LIFETIME_SIGNING_FLAGが設定された証明書に注意してください:証明書で署名されたプログラムは、証明書の有効期限が切れた後でもinvalidであることを意味します変更されておらず、証明書は署名時に有効でした。

これは、更新プログラムにも影響します。顧客が会社のすべてのプログラムを信頼するためにボックスをオンにしても、更新プログラムが同じ証明書で署名されていない場合(またはその証明書の有効期限が切れる場合)、信頼は失敗します。

から: http://download.Microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx


ライフタイム署名セマンティクスによるタイムスタンプ処理

タイムスタンプ付き署名が無期限に正常に検証されることを望まないアプリケーションまたは認証機関には、2つのオプションがあります。

•発行者の署名証明書にライフタイム署名者OIDを設定します。

発行者の署名証明書に、PKIXコード署名OIDに加えてライフタイム署名者OIDが含まれる場合、署名がタイムスタンプされていても、発行者の署名証明書の有効期限が切れると署名は無効になります。 OIDは次のように定義されます。

szOID_KP_LIFETIME_SIGNING 1.3.6.1.4.1.311.10.3.13

•WinVerifyTrustを呼び出すときに、WINTRUST_DATA構造体にWTD_LIFETIME_SIGNING_FLAGを設定します。

WinVerifyTrustの呼び出し元がWINTRUST_DATA構造体でWTD_LIFETIME_SIGNING_FLAGを設定し、発行者の署名証明書の有効期限が切れている場合、WinVerifyTrustは署名にタイムスタンプが付いていても署名を無効として報告します。

発行者が、ライフタイム署名者OIDまたは

•失効日より前に署名にタイムスタンプが付けられました。

•署名証明書はまだ有効期間内です。有効期限が切れると、署名は無効になります。


例: https://forum.startcom.org/viewtopic.php?f=15&t=2215&p=6827&hilit=lifetime+signing#p6827

これは、StartSSL証明書に関する深刻な問題です。証明書にそれほど費用がかからないという制限があることは驚くことではありませんが、製品の説明で明確にするのではなく、細かい制限や古いフォーラムの投稿にこの制限を埋めることはビジネスとしては貧弱です。彼らは将来それを修正するかもしれません、そして、他が同じ制限を持っているかもしれないか、そうでないかもしれないので、あなたが使う前にチェックする電子メールは賢明かもしれません。

誰が尋ねるのを知らなかったと思いますか?笑...まあ、生きて学びましょう。

26
James Newton

バイナリに署名するときにタイムスタンプを追加するようにすれば、証明書の有効期限が切れたときにそれらに再署名する必要はありません。 signtoolのコマンドラインに「/ t http://timestamp.verisign.com/scripts/timstamp.dll 」を追加するだけで、証明書が取り消されない限り、デジタル署名は常に有効としてマークされます。 CAは信頼されています。

証明書に署名するコードが非常に高価な理由は、誰かがあなたが本人であることを確認する必要があるからです。私の場合、彼らは住所と電話番号を確認し、電話をかけてきました。ただし、Comodoの証明書は少し安いようです。

11
BCran