28 Фев, 2023

Небезопасное хранение паролей

Vulnerability Assessment as a Service (VAaaS)

Tests systems and applications for vulnerabilities to address weaknesses.

Что такое хранилище паролей и как оно выглядит?

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

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

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

Стоит отметить, что хранение паролей - это лишь один из аспектов безопасности паролей.

Генерация хешированных паролей с использованием часто используемых алгоритмов хеширования

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

Алгоритм хеширования MD5 генерирует 128-битное хэш-значение. 

Пароль: “mypassword”

Хэшированный пароль: “1bc29b36f623ba82aaf6724fd3b16718”

Алгоритм хеширования SHA-1 генерирует 160-битное хэш-значение. 

Пароль: “mypassword”

Хэшированный пароль: “c2e5f29acc2b0e4e982fc51ed4e71a6d0b046db4”

Алгоритм хеширования SHA-256 генерирует 256-битное хэш-значение. 

Пароль: “mypassword”

Хэшированный пароль: “aae1c8b3086a958a6d043883ba37f31e876f16c63d78a1b3c6d0b9e633a6a814”

Bcrypt - это популярная функция хеширования паролей, которая использует алгоритм хеширования с использованием соленого кода. 

Пароль: “mypassword”

Хэшированный пароль: “$2a $10$E8zZOnx9xPNktRo5K5Y5ieMQz5rI0wUM7fDOiRdRwpH9Xbca1Lp3q”

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

Чтобы предотвратить доступ злоумышленников к паролям пользователей, важно использовать надежный алгоритм хеширования, такой как SHA-256 или bcrypt, и добавить дополнительные уровни безопасности, такие как изменение пароля перед его хешированием. Соление - это процесс добавления случайной строки символов к паролю перед его хэшированием, что затрудняет злоумышленникам использование предварительно вычисленных хэш-таблиц или радужных таблиц для взлома пароля.

Типы хранения паролей

Существуют различные типы методов хранения паролей, доступных для хранения паролей и управления ими. Вот несколько распространенных типов:

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

Менеджеры паролей: Менеджеры паролей - это программные приложения, предназначенные для безопасного хранения паролей для нескольких учетных записей и управления ими. Они шифруют ваши пароли и хранят их в защищенном хранилище, доступ к которому возможен только с помощью мастер-пароля. Некоторые популярные менеджеры паролей включают LastPass, Dashlane и 1Password.

Физическое хранилище паролей: Физические способы хранения паролей включают запись паролей на бумаге или хранение их на USB-накопителе или другом внешнем запоминающем устройстве. Хотя эти методы могут показаться безопасными, они могут быть уязвимы для кражи, потери или повреждения.

Двухфакторная аутентификация: Двухфакторная аутентификация (2FA) - это метод безопасности, который требует, чтобы пользователи предоставляли две формы идентификации перед доступом к учетной записи. Это может включать в себя пароль и код, отправленные, например, с помощью текстового сообщения. 2FA может помочь предотвратить несанкционированный доступ, даже если пароль скомпрометирован.

Где могут быть расположены хранилища паролей?

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

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

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

Менеджеры паролей, такие как LastPass или Dashlane, хранят пароли в облаке, позволяя пользователям получать доступ к своим паролям с любого устройства, подключенного к Интернету.

Аппаратные модули безопасности (HSM). Некоторые организации могут использовать специализированные аппаратные устройства, называемые HSM, для безопасного хранения паролей. HSM обеспечивают физическую защиту паролей и могут быть доступны только авторизованным пользователям или приложениям.

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

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

Как упоминалось ранее, пароли должны быть хешированы с использованием надежного одностороннего алгоритма хеширования, такого как bcrypt, SHA-256 или Argon2. Эти алгоритмы разработаны так, чтобы быть медленными и трудными в обращении вспять, что делает их более устойчивыми к атакам. Не забывайте о солении, которое включает в себя добавление случайной строки символов к паролю перед его хэшированием. Это значительно затрудняет злоумышленникам использование предварительно вычисленных хэш-таблиц или радужных таблиц для взлома пароля. Важно использовать уникальную соль для каждого пароля, чтобы злоумышленники не использовали одну и ту же соль для нескольких паролей, что может упростить их взлом.

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

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

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

Стандарты защиты паролем

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

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

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

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

