デジタル署名と UDDI レジストリー
UDDI バージョン 3 では、パブリッシャーは、パブリッシュ中に UDDI エレメントにデジタル署名できます。UDDI バージョン 3 スキーマは、businessEntity、businessServices、bindingTemplate、tModel、および publisherAssertion エレメントの署名をサポートしています。
デジタル署名された UDDI エレメントを検証して、変更または改ざんされていないこと、および保全性が保たれていることを確認できます。
UDDI エンティティーの署名および署名の検証についての完全詳細は、UDDI バージョン 3.0.2. 仕様の、付録 I: XML デジタル署名のサポート を 参照してください。
署名されたエレメントのパブリッシュ時に UDDI レジストリーがシグニチャーを検証することはありません。署名されたエレメントが取り出されると、それを取り出したクライアントが、シグニチャーを検証し、クライアントが承認し信頼している認証局 (CA) によってその署名者証明書が署名されていることを確認するためのメカニズムを提供します。署名者の公開鍵を使用してシグニチャーが正常に暗号化解除された場合は、対応する秘密鍵の所有者のみがこのエレメントに署名し、このエレメントを公開できたということになります。
シグニチャーの生成
エレメントの属性は、エレメント署名の生成中に組み込まれます。 そのため、署名が生成されるときにはすべてのエンティティー・キーが使用可能になっている必要があります。 パブリッシャーは、署名の前にエレメントのすべての鍵に対して、パブリッシャーが割り当てた鍵を生成することができます。 または、パブリッシャーが鍵を使用しないでそのエレメントをパブリッシュしている場合、レジストリー・ノードは必要なエンティティー鍵を生成し、署名済みエレメントを取り出し、署名し、そしてリパブリッシュします。
シグニチャーの検証
検証するシグニチャー・エレメントは、getXXDetails メソッドの呼び出しで戻される最上位エレメント内にあります。検証はクライアントが行います。 クライアントはパブリッシャーの X509.3 証明書をあらかじめインポートしておき、信頼する CA に基づいてその証明書を検証しておく必要があります。 この方法でクライアントはパブリッシャーの公開検証鍵にアクセスします。この鍵は、パブリッシャーが、エンティティーをパブリッシュする前にエンティティーの署名で使用した秘密署名鍵に対応しています。
UDDI バージョン 3 クライアントを使用して、Java™ API for XML-based RPC (JAX-RPC) オブジェクトを構成し、UDDI バージョン 3 Web サービスを呼び出すことができます。このクライアントの一部として、ヘルパー・クラス com.ibm.uddi.v3.client.apilayer.xmldig.SignatureUtilities を使用して、 デジタル署名をサポートしている UDDI バージョン 3 エンティティー上でデジタル署名を作成および検証できます。 このヘルパー・クラスと SignatureUtilitiesException 例外のアプリケーション・プログラミング・インターフェース (API) について詳しくは、API 情報を参照してください。
UDDI の場合、デジタル署名はデータへの署名に使用されます。 SOAP メッセージの認証には使用されません。