teratail header banner
teratail header banner
質問するログイン新規登録
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Q&A

6回答

589閲覧

一般論として伺いたいです。

harari

総合スコア12

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

0グッド

2クリップ

投稿2019/12/31 04:30

0

2

一般論として、メールアドレスは暗号化して保存するものですか?
平文として保存して良いものですか?

教えていただけるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2019/12/31 04:53

それで、どのへんがMySQLの質問なんですか?
m.ts10806

2019/12/31 05:02

この質問だけ読んだ人が全部要件把握するのは無理でしょうね。 ついた回答が物語っています。 前の質問と重複しますし、日本は今日は大晦日なので、そこまで焦って対応しなきゃならないことなんでしょうか。 (個人的な事情なので知ったこっちゃないですけど、もう少し落ち着いて考えた方が良いかと)
hihijiji

2019/12/31 09:44

何に使うどのようなメールアドレスですか? 個人情報とWebクロールで集めたアドレスでは当然扱いが違います。
guest

回答6

0

雑に回答してしまいましたが、反響があるようでしたのでもう少し詳しく回答します。

ウェブサイトを想定しておられるようですが、この場合「暗号化」にはざっと3通りの方法があります。

1. ストレージ暗号化

ハードディスクやSSDの単位で暗号化する方法です。AWSなどクラウドも対応していることが多いですが、レンタルサーバーではこの方法は利用できません(一般的に)。よくノートPCのハードディスクをbitlocker等で暗号化しますが、原理としてはそれと同じです。
この方法だとOSに乗っているソフトウェアは暗号化を気にしなくていいのがメリットですが、外部からSQLインジェクションやOSコマンドインジェクションで攻撃された場合も、自動的に復号されて漏れるので、防御効果がありません。

だめじゃんと思うかもしれませんが、データセンターからハードディスクが盗難されたり、ハードディスクの廃棄の際に作業員がネコババしたり(ありましたね)する際には効果があります。
詳しくは、以下の記事が素晴らしいのでぜひお読みください。

AWSボリュームの暗号化の必要性について

ここで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
ockeghem

総合スコア11710

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どんな脅威を想定して何から守るの?って話なので、まずは攻撃手法の研究からですね。

気に入っている質問の一つです。参考まで。
暗号化すべき情報とは?

投稿2019/12/31 07:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/12/31 08:14

要件定義の甘さは前の質問でも指摘してるんですが、分かってもらえなくて。
guest

0

セキュリティ規則はポリシー次第です。

セキュリティ上の課題はトレードオフ問題だらけなので一般論を作れないことが多いです。使う側の都合、作る側の都合があるので相談しなければなりません。

投稿2019/12/31 08:02

HogeAnimalLover

総合スコア4853

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

少なくとも自分の場合は大半はメールアドレスも暗号化しています。
少数は、たまに平文でどうしても保存して欲しいと依頼があるのでリスクをご説明した上で実装しています。

まぁ、そこまで気になるならセキュリティの専門家に自分で聞いて見た方がよろしいと思います。。

投稿2019/12/31 07:04

kyoya0819

総合スコア10434

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/12/31 07:07

一応、その専門家が回答されてますね。
kyoya0819

2019/12/31 07:08

意図としては、「そこまで言うなら、無料で聴くのではなく、専門家に有償で委託しなされ」ということです。
kyoya0819

2019/12/31 07:09

もちろん徳丸さんが回答されていることは承知の上です。
m.ts10806

2019/12/31 07:09

それはなんとなく分かります。 結局は要件次第なんですけど、そこ分からない人みたいで、この質問者。そもそも質問の仕方も相当雑ですしね。
kyoya0819

2019/12/31 07:10

一般論も何もないですからね
m.ts10806

2019/12/31 07:14

私も前の質問で「そこまで気にするなら業者へ」となげてます。 結局要件詰めないと業者雑に対応するか対応してもらえないかのどちらでしょうが。
guest

0

一般論かどうかはわかりませんが、ディスク自体の盗難や紛失のリスクを考慮しなければならない場合は、漏洩防止のためにデータ全体を暗号化します。

私のノートPCの中ではみんな暗号文ですねー(ブート領域を除く)

投稿2019/12/31 05:26

raccy

総合スコア21768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私のPCの中ではみんな平文ですねー

投稿2019/12/31 04:42

y_waiwai

総合スコア88178

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

harari

2019/12/31 04:45

WEBサーバー上だとどうですか?
y_waiwai

2019/12/31 08:10

ウチではこうしてますって話になんでマイナスつくんだろー(棒
m.ts10806

2019/12/31 08:13

プラスつける内容ではないけどこの質問内容ならマイナスつける内容でもないですね。 1個くらいなら、まあ毛嫌いしている人か「思った回答じゃない!」と紛糾した質問者かのどちらかでしょう。
kyoya0819

2019/12/31 17:37

でも質問者の回答数だとマイナスつけられなそうですから前者だと思います。 ちなみに、自分はどちらもしてませんので
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問