仕事始め
もうなんか職場のレベルの低さに辟易してきた
お客さんの個人情報を預かるシステムなんだけど
DBに格納する際に、レコード毎に、客毎に異なる暗号キーで暗号化して格納している。
お客さんがログイン時にはログイン時のIDと同じ暗号キーしか取り出せないようになってて
万が一SQLインジェクションとか起こしても自分に関係のあるデータしか復号できないようになっている。
社内の管理系からは、ユーザー毎のキーで復号するので一覧が取得できる仕組み。
で、問題なのは社内の管理系での検索なんだけど、暗号化前のデータをN-GRAMで分割して、N-GRAMの単語(この表記が正しいかは知らない)毎にハッシュ化して、検索用のN-GRAMインデックスを構成してある
検索時は検索キーワードで同じ事をすると特定の文字列を含んでるレコードを抽出できる仕組み
ここまでおいらが設計して実装した内容。
おいらが開発から外れて、いつの間にやら、内容を理解してないヤツがいじり回した結果
その検索用のn-gramインデックスの更新漏れが起きてて、検索に引っかからなくなってきてる(笑)
で改修案が出てたんだけど、DBごと暗号化する とか言う結論になってて大規模改修しないと対応できないとか言ってる
ストレージレベルで暗号化してもストレージの盗難以外には無力よ?
こないだ話題になった廃棄HDDの流出とかにしか効果無いよ?
SQL投げ込んで平文が帰ってきたらLIKE検索できるからOKとか思ってるんだろうけど
それはWEBアプリで個人情報を扱うのに暗号化してるとかいえないんだけど…
それを提案する技術者もアレなら、何も問題だと思わない上司も上司だと思うわ