2009-11-18 22 views
8

SunのPKCS11 JCEセキュリティプロバイダには、必要な機能がいくつかあります。
元のソースを使って拡張バージョンを書きました。カスタムJCEセキュリティプロバイダに署名する方法

残念ながら、JCEのインフラストラクチャは、それが適切に署名されていないため
「JCEプロバイダを認証できない」新しいプロバイダ
を拒否します。

javax.crypto.JceSecurity.verifyProviderJar(...) throws

新しいプロバイダに署名する方法を教えてください。 はJCEで動作しますか?プロセスが文書に記述されている

+3

をこれと同じ例外が発生しました:私たちはSunからの証明書を要求し、3営業日以内に手続きをしました。証明書は、必要な数のバージョンを署名するために使用できます。この手順はお住まいの地域によって異なる場合がありますので、ヨーロッパ、スイスからの運営についてお伝えすることは重要です。 – 3dGrabber

答えて

7

"How to Implement a Provider."

それは、確認書をファックス、 オラクル(あなたがあなたの署名鍵用に生成CSRを含む)いくつかの情報を電子メールで送信することを伴います。署名入りの証明書を取得するには1週間以上かかることがありますので、事前に計画してください。

一部の(抑圧的な)政府によって制限されているサービスを提供する場合は、プロバイダにサインインする必要があります。たとえば、Cipherの実装は制限付きの「サービス」ですが、MessageDigestは制限のないサービスです。私はあなたが得ているメッセージで、あなたが制限付きのサービスを提供しようとしていると仮定します。

これらのサービスを提供する場合は、はありません。 Sunによって発行されたコード署名証明書が必要です。 (IBMからの回答もありますが、私が正しくリコールすれば、コード署名CAはサポートされていますが、発行プロセスについてはわかりません)

2

"JCEコード署名CA "現在のすべてのJavaディストリビューションでは、2つのCA(SunとIBM)のみが組み込まれており(ハードコードされています)、独自のものを追加する方法はありません。私たちはSunと協力してプロバイダに署名しようとしましたが、ほとんど不可能です。彼らは中間のCA証明書を発行しません。つまり、変更するたびに問題を解決しなければなりません。

あなた自身のライブラリを自分だけで利用するのはなぜですか?異なるJCE間の相互運用性のために標準APIを使用します。しかし、これは現時点でCryptoKi/SmartCardには現実的ではありません。ベンダー固有のAPIとやりとりするためのカスタムコードを書く必要がほとんどあります。コード変更を最小限に抑えるために、コードをJCE APIに似せるようにすることもできます。

+0

私はSunから2つの証明書を受け取りましたが、全く問題はありません。彼らは非常に役に立ち、反応があった。 – erickson

+1

Sunから「JCEコード署名証明書」を取得することを意味しますか?彼らはJCE "JCE Code Signing CA"に特別なCAルートを使用します。したがって、通常のコード署名証明書は機能しません。 –

+0

はい、JCEプロバイダに署名する必要がある証明書を意味します。 – erickson

3

代わりに、OpenJDKを使用してカスタムプロバイダを設計することもできます。これはSun/Oracleが主催するオープンソースプロジェクトで、正式リリースのコードベースを提供します。 OpenJDKではプロバイダに署名する必要はありません。 OpenJDKはいくつかのLinuxディストリビューションで利用可能です(デフォルトでは現在)。残念ながら、WindowsやMacintoshではすぐに利用できないようです。 WindowsやMacintoshをお使いの場合、LinuxをVMにインストールすることをお勧めします。

ただし、WindowsまたはMacで開発する必要がある場合は、公式インストールのjce.jar(Java libディレクトリ内)でのOpenJDKインストールからjce.jarファイルをコピーできます。これはJar認証プロセスを効果的に回避します。ただし、開発が完了したら元のjce.jarファイルを元に戻してください。私は、「生成されたJARに抽出し、必要なライブラリ」オプションを使用してJAR(Eclipseのジュノ)を構築する際

0

だけ余分な情報のために、私はFYI代わりに正しい「生成されたJARにパッケージに必要なライブラリ」

関連する問題