id: Гость   вход   регистрация
текущее время 02:08 30/10/2020
Автор темы: Гость, тема открыта 04/02/2015 23:35 Печать
Категории: криптография, хэширование, случайные числа
http://www.pgpru.com/Форум/Криптография/ИспользованиеХешаВКачествеПроля
создать
просмотр
ссылки

Использование хеша в качестве проля


В другом месте это было бы ОТ, поэтому решился спросить в отдельной теме.


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


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



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


Что думаете?


 
На страницу: 1, 2, 3, 4 След.
Комментарии
— Гость (11/02/2015 12:23)   <#>
И что даёт (2) по сравнению с (1)?
требует от атакующего совершить ряд неочевидных телодвижений для вскрытия криптосхемы.
— Гость (11/02/2015 12:25)   <#>
fxd
требует от атакующего совершить ряд дополнительных неочевидных телодвижений для вскрытия криптосхемы.
— SATtva (11/02/2015 12:25)   профиль/связь   <#>
комментариев: 11552   документов: 1036   редакций: 4094
Security through obscurity в полный рост.
— Гость (11/02/2015 12:28)   <#>

Насколько я знаю, ничего он не добавляет. Все эти Lyra и прочие PBKDF затрудняют подбор пароля лишь по тому, что на проверку каждого пароля требуются дополнительные вычислительные ресурсы. Как детерминистичная функция вообще может менять энтропию?!


Да, но стойкость криптосхемы (в рамках того же RO) оценивается полагаясь на то, что пароль абсолютно случаен и абсолютно безопасен. У условного AES-128 есть 128 бит энтропии только при том условии, если пароль действительно и объективно (в смысле настоящей энтпропии, а не вычислительной) имеет хотя бы 128 бит случайности.


Опять начались прятки, вытаскивание самого из себя из болота, security through obscurity и прочее откровенное клухацкерство и фричество. Есть желание затруднить перебор — надо брать грамотно сконструированные KDF. Они не секретны от атакующего ни разу. А утаивать сам метод генерации исходного пароля — это именно что путь в никуда.
— unknown (11/02/2015 12:32)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Так это и есть суть вычислительной энтропии. Если вам каждый пароль для проверки в переборе надо похэшировать четыре раза вместо одного — то вы добавили два бита, если 8 раз — то три, 16 — четыре и т.д. В этом смысле ничего и не добавляется, вычислительная энтропия — фикция (она не имеет никакого отношения к реальной энтропии), растёт только расход ресурсов на проверку (количество операций, память).
— Гость (11/02/2015 12:34)   <#>
Напоминает знаменитые цитаты:

Contrary to a view in the I&C community, compression does not render data random, as can be seen from the case of votes, where the message space has very low entropy.

In the wiretap literature it is sometimes argued that the assumption of uniformly distributed messages is tenable because messages are compressed before transmission. But compression does not result in uniformly distributed messages. Compression is a deterministic, injective function and does not change the entropy.

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


Спасибо, теперь понял.
— unknown (11/02/2015 12:40, исправлен 11/02/2015 12:42)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

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

— Гость (11/02/2015 13:02)   <#>
Мне кажется, что с практической точки зрения можно получить некоторое сужение проблемы, если учесть, что взломщик фундаментально или практически ограничен.

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

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

Если взломщик будет взламывать словарное выражение, то так же потерпит неудачу.

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

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

Следовательно, можно сделать частный вывод, что, с соблюдением конкретных условий, использование хеша в качестве пароля повышает безопасность информации независимо от знаний взломщика о свойствах пароля. (Вывод, разумеется, является допустимо расширяемым.)
— Гость (11/02/2015 13:12)   <#>
Извините, во втором абзаце ошибка. Должно быть:

Допустим, что в качестве пароля используется криптостойкий хеш от некоего криптостойкого словарного выражения, причем энтропия хеша больше этропии исходного словарного выражения.
— Гость (11/02/2015 13:26)   <#>

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

Нет смысла реализовывать у себя часть KDF в виде хэша. Всё хэшифрование уже есть в KDF. Попытка вынести часть KDF в юзерский функционал и засекретить от атакующего — security through obscurity. Перефразируя известные фразы unknown'а из срачей про каскады и перестраховочную криптографию, «если ваш пароль так плох, что требуется к нему городить костыли, то надо не переопределять KDF, засекречивая её части, а менять сам пароль на более стойкий». Примите себе за максиму, что нет возможности сделать чудо, когда в голове ничего держать не надо, а криптостойкость ровно та же.


Вывод неверный. Если вам очень хочется видеть не то, что есть, а то, что вы для себя уже заранее решили, то вперёд. Зачем тогда тут задавать вопросы и спорить с другими участниками?
— unknown (11/02/2015 13:54, исправлен 11/02/2015 13:58)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664


Пусть множество всех известных (доступных для подбора) вам и вашему противнику паролей P имеет мощность 2n. Пусть пароль может быть равновероятно выбран в виде P или некоего преобразования f(P), где f — любая известная вам и противнику функция, не снижающая энтропию (хэширование, инвертирование, приписывание единицы). Применение или не применение этой функции даёт один дополнительный бит неопределённости (энтропии): 2n+1.



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

— Гость (11/02/2015 14:17)   <#>
Пусть множество всех известных (доступных для подбора) вам и вашему противнику паролей P имеет мощность 2n. Пусть пароль может быть равновероятно выбран в виде P или некоего преобразования f§, где f — любая известная вам и противнику функция, не снижающая энтропию (хэширование, инвертирование, приписывание единицы). Применение или не применение этой функции даёт один дополнительный бит неопределённости (энтропии): 2n+1.
тогда уж и ссылку на доказательство киньте :)
— SATtva (11/02/2015 14:20)   профиль/связь   <#>
комментариев: 11552   документов: 1036   редакций: 4094
Вам доказательство и привели в процитированном фрагменте.
— unknown (11/02/2015 14:25, исправлен 11/02/2015 14:31)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

А какое ещё нужно доказательство, если параметр неопределённости (энтропии) добавляется не во входные аргументы функции (пароль), а в саму функцию? Если это не доказательство, то демонстрация того, что постановка задачи некорректна для сделанных выводов о росте стойкости: истинная неопределённость (энтропия) какая есть на входе вычислительной функции, такая и есть на выходе. Добавлять её на вход в виде аргументов или запихивать в саму функцию (в виде порядка преобразований) — ничего не меняет. Просто первый вариант проще и корректнее для описания.


Или вам нужно доказательство того, что 2 • 2n = 2n+1? Ну тогда почитайте что-нибудь из школьной алгебры, не помню за какой класс, но там это должно быть.

— Гость (11/02/2015 14:36)   <#>

Между тем, добавка всего одного печатного символа к паролю добавляет примерно log295 ≈ 6.56 бит энтропии.


Для каждого пароля есть два варианта: либо хэшифрование применяется, либо нет. Следовательно, количество всех вариантов теперь не P, а 2P. Если было изначально n бит энтропии в P, т.е. мы имели 2n=P, то теперь имеем 2P=2n+1. Показатель двойки увеличился на единицу. Это и соответствует увеличению битовой стойкости на один.

Аналогично можно рассмотреть случай выбора одного из нескольких вариантов преобразований пароля. Чтобы получить тот же эффект, что и при добавлении одного дополнительного символа к паролю, нужно иметь возможность выбора одного из 26 – 27 вариантов преобразований. Так один символ, пожалуй, проще запомнить, чем 27 типов хэширований?
На страницу: 1, 2, 3, 4 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3