みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ローカルのコンピュータでしか復号できない暗号は

レンタルサーバでデータベースを立ち上げる予定です。
ただし、名前等の情報は、データベースには入れずに、ユーザの個々のコンピュータでのみ復号できるようにしたいです。
(データベースファイルがごっそり流出したような場合にそなえて)

暗号化→復号化が ローカルコンピュータでできるソフトがあれば教えてください。

投稿日時 - 2018-12-03 21:24:58

QNo.9564339

困ってます

質問者が選んだベストアンサー

データベースに入れないデータはユーザ個々のコンピュータに保存されるという個でしょうか?

ローカルファイルの暗号化なら
https://boxil.jp/mag/a2438/
に色々紹介されています。

投稿日時 - 2018-12-03 22:19:34

お礼

暗号のご紹介、ありがとうございました。

投稿日時 - 2018-12-06 13:58:03

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

結論をいうと、ありません。何かしていれば必ずセキュリティ問題が発生しています。

ざっといいますと、文字情報を暗号化するというのはその段階で文字ではなくなりますね。バイナリ情報になるわけです。

項目をバイナリだとして宣言して登録することは不可能ではありませんが、当然ですが、これをSelectで読みだそうとしたら出力はぶっ飛びます。
それがいやなら、テキストの項目をその付添人として考え、havingで読み出せばいいのですが、それをすると、すべてのindexが設定できなくなります。

まして、名前なんていう項目をバイナリ化したら、どうやってその人をSelectできるのでしょうか。役に立たないうえ、テーブルが破損しているかどうかすらわからなくなります。
バイナリでなくしようと思うなら、暗号化されたバイナリを16進ダンプかなんかにして長い長い文字列にすればいいんですが、そうしたらなおその人をSelectなんてできなくなります。やろうとすれば、探したい文字を暗号化し、バイナリ化したものを16進ダンプにしてそれをキーとして探すことになり、この無駄な操作自体が、暗号の所在とそのエンコード処理が分かる構造ですから、セキュリティ上意味がないことになります。

データベースを使おうとする発想自体に問題があるのです。
重要な情報は全体を暗号化し、触れないように管理して更新は局面だけにしておかないといけないことになります。そうすれば丸ごと盗まれても何も起きません。しかし、非常に使い勝手の悪い塊になります。

投稿日時 - 2018-12-05 11:38:46

ANo.3

登録されえいる個人情報は、暗号化したコンピュータでしか復号化が出来ないってことですか。それってデータベースに入れておく意味が無いのでは?
データベース内では暗号化されたデータが入っているだけで、検索も出来ないってことですよね。

投稿日時 - 2018-12-03 23:29:38

お礼

つまり名前とかの情報は、サーバにいれないで、各ユーザさんで保管してください、という趣旨でした。

投稿日時 - 2018-12-06 13:59:00

ANo.1

 
データーを分散する方がセキュリティーは困難になりますよ。
一か所で二重、三重に対策する方が安全。
 
ユーザがルールを守る、セキュリティー対策をすると保証できますか?
 

投稿日時 - 2018-12-03 21:48:19

お礼

なるほど、おっしゃるとおりです。ありがとうございます。

投稿日時 - 2018-12-06 13:57:43

あなたにオススメの質問