2012-03-01 36 views
1

私は、データを収集し、XMLファイルに書き込み、このXMLファイルをメールで送信するJavaアプリケーションを持っています。このアプリケーションは、さまざまなコンピュータで動作します(私の範囲内ではありません)。次に、受け取ったXMLファイルを受け取り、データをデータベースに挿入する別のアプリケーションがあります(このアプリケーションは自分のサーバー上で動作します)。これまでは、データが変更されておらず、XMLファイルが本当に信頼できるソースから来ているということを私は信じなければなりませんでした。Javaの自己署名証明書 - 署名XMLファイル

私はJava-Keystoreを使用してXMLに署名することを考えました。これまでの動作は次のとおりです。

  • キーツールを使用してキーペアを作成できます。
  • 次に、作成した秘密鍵を使用して、JavaのXMLデジタル署名API(http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/)を使用してXMLファイルに署名します。
  • 署名されたファイルを検証することもできます。

私の問題は、データが本当に信頼できるシステムのものかどうかを確認する方法です。私が今まで行ってきたことは、署名された瞬間から検証された瞬間までにデータが修正されていないことを単に確認していることです。私が望むのは、私のデータを送り、自分で発行した証明書だけを信頼するすべてのシステムで証明書を発行することです。しかし、どのようにこれを行うことができますか?

答えて

1

お客様のCA(認証局)になる必要があります。すべてのクライアントはあなた自身の署名を求める独自のクライアント証明書要求を提供する必要があります。クライアントは署名を付けてから送信します。これは古典的なPKI管理の問題です。これにより、これをより優雅に解決する製品が生まれましたが、その代金を支払う必要があります。

+0

はい、これもうまくいくと思いました。 Sunのコード例では、証明書の発行者がチェックされていないため、自分で発行した証明書だけを受け入れることができます。また、私の問題を正確に記述したSunの次の引用文も参照してください: "XML署名標準は、受信者が署名を検証するために必要な鍵を信頼する方法を定義していないことに注意することが重要です。KeyInfo要素は、受信者がそのキーの信頼を見つけ、その後その信頼を確立するために使用できる情報 – user1225775

関連する問題