2012-07-02 1 views
8

После того, как ссылка hash утечка hasinin, я смотрел на наше хеширование пароля. Мы используем Django 1.4, который использует PBKDF2, что отлично и на шаг выше предыдущего SHA1.О том, как быстро вы можете скопировать PBKDF2?

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

Это руководство по взлому хэша паролей LinkedIn, у кого-то есть 430 миллионов шай-хэшей в секунду на GPU. http://erratasec.blogspot.ie/2012/06/linkedin-vs-password-cracking.html Какие бы скорости вы не получили за PBKDF2?

Есть ли у кого-нибудь какие-либо приблизительные цифры/цифры в виде конвертов/шаров, насколько быстро можно было скопировать PBKDF2?

+0

Это, предположительно, один из самых сложных, если не самый трудный для перебора силы. (* и он разработан как таковой *). У меня нет никаких цифр. – ZJR

+0

Связанный http://security.stackexchange.com/questions/12114/aes-encryption-choice-of-password – CodesInChaos

+0

@ZJR PBKDF2 намного дешевле, чем scrypt. – CodesInChaos

ответ

9

С февраля 2012 года существует writeup over at agilebits, который выполняет расчеты салфеток. Сокращенная версия:

Как фигура мяч парк, я хочу сказать, 10000 PBKDF2 итераций приводит до десятков или сотен миллисекунд, чтобы проверить пароль для очень высокого класса потребительской системы. То, что мы делаем с PBKDF2, сводит вещи от миллиона тестов в секунду до нескольких сотен. Это с учетом специализированного программного обеспечения, которое использует несколько ядер и несколько графических процессоров.

Так принимая вашу erratasec статью, в которой контрольные показатели 430 млн SHA-1 хеши в секунду на GPU в качестве базовой линии - agilebits статье представлены показатели, предполагающие PBKDF2 с 10к итераций приведет, что вплоть до около 100k тестов в секунду.

Далеко от научной, но получает нас на стадионах ...

+1

Вы пропустили ту часть, где говорили о взломе GPU, и что оценка была равна 1 миллион/сек на графическом процессоре. https://blog.agilebits.com/2012/07/31/1password-is-ready-for-john-the-ripper/ ожидает, что модуль скоро будет изменен, чтобы он мог использовать графику Процессорные единицы (графические процессоры). Это, по его оценкам, увеличит скорость угадывания более чем в 100 раз. В моей таблице ниже я использовал 200-кратное увеличение скорости для графических процессоров. Так что, когда у меня было примерно 5000 догадок в секунду на моем Mac Pro, я предполагаю, что с ускорением GPU будет миллион догадок в секунду. –

3

PBKDF2 перестраивалось. Вы всегда можете увеличить стоимость, чтобы уменьшить количество возможных догадок/сек для злоумышленника. Моя рекомендация - решить, как быстро вы хотите, чтобы он запускался на вашей платформе и соответственно устанавливал себестоимость. Например, если вы считаете, что 200 хешей/сек являются идеальным компромиссом в производительности/безопасности, то увеличивайте стоимость и проверяйте, сколько времени требуется для хэша нескольких тысяч тестовых паролей, пока вы не усредняете около 200/сек.

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

С хэшами LinkedIn люди смогли взломать более миллиона хэшей в день или меньше. Если PBKDF2 работает на ~ 200 догадках/сек, для выяснения того, какая из учетных записей 6.5M используется «linkedin» в качестве пароля, потребуется около 9 часов. Если вы хотите запустить список из 1000 общих паролей для всех этих хэшей, потребуется около года.

3

Помните, что bcrypt, scrypt и PBKDF2/PKCS # 5/RFC 2898 поддерживают различное количество итераций; ни один из них не является «быстрее» или «медленнее». Некоторые берут больше оперативной памяти (PBKDF2 делает не занимает много оперативной памяти), но это все.

Что касается итераций PBKDF2 в определенной, одна популярная программа крекинга на основе графического процессора может обрабатывать с помощью современного настольного ПК + 8 GPU на 1 миллион попыток в секунду против WPA2.Поскольку WPA2 по существу является PBKDF2 (HMAC-SHA1, passphrase, ssid, 4096, 256), это говорит о том, что одна машина может протестировать несколько более 4 миллиардов итераций HMAC-SHA1 PBKDF2 в секунду. Десять таких машин, конечно, испытали бы более 40 миллиардов таких итераций в секунду.

OWASP Пароль Шпаргалка (https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet) рекомендует по крайней мере 64000 итераций в 2012 году, удваивается каждые два года, или 90,510 итераций в 2013 г.

3

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

Если вы делаете 1000 итераций PBKDF2, то это уменьшит атаку с 50 до 50 миллионов в секунду до 50 миллионов в секунду. 10 000 итераций будут составлять 5 миллионов в секунду.

Типичный веб-сервер, однако, не будет таким быстрым. Это будет лот медленнее для вас. Вам нужно провести какое-то тестирование на своем собственном производственном сервере и может найти, что 10 000 итераций слишком медленные.

Так что дело не в том, насколько быстро PBKDF2 может быть перенаправлен грубо, так как ваш сервер может проверить пароль PBKDF2. Вам нужно решить, как долго вы думаете, что это займет (полсекунды - десятая часть секунды - сотая секунды?), А затем отрегулируйте количество раундов PBKDF2 в соответствии с этим.

Также учитывайте силу паролей, используемых вашими клиентами. Если у всех у них отличные пароли, то действительно не имеет значения, какая система хэширования вы используете. Если все они используют ужасные пароли, то PBKDF2 недостаточно хорош для их защиты - вам нужно будет стать более экзотичным, например, аппаратный солевой хеш Apple использует в iPhone, чтобы попытаться превратить 4-значное число в нечто, имеющее хотя бы некоторые (в основном они заставляют все хеширование выполняться специальным аппаратным чипом, который намеренно замедляется, перемещает данные на любое другое оборудование и невозможно расшифровать).

Предполагая, что пароль не находится в словаре (большинство паролей), тогда сила пароля вычисляется путем умножения числа возможных символов в алфавите на один hibe для каждого символа. Поэтому, если у пароля есть буквы (26-символьный алфавит) и цифры (еще 10 символов), тогда у вас есть 36-символьный алфавит, и если он длится 6 символов, вы умножаете его на 6 раз.

Таким образом, 6-значный буквенно-цифровой пароль 36 * 36 * 36 * 36 * 36 * 36, или если вы предпочитаете: 36^6. Это дает вам около 2,1 миллиарда возможных паролей ... обычно мы предполагаем, что хакер найдет реальный пароль примерно на полпути, так что назовите его 1 миллиард.

Если вы используете PBKDF2 и имеете 1000 итераций, тогда хакер со специализированным оборудованием угадает 1 миллиард паролей за 20 секунд. Это не очень хорошая безопасность.

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

Wolfram Alpha полезен для выполнения математики: ((36^6)/50 million) seconds где 36 - размер алфавита, а 6 - длина пароля, а 50 миллионов - количество догадок в секунду, которое может использовать хакер (50 миллионов - это серьезный атакующий после PBKDF2 с 1000 раундами).

Сколько паролей у вас в базе данных? Если понадобится 20 секунд, чтобы взломать отдельный пароль, будет ли у меня 30 дней математики или 30 лет? Это зависит от того, сколько у вас клиентов.

 Смежные вопросы

  • Нет связанных вопросов^_^