Хешированные и посолившие пароли безопасны против атак с подбором по словарю?

Рано или поздно что-то должно циклично выполниться. Намного более просто для Вас записать (очень простой) цикл, чем использовать что-то как split, который намного более мощен, чем Вам нужно.

Любой ценой инкапсулируют цикл в отдельном методе, например,

public static int countOccurrences(String haystack, char needle)
{
    int count = 0;
    for (int i=0; i < haystack.length(); i++)
    {
        if (haystack.charAt(i) == needle)
        {
             count++;
        }
    }
    return count;
}

Тогда Вы не должны иметь цикл в своем основном коде - но цикл должен быть там где-нибудь.

9
задан Tony 10 July 2009 в 19:25
поделиться

5 ответов

Salt не предотвращает атаки по словарю, а только предварительно рассчитанные атаки по словарю. В частности, он защищает от радужных таблиц ( http://en.wikipedia.org/wiki/Rainbow_table ), а также гарантирует, что взлом пароля одного пользователя не позволит автоматически взломать любого пользователя, который разделяет этот пароль. .

В статье, на которую я ссылался, упоминаются некоторые способы улучшения соления, включая усиление ключа ( http://en.wikipedia.org/wiki/Key_strengthening ).

10
ответ дан 4 December 2019 в 13:04
поделиться

Ничто не мешает злоумышленнику просто угадать пароль.

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

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

4
ответ дан 4 December 2019 в 13:04
поделиться

Верно. Если кто-то получит материал с паролем, будет эффективна атака по словарю.

Чтобы защититься от этого:

  • Убедитесь, что ваши пароли не подвержены атакам по словарю.
  • Убедитесь, что ваш файл паролей ( / etc / shadow ) доступен для чтения только root.
1
ответ дан 4 December 2019 в 13:04
поделиться

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

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

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

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

1
ответ дан 4 December 2019 в 13:04
поделиться

Ваша логика верна, но на самом деле, при достаточной вычислительной мощности и времени, нет защиты от словаря / брутто -силовые атаки.

0
ответ дан 4 December 2019 в 13:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: