アプリケーションでは、後でリサーチに使用できるように機密データ(任意に大きい可能性があります)を保存する必要があります。要点は、データが保護されていない状態にあることを望んでいないため、保存する前に暗号化したいと考えています。JavaとOpenSSLを使用した公開鍵暗号
(信頼性の高い環境で)別のコンピュータで、そのデータを後で復号化したいと思います。解読は容易に利用可能なツール、例えばOpenSSLで可能でなければなりません。今私の質問は:どのように私はすべてを行うのですか?
私はすでに抽象的手順を知っている:
- 一度、すべてのは、公開鍵/秘密鍵のペアを生成します。
- 公開鍵を使用して
byte[]
をJavaで暗号化し、どこかに格納します。 - 暗号化されたデータを「安全な」コンピュータにコピーします。
- 単純なOpenSSLコマンドラインを使用して、保存したデータを解読します。
私は何をしないのよ今の詳細は以下のとおりです。
- 私は鍵ペアのどのような種類が必要ですか?
- どの暗号化方式を使用しますか? (これはおそらく "rsa - 対称鍵を暗号化し、その鍵でデータを暗号化する"のようなものでしょう)
- 単純なOpenSSLコマンドラインはどのように見えますか? http://blog.altudov.com/2010/09/27/using-openssl-for-asymmetric-encryption-of-backups/:
は、[更新は2011年2月13日]
少し研究した後、私はまさに私が何をしたいのかを説明ページを発見しました。基本的に私のステップ4に対する答えは、このコマンドラインされています。今、私の質問は
openssl smime -decrypt \
-in data.smime -binary -inform DER \
-inkey key.pem \
-out data
:どのように私はフォーマットのOpenSSLと互換性があるので、私は、このコマンドラインを使用して、それを解凍することができますJavaからファイルを生成することができますか?私は毎秒何回もこのhundretsをやりたいので、外部プロセスを呼び出すのは遅すぎるようです。だからこそ私はJavaで直接それをやりたいのです。
私は真剣にあなたのソリューションにPKIを混在させようとしているのですが、なぜならあなたには明らかな理由はなく、あなたのようなポイント・ツー・ポイント・ソリューションでは余計な価値が生まれません。 – erloewe
暗号化されたデータには、容易に復号化できない情報が含まれています。対称暗号化を使用すると、キーをサーバーのどこかに残しておかなければなりません。そのキーが公開されていれば、最初にデータを暗号化する必要はありませんので、非対称暗号化を使用したいと思っていました。私は簡単に利用できるツールでデータを解読できるようにしたいと考えており、OpenSSLは十分に普及しているようです。 –
私はあなたの要点を理解しています。単純な公開鍵/秘密鍵のペアで十分です。だから私は簡単な方法で目標を達成する方法を教えていただけますか? –