Хеширование паролей


Пароль 1 Хэш-функция n



жүктеу 295,88 Kb.
бет3/3
Дата04.04.2023
өлшемі295,88 Kb.
#42003
1   2   3
хэш-паролей

Пароль 1

Хэш-функция n






Соленые пароли
  • Криптографическая соль [salt] – случайный код, который используется для обеспечения непредсказуемости при хешировании паролей
    • Либо h=HASH(p||s)
    • Либо в стандарте хеш-функции указан дополнительный параметр h=HASH(p,s)
    • В качестве соли может использоваться вектор инициализации
  • В файле проверки паролей хранятся значения соли и хеш-функции пароля для каждого пользователя
  • Преимущества:
    • Соль защищает от перебора паролей при помощи радужных таблиц
    • Если у пользователя есть два аккаунта с одним и тем же паролем, хеш-функция от этих паролей будет разная
  • Безопасная длина соли ~128 бит

пользователь

соль

хэш-функция








Содержание лекции
  • Атаки на хешированные пароли и защита от них
  • Специализированные функции для хеширования паролей
    • Общие сведения
    • PBKDF2
    • Scrypt


Общие сведения
KDF
  • Функции формирования ключа [Key Derivation Function, KDF] – специализированные хеш-функции для получения ключей симметричного шифрования на основе произвольных данных
  • Также применяются для:
    • хеширования паролей
    • контроля целостности записей в распределенных реестрах
  • Если обычные ХФ должны по возможности вычисляться быстро, то вычисление KDF должно быть ресурсоемким и трудно распараллеливаемым
  • Обычные ХФ часто вычисляются от больших файлов, KDF как правило от небольших объемов данных


PBKDF2
Password-based KDF, RSA Laboratories, 2000
Параметры:
K = PBKDF2 ( PRF, P, S, c, kLen)
  • PRF [pseudorandom function] «псевдослучайная функция» – используемый в рамках PBKDF2 алгоритм вычисления имитовставки (как правило, HMAC)
  • P - Пароль
  • S – соль
  • с – количество раундов (рекомендуется от 1000)
  • kLen – длина ключа в байтах


PBKDF2
  • Длина ключа может быть различной
  • Ключ разбивается на блоки с такой же длиной, как у имитовставки
  • Каждый i-й блок K[i] вычисляется по следующему алгоритму:

  • U[0] = S||i; //суммарная длина S и i должна быть равна длине имитовставки
    K[i] = 0;
    для j от 1 до c
    U[j] = PRF( P, U[j-1] ); // P трактуется как ОТ, а U - как ключ имитовставки
    K[i] = xor( K[i], U[j] );
    конец


PBKDF2
  • WPA-PSK:
    • PBKDF2( HMAC-SHA2, P, ssid, 4096, 256 )

    • где ssid – идентификатор точки доступа
  • Р 50.1.111 2016
    • PBKDF2( HMAC-Стрибог-512, P, S, >1000, 256 )
  • Злоумышленник не может распараллелить вычисление PBKDF2, если длина выходного ключа меньше, чем длина блока
  • Однако можно параллельно вычислять хеши для разных вариантов пароля


scrypt
  • Колин Персиваль, 2009
  • Для быстрого вычисления требуется большой объем оперативной памяти, поэтому распараллеливание на ПЛИС или GPU не дает значительного преимущества
  • В рамках стандарта используются:
    • PBKDF2 на основе HMAC от SHA256
    • алгоритм Salsa20/8 (Salsa20 c количеством раундов 8 вместо 20)
  • Параметры:

  • K = scrypt (P, S, c, r, p, kLen)
    • P – пароль
    • S – соль
    • с – количество раундов
    • r – размер блока в кибибитах (1 Киб = 128 Б = 1024 б)
    • p – степень параллельности
    • kLen – длина ключа


scrypt
Алгоритм:
B = PBKDF2 (P,S,1,p*r*128) \\ B - массив из p блоков по 128*r байт
для i от 0 до p-1 выполнить B[i]=MIX(B[i],c)
K = PBKDF2(P,B,1,kLen)
Функция X = MIX( B, c ):
X = B
для i от 0 до (2^c)-1 выполнить
V[i] = X
X = BlockMIX(X)
конец
шаг 3. для i от 0 до (2^c)-1 выполнить
j = X mod 2^c
X = BlockMIX(X)
конец

scrypt
Функция A = BlockMIX( B ):
// B - массив 64-битных блоков
r = length(B)/128
X = B[2*r-1]
для i от 0 до (2^c)-1 выполнить
X = Salsa20_8(X xor B[i])
Y[i] = X
конец
A = Y[0] || Y[2] || … || Y[2*r-2] || Y[1] || Y[3] || … || Y[2*r-1]
Выбор параметров алгоритма:
  • Требуемый объем оперативной памяти для быстрого вычисления 128*r*c байт
  • Рекомендуемая версия параметров с=16384 r=8 p=1
  • «Криптовалютная» (слабая) версия параметров с=1024 r=1 p=1


Темы докладов
  • bcrypt
  • Argon2

жүктеу 295,88 Kb.

Достарыңызбен бөлісу:
1   2   3




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау