Jump to content

ПБКДФ2

(Перенаправлено с Pbkdf2 )

В криптографии PBKDF1 PBKDF2 и атакам ( функция деривации ключей на основе пароля 1 и 2 ) — это функции деривации ключей с скользящими вычислительными затратами, используемые для снижения уязвимости к методом перебора . [1]

PBKDF2 является частью (PKCS) RSA Laboratories , серии стандартов криптографии с открытым ключом в частности PKCS   #5 v2.0, также опубликованной как 2898 рабочей группы по проектированию Интернета. RFC   Он заменяет PBKDF1, который может создавать производные ключи только до 160. биты длинные. [2] RFC   8018 (PKCS   #5 v2.1), опубликованный в 2017 году, рекомендует PBKDF2 для хеширования паролей. [3]

Назначение и работа

[ редактировать ]

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

Когда стандарт был написан в 2000 году, рекомендуемое минимальное количество итераций составляло 1000, но предполагается, что этот параметр будет увеличиваться с течением времени по мере увеличения скорости процессора. Стандарт Kerberos в 2005 году рекомендовал 4096 итераций; [1] Сообщается, что Apple использовала 2000 для iOS 3 и 10 000 для iOS 4 ; [4] в то время как LastPass в 2011 году использовал 5000 итераций для клиентов JavaScript и 100 000 итераций для хеширования на стороне сервера. [5] В 2023 году OWASP рекомендовал использовать 600 000 итераций для PBKDF2-HMAC-SHA256 и 210 000 для PBKDF2-HMAC-SHA512. [6]

Алгоритмическое представление итерационного процесса функции получения пароля на основе пароля 2.

Добавление соли к паролю снижает возможность использования заранее вычисленных хэшей ( радужных таблиц ) для атак и означает, что несколько паролей необходимо проверять индивидуально, а не все сразу. Стандарт криптографии с открытым ключом рекомендует длину соли не менее 64 бит. [7] США Национальный институт стандартов и технологий рекомендует длину соли не менее 128 бит. [8]

Процесс получения ключа

[ редактировать ]

Функция получения ключа PBKDF2 имеет пять входных параметров: [9]

DK = PBKDF2(PRF, Пароль , Salt , c , dkLen )

где:

  • PRF — это псевдослучайная функция двух параметров с выходной длиной hLen (например, ключевой HMAC).
  • Пароль — это главный пароль, на основе которого генерируется производный ключ.
  • Соль — это последовательность битов, известная как криптографическая соль.
  • c — желаемое количество итераций
  • dkLen — желаемая длина производного ключа.
  • DK — сгенерированный производный ключ.

Каждый hLen битовый блок Ti производного ключа DK вычисляется следующим образом (с маркировкой + конкатенация строк):

ДК = Т 1 + Т 2 + ⋯ + Т дклен / hлен
T i = F ( Пароль , Соль , c , я )

Функция F является xor ( ^ ) c итераций связанных PRF. Первая итерация PRF использует пароль в качестве ключа PRF и Salt, объединенный с i, закодированным как 32-битное целое число с обратным порядком байтов, в качестве входных данных. (Обратите внимание, что i — индекс, отсчитываемый от 1.) Последующие итерации PRF используют пароль в качестве ключа PRF, а выходные данные предыдущего вычисления PRF — в качестве входных данных:

F( Пароль , Соль , c , я ) знак равно U 1 ^ U 2 ^ ⋯ ^ U c

где:

U 1 = PRF( Пароль , Salt + INT_32_BE( i ))
U 2 = PRF ( Пароль , U 1 )
U c = PRF ( Пароль , U c −1 )

Например, WPA2 использует:

DK = PBKDF2 (HMAC-SHA1, парольная фраза , ssid , 4096, 256)

У PBKDF1 был более простой процесс: начальный U (в этой версии он называется T ) создается PRF( Password + Salt ) , а последующие — просто PRF( U previous ) . Ключ извлекается как первые биты dkLen окончательного хеша, поэтому существует ограничение на размер. [9]

HMAC-коллизии

[ редактировать ]

PBKDF2 обладает интересным свойством при использовании HMAC в качестве псевдослучайной функции. Можно тривиально создать любое количество разных пар паролей с коллизиями внутри каждой пары. [10] Если предоставленный пароль длиннее, чем размер блока базовой хэш-функции HMAC, пароль сначала предварительно хешируется в дайджест, и этот дайджест вместо этого используется в качестве пароля. Например, следующий пароль слишком длинный:

  • Пароль: plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd

поэтому при использовании HMAC-SHA1 он предварительно хешируется с использованием SHA-1 в:

  • SHA1 (шестнадцатеричный): 65426b585154667542717027635463617226672a

Что можно представить в ASCII как:

  • SHA1 (ASCII): eBkXQTfuBqp'cTcar&g*

Это означает, что независимо от соли или итераций PBKDF2-HMAC-SHA1 будет генерировать одни и те же ключевые байты для паролей:

  • "plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd"
  • "eBkXQTfuBqp'cTcar&g*"

Например, используя:

  • PRF : HMAC-SHA1
  • Соль: A009C1A485912C6AE630D3E744240B04
  • Итерации: 1000
  • Длина производного ключа: 16 байт.

Следующие два вызова функций:

PBKDF2-HMAC-SHA1("plnlrtfpijpuhqylxbgqiiyipieyxvfsavzgxbbcfusqkozwpngsyejqlmjsytrmd", ...)
PBKDF2-HMAC-SHA1("eBkXQTfuBqp'cTcar&g*", ...)

будет генерировать те же байты производного ключа ( 17EB4014C8C461C300E9B61518B9A18B). Эти конфликты производных ключей не представляют собой уязвимости безопасности, поскольку для генерации хеша пароля все равно необходимо знать исходный пароль. [11]

Альтернативы PBKDF2

[ редактировать ]

Одним из недостатков PBKDF2 является то, что, хотя количество его итераций можно отрегулировать так, чтобы оно занимало сколь угодно большое количество вычислительного времени, его можно реализовать с помощью небольшой схемы и очень небольшого объема оперативной памяти, что делает возможным проведение атак методом перебора с использованием интегрированных средств, специфичных для конкретного приложения. схемы или графические процессоры относительно дешевы. [12] Функция хеширования паролей bcrypt требует большего объема оперативной памяти (но все же не настраивается отдельно, т.е. не фиксируется для заданного количества процессорного времени) и значительно устойчивее к таким атакам. [13] в то время как более современная функция получения ключа шифрования может использовать сколь угодно большие объемы памяти и, следовательно, более устойчива к атакам ASIC и GPU. [12]

В 2013 году был проведен конкурс хеширования паролей (PHC) с целью разработки более устойчивого подхода. 20 июля 2015 года Argon2 был выбран окончательным победителем PHC, при этом особое внимание было уделено четырем другим схемам хеширования паролей: Catena, Lyra2 , Yescrypt и Makwa. [14] Другой альтернативой является хэширование Balloon , которое рекомендуется в рекомендациях NIST по паролям . [15]

Чтобы ограничить атаку методом перебора , можно сделать так, чтобы каждая попытка ввода пароля требовала онлайн-взаимодействия, не нанося ущерба конфиденциальности пароля. Это можно сделать с помощью не обращающей внимания псевдослучайной функции для усиления защиты пароля . [16] Это можно сделать в качестве альтернативы или в качестве дополнительного шага к PBKDF.

См. также

[ редактировать ]
  1. ^ Jump up to: а б Реберн, Кеннет (2005). «Шифрование расширенного стандарта шифрования (AES) для Kerberos 5» . www.tools.ietf.org . дои : 10.17487/RFC3962 . РФК   3962 . Проверено 23 октября 2015 г.
  2. ^ Калиски, Берт (2000). «PKCS   #5: Спецификация шифрования на основе пароля, версия 2.0» . www.tools.ietf.org . дои : 10.17487/RFC2898 . РФК   2898 . Проверено 23 октября 2015 г.
  3. ^ Мориарти, Кэтлин; и др. (2017). Мориарти, К. (ред.). «PKCS   #5: Спецификация шифрования на основе пароля, версия 2.1» . www.tools.ietf.org . дои : 10.17487/RFC8018 . РФК   8018.
  4. ^ «Криминалистика смартфонов: взлом паролей резервных копий BlackBerry» . Расширенный взлом паролей – Insight . ЭлкомСофт. 30 сентября 2010 года . Проверено 23 октября 2015 г.
  5. ^ «Уведомление безопасности LastPass» . Блог LastPass . 5 мая 2011 года . Проверено 31 января 2023 г.
  6. ^ «Шпаргалка по хранению паролей» . Серия шпаргалок OWASP . 15 августа 2021 года. Архивировано из оригинала 23 января 2023 года . Проверено 23 января 2023 г.
  7. ^ Мориарти, Кэтлин; и др. (2017). Мориарти, К. (ред.). «PKCS   #5: Спецификация криптографии на основе пароля, версия 2.1: Раздел 4. Соль и подсчет итераций» . www.tools.ietf.org . дои : 10.17487/RFC8018 . РФК   8018 . Проверено 24 января 2018 г.
  8. ^ Сонмез Туран, Мельтем; Баркер, Элейн; Берр, Уильям; Чен, Лили. «Рекомендации по получению ключа на основе пароля, часть 1: приложения хранения» (PDF) . НИСТ . СП   800-132 . Проверено 20 декабря 2018 г.
  9. ^ Jump up to: а б Спецификация криптографии на основе пароля РФК   2898
  10. ^ Байненс, Матиас. «Объяснение коллизий хэшей PBKDF2+HMAC» . mathiasbynens.be .
  11. ^ «Устойчивость к столкновениям. Почему HMAC-SHA1 по-прежнему считается безопасным?» . crypto.stackexchange.com .
  12. ^ Jump up to: а б Колин Персиваль . сценарий . Как представлено в разделе «Более строгий вывод ключей с помощью последовательных функций с жесткой памятью» . представлено на BSDCan'09, май 2009 г.
  13. ^ «Новые 25 графических процессоров-монстров поглощают пароли за считанные секунды» . Книга безопасности. 4 декабря 2012 года . Проверено 7 сентября 2013 г.
  14. ^ "Соревнование по хешированию паролей"
  15. ^ «Руководство по аутентификации и управлению жизненным циклом цифровых удостоверений, раздел 5.1.1.2» (PDF) . НИСТ . СП   800-63Б . Проверено 18 июня 2021 г.
  16. ^ Форд, В.; Калиски, Б.С. (2000). «Генерация надежного секрета пароля с помощью сервера» . Материалы 9-го международного семинара IEEE по перспективным технологиям: инфраструктура для совместных предприятий (WET ICE 2000) . стр. 176–180. дои : 10.1109/ENABL.2000.883724 . ISBN  0-7695-0798-0 . S2CID   1977743 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 73583c8ec431341e18ca5dbe8b37cee0__1717072620
URL1:https://arc.ask3.ru/arc/aa/73/e0/73583c8ec431341e18ca5dbe8b37cee0.html
Заголовок, (Title) документа по адресу, URL1:
PBKDF2 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)