Должен ли я хранить адреса электронной почты в виде открытого текста в базе данных?


14

Всем ясно ( я надеюсь ), что хранить пароли, по крайней мере, не солить / хэшировать их - ужасная идея.

Как насчет электронной почты? Допустим, вы сохраняете адрес электронной почты подписки, если вы правильно его зашифруете, отправка электронных писем пользователям может оказаться невозможной. С другой стороны, если вы не зашифруете ее и база данных будет украдена, все ваши пользователи рискуют спамом.

Этот вопрос не о правовых вопросах (хотя они могут быть заданы, они остаются зависимыми от страны) или о шифровании самой базы данных.


Подумайте, нужно хранить все PII (личную информацию) в защищенном виде. Это зашифрованные данные, которые должны понадобиться приложению (например, отправить электронное письмо с подтверждением), и данные хеша / соли, используемые для аутентификации (например, пароль). Плюс, конечно, защита базы данных в этом случае обязательна.
Илан Хуберман

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

Ответы:


9

Хранение соленого хэша адресов электронной почты может быть включено, если вы сохраняете эти записи только для подтверждения / аутентификации учетной записи.

В других случаях мне кажется, что шифрование электронных писем усложнит работу по поддержанию базы данных, в то же время получая мало взамен.

Вероятно, обеспечение доступа к самой базе данных является лучшим выбором: обычно в базе данных содержится много другой информации, которую вы не хотели бы собирать.


Аналогичный вопрос о Stackoverflow: стоит ли шифровать адреса электронной почты в базе данных?


Не видел этот вопрос! Кстати, это старый вопрос, но я считаю, что теперь он должен принадлежать программистам.
Пьер Арло

3
@PierreArlaud: На самом деле все было бы лучше в информационной безопасности, так как в действительности это не имеет никакого отношения к программированию.
Blrfl

На самом деле есть возврат на шифрование писем. Если вы не храните ключи в одной и той же скомпрометированной базе данных, вы лишаете злоумышленника возможности использовать электронные письма. Помните, что электронная почта интенсивно используется для активации учетных записей и изменения учетных данных.
NoChance

2

Я думаю, что вы уже все сказали.

Единственное, о чем я могу думать, это не использовать односторонний хеш-фильтр, такой как SHA1, для хранения адресов электронной почты. Используйте некоторое (обратимое) шифрование с открытым ключом в своем приложении и убедитесь, что ваш закрытый ключ находится далеко от базы данных, чтобы их нельзя было «украсть» вместе.

Таким образом, вы все еще можете расшифровать адреса электронной почты для отправки писем,


6
И? И? Ожидание убивает меня :)
Пьер Арло

И что? Что такое тревожный? Шифрование (дешифрование) в вашем приложении перед сохранением в базе данных означает, что не стоит беспокоиться, если база данных будет украдена, взломана и т. Д. Но, если вы хотите отправлять электронные письма, вы можете расшифровать получателей электронной почты из базы данных. Это не то, что вы хотели ? Я что-то пропустил?
Mawg говорит восстановить Монику

2
Просто комментарий к последнему символу вашего ответа: D
Пьер Арло

Я пытаюсь найти то, что ваш ответ говорит, что Манлио не сделал. По сути, идея состоит в том, чтобы иметь обратимый хеш электронной почты, такой как соленый хеш. Или, может быть, вы имели в виду что-то совершенно другое?
Пьер Арло

Извините, я думаю, что мы представили в то же время.
Mawg говорит восстановить Monica
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.