Вот некоторые стандарты для создания надежных паролей:

  1. Длина: используйте минимум 12 символов, но чем длиннее, тем лучше.
  2. Сложность: Используйте комбинацию прописных и строчных букв, цифр и символов.
  3. Избегайте использования общих слов или фраз, таких как “пароль”, “123456” или “qwerty”.
  4. Не используйте личную информацию, такую как ваше имя, дата рождения или адрес.
  5. Используйте уникальный пароль для каждой имеющейся у вас учетной записи.
  6. Подумайте об использовании ключевой фразы или комбинации случайных слов.
  7. Избегайте использования легко угадываемых шаблонов, таких как “abcd1234” или “qwertyuiop”.
  8. Избегайте использования последовательных комбинаций клавиш, таких как “asdfghjkl” или “zxcvbnm”.
  9. Рассмотрите возможность использования менеджера паролей для создания и хранения надежных паролей.
  10. Регулярно обновляйте свои пароли, по крайней мере, каждые шесть месяцев.

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

Что делает хранилище паролей небезопасным?

Небезопасные типы хранения паролей - это те, которые не обеспечивают надлежащей защиты паролей, делая их уязвимыми для взлома, кражи или несанкционированного доступа. 

Хранение паролей в виде обычного текста, например, в документе или базе данных, является одним из самых небезопасных методов. Это означает, что пароли легко читаются любым, у кого есть доступ к хранилищу.

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

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

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

Программное обеспечение для хранения вашего пароля

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

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

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

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

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

Наиболее распространенные недостатки хранения паролей  

Было много реальных примеров сбоев в хранении паролей, которые приводили к утечке данных и компрометации учетных записей пользователей. Одним из ярких примеров является утечка данных LinkedIn в 2012 году, когда хакеры украли более 167 миллионов учетных данных пользователей, включая адреса электронной почты и пароли. Пароли хранились в несоленом хэшированном формате SHA-1, что позволяло злоумышленникам легко взломать их, используя предварительно вычисленные хэш-таблицы.

Другим примером является утечка данных Adobe в 2013 году, когда хакеры получили доступ к более чем 153 миллионам учетных записей пользователей, включая имена пользователей и пароли. Пароли хранились в зашифрованном формате, но с использованием слабого алгоритма шифрования под названием 3DES. Это облегчило злоумышленникам расшифровку паролей и использование их для компрометации учетных записей пользователей на других веб-сайтах, где пользователи повторно использовали тот же пароль.

В 2018 году фитнес-приложение Under Armour MyFitnessPal подверглось утечке данных, в результате которой хакеры украли имена пользователей, адреса электронной почты и хэшированные пароли более 150 миллионов пользователей. Пароли хранились в хэшированном формате с использованием алгоритма bcrypt, но компания не использовала никакой соли, что облегчало злоумышленникам взлом паролей.

В 2013 и 2014 годах Yahoo подверглась двум массовым утечкам данных, в результате которых хакеры украли учетные данные всех 3 миллиардов учетных записей пользователей. Пароли хранились в хэшированном формате MD5, что является слабым алгоритмом, который можно легко взломать. Кроме того, пароли не были подделаны, что еще больше упростило злоумышленникам их взлом.

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

В 2021 году GitHub подвергся утечке данных, в результате которой хакеры украли учетные данные более 38 миллионов учетных записей пользователей. Пароли хранились в хэшированном формате SHA-1, что является слабым алгоритмом, который можно легко взломать. Кроме того, пароли не были засолены, что облегчало злоумышленникам их взлом.

В 2014 году eBay подвергся утечке данных, в результате которой хакеры украли учетные данные более 145 миллионов пользователей. Пароли хранились в хэшированном формате с использованием алгоритма SHA-1, который является слабым алгоритмом, который можно легко взломать. Кроме того, пароли не были засолены, что облегчало злоумышленникам их взлом.

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

Заключение

Многие громкие утечки данных в последние годы были вызваны уязвимостями в хранилище паролей, что подчеркивает важность внедрения надежных методов хранения паролей для защиты учетных записей пользователей и конфиденциальной информации. Для организаций важно уделять приоритетное внимание безопасности и регулярно пересматривать и обновлять свои методы хранения паролей, чтобы убедиться, что они надежны и безопасны. Кроме того, пользователи должны быть проинформированы о важности создания надежных и уникальных паролей и избежания повторного использования паролей в разных учетных записях.

Другие Услуги

Готовы к безопасности?

Связаться с нами