メールアドレスをデータベースにプレーンテキストとして保存する必要がありますか?


14

少なくともソルト/ハッシュせずにパスワードを保存するのはひどい考えであることは誰にとっても明らかです(私は願っています)。

メールはどうですか?サブスクリプションの電子メールアドレスを保持しているとしましょう。適切に暗号化すると、ユーザーに電子メールを送信することができなくなる可能性があります。一方、暗号化せずにデータベースが盗まれると、すべてのユーザーが潜在的なスパムの危険にさらされます。

この質問は、法律に固有の問題(それらは与えられるかもしれませんが、国依存のままです)やデータベース自体の暗号化に関するものではありません。


すべてのPII(個人を特定できる情報)を安全な方法で保管する必要があると考えてください。これは、アプリケーションが必要とするデータの暗号化(検証メールの送信)と認証に使用されるハッシュ/塩データ(パスワード)です。さらに、この場合、データベースの保護はもちろん必須です。
イランフーバーマン

たとえば、電子メール+パスワード(+その他のプライベートデータ)のみを保存する別のアプリケーションをセットアップできます。これを使用して、たとえば内部REST APIでlocalEmailServer / sendInvite / 123を呼び出して、メールを送信することができます。123=ユーザーID。ログインについても同じことができ、trueまたはfalseを返すlocalEmailServer / loginに投稿できます。そうすれば、アプリケーションはハッキングされる可能性がありますが、それでもメールアドレスは取得できません。このサービスへのリクエストの量を制限すると、この部分でのSQLインジェクションなどに対して脆弱ではないため、より保護されます。
リュックフランケン

回答:


9

アカウントの確認/認証のためだけにそれらのレコードを保持する場合、電子メールアドレスのソルトハッシュを保存するオプションがあります。

他の場合では、メールを暗号化すると、データベースを維持するのが難しくなりますが、その見返りはほとんどありません。

おそらく、データベース自体のアクセスをセキュリティで保護することは、より良い選択です。通常、データベースには、収集したくないその他の情報がたくさんあります。


Stackoverflowに関する同様の質問:データベース内の電子メールアドレスを暗号化する価値はありますか?


その質問を見ませんでした!記録については、それは古い質問ですが、私はそれが現在programmers.SEに属するべきであると信じています。
ピエールアラード

3
@PierreArlaud:実際には、情報セキュリティはプログラミングとは何の関係もないので、全体が情報セキュリティよりも優れているでしょう。
Blrfl

メールの暗号化には確かに戻りがあります。侵害された同じデータベースにキーを保存しないと、悪意のある人が電子メールを使用できなくなります。電子メールは、アカウントのアクティブ化と資格情報の変更に頻繁に使用されることに注意してください。
-NoChance

2

あなたはすでにそれをすべて言ったと思います。

考えられる唯一のことは、SHA1のような一方向ハッシュフィルターを使用してメールアドレスを保存しないことです。アプリケーションでいくつかの(可逆)公開キー暗号化を使用し、秘密キーがデータベースの近くにないことを確認して、一緒に「盗まれない」ようにします。

そうすれば、メールアドレスを暗号化解除してメールを送信したり、


6
そして?そして?サスペンスは私を殺している:)
ピエールArlaud

そして何?サスペンスとは何ですか?データベースに保存する前にアプリで暗号化(解読可能)することは、データベースが盗まれたり、ハッキングされたりした場合でも心配する必要がないことを意味します。 ?何か不足していますか?
Mawgによると、モニカは2015

2
あなたの答えの最後の性格についてのコメント:D
Pierre Arlaud

私はあなたの答えがマンリオがそうではなかったと言っているものを見つけようとしています。基本的に、アイデアは、ソルトハッシュなど、電子メールの可逆ハッシュを保持することです。それとも、あなたは完全に異なるものを心に留めていましたか?
ピエールアラウド

申し訳ありませんが、ほぼ同時に提出しました。
-Mawgは、モニカを2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.