VB.netでの暗号化復合化の鍵管理について
Windows 7 Pro (64bit)
VB.net 2010 Pro
にてアプリ開発、暗号化複合化処理を実装しているところです。
作成するものは下記で、どちらもVB.netです。
1.暗号化ツール(自作
2.アプリ(自作
暗号化複合化処理は下記サイトを参考に行いました。
http://dobon.net/vb/dotnet/string/encryptfile.html
システムの流れ
◆暗号化ツールについて
1.のツールで行います。
あるファイルを対象に暗号化し、そして、その暗号化されたファイルを出力し
2.のアプリに埋め込もうと考えています。
同時に、復号に使用する鍵(以下、「復号鍵」)もファイル出力します。
◆復号化について
2.のアプリで行います。つまり暗号化と復号化の処理は1.2.で切り離されています。
ファイル内容を復号化(復号化された内容は文字列)し、
システム内部でそのファイル内容を使用したい。
◆問題
復号化するからには、暗号化された復号鍵がどこかに添えてあげる必要があります。
【復号鍵の管理】に関して、どこに持つのがセキュリティ上最も安全か考えております。
折角暗号化したのにもかかわらず、復号鍵が目の見える場所にあっては、
アプリを解析などされた際などに、意味のないものになってしまいます。
何か良い策などあれば、参考にお聞かせ願えればと考えております。
◆没案
下記の例では、コンピュータに長けている人であれば解析できそうな気がしたので
今回、私の作るシステムではアウトと考えています。
・レジストリに格納
・・・ レジストリエディタを使える人からすれば意味がない?
・Windows上のローカル奥深くに隠しファイルとして保存
・・・ そもそもディスクドライブにファイル保存すること自体がアウト?
・USBなどの外部メディアに保存。システムを起動するときに指してもらう。
・・・ 外部メディアの管理が必要になる。紛失時の問題にもなる。アウト。
・サーバ上に、キーを持つ。
・・・ この方法だと、そのサーバ情報もアプリに持つことになるので結局、そのサーバ情報も暗号化することに→イタチごっこに?アウト。
いろいろ考えて見てはいるのですが、いまいちピンときません。
そもそも解析されたら、などと考えるまでもなくこうすれば
鍵管理は問題ないという過去の事例などありましたら、ご教授願います。
よろしくお願いいたします。
お礼
お返事ありがとうございました。 早速見てみました。 とても参考になるサイトを教えていただき感謝いたします。