Рейтинг:-1

Может кто-нибудь объяснить «секрет» и «данные» в алгоритме хеширования MD5?

флаг uz

Я изучал алгоритм хэширования MD5 и кое-чего пока не понимаю. Они говорят, что сервер хранит какой-то «секрет» и что он добавляет к этому секрету какое-то «сообщение» (или «данные»). Затем алгоритм добавляет соответствующее заполнение к объединенному («секрет» + «данные»), и процесс продолжается оттуда.Теперь говорят, что только сервер знает «секрет», но злоумышленник будет знать «данные», а также подпись (которая, по-видимому, является результатом хеширования («секрет + данные»). Теперь, вот что я не понимаю:

Допустим, у нас есть URL:

http://website.com/ABCDEFGHIJKLMNOP?parameter=something

Теперь часть ABCDEFGHIJKLMNOP является хешированной частью этого URL. Правильно ли будет назвать эту часть подписью? Если да, то какие именно «данные» предположительно известны злоумышленнику? Где в этом URL-адресе «данные», которые были добавлены к «секрету»?

Кроме того, почему «данные» добавляются к «секрету» в первую очередь? Почему «секрет» просто не хэшируется сам по себе и не скрывается от злоумышленника, вместо того, чтобы предоставить злоумышленнику некоторые явно известные «данные»?

fgrieu avatar
флаг ng
Одно можно сказать наверняка: сам MD5 не предполагает, что что-либо является секретным, и не определяет объект «сервер». MD5 — это полностью общедоступная функция, которая преобразует сообщение (любую строку битов до очень большого размера) в 128-битную строку битов. То, является сообщение секретным или нет, не имеет ничего общего с самим MD5. Верно то, что если хэш должен быть секретным, то по крайней мере часть сообщения должна быть секретной. Вопрос о MD5 в каком-то контексте, который в настоящее время неясен. Упоминание «подписи» предполагает нечто более сложное, чем HMAC или хеширование паролей. Мы не можем тел!!
флаг ph
Ссылка на ресурс, который делает это утверждение, была бы полезной. Как говорит fgrieu, это утверждение неверно в отношении MD5 как такового, но может быть правильным в более широком контексте. Что касается URL-адреса, значение частей зависит от создателя - в целом вы не можете сказать, есть ли вообще задействованные хэши. И в любом случае «хешированная часть URL» мало что значит.
Rikudou avatar
флаг uz
@bmm6o Вот ссылка, в которой упоминается, что я имею в виду под «секретом», «данными» и всем этим: https://blog.skullsecurity.org/2012/everything-you-need-to-know-about- атаки с расширением длины хеша
флаг jp
@Rikudou Эта статья посвящена атаке на плохо спроектированный алгоритм [код аутентификации сообщения] (https://en.wikipedia.org/wiki/Message_authentication_code) (MAC), * основанный на * MD5 (или другом расширяемом хеше). Части «секрет» и «данные» исходят из того, что он используется в качестве MAC, а не из самого MD5.
fgrieu avatar
флаг ng
В правильной _signature_ есть закрытый ключ, используемый для создания подписи, и открытый ключ для проверки подписи. Ничего подобного в [рассматриваемом случае] (https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks).
Рейтинг:1
флаг in

Как уже было сказано, речь идет о создании $\operatorname{MAC}_k(m) = \operatorname{H}(k \| m)$ куда $к$ это ключ / секрет и $м$ это сообщение/данные.

Теперь часть ABCDEFGHIJKLMNOP является хешированной частью этого URL. Правильно ли будет назвать эту часть подписью? Если да, то какие именно «данные» предположительно известны злоумышленнику?

Нет, "ABCDEFGHIJKLMNOP" - это данные сообщения. Злоумышленник знает об этом, потому что он явно отображается в URL-адресе.

Кроме того, почему «данные» добавляются к «секрету» в первую очередь? Почему «секрет» просто не хэшируется сам по себе и не скрывается от злоумышленника, вместо того, чтобы предоставить злоумышленнику некоторые явно известные «данные»?

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

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

Ответить или комментировать

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