57

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

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

部分信頼アプリケーションを提供する場合、これは実際には問題になりませんが、アプリケーションは WCF サービスと通信するため、Web アクセス許可が必要です。したがって、部分信頼と完全信頼の間の灰色の領域にあり、 XBAP を読み込もうとすると、楽しい ole Trust Not Granted メッセージが表示されます。

何か案は?

4

8 に答える 8

92

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

Thawte Code Signing Certificate FAQsから:

コード署名証明書はどのくらいの期間使用できますか?

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

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

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

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

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

から: 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 を含むコード署名証明書を失効させるか、WinVerifyTrust 呼び出し元が WINTRUST_DATA 構造体に WTD_LIFETIME_SIGNING_FLAG を設定した場合、WinVerifyTrust は次の両方の条件が満たされている場合に署名を有効であると報告します。

• 署名のタイムスタンプが失効日より前である。

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


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

これは、StartSSL 証明書の重大な問題です。それほど費用がかからない証明書に制限があることは驚くことではありませんが、この制限を製品の説明で明確にするのではなく、細かい活字や古いフォーラムの投稿に埋め込むことは、ビジネスとしては不十分です. 彼らは将来それを修正するかもしれませんし、他の人も同じ制限を持っているかもしれませんし、持っていないかもしれません.

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

于 2011-03-16T23:28:51.030 に答える
13

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

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

于 2010-08-04T22:03:58.190 に答える
7

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

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

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

于 2008-11-30T22:22:36.770 に答える
-2

コード署名証明書は「管理」されていないため、自分自身を更新しません...有効期限が切れたら、新しいものを購入する必要がある可能性があります。

証明機関 (CA) をセットアップできます。Windows のみのショップの場合は Windows ベースの CA を使用しますが、それ以外の場合はDogTag Certificate Systemのようなものを使用する Linux をお勧めします。

独自の CA を作成する場合は、パブリック CA 証明書をエクスポートし、その証明書によって発行されたコード署名証明書によって署名されたコード/スクリプトを実行する任意のサーバーに (ルート CA として信頼されるように) インストールする必要があることに注意してください。カリフォルニア州。これは、X 年ごとに証明書を支払うことに比べて、はるかに安価 (無料?) です。さまざまな理由/用途で発行できる他の証明書は言うまでもありません!

于 2013-04-30T16:48:25.907 に答える