Как воспользоваться
Сначала нужно пройти идентификацию (подтвердить, что это действительно вы), набрав пароль для входа в Гугл-аккаунт.
Сразу же после входа система проверки покажет вам статистику, например, такую:
- нет похищенных паролей;
- 45 повторяющихся паролей;
- 35 аккаунтов с простыми паролями.
Сервис проверки предложит создать взамен слабых уникальные пароли, отвечающие всем требованиям безопасности.Чтобы пароли одновременно обновились на всех ваших устройствах (компьютере, ноутбуке, смартфоне), сервис предлагает включить синхронизацию.
После того, как вы смените все пароли на безопасные, система предложит вам пройти проверку на безопасность. Для этого следует нажать на кнопку «начать». Проверка осуществляется очень быстро, за считанные минуты, а результат выводится на экран, например, такой: «Обнаружена 1 проблема». Ниже идет описание этой проблемы и предлагаются действия по ее устранению, после выполнения которых система известит вас о том, что с вашими паролями теперь все в порядке.
Стоит ли доверять свои пароли аккаунту Google?
В интернете можно найти много скептических мнений на этот счет. Ведь вы можете отнести свой компьютер в ремонт или зайти в него с постороннего ресурса (из интернет-кафе). И тогда ваши данные могут физически стать доступными злоумышленникам. Как не вспомнить известное выражение «береженого бог бережет»…
Хеширование паролей и авторизация
Для хеширования паролей в PHP существует функция password_hash():
Вторым параметром передаётся алгоритм хеширования. По-умолчанию это указанный нами bcrypt, но я рекомендую указывать его вручную, поскольку базовый алгоритм в будущем может поменяться. Будет грустно, если при очередном обновлении версии PHP на сайте отвалится авторизация.
Для проверки корректности введённого пользователем пароля используется функция password_verify():
Ещё раз. При регистрации пользователя нужно передать пароль в функцию password_hash(), а полученный хеш сохранить в базу данных.
При попытке авторизации получаем пользователя по его логину и проверяем функцией password_verify(), соответствует ли хеш пароля тому паролю, который ввёл пользователь.
Таким образом, хранить исходный пароль больше нет смысла.
Да, разные алгоритмы хеширования генерируют хеш разной длины, поэтому рекомендуется хранить хеш в поле с типом VARCHAR(255).
Почему нельзя хранить пароли в открытом виде
Главная причина — минимизация ущерба в случае утечки базы данных.
Но если в его руках окажутся логины и пароли, он может попытаться использовать эти данные для входа в почтовые сервисы (Gmail, Яндекс.Почта, Mail.ru и т.д.), социальные сети, мессенджеры, клиент-банки и т.д.
В тот же личный кабинет Пятёрочки, чтобы перевыпустить карту и потратить чужие бонусы.
В общем, пользователи сайта, которые везде используют одни и те же логины и пароли, могут получить кучу проблем.
Некоторые разработчики считают, что их приложение надёжно защищено и никаких утечек быть не может. Есть несколько причин, почему это мнение ошибочно:
- Разработчик — не робот, он не может не совершать ошибок.
- Взлом может произойти со стороны хостинг-провайдера, работу которого не всегда возможно контролировать.
- Некорректная настройка сервера может привести к возможному доступу других пользователей хостинга к вашему сайту (актуально для виртуальных хостингов).
- Бывший коллега по работе может слить базу данных конкурентам. Может в качестве мести, а может просто ради денег.
Короче, пароли в открытом виде хранить нельзя.
Шифрование и хеширование
Шифрование — это обратимое преобразование текста в случайный набор символов.
Хеширование — это необратимое преобразование текста в случайный набор символов.
Разница между этими двумя действиями в том, можем ли мы из случайного набора символов получить исходную строку по какому-то известному алгоритму.
Приведу пример шифрования. У нас есть сообщение:
Зашифруем сообщение по следующему алгоритму: сдвинем каждую букву на 1 в алфавитном порядке, т.е. а превращается в б, г превращается в д, я превращается в а. Так будет выглядеть зашифрованный текст:
Зашифровали. Теперь для расшифровки нужно выполнить обратную операцию, сдвинуть все буквы на 1 символ назад. К слову, этот алгоритм шифрования называется шифр Цезаря (Википедия).
В отличие от шифрования, хеширование не имеет (вернее, не должно иметь) способа «расхешировать» строку обратно:
Интерфейс сайта Have I Been Pwned
После этого откроется главная страница сайта. Сервис «Have I Been Pwned?» работает на английском языке, для большего удобства переведите сайт на русский язык с помощью переводчика в браузере.
Из вкладок меню осуществляется переход на другие страницы сайта. Обычному пользователю будут полезны следующие разделы сайта:
- Во вкладке «Home» происходит проверка почтовых адресов.
- Во вкладке «Notify me» можно зарегистрироваться для получения уведомлений, если аккаунт будет взломан.
- Во вкладке «Domain search» можно получить информацию для поиска по домену.
- Во вкладке «Who’s been pwned» находится подробная информация о ресурсах, которые были подвергнуты взлому в разное время.
- Вкладка «Passwords» служит для проверки паролей.
Проверка адреса электронной почты в Have I Been Pwned
Давайте посмотрим, как узнать взломали ли почту или другие аккаунты, связанные с определенным почтовым ящиком.
Для проверки почты на взлом, выполните два действия на сервисе haveibeenpwned:
- Введите адрес электронной почты в поле «email address».
- Нажмите на кнопку «pwned?».
После проверки появится сообщение: «Good news — no pwnage found!» (Хорошая новость — взлом не найден!).
Если в результате проверки вам сообщают: «Oh no — pwned!» (Ох, нет — взломали!), ниже покажут три шага для возможных действий.
Вам предложат установить программу 1Password (платная), создать пароли для регистрации на веб-сайтах, включить двухфакторную аутентификацию, подписаться на уведомления о возможных утечках данных в дальнейшем.
Если почтовый адрес был скомпрометирован, немедленно замените пароль от аккаунта. Сметите этот пароль, если он использовался для регистрации на других сайтах. Для каждого сайта создайте свой пароль, отличный от других паролей, используемых вами для регистрации на сайтах.
Как уменьшить опасность и обезопасить данные от взлома
Пользователь может сделать более безопасным использование своих данных от учетных записей в интернете. Для этого, постарайтесь выполнить следующие требования:
- Не используйте старые пароли от своих учетных записей для новых аккаунтов.
- Не используйте одинаковые логины и пароли при регистрации на разных сайтах.
- Используйте надежные и сложные пароли.
- Для хранения паролей используйте специализированные программы — менеджеры паролей.
- По возможности используйте двухфакторную аутентификацию.
- Если есть возможность, используйте функцию «безопасные платежи», имеющуюся в некоторых антивирусах.
Не рекомендуется использовать снова старые пароли из-за того, что они могли быть ранее скомпрометированы. Новый пароль к учетной записи повысит общую безопасность. Вы, наверное, замечали, что многие сервисы запоминают старый пароль и не разрешают снова его использовать, при проведении изменений в настройках аккаунта пользователя.
Наиболее часто, при регистрациях в интернете, в качестве логина используется адрес электронной почты, потому что он нужен для обратной связи с пользователем. Из-за своей беспечности многие пользователи используют одинаковые пары логин — пароль на разных сайтах.
В этом случае, получив доступ к данным от одного аккаунта, злоумышленник сможет войти в другие учетные записи пользователя. Для большей безопасности имеет смысл пользоваться несколькими электронными почтовыми ящиками: для личных целей, для работы, для регистраций и т. п. Можно создать временную почту для регистраций.
При регистрации на сайтах следует пользоваться надежным паролем. Чем сложнее пароль, тем труднее его подобрать для взлома учетной записи. Онлайн сервисы генераторы паролей или программы менеджеры паролей помогут создать сложный, надежный пароль.
Если создано много разных паролей, их нереально все запомнить. Поэтому для хранения паролей подойдут программы — менеджеры паролей, например, бесплатная программа KeePass, или онлайн сервис LastPass. Для входа в приложение или на сервис хранения паролей, нужно будет создать и запомнить лишь один мастер-пароль, который должен быть надежным.
При двухфакторной аутентификации, для подтверждения входа в аккаунт, помимо ввода логина и пароля, на телефон пользователя придет SMS сообщение с дополнительным кодом, который необходимо ввести для входа в учетную запись или личный кабинет. Если вход совершается с другого устройства, а не с того, которое обычно используется, многие сервисы присылают предупреждения о попытке входа в аккаунт по электронной почте.
При проведении транзакций в интернете воспользуйтесь функцией «Безопасные платежи», которая встроена в некоторые антивирусы. Операция по переводу денег в интернете произойдет в изолированном окне браузера под защитой антивируса. Антивирус заблокирует кейлоггеры и возможность создания снимков экрана, будет следить за буфером обмена.