一般論として、メールアドレスは暗号化して保存するものですか?
平文として保存して良いものですか?
教えていただけるとありがたいです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答6件
0
雑に回答してしまいましたが、反響があるようでしたのでもう少し詳しく回答します。
ウェブサイトを想定しておられるようですが、この場合「暗号化」にはざっと3通りの方法があります。
1. ストレージ暗号化
ハードディスクやSSDの単位で暗号化する方法です。AWSなどクラウドも対応していることが多いですが、レンタルサーバーではこの方法は利用できません(一般的に)。よくノートPCのハードディスクをbitlocker等で暗号化しますが、原理としてはそれと同じです。
この方法だとOSに乗っているソフトウェアは暗号化を気にしなくていいのがメリットですが、外部からSQLインジェクションやOSコマンドインジェクションで攻撃された場合も、自動的に復号されて漏れるので、防御効果がありません。
だめじゃんと思うかもしれませんが、データセンターからハードディスクが盗難されたり、ハードディスクの廃棄の際に作業員がネコババしたり(ありましたね)する際には効果があります。
詳しくは、以下の記事が素晴らしいのでぜひお読みください。
ここでAWSボリュームを暗号化する理由としてAmazonに問い合わせた結果の筆頭に以下が載っています
多くのユーザーはこのコンプライアンス基準へ準拠のためだけに、ストレージ暗号化の機能を利用しているのが現実らしい
つまり、セキュリティポリシーやお客様の指定要件に「暗号化すること」となっているからそうしているということですね。Amazonのこういう正直なところは大好きです。
一方、「とにかく暗号化しろと言われているから暗号化する」という考え方は、私は大嫌いです。
2.データベースの透過的暗号化
Oracle等が熱心に推進している方法です。こちらはストレージ(ハードディスク等)を丸ごと暗号化するわけではなく、データベースの単位で暗号化するものです。SQL問い合わせの際は暗号化を意識することなく、平文でINSERTすれば自動的に暗号化されて格納され、SELECTすれば自動的に復号されて平文で結果が返ります。なので、SQLインジェクション攻撃を受けた場合は平文データが漏洩します。
透過的暗号化も主なカバー範囲はストレージの盗難ですが、加えてデータベースの中身を格納するファイル単位での盗難もカバーします。
注意点は暗号鍵の保存場所でして、暗号鍵をデータベースと同じストレージに保存していると、ストレージの盗難の際に復号されてしまうことになりますね。なので暗号鍵は教科書的にはハードウェアセキュリティモジュール(HSM)に置いとけということになりますが、かなり面倒にはなります。
3.アプリケーションによる暗号化
ウェブアプリケーション側のプログラムによりデータを暗号化・復号する方法です。データベースの場合ですと、INSERTの前に暗号化して保存し、SELECTの結果を復号して利用するという形になります。この方法だと、OSコマンドインジェクションやSQLインジェクション攻撃を受けても、攻撃者が得られる情報は暗号化されたものなので、生データ(メールアドレス)は簡単には漏洩しないことになります…
しかし、この場合も難しいのは暗号鍵の管理です。アプリケーションのソースコードにハードコードしていたりすると(よくある)、結局簡単に生データが取られてしまいます。ではどうすればよいかというと、各社秘伝の方法があるのでしょう。攻撃者にばれると意味がないので、残念ながら公にするのは難しいです。HSMを使う方法もありますが、リモートコード実行攻撃を受けた場合に十分な保護になるかという疑いがあります(ウェブアプリケーションと攻撃者は同じ権限を持つため)。
ということで、暗号化と一口に言っても、どの脅威を対象にするかで方法が変わってきますし、雑に実装してもあまり効果はありません。
ですが、きちんと実装すれば効果はあるわけでして、「要件による」ということに加えて「実装も極めて重要」というのが結論です。
【こちらは元の回答】
良し悪しは別として、実情としては平文が多いと思います。
メールアドレスは検索条件になっている場合も多いので、暗号化しにくいという事情もあります。(暗号化の方法しだいではありますが)
上記は一般的な話で、もちろん要件次第です。「平分で保存して良い」とお墨付きを与えるものではありません。
投稿2019/12/31 05:43
編集2019/12/31 08:44総合スコア11710
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
どんな脅威を想定して何から守るの?って話なので、まずは攻撃手法の研究からですね。
気に入っている質問の一つです。参考まで。
暗号化すべき情報とは?
投稿2019/12/31 07:31

退会済みユーザー
総合スコア0
0
セキュリティ規則はポリシー次第です。
セキュリティ上の課題はトレードオフ問題だらけなので一般論を作れないことが多いです。使う側の都合、作る側の都合があるので相談しなければなりません。
投稿2019/12/31 08:02
総合スコア4853
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
少なくとも自分の場合は大半はメールアドレスも暗号化しています。
少数は、たまに平文でどうしても保存して欲しいと依頼があるのでリスクをご説明した上で実装しています。
まぁ、そこまで気になるならセキュリティの専門家に自分で聞いて見た方がよろしいと思います。。
投稿2019/12/31 07:04
総合スコア10434
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/31 07:07
2019/12/31 07:09
2019/12/31 07:14

0
私のPCの中ではみんな平文ですねー
投稿2019/12/31 04:42
総合スコア88178
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。