Насколько вероятно, что вы порекомендуете FirstVDS своим друзьям?
  • 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
×
ВЫ ПОСТАВИЛИ НАМ 8 ИЗ 10
×

Безопасность паролей

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

Как безопасно хранить пароли

Лучше всего хранить пароли в собственной памяти — туда добраться с помощью вредоносного ПО пока невозможно. Но, с учётом количества паролей, с которыми  работает среднестатистический админ или разработчик, это крайне сложно:

  • пароль от электронной почты
  • пароль от учётной записи хостинга
  • пароль от пользователя root VDS (пароль панели управления)
  • пароли непривилегированных пользователей VDS (пароли пользователей панели управления)
  • пароль пользователя root для сервера баз данных
  • пароли пользователей сервера баз данных
  • пароли пользователей FTP
  • пароли почтовых ящиков на сервере
  • пароли подключенных хранилищ (диск для бэкапов и пр.)
  • пароли сторонних сервисов — CDN, внешних прокси и т.п.

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

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

  • шифрование исходных данных;
  • кросплатформенность;
  • возможность хранения данных в облаке для удалённого доступа.

И да, есть аргументы и против их использования. Но мы за удобство и здравый смысл.

Какой менеджер выбрать — дело вкуса: нужно попробовать разные, чтобы понять, какой решает нужные вам задачи. 

В качестве точки отсчёта порекомендуем KeePass 2: это менеджер паролей с открытым исходным кодом. Он позволяет создать файл паролей и защитить его с помощью мастер-пароля или мастер-файла. Базу с паролями можно хранить в облаке (например, на собственном сервере Nextcloud, в Google Drive или DropBox), пользуясь ей удалённо с помощью мастер-ключа, который известен только вам. Таким образом вам будет достаточно помнить только один пароль.

NextCloud: знакомство и быстрый старт

Как часто нужно менять пароль

Как гласит цитата известного системного администратора, астронома и разоблачителя хакеров Клиффорда Столла:

Обращайтесь с вашим паролем как с зубной щёткой. Не позволяйте никому другому им пользоваться и меняйте каждые 6 месяцев.

По статистике в сфере бизнеса, где информационная безопасность занимает видное место, пароли меняются где-то раз в три месяца

Тем не менее, в последнее время набирает обороты новая тенденция: вместо того, чтобы заставлять пользователей менять пароли часто, рекомендуется придумать один, но по-настоящему сложный пароль. Этот подход практикуется, например, в Windows 10.

В чём смысл: чем чаще от пользователя требуется сменить пароль, тем менее ответственно он к этому подходит — придумывает всё более слабые пароли, повторяется. Тем самым сервис усложняет жизнь как пользователю, так и себе — в обоих случаях растут ненужные риски ущерба от потери ценных данных. 

C точки зрения клиентоориентированности более правильной практикой будет придерживаться следующих правил:

  • помогать придумывать сложные пароли — например, выводить рекомендации в подсказках к полям ввода, не принимать заведомо слабые пароли;

  • хранить пароли в закодированном виде, используя наиболее сложные алгоритмы и в обязательном порядке — уникальную «соль»;

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

    Например, так будет выглядеть кодировка пароля в чистом виде. Соответственно, чтобы расшифровать пароль, достаточно просто угадать тип алгоритма — и пароль будет у вас в руках:

    SHA512(qWeRtY123@) = 5cd2968b53f19357851c5f47213ff170535022c4627c2a767b8e39920310b12d82b3c8411f1ff0dd57bcaabeb217563cb7dab0a6804249477fb3b979e9b473c5

    А вот так — более надёжная, с солью и несколькими алгоритмами. Тут надо не только угадать последовательность алгоритмов, но и понять, какая часть пароля является лишней:

    SHA512(base64(qWeRtY123@ + thisIsSalt)) = 02f3ee54dfa176bd468f30f264bc254c5200e43da81c7258a1bb0d7254e0511c67871a37e18a0e7a0d586f8b3b1cb5c84817a2af72c9bea56e7c650569e2d3cc

    Вишенка на торте — когда соль индивидуальна для разных пользователей, и алгоритм хэширования запускается несколько раз.

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

  • обеспечить хранимым хэшам максимально возможную безопасность для предотвращения утечек. 

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

Чтобы упростить процесс обновления пароля, можно менять его частично. Например, взять некоторую часть, дату и/или время, обработать её по известному только вам набору правил и добавить к текущему паролю.

12:51 27 июля 2020 → 12:51 twenty eight July twenty twenty → 12:51 teJtt → 12:51 73J77 → 35*73_95L99

Если говорить о паролях сервера, процесс обновления можно немного автоматизировать с помощью утилиты chage. Она позволяет задать срок годности для паролей. По его истечении пользователь получит уведомление (если у вас настроен почтовый сервер), а при отсутствии реакции — его учётная запись будет автоматически заблокирована.

Следующая команда отобразит информацию о настройках пароля для конкретного пользователя:

chage -l username

А так можно задать максимальный срок действия пароля пользователя, например, 90 дней:

chage -M 90 username

Подробнее о возможностях этой утилиты можно узнать с помощью команды: 

man chage

Автор статьи:

Речкин Антон

Вернуться