Nano Hash - криптовалюты, майнинг, программирование

Какой смысл в соли и хешировании, если база данных доступна?

Я только что изучил концепцию хэширования («Эй! Не забудьте соль!») и использования соли для защиты пароля.

Хеширование — это одностороннее шифрование (на самом деле не шифрование, а хеширование), поэтому его нельзя реконструировать. Соление — это префикс или добавление случайно созданных значений к паролю перед хешированием, потому что проблема хэширования (просто хэширования) заключается в том, что какой-то гений предоставил хеш-таблицу слов из словаря, чтобы они просто сравнивали хэш из этого словаря с пользовательскую таблицу из БД логинить - Ж-подождать? я сказал таблицу из базы данных? Значит, кто-то может получить доступ к базе данных, поэтому мы должны использовать соль? Если это так, то зачем хакеру восстанавливать пароль, если он уже имеет доступ к базе данных? Если бы я был им, я бы просто получил все детали, которые мне нужны, из базы данных, зачем бы мне использовать ключ, который я украл от дома, чтобы открыть дверь, если я могу получить доступ к дому уже через окно?

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

Заранее спасибо.

Важное примечание: я не против хеширования или соления, я просто хочу прояснить ситуацию.



Ответы:


1

Если это так, то зачем хакеру восстанавливать пароль, если у него уже есть доступ к базе данных?

Причин много. Вот некоторые из них:

  1. Люди повторно используют свои пароли, поэтому предотвращение утечки реальных паролей снижает влияние такой атаки.

  2. Без настоящих паролей хакер все равно не сможет войти в систему и, скажем, разместить новые записи во взломанной системе.

  3. Кто сказал, что вся информация хранится в базе данных? Что, если база данных состоит исключительно из имени пользователя и хешированных/соленых паролей? Тогда знание содержания не очень помогает.

18.08.2011

2

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

Большинство людей не используют один пароль только для одного сайта, поэтому, если у вас есть пароль для их основного адреса электронной почты, вы, вероятно, имеете доступ ко ВСЕМ их учетным записям на каждом сайте (путем сброса пароля).

18.08.2011

3

Владение записями пользователей из базы данных не обязательно означает, что у вас есть доступ к базе данных. Через некоторую утечку на веб-сайте (привет, SQL-инъекция) вы можете получить доступ к данным, к которым у вас не должно быть доступа, без необходимости компрометации всего сервера. Плохо управляемые резервные копии, общие серверы, некомпетентные или злонамеренные сотрудники — все это может сделать это возможным.

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

18.08.2011
  • +1 за SQL-инъекцию, да, это правда, хакер может получить доступ только к одной таблице, но не ко всей базе данных ... Спасибо. 18.08.2011
  • @domanokz И это не просто SQL-инъекция. Какой-то оператор отладки, который вы где-то забыли, логическая ошибка, из-за которой выгружается больше данных, чем нужно... существует тысяча различных возможностей. 18.08.2011

  • 4

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

    Хеширование делает так, что генерация пароля с помощью методов грубой силы занимает очень много времени (особенно с SHA2), так что это делает «невозможным» узнать пароль.

    Хэш не принесет вам пользы, если вы не знаете пароль, так как ввод хэша в поле пароля не сработает (очевидно).

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

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

    18.08.2011

    5

    Предположим, злоумышленник каким-то образом получает доступ к резервной копии базы данных, содержащей невосстанавливаемые хешированные пароли. Тогда у них есть все данные, которые были там вчера, что довольно плохо. Но, по крайней мере, у них нет доступа к данным, которые будут там завтра, и они не могут ничего удалить с реального сайта, испортить его, запустить вредоносное ПО через свою CMS и т. д.

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

    18.08.2011
    Новые материалы

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

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

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

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..