Пару недель назад новостные ресурсы пестрили заголовками:
Facebook несколько лет хранил пароли миллионов пользователей в не зашифрованном виде.
Что это значит?
Непосвященным людям может быть не понятно.
Давайте разбираться.
Я постараюсь максимально понятным языком объяснить что это значит.
Итак начнем.
Видео версия:
Текстовая версия:
Все пароли и логины, как правило хранятся в базе данных.
Схематично это выглядит так:
Здесь есть колонка пользователи (users) и колонка паролей (password).
У нас здесь три пользователя (user1, user2, user3).
И каждого свой пароль.
Храниться пароли должны вот в таком виде:
Видите?
Логины остались такими же.
А вот пароли уже другие.
На самом деле это так называемые хеши от тех паролей, которые вы видели. Только они сейчас в зашифрованном виде.
Расшифровать их крайне сложно.
Для паролей используют программы шифровальщики, которые работают только в одну сторону. Т.е. они шифруют и все.
Расшифровать их не возможно.
Хотя взломщики ищут методы и порой находят.
Старые методы уже скомпрометированы.
Но и методы шифрования совершенствуются.
У вас может возникнуть вопрос. Если пароль не храниться, то как же приложение узнает, что это я?
Все просто. Программа, когда вы авторизуетесь переводит ваш пароль в хеш, который вы только что вбили и сверяет его с тем, что храниться в базе данных.
Так вот мы отдалились от нашей темы.
Все это храниться в базе данных.
К базе данных имеют доступ разработчики.
Так же злоумышленники могут получить доступ к базе данных. Или к части этой базы.
Вот именно по этим причинам в базе должны храниться хеши.
А не пароли.
Если теперь кто-либо получит эти данные
То, он узнает только логины. А вот пароли нет. И соответственно не сможет зайти в ваш аккаунт и причинить вред.
А фейсбук хранил в открытом доступе часть паролей.
И это очень удивительно и крайне небезопасно.
Если у вас есть какие-либо вопросы — спрашивайте.
Постараюсь ответить.