У похожих паролей подобные хэши?

Наша компьютерная система на работе требует от пользователей менять свой пароль каждые несколько недель, и у вас не может быть того же пароля, что и у вас ранее. Он запоминает что-то вроде 20 ваших последних паролей. Я обнаружил, что большинство людей просто увеличивают цифру в конце своего пароля, поэтому "thisismypassword1" становится "thisismypassword2", затем 3, 4, 5 и т.д.

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

Ответ 1

У похожих паролей есть похожие хэши?

Нет.

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

Конечно, нет никакого способа узнать, не обнаружен ли хэш неоткрытых слабых мест или слабостей, известных злоумышленнику, но не опубликованных, и в этом случае, скорее всего, злоумышленник является хорошо финансируемой правительственной организацией. NSA, безусловно, обладает непубличными теоретическими атаками на некоторые криптокомпоненты, но могут ли быть использованы эти атаки - другое дело. Вероятно, GCHQ. Я предполагаю, что в нескольких других странах есть секретные криптограммы с достаточным количеством математиков, чтобы сделать оригинальную работу: Китай станет моей первой догадкой. Все, что вы можете сделать, - это действовать с наилучшей доступной информацией. И если наилучшая доступная информация говорит, что хэш "хорош для крипто", то одна из вещей, которая означает, не является подходящим сходством такого рода.

Наконец, некоторые системы используют слабые хэши для паролей - либо из-за незнания исполнителем, либо наследства. Все ставки отключены для свойств схемы хэширования, которая либо не имела публичного обзора, либо была пересмотрена и признана нужной, либо еще достаточно старой, что в конечном итоге были обнаружены значительные недостатки. MD5 нарушается для некоторых целей (поскольку существуют практические средства для создания коллизий), но не для всех целей. АФАЙК это нормально для этого, в том смысле, что нет практической атаки с предварительным изображением, а наличие нескольких хэшей связанных текстовых текстов не лучше, чем наличие нескольких хэшей несвязанных открытых текстов. Но по независящим причинам вы все равно не должны использовать одно приложение любого хэша для хранения паролей, вы должны использовать несколько раундов.

Может ли хакер увеличить свои шансы на грубый ввод пароля, если у них есть список хэшей похожих паролей?

Косвенно, да, зная, что это ваши старые пароли. Не из-за какого-либо свойства хэша, но предположим, что злоумышленнику удается (очень медленно) перевести один или несколько ваших старых паролей с использованием этих старых хэшей и видит, что в прошлом это было "thisismypassword3" и "thisismypassword4",.

Ваш пароль с тех пор изменен на "thisismypassword5". Хорошо, изменив его до того, как злоумышленник взломал его, вы успешно обеспечили, чтобы злоумышленник не восстановил ценный пароль! Победа! Кроме того, вам нехорошо, так как у злоумышленника есть возможность быстро угадать новую, используя старый пароль (ы).

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

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

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

Основные практические атаки на парольные системы в наши дни - подслушивание (через кейлогеры и другое вредоносное ПО) и фишинг. Попытка обращения к хэшам паролей не является хорошей процентной атакой, хотя, если злоумышленник каким-то образом завладел файлом /etc/passwd или эквивалентом, они будут разбивать некоторые слабые пароли таким образом в средней системе.

Ответ 2

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

Вы можете попробовать это с помощью MD5 и разных строк.

"hello world" - 5eb63bbbe01eeed093cb22bb8f5acdc3
"hello  world" - fd27fbb9872ba413320c606fdfb98db1

Ответ 3

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

Ответ 4

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

Что еще более важно, вы, скорее всего, соедините пароль, чтобы даже те же пароли не выдавали одинаковый хэш.

Ответ 5

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

Ответ 7

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

Я использовал следующий код для быстрого теста:

<?php
for($i=0;$i<5;$i++)
        echo 'password' . $i . ' - ' .md5('password' . $i) . "<br />\n";
?>

и я получил следующие результаты:

password0 - 305e4f55ce823e111a46a9d500bcb86c
password1 - 7c6a180b36896a0a8c02787eeafb0e4c
password2 - 6cb75f652a9b52798eb6cf2201057c73
password3 - 819b0643d6b89dc9b579fdfc9094f28e
password4 - 34cc93ece0ba9e3f6f235d4af979b16c

Ответ 8

Короткий ответ, нет!

Выход хеш-функции сильно меняется, даже если один символ увеличен.

Но это только в том случае, если вы хотите разбить хэш-функцию.

Конечно, это плохая практика, так как это упрощает работу.

Ответ 9

Нет, если вы еще немного проверяете пароль, он генерирует совершенно новый хеш.

Ответ 10

Как правило, "хороший хеш" не будет использовать две аналогичные (но неравные) строки для подобных хэшей. MD5 достаточно хорош, что это не проблема. Тем не менее, есть "таблицы радуги" (в основном пароли: хэш-пары) для довольно многих общих паролей (и для некоторых хэшей паролей, например, традиционные пароли unix на основе DES, например) существуют полные радужные таблицы.