公開鍵をクライアントの場所に交換する方法。秘密鍵を使用して RSA アルゴリズムを使用してドキュメント (テキスト ファイル) を暗号化し、公開鍵をシリアル化を使用してファイルに java.security.Key オブジェクトとして格納しました。シリアル化された公開鍵オブジェクトの整合性について知りたいそれは安全なオプションであるか、利用可能な他のオプションです。
2 に答える
公開鍵は通常、テキストとして交換されるだけです。その後、キーストアにインポートされます。正確な方法は実装に依存します (私は常に PGP を使用しています)。
キーをシリアル化された形式の java.security.Key として公開することはありません。これは実際には標準ではないためです。その単純な形の鍵は、交換の標準的な形です。
キーをダウンロードとして公開する場合: キーは公開されているため、侵入者がキーをダウンロードしても何もできません。失敗する可能性がある唯一のことは、誰かがあなたのサーバーを偽造し、別のキーをホストする可能性があることです. 次に、その鍵の秘密鍵で署名し、自分であると主張します。もちろん、誰かに郵送した場合も同じ問題が発生する可能性があります。しかし、少なくとも、誰にメールしたかを知ることができます。
最も安全な方法は、キーを範囲外に広げることです。USBスティックのように。
原因にもよりますが、リスクを負って生きていけると思います。
Joeri は、セキュリティの側面について回答しています。これについては、何も付け加えることはありません。
発生する可能性のある主な問題は、ライブラリのバージョン間でシリアライズされた表現が変化することです。これは、Java シリアライゼーションの使用に伴う潜在的な問題です。
もちろん、他の方法もあります。getEncoded()
RSA 公開キーには、メソッドを使用してアクセスできる業界標準のエンコーディングが必要です。これにより、にできるバイトの配列が得られwrite
ますFileOutputStream
。とても簡単です。