Рейтинг:0

В какой степени большое количество итераций PKBDF-HMAC-SHA1 компенсирует слабую энтропию парольной фразы?

флаг cn

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

Контейнер LUKS был создан в середине 2017 года с настройками по умолчанию LUKS1.

ЦП, который я использовал тогда, был Intel Core i7-6700K который у меня еще есть.

Я провел несколько тестов с бенчмарк cryptsetup который дал следующее значение для PBKDF2-sha1.

PBKDF2-sha1 1659139 итераций в секунду для 256-битного ключа

Я не могу вспомнить точный пароль, который я использовал (у меня их слишком много), за исключением того факта, что он состоит как минимум из 14 символов и содержит [a-z0-9] и его нет ни в одном словаре (проверил rockyou2021.txt).

Я нашел тестовую таблицу на GitHub, используя Nvidia GeForce RTX 3090.

Хэш-режим: 12000 — PBKDF2-HMAC-SHA1 (Итерации: 999)
Скорость.#1.........: 9240,9 кГц/с (47,48 мс) @ Ускорение: 16 Циклов: 499 Thr: 1024 Vec: 1

Хэш-режим: 12001 — Atlassian (PBKDF2-HMAC-SHA1) (Итерации: 9999)
Скорость.#1.........: 923,3 кГц/с (72,49 мс) при ускорении: 8 циклов: 1024 Thr: 1024 Vec: 1

Hashmode: 22600 — пароль для настольного приложения Telegram (PBKDF2-HMAC-SHA1) (итерации: 3999)
Скорость.#1.........: 328,7 кГц/с (63,58 мс) при ускорении: 8 циклов: 128 Thr: 1024 Vec: 1

Основываясь на этих цифрах, я сделал вывод, что GPU может вычислить 9249 кГц/с за 1000 итераций. Если количество итераций увеличить в 1659 раз до 1659139, это будет означать, что скорость графического процессора упадет до: $\frac{9249 кГн/с}{1659}$ = 5575 Гн/с. Это означает, что злоумышленник может эффективно проверять только 5575 паролей в секунду с помощью одного графического процессора.

Возможные пароли на основе набора символов ([a-z0-9], длина=14): $36^{14}$. Для простоты давайте сократим это пополам, что оставит нам средний случай: $\frac{36^{14}}{2}=3*10^{21}$.

Это означает, что злоумышленнику потребуется в среднем $\frac{3*10^{21}}{5575}=5*10^{17}$ секунд, чтобы подобрать правильный пароль, равный $3*10^{9}$ годы. Это означает, что даже если бы у злоумышленника был 1 миллион таких графических процессоров, для взлома пароля все равно потребовалось бы 300 лет.

Мои вопросы:

  1. В какой степени относительно большое количество итераций компенсирует относительно слабую энтропию моего пароля с учетом перебора или атаки по словарю на современном графическом процессоре?
  2. Я упустил какую-то важную деталь в своем анализе?
Рейтинг:1
флаг in

Место для пароля не считается маленьким $36^{14}$ для очень надежных паролей, это 72 бита энтропии.

Небольшие пробелы в паролях — это те, которые выполняются с помощью атак по словарю, включая словари с преобразованиями. Даже XKCD метод обещает только 44 бита энтропии.

Вы вряд ли запомните случайный 14-символьный пароль, поэтому, если вы используете менеджер паролей и используете надежные случайные пароли, то действительно будет достаточно даже довольно слабого KDF.

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

Вы можете увеличить количество итераций, но помните, что у злоумышленника есть преимущество, он будет делать пакеты, выполнять побитовую нарезку, а также GPU и FPGA.Я думаю, что эмпирическое правило, предполагающее, что злоумышленник имеет преимущество в 1000 или даже 10 000 раз, является разумным. Если вы используете KDF с жесткой памятью, вы можете уменьшить это и получить меньшее преимущество (скажем, в 100 раз). При увеличении количества итераций вы также замедляете себя, и вам необходимо убедиться, что пользовательский опыт и ваши собственные затраты на вычисления остаются разумными.

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

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