2

概要:Snail Mail(大量のデータセット)を 介して安全に送信するためにファイルを暗号化するアプリケーションを設計しようとしています。.NetのAES/RijndaelManaged暗号化を使用して、。を使用してランダムに生成されたキーを使用して、最初にファイルを暗号化することを計画していますRNGCryptoServiceProvider。次に、このランダムなAESキーをRSA公開キーで暗号化します。データの受信者は、データを復号化するためのRSA秘密鍵を持つ唯一の受信者です。

私の質問:これはこのようなことをするための適切な方法ですか?その場合、復号化するために秘密鍵が必要になるため、このRSA暗号化鍵をデータと一緒に送信しても安全ですか?

編集-回答によると、これは確かに適切な方法です。

編集-返信ありがとうございます。さて、私が本当に知りたい
のは、エンドユーザーに公開鍵と秘密鍵のペアを生成させる場合、秘密鍵を保存するための最良の方法は何ですか?1台のマシンからしかアクセスできないようにしたくないので、ユーザーのキーストアを使用しないようにしています。しかし、MSDNは、キーをファイルに保存するのは安全ではないと言っているので、他にどのようにこれを達成できますか?

4

4 に答える 4

3

あなたの最初の部分に関しては、これは絶対にそれについて行く方法です。これは、ハイブリッド暗号システムと呼ばれます。

于 2010-05-13T18:45:01.037 に答える
3

正当な理由がない限り、PGPを使用してください。PGPは、電子メールで一般的に使用されるハイブリッド暗号のオープンでユビキタスな標準です。PGPには多くの実装があります。私が知っている唯一の.NETは、BouncyCastle暗号プロジェクトのC#ライブラリです。PGPは、実際には、説明する機能のスーパーセットを提供します。たとえば、PGPはメッセージにデジタル署名することもできます。

秘密鍵の保管について。一般的な解決策は、秘密鍵をディスクに書き込む前に対称的に暗号化することです。秘密鍵の真の所有者だけが暗号の秘密を知っており、誰にも教えません。そうすれば、攻撃者が秘密鍵ファイルを入手したとしても、秘密を侵害するか、対称暗号を総当たり攻撃する必要があります。私が知っているすべてのPGP実装はこれを行います。

PGPが希望どおりに機能する場合は、PGPを再実装しないでください。PGPはかなり広くサポートされています。さらに、私(そしておそらくあなた自身)のような単なる人間は、すべてを正しくするチャンスをほとんど持ちません。

于 2010-05-13T18:59:41.550 に答える
2

これは本質的にSSLが行うことです。RSAは、対称セッションキー(AESなど)の認証とキー交換に使用され、通信の本体に使用されます。

于 2010-05-13T18:57:06.827 に答える
0

秘密鍵(GPG / PGP / PKCS#1 / PKCS#8で使用)を保存する従来の方法は、強力なパスフレーズでパスワードを保護し、ファイルに貼り付けることです。ほとんどのキーストア管理ツールには、PKCS#1 / PKCS#8形式でキーをエクスポートする方法があります。あるマシンでキーを生成し、パスワードを使用してエクスポートし、別のマシンにインポートします。キーは、マシン間でキーを転送する目的でのみキーストアの外部にあります。

于 2010-05-24T20:05:20.430 に答える