Чи слід зберігати адреси електронної пошти як простий текст у базі даних?


14

Всім зрозуміло ( я сподіваюся ), що зберігати паролі, не принаймні їх засолюючи / переширюючи, - це жахлива ідея.

Що з електронними листами? Скажімо, ви зберігаєте електронну адресу підписки, якщо ви її зашифрували належним чином, це може бути непридатним для надсилання електронних листів користувачам. З іншого боку, якщо ви не зашифруєте його, і база даних буде вкрадена, всі ваші користувачі ризикують потенційним спамом.

Це питання не стосується конкретних законів (хоча вони можуть бути надані, вони залишаються залежними від країни) або про шифрування самої бази даних.


Подумайте, слід зберігати всю ПІІ (особисту інформацію), що захищається. Це зашифровані дані, необхідні додатку (тобто надіслати деякий електронний лист для підтвердження) та дані хешу / солі, що використовуються для автентифікації (тобто пароль). Плюс, звичайно, забезпечення бази даних є обов'язковим у цьому випадку.
Ілан Хуберман

Ви можете налаштувати окрему програму, яка зберігає, наприклад, електронну пошту + паролі (+ інші приватні дані). Ви можете використовувати це для надсилання електронної пошти, зателефонувавши, наприклад, із внутрішнім інтернетом api: localEmailServer / sendInvite / 123, де 123 = ідентифікатор користувача. Ви можете зробити те ж саме для входу в систему, опублікувати в localEmailServer / логін, який може повернути справжнє або помилкове. Таким чином ваша програма може бути зламана, але все-таки у них не буде електронних адрес. Якщо ви обмежите кількість запитів до цієї послуги, вона захищена, оскільки ви не вразливі до таких речей, як інжекції SQL у цій частині.
Люк Франкен

Відповіді:


9

Збереження солоного хешу електронних адрес може бути можливим, якщо ви зберігаєте ці записи лише для підтвердження / автентифікації облікового запису.

В інших випадках мені здається, що шифрування електронних листів ускладнить роботу з підтримкою бази даних, а натомість мало.

Можливо, забезпечення доступу до бази даних є кращим вибором: зазвичай в базі даних є багато іншої інформації, яку ви б не хотіли збирати.


Аналогічне запитання щодо Stackoverflow: чи варто шифрувати адреси електронної пошти в базі даних?


Не бачив цього питання! Для запису - це давнє питання, але я вважаю, що зараз він повинен належати програмістам.
П'єр Арло

3
@PierreArlaud: Насправді все було б краще щодо інформаційної безпеки, оскільки це насправді не має нічого спільного з програмуванням.
Blrfl

Дійсно, що шифрування електронних листів дійсно є. Якщо ви не зберігаєте ключі в одній компрометованій базі даних, ви позбавляєте поганого хлопця від використання електронних листів. Пам'ятайте, що електронний лист широко використовується для активації облікових записів та зміни облікових даних.
NoChance

2

Я думаю, що ти вже все це сказав.

Єдине, про що я можу придумати, - це не використовувати односторонній хеш-фільтр типу SHA1 для зберігання адрес електронної пошти. Використовуйте деякі (оборотні) шифрування відкритих ключів у вашій програмі та переконайтесь, що ваш приватний ключ ніде не наближений до бази даних, щоб їх не можна було "вкрасти" разом.

Таким чином, ви все ще можете розшифрувати електронні адреси, щоб надсилати електронні листи,


6
І? І? Суспензія вбиває мене :)
П'єр Арло

І що? Що підозріло? Шифрувати (розшифровувати) у вашому додатку перед зберіганням у базі даних, це не турбується, якщо база даних буде викрадена, взламана тощо. Але, коли ви хочете надсилати електронні листи, ви можете розшифрувати адреси електронної пошти з бази даних. Це не те, що ви хотіли ? Я щось пропускаю?
Мауг каже, що повернемо Моніку

2
Просто коментар до останнього персонажа вашої відповіді: D
П'єр Арло

Я намагаюся знайти те, що у Вашій відповіді сказано, що Манліо не так. По суті, ідея полягає у тому, щоб мати зворотний хеш електронної пошти, наприклад солоний хеш. А може, ви мали на увазі щось зовсім інше?
П'єр Арло

Вибачте, я думаю, ми подали одразу ж.
Мауг каже, що повернемо Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.