Российская криптография: так ли всё грустно?

145
© 2000-2015 КРИПТО-ПРО Российская криптография: так ли всё грустно? Смышляев Станислав Витальевич, к.ф.-м.н., начальник отдела защиты информации Алексеев Евгений Константинович, к.ф.-м.н., ведущий инженер-аналитик Агафьин Сергей Сергеевич, инженер-программист Смышляев, Алексеев, Агафьин 1 / 128

Upload: positive-hack-days

Post on 24-Jul-2015

164 views

Category:

Technology


10 download

TRANSCRIPT

© 2000-2015 КРИПТО-ПРО

Российская криптография: так ли всё грустно?

Смышляев Станислав Витальевич, к.ф.-м.н.,начальник отдела защиты информации

Алексеев Евгений Константинович, к.ф.-м.н.,ведущий инженер-аналитик

Агафьин Сергей Сергеевич,инженер-программист

Смышляев, Алексеев, Агафьин () 1 / 128

© 2000-2015 КРИПТО-ПРО

Расхожее мнение о российской криптографииМорально устаревшие решения.Проблемы с быстродействием.Проблемы со стойкостью.Ориентированность на ”бумажную“ безопасность исоответствие требованиям, а не на реальную защищенность.

Следствие 1: Нередка позиция ”когда требуется показатьсертификат ФСБ, используем ГОСТ, а в иных случаяхпереключаемся на RSA/AES“.

Смышляев, Алексеев, Агафьин () 2 / 128

© 2000-2015 КРИПТО-ПРО

Расхожее мнение о российской криптографииМорально устаревшие решения.Проблемы с быстродействием.Проблемы со стойкостью.Ориентированность на ”бумажную“ безопасность исоответствие требованиям, а не на реальную защищенность.

Следствие 1: Нередка позиция ”когда требуется показатьсертификат ФСБ, используем ГОСТ, а в иных случаяхпереключаемся на RSA/AES“.

Смышляев, Алексеев, Агафьин () 2 / 128

© 2000-2015 КРИПТО-ПРО

Следствие 2: Критика российских решений зачастую неконструктивна, а шаблонна, полна клише.

Многие ”и так знают“, что все плохо — всякая критика охотноподхватывается аудиторией без апробации и верификации.

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

Смышляев, Алексеев, Агафьин () 3 / 128

© 2000-2015 КРИПТО-ПРО

Следствие 2: Критика российских решений зачастую неконструктивна, а шаблонна, полна клише.

Многие ”и так знают“, что все плохо — всякая критика охотноподхватывается аудиторией без апробации и верификации.

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

Смышляев, Алексеев, Агафьин () 3 / 128

© 2000-2015 КРИПТО-ПРО

Следствие 2: Критика российских решений зачастую неконструктивна, а шаблонна, полна клише.

Многие ”и так знают“, что все плохо — всякая критика охотноподхватывается аудиторией без апробации и верификации.

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

Смышляев, Алексеев, Агафьин () 3 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 4 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 5 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

Стойкость ГОСТ 28147-89 (блоковый шифр)

ГОСТ 28147-89, атаки КуртуаОктябрь 2010 года: начат процесс рассмотрения включенияГОСТ 28147-89 в международный стандарт ISO/IEC 18033-3.В мае 2011 года на ePrint статья Николя Куртуа:использование алгебраических методов и дифференциальных(работа от мая 2011 и последующие 5 работ).По алгебраическим: нет детального описания и анализатрудоемкости второго и главного этапа определения ключа,есть только экспериментальные данные на аналогах меньшейразмерности (не верифицируемые).По дифференциальным: анализ для узлов замены, отличных отдействующих и от предложенных в ISO.Рудской, Дмух (см. ePrint): даже если принять необоснованные

”факты“ Куртуа и провести анализ ГОСТ 28147-89 с другимиузлами замены, то атака не лучше полного перебора.

Смышляев, Алексеев, Агафьин () 6 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

Стойкость ГОСТ 28147-89 (блоковый шифр)

Смышляев, Алексеев, Агафьин () 7 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

Стойкость ГОСТ 28147-89 (блоковый шифр)

ГОСТ 28147-89, атаки Исобе и Динура–Данкельмана–ШамираКорректные, математически строгие описания атак.Показано, что некоторые свойства алгоритма ГОСТ 28147-89позволяют находить пути анализа, не учтенные создателямиалгоритма.Трудоемкость атаки Исобе составляет 2224 операцийзашифрования, атаки ДДШ — 2192.Для метода Исобе требуется 232 пар открытых и шифрованныхтекстов, для метода ДДШ — 264.При материале 232 уже с вероятностью ≈ 0.5 появляютсяповторяющиеся блоки шифртекста, при 264 ключ вовсе более ненужен (есть полная таблица зашифрования).Не произошло снижения даже теоретической стойкости.

Смышляев, Алексеев, Агафьин () 8 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

Стойкость ГОСТ Р 34.11-94 (функция хэширования)

ГОСТ Р 34.11-94, атаки Менделя-Прамшталлера-Рехбергера

Нахождение коллизии: 2105 вместо априорных 2128.Нахождение (второго) прообраза: 2192 вместо априорных 2256.Корректные, математически строгие описания атак.

Смышляев, Алексеев, Агафьин () 9 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

Переход на ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2012

2012 год: стандарт функции хэширования ГОСТ Р 34.11-2012(”Стрибог“).

Документ ФСБ России № 149/7/1/3-58 от 31.01.2014.ТЗ после 31 декабря 2012 года — должна быть реализацияГОСТ Р 34.10-2012 (и ГОСТ Р 34.11-2012).Использование ГОСТ Р 34.11-94 для использования приформировании подписи после 31 декабря 2018 года недопускается.

Смышляев, Алексеев, Агафьин () 10 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

Стойкость ГОСТ Р 34.11-2012 (функция хэширования)

AlTawy R., Youssef A. M. – Preimage Attacks on reduced-roundStribog.AlTawy R., Kircanski A., Youssef A. M. – Rebound attacks onStribog.Kazymyrov O., Kazymyrova V. – Algebraic aspects of the russianhash standard GOST R 34.11-2012.Ma B., Li B., Hao R., Li X. – Improved cryptanalysis ofreduced-round GOST and Whirlpool hash function.Zou J., Wu W., Wu S. – Cryptanalysis of the round-reducedGOST hash function.AlTawy R., Youssef A. M. – Integral distinguishers forreduced-round. Stribog.AlTawy R., Youssef, A. M. – Watch your Constants: MaliciousStreebog.

Смышляев, Алексеев, Агафьин () 11 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Стойкость алгоритмов ГОСТ

Стойкость ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012(электронная подпись)

С точки зрения структуры (и стойкости) ГОСТ Р 34.10-2001 иГОСТ Р 34.10-2012 предельно близки к ECDSA: стойкостьопределяется:

выбором эллиптических кривых;гарантией случайности одноразовых случайных величин впроцессе подписи (вспомним уязвимость 2010 года в SonyPlayStation 3 из-за проблем в реализации ECDSA).

Смышляев, Алексеев, Агафьин () 12 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 13 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ 28147-89 (блоковый шифр)

Шифрование: ГОСТ 28147-89, режим гаммированиябез SSE/AVX: 28 тактов/байт (120 МБ/с/ядро 3.3 GHz);с AVX: 8.7 тактов/байт (390 МБ/с/ядро 3.3 GHz).

Смышляев, Алексеев, Агафьин () 14 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ 28147-89 (блоковый шифр)

Шифрование: ГОСТ 28147-89, режим гаммированиябез SSE/AVX: 28 тактов/байт (120 МБ/с/ядро 3.3 GHz);с AVX: 8.7 тактов/байт (390 МБ/с/ядро 3.3 GHz).

Смышляев, Алексеев, Агафьин () 15 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ 28147-89 (блоковый шифр)

Шифрование: ГОСТ 28147-89, режим гаммированияРеализация на GPU (OpenCL): 1300 МБ/с (AMD Radeon HD6970).

Смышляев, Алексеев, Агафьин () 16 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ Р 34.11 (хэш-функции)

Хэширование: ГОСТ Р 34.11-94 и ГОСТ Р 34.11-2012ГОСТ Р 34.11-94: 40 тактов/байт (85 МБ/с/ядро 3.3 GHz);ГОСТ Р 34.11-2012: 30 тактов/байт (110 МБ/с/ядро 3.3 GHz).

Смышляев, Алексеев, Агафьин () 17 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ Р 34.10-2001 и ГОСТ Р34.10-2012

С точки зрения совокупности математических операций (и,следовательно, производительности) ГОСТ Р 34.10-2001 и ГОСТ Р34.10-2012 предельно близки к ECDSA: производительностьопределяется выбором используемых полей, эллиптических кривых(параметров алгоритма подписи), а также проработкой реализацийопераций в конечных полях и эллиптических кривых в реализациях.

Сравнение с RSAСравнимая стойкость ГОСТ Р 34.10-2001/2012-256 (по NIST SP800-57): RSA-3072.Сравнимая стойкость ГОСТ Р 34.10-2012-512 (по NIST SP800-57): между RSA-7680 и RSA-15360.

Смышляев, Алексеев, Агафьин () 18 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ Р 34.10-2001 и ГОСТ Р34.10-2012 (проверка подписи)

Проверка ЭП: ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012ГОСТ Р 34.10-2001/2012-256: 9700 проверок в секунду;ГОСТ Р 34.10-2012-512: 1850 проверок в секунду.

Смышляев, Алексеев, Агафьин () 19 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ Р 34.10-2001 и ГОСТ Р34.10-2012 (формирование подписи)

Формирование ЭП: ГОСТ Р 34.10-2001 и ГОСТ Р 34.10-2012ГОСТ Р 34.10-2001/2012-256: 15800 формирований в секунду;ГОСТ Р 34.10-2012-512: 3400 формирований в секунду.

Смышляев, Алексеев, Агафьин () 20 / 128

© 2000-2015 КРИПТО-ПРО

Российские криптографические алгоритмы Производительность алгоритмов ГОСТ

Производительность ГОСТ Р 34.10-2001 и ГОСТ Р34.10-2012

Криптосистема с открытым ключомВ России нет стандарта для криптосистем с открытым ключом.Решение задачи ”зашифровать данные с использованием открытогоключа PubKA“ (зафиксировано в Рекомендациях постандартизации ТК 26):

породить эфемерный ключ β (с открытым ключом PubKβ),случайную величину UKM;вычислить SK = H(UKM · β · PubKA);зашифровать вход (как правило, ключ шифрования основныхданных) на SK, передать шифртекст вместе с PubKβ и UKM.

Время шифрования/расшифрования ≈ время проверки подписи.

Смышляев, Алексеев, Агафьин () 21 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 22 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 23 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Требования ФСБ России к шифровальным(криптографическим) средствам.Требования к средствам электронной подписи.Приказ ФСБ России N 378 ”Об утверждении . . . мер пообеспечению безопасности персональных данных при ихобработке в информационных системах персональных данных сиспользованием СКЗИ . . .“Требования к средствам удостоверяющего центра.

Смышляев, Алексеев, Агафьин () 24 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

КритикаФормальные модели нарушителя, не имеющие отношения креальности.Проверяется безопасность к ”бумажным“ моделям, а не креальным нарушителям.При возникновении проблем безопасности разработчики даютответы ”в такой-то формальной модели все хорошо“.Из-за закрытости требований возникает (справедливо)ощущение непрозрачности при анализе защищенности.

Смышляев, Алексеев, Агафьин () 25 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Приказ ФСБ России N 378КС1: ”проведение атаки, находясь вне контролируемой зоны“

КС2: ”проведение атаки при нахождении в пределахконтролируемой зоны“

Смышляев, Алексеев, Агафьин () 26 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Приказ ФСБ России N 378КС1: ”проведение атаки, находясь вне контролируемой зоны“— атаки на криптографические протоколы через сетьКС2: ”проведение атаки при нахождении в пределахконтролируемой зоны“ — нарушитель в непосредственнойблизости, анализ секторов диска после удаления данных

Смышляев, Алексеев, Агафьин () 27 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Приказ ФСБ России N 378КС3: ”возможность располагать аппаратными компонентамиСКЗИ и СФ, ограниченная мерами, реализованными винформационной системе, в которой используется СКЗИ, инаправленными на предотвращение и пресечениенесанкционированных действий“

KB: ”создание способов, подготовка и проведение атак спривлечением специалистов в области анализа сигналов,сопровождающих функционирование СКЗИ и СФ, и в областииспользования для реализации атак недокументированных(недекларированных) возможностей прикладного ПО“

Смышляев, Алексеев, Агафьин () 28 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Приказ ФСБ России N 378КС3: ”возможность располагать аппаратными компонентамиСКЗИ и СФ, ограниченная мерами, реализованными винформационной системе, в которой используется СКЗИ, инаправленными на предотвращение и пресечениенесанкционированных действий“ — возможность атак придоступе к системе из-под другого аккаунтаKB: ”создание способов, подготовка и проведение атак спривлечением специалистов в области анализа сигналов,сопровождающих функционирование СКЗИ и СФ, и в областииспользования для реализации атак недокументированных(недекларированных) возможностей прикладного ПО“— возможность атак по побочным каналам

Смышляев, Алексеев, Агафьин () 29 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Пример: ключевой носительПассивный носитель.Активный автономный вычислитель.Функциональный ключевой носитель.

Смышляев, Алексеев, Агафьин () 30 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Пассивный носительИспользование ключа основным криптосредством: вычисленияв оперативной памяти машины.

Смышляев, Алексеев, Агафьин () 31 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Активный автономный вычислительВсе вычисления на самом устройстве, ключ в память непопадает.

Смышляев, Алексеев, Агафьин () 32 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Доступ нарушителя к пользовательскому процессу в системе влюбом случае (даже в случае HSM) означает компрометациюдоступа к ключу.

Защищенность пассивного и автономного носителейДоступ нарушителя к каналу от системы к носителю означаетнеминуемую компрометацию доступа к ключу.

В случае пассивного носителя нарушитель потенциальноизвлекает из памяти ключ.В случае автономного вычислителя нарушитель потенциальноперехватывает пароль и возможность подписи произвольныхданных.

В случае автономного вычислителя несоизмеримо опаснееатаки по побочным каналам (потребление, время).

Смышляев, Алексеев, Агафьин () 33 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Доступ нарушителя к пользовательскому процессу в системе влюбом случае (даже в случае HSM) означает компрометациюдоступа к ключу.

Защищенность пассивного и автономного носителейДоступ нарушителя к каналу от системы к носителю означаетнеминуемую компрометацию доступа к ключу.

В случае пассивного носителя нарушитель потенциальноизвлекает из памяти ключ.В случае автономного вычислителя нарушитель потенциальноперехватывает пароль и возможность подписи произвольныхданных.

В случае автономного вычислителя несоизмеримо опаснееатаки по побочным каналам (потребление, время).

Уровень защищенности (без дополнительных орг. мер) — КС1.

Смышляев, Алексеев, Агафьин () 34 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Доступ нарушителя к пользовательскому процессу в системе влюбом случае (даже в случае HSM) означает компрометациюдоступа к ключу.

Защищенность пассивного и автономного носителейДоступ нарушителя к каналу от системы к носителю означаетнеминуемую компрометацию доступа к ключу.

В случае пассивного носителя нарушитель потенциальноизвлекает из памяти ключ.В случае автономного вычислителя нарушитель потенциальноперехватывает пароль и возможность подписи произвольныхданных.

В случае автономного вычислителя несоизмеримо опаснееатаки по побочным каналам (потребление, время).

Уровень защищенности (без дополнительных орг. мер) — КС1.

Смышляев, Алексеев, Агафьин () 34 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Функциональный ключевой носитель

Смышляев, Алексеев, Агафьин () 35 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Функциональный ключевой носительНа аутентифицированном на пароле ключе согласованияустанавливается защищенный канал связи между системой иносителем.Все дальнейшие пересылки между носителем производятсяпосредством защищенного канала.За счет распределения вычислений возможно уменьшениеопасности атак по побочным каналам.Сам пароль также защищен от оффлайного перебора пароля сопробованием по полученным в канале данным (после действийнарушителя в канале).

Оценочный уровень защищенности — КС3.

Смышляев, Алексеев, Агафьин () 36 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Функциональный ключевой носительНа аутентифицированном на пароле ключе согласованияустанавливается защищенный канал связи между системой иносителем.Все дальнейшие пересылки между носителем производятсяпосредством защищенного канала.За счет распределения вычислений возможно уменьшениеопасности атак по побочным каналам.Сам пароль также защищен от оффлайного перебора пароля сопробованием по полученным в канале данным (после действийнарушителя в канале).

Оценочный уровень защищенности — КС3.

Смышляев, Алексеев, Агафьин () 36 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Анализируемые проблемыУязвимости в базовых криптографических алгоритмах.Уязвимости в сопутствующих криптографических алгоритмах.Уязвимости в криптографических протоколах.Уязвимости при встраивании криптографических протоколов.Ошибки в реализации.Отсутствие в реализации достаточных мер противодействияпредполагаемому нарушителю.

Смышляев, Алексеев, Агафьин () 37 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Анализируемые проблемыУязвимости в базовых криптографических алгоритмах.Уязвимости в сопутствующих криптографических алгоритмах.Уязвимости в криптографических протоколах.

2010:«Ха-ха, теоретические проблемы стойкости протоколов не влияют

на реальную защищенность»

2015:TLS: BEAST, POODLE, Lucky13...

Смышляев, Алексеев, Агафьин () 38 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Анализируемые проблемыУязвимости в базовых криптографических алгоритмах.Уязвимости в сопутствующих криптографических алгоритмах.Уязвимости в криптографических протоколах.

2010:«Ха-ха, теоретические проблемы стойкости протоколов не влияют

на реальную защищенность»

2015:TLS: BEAST, POODLE, Lucky13...

Смышляев, Алексеев, Агафьин () 38 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Анализируемые проблемыУязвимости в базовых криптографических алгоритмах.Уязвимости в сопутствующих криптографических алгоритмах.Уязвимости в криптографических протоколах.

2010:«Ха-ха, теоретические проблемы стойкости протоколов не влияют

на реальную защищенность»

2015:TLS: BEAST, POODLE, Lucky13...

Смышляев, Алексеев, Агафьин () 38 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Безопасность ”бумажная“ и реальная

Безопасность ”бумажная“ и реальная

Потенциальные ошибки при шифровании данныхПри зашифровании/расшифровании данных на сессионныхсимметричных ключах возможны ошибки, связанные, вчастности:

с использованием небезопасных режимов работы шифра (ECB,иногда CBC);возникновением побочных каналов при небезопасномиспользовании механизмов выравнивания (паддинга);перекрытиями гаммы;использованием синхропосылок без обеспечения условия ихнепредсказываемости;работой с превышением допустимой нагрузки на ключ (работабез преобразования ключа).

Смышляев, Алексеев, Агафьин () 39 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор IV в CBC, CFB

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 40 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор IV в CBC, CFB

Режимы CBC, CFB: уязвимости при небезопасномвыборе синхропосылок

Ошибку в проектировании системы защиты информации,связанную с непродуманным механизмом выбора синхропосылок,могут совершить даже опытные криптографы. Ярким примеромтакого рода ошибки стала особенность протокола TLS 1.0, вкотором при использовании блоковых шифров в режиме CBC вкачестве синхропосылки очередного пакета выбирается последнийблок шифртекста предыдущего пакета.

Для эксплуатации данной уязвимости Дуонгом и Риззо в 2011 годубыл создан модуль BEAST, позволявший дешифровыватьпередаваемые cookie-файлы пользователя.

Описание теоретической уязвимости было предложено еще за 7 летдо этого в работе Грегори Барда.

Смышляев, Алексеев, Агафьин () 41 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор IV в CBC, CFB

Режимы CBC, CFB: уязвимости при небезопасномвыборе синхропосылок

При работе блокового шифра в режиме CBC фиксируетсясинхропосылка C0 = IV, для получения каждого блока Ciшифртекста вычисляется значение Ci = EK(Mi ⊕ Ci−1), где EK —функция зашифрования блока текста на ключе K.

Атака с выбором ОТ при известном IV.Проверяется, что для полученного ранее шифртекстаC = (C1|C2| . . . |Cm) блок Mi ОТ M = (M1|M2| . . . |Mm) равен M∗.

Таким образом, перебирая различные значения M∗, нарушительможет узнать содержимое блока ОТ.

Смышляев, Алексеев, Агафьин () 42 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор IV в CBC, CFB

Режимы CBC, CFB: уязвимости при небезопасномвыборе синхропосылок

В TLS с российскими алгоритмами, утвержденном ТК 26, даннаяуязвимость отсутствует, так как в данной версии используетсярежим гаммирования, а состояние регистров шифратора послеобработки очередного пакета (являющееся некоторым аналогомсинхропосылки в CBC), остается неизвестным нарушителю.

Смышляев, Алексеев, Агафьин () 43 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Использование паддинга

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 44 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Использование паддинга

Уязвимости при небезопасном использовании паддинга

ПримерПаддинг PKCS #5: сообщение дополняется ненулевым числомбайтовых констант PADLEN до конца блока, где PADLEN — числотребуемых байт паддинга.Например, при длине блока 8 байт сообщение (0x0A, 0x0B, 0x0C)будет дополнено до (0x0A, 0x0B, 0x0C, 0x05, 0x05, 0x05, 0x05, 0x05).

При непродуманном выборе процедуры проверки паддингавозможно появление уязвимостей к атакам с выбором ШТ.

Смышляев, Алексеев, Агафьин () 45 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Использование паддинга

Уязвимости при небезопасном использовании паддинга

Пусть процедура приема так, что ошибку в паддинге нарушительможет отличить от ошибки в имитовставке. Тогда нарушителю,перехватившему в канале некоторое зашифрованное сообщение,чтобы дешифровать его последние q байт (в среднем), достаточно:

направить получателю 128 · q сообщений (чтобы тотпопробовал принять их на том же ключе), после чего получитькоды ошибок.

Каждый байт каждого блока восстанавливается в среднем за 128запросов.

Смышляев, Алексеев, Агафьин () 46 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Использование паддинга

Уязвимости при небезопасном использовании паддинга

POODLE attack: Padding Oracle On Downgraded Legacy Encryption.

Смена ключа после каждой ошибки на приеме не полностьюустраняет проблему — соответствующая уязвимость в протоколеTLS версии 1.0 для использующих CBC наборов шифрованияописана в 2001 году в работе Сержа Воденея.

Заметим, что данная уязвимость в TLS с российскимиалгоритмами, утвержденном ТК 26, отсутствует, так как в даннойверсии используется режим гаммирования, паддинг вовсе неиспользуется.

Смышляев, Алексеев, Агафьин () 47 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 48 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Для стойкой криптосистемы (формально — IND-CPA–стойкой)в режиме гаммирования наличие у противника шифртекстапри отсутствии ключа вовсе не уменьшает для негонеопределенности открытого текста.В случае переиспользования гаммы неопределенность падаетдо значений, позволяющих провести практическую атаку.

Элементарный примерПусть биты a, b независимы Pr(a = 1) = Pr(b = 1) = 0.6. Тогданеопределенность (энтропия) при наличии битов шифртекстаca = a ⊕ ka и cb = b ⊕ kb составляет 1.942 бита.Если же ka = kb, энтропия падает в среднем до 0.945 бит —такой же она была бы, если бы каждый бит принимал бынекоторое значение с вероятностью ≈ 90%.

Смышляев, Алексеев, Агафьин () 49 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Известный пример: режимы ECB и гаммирования

Смышляев, Алексеев, Агафьин () 50 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Известный пример: режимы ECB и гаммирования

Смышляев, Алексеев, Агафьин () 51 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Известный пример: режимы ECB и гаммирования

Смышляев, Алексеев, Агафьин () 52 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Пример: режим гаммирования при перекрытии гаммы

Смышляев, Алексеев, Агафьин () 53 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Пример: режим гаммирования при перекрытии гаммы

Смышляев, Алексеев, Агафьин () 54 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Пример: режим гаммирования при перекрытии гаммы

Смышляев, Алексеев, Агафьин () 55 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Пример: режим гаммирования при перекрытии гаммы

Смышляев, Алексеев, Агафьин () 56 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Пример: режим гаммирования при перекрытии гаммы

Смышляев, Алексеев, Агафьин () 57 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

Пример: режим гаммирования при перекрытии гаммы

Смышляев, Алексеев, Агафьин () 58 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при перекрытии гаммы

Уязвимости при перекрытии гаммы

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

В реализациях протоколов при сертификации проверяетсяобеспечение гарантируемой непредсказуемости синхропосылки.

Смышляев, Алексеев, Агафьин () 59 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при превышении нагрузки на ключ

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 60 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при превышении нагрузки на ключ

Уязвимости при превышении нагрузки на ключ

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

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

При шифровании ГОСТ 28147-89 более 32 ГБ информациивероятность совпадения выходных блоков алгоритмашифрования достигает 50%.

Смышляев, Алексеев, Агафьин () 61 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при превышении нагрузки на ключ

Уязвимости при превышении нагрузки на ключ

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

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

Смышляев, Алексеев, Агафьин () 62 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при превышении нагрузки на ключ

Организация работы с сессионными ключами

РешениеПри шифровании использовать режим преобразования ключа(реализуется в криптосредстве, прозрачно для приложений):RFC 4357: 2.3.2: Key Meshing.Но: сохраняется ограничение на количество шифруемых сообщенийна одном ключе (T · 1024 сообщений произвольной длины).

Без преобразования ключей: шифровать не более T МБ наодном ключе.С преобразованием ключей: шифровать не более T · 1024независимых сообщений на одном ключе.

Смышляев, Алексеев, Агафьин () 63 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при превышении нагрузки на ключ

Организация работы с сессионными ключами

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

Недопустимое решениеfor(QWORD i = 0; i < qwTotalDataBlocks; i++){

CryptDuplicateKey(hKey, 0, 0, &hTmpKey);CryptEncrypt(hTmpKey, 0, TRUE, 0, ppbData[i], &(pdwLen[i]), pdwBufLen[i]);CryptDestroyKey(hTmpKey);

}

Смышляев, Алексеев, Агафьин () 64 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при превышении нагрузки на ключ

Организация работы с сессионными ключами

Вариант решения: IPsec ESP

”Техническая спецификация по использованию ГОСТ 28147-89 пришифровании вложений в протоколе IPsec ESP“, раздел 5.6.Преобразование ESP_GOST-4M-IMIT.

RootKeyDivers( RootKey , i&Mask1)

Divers( Divers( RootKey , i&Mask1) , i&Mask2)Key[i] = Divers( Divers( Divers( RootKey , i&Mask1) , i&Mask2) , i&Mask3)

Mask1 = 0xffffffff00000000, Mask2 = 0xffffffffffff0000, Mask3 = 0xffffffffffffffc0.

Смышляев, Алексеев, Агафьин () 65 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Уязвимости при превышении нагрузки на ключ

Организация работы с сессионными ключами

Алгоритмы диверсификацииCALG_PRO_DIVERS: RFC 4357, раздел 7.Алгоритм Secret Key Diversification;CALG_PRO12_DIVERS: ТК 26, ”Рекомендации постандартизации. Использование криптографическихалгоритмов...“. Алгоритм KDF_TREE_GOSTR3411_2012_256.

Смышляев, Алексеев, Агафьин () 66 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор алгоритма хэширования

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 67 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор алгоритма хэширования

Уязвимости при использовании стойкого алгоритмаподписи со слабым алгоритмом хэширования

Не запрещено использовать MD5 + RSA или даже MD5 + ГОСТ Р34.10-2001 как усиленную неквалифицированную подпись.

Миф: даже поломанные с точки зрения теории хэш-функцииможно использовать с ЭП

Частично правда: если подписать MD5-хэш документа,подделать подписанный документ на практике невозможно(стойкость MD5 к нахождению прообраза/второго прообразаснижена с 2128 только на 5 порядков).При ошибке проектирования систем документооборота сиспользованием такой подписи уязвимость становитсяэксплуатируемой на практике.

Смышляев, Алексеев, Агафьин () 68 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор алгоритма хэширования

Уязвимости при использовании стойкого алгоритмаподписи со слабым алгоритмом хэширования

Рассмотрим систему, в которой документы подписываютсяследующим образом

Signature(Key, Src) = SignRSA−2048 (Key, hSHA3 (hMD5(Src)|Attrs))

Аналогичная процедура формирования подписи (с вариабельностьюалгоритмов) используется в Microsoft Authenticode.

Смышляев, Алексеев, Агафьин () 69 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор алгоритма хэширования

Уязвимости при использовании стойкого алгоритмаподписи со слабым алгоритмом хэширования

Signature(Key, Src) = SignRSA−2048 (Key, hSHA3 (hMD5(Src)|Attrs))

Подписывающая сторонаИнтересы честной подписывающей стороны удовлетворены:модифицировать документ, снабдив его поддельной подписью,текущее состояние криптоанализа не позволяет (слабое звено —второй прообраз для хэш-значения MD5 — 2123, около десятимиллиардов лет работы миллиардов 3ГГц–процессорных ядер).

Смышляев, Алексеев, Агафьин () 70 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор алгоритма хэширования

Уязвимости при использовании стойкого алгоритмаподписи со слабым алгоритмом хэширования

Signature(Key, Src) = SignRSA−2048 (Key, hSHA3 (hMD5(Src)|Attrs))

Проверяющая сторонаВвод в заблуждение: стойкий алгоритм подписи RSA-2048используется в паре со стойкой хэш-функцией SHA3.Но: вычисление основного хэша документа производитбыстрая, но обладающая практическими уязвимостями MD5(коллизии строятся за 224 — одна-две секунды).Для ряда форматов существуют практически осуществимыеатаки с созданием пары документов (pdf, djvu, исполняемыхфайлов) с различным (осмысленным, запланированнымнарушителем) содержанием, но одним значением хэша MD5, аследовательно, и значением Signature(K, Src).

Смышляев, Алексеев, Агафьин () 71 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Выбор алгоритма хэширования

Уязвимости при использовании стойкого алгоритмаподписи со слабым алгоритмом хэширования

Усиленная квалифицированная электронная подпись может бытьсформирована только с помощью:

ГОСТ Р 34.11-94 + ГОСТ Р 34.10-2001.ГОСТ Р 34.11-2012 (256 бит) + ГОСТ Р 34.10-2012 (256 бит).ГОСТ Р 34.11-2012 (512 бит) + ГОСТ Р 34.10-2012 (512 бит).

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

Известные уязвимости существуют только у ГОСТ Р 34.11-94,однако носят сугубо теоретический характер: построениеколлизии за 2105 — миллион лет работы миллиарда 3-ГГцпроцессорных ядер (против секунды на одном ядре для MD5).Известных уязвимостей у ГОСТ Р 34.11-2012, ГОСТ Р34.10-2001, ГОСТ Р 34.10-2012 нет.

Смышляев, Алексеев, Агафьин () 72 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 73 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

Технический комитет по стандартизации

”Криптографическая защита информации“Росстандарта (ТК 26)

Производительность и стойкость ГОСТ Р 34.10-2001 и ГОСТ Р34.10-2012 определяется, в частности, выбором параметровэллиптических кривых.

"Рекомендации по стандартизации. Задание параметровэллиптических кривых в соответствии с ГОСТ Р 34.10-2012".

Смышляев, Алексеев, Агафьин () 74 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

Технический комитет по стандартизации

”Криптографическая защита информации“Росстандарта (ТК 26)

Доверие к выбору параметров: принцип ”проверяемой случайности“.

Выработка параметров с помощью односторонней функции.На практике, с помощью некоторого ”трудно“ обратимогопреобразования: на основе хэш-функции ГОСТ Р 34.11-2012.На вход данного преобразования — случайные строки.Разные алгебраические структуры — даже специальный подборвходных строк не позволяет осуществлять выборокончательных параметров для принадлежности классузаведомо "слабых".

Смышляев, Алексеев, Агафьин () 75 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

Технический комитет по стандартизации

”Криптографическая защита информации“Росстандарта (ТК 26)

Доверие к выбору параметров: принцип ”проверяемой случайности“.

Выработка параметров с помощью односторонней функции.На практике, с помощью некоторого ”трудно“ обратимогопреобразования: на основе хэш-функции ГОСТ Р 34.11-2012.На вход данного преобразования — случайные строки.Разные алгебраические структуры — даже специальный подборвходных строк не позволяет осуществлять выборокончательных параметров для принадлежности классузаведомо "слабых".

Смышляев, Алексеев, Агафьин () 75 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

Технический комитет по стандартизации

”Криптографическая защита информации“Росстандарта (ТК 26)

Стойкость ГОСТ 28147-89 определяется, в частности, выборомузлов замены.

"Рекомендации по стандартизации. Задание узлов замены блокаподстановки алгоритма шифрования ГОСТ 28147-89".

Смышляев, Алексеев, Агафьин () 76 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

Технический комитет по стандартизации

”Криптографическая защита информации“Росстандарта (ТК 26)

Для использования в протоколах описанных в стандартахалгоритмов необходимы происследованные безопасные конструкциина их основе.

"Рекомендации по стандартизации. Использованиекриптографических алгоритмов, сопутствующих применениюстандартов ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012".

Смышляев, Алексеев, Агафьин () 77 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

Технический комитет по стандартизации

”Криптографическая защита информации“Росстандарта (ТК 26)

Для работы российских криптоалгоритмов в протоколахнеобходимы происследованные безопасные процедуры работы.

"Техническая спецификация по использованию ГОСТ 28147-89,ГОСТ Р 34.11-94 и ГОСТ Р 34.10-2001 при согласованииключей в протоколах IKE и ISAKMP"."Техническая спецификация по использованию ГОСТ 28147-89при шифровании вложений в протоколе IPsec ESP"."Техническая спецификация по использованию ГОСТ Р34.11-94 при обеспечении целостности в протоколах IPsec AH иESP".

Смышляев, Алексеев, Агафьин () 78 / 128

© 2000-2015 КРИПТО-ПРО

Криптография на ГОСТ и реальная защищенность Рекомендации по стандартизации ТК 26

Технический комитет по стандартизации

”Криптографическая защита информации“Росстандарта (ТК 26)

"Техническая спецификация использования алгоритмов ГОСТР 34.10, ГОСТ Р 34.11 в профиле сертификата и списке отзывасертификатов (CRL) инфраструктуры открытых ключейX.509"."Рекомендации по стандартизации. Использование алгоритмовГОСТ 28147-89, ГОСТ Р 34.11 и ГОСТ Р 34.10 вкриптографических сообщениях формата CMS"."Рекомендации по стандартизации. Использованию наборовалгоритмов шифрования на основе ГОСТ 28147-89 дляпротокола безопасности транспортного уровня (TLS)".

Смышляев, Алексеев, Агафьин () 79 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 80 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Решаемые задачи

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 81 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Решаемые задачи

Решаемые нетривиальные задачи при реализации

Диспетчеризация смарт-картМинимизация обращений к устройствам.Кэширование: паролей и контекстов.Синхронизация: отдельные блокировки для каждой ОС.

Защита криптографических ключейЕсли ключ окажется в памяти в открытом виде, обязательнонайдется уязвимость, через которую его можно достать (см.HeartBleed). Иногда достаточно даже простого аппаратного сбоя.

Хранение ключей под маскирующим преобразованием: как насмарт-картах, так и в ОЗУ.Выполнение операций над преобразованными данными.Нормализация времени выполнения операций для исключенияатак по энергопотреблению.

Смышляев, Алексеев, Агафьин () 82 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 83 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Хранение криптографических ключей

Подходы к хранению ключейФлешки / файлы / реестр.Пассивные ключевые носители.Активные ключевые носители.Ключевые носители с протоколами нового поколения.

Смышляев, Алексеев, Агафьин () 84 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Пассивные токены

Смышляев, Алексеев, Агафьин () 85 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Активные токены

Смышляев, Алексеев, Агафьин () 86 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Биометрические токены

Использование вносит третий фактор аутентификации: наличиесамого пользователя.

Плюсы:Защита даже при компрометации ПИН-кода.Потенциальная возможность встраивания в существующиесистемы.

Минусы:Усложнение архитектур пользовательских приложений.Повышение сложности программного обеспечения токенов.

Смышляев, Алексеев, Агафьин () 87 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Защищенный обмен сообщениями

Смышляев, Алексеев, Агафьин () 88 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Протоколы защиты с сервером

Смышляев, Алексеев, Агафьин () 89 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Протоколы защиты с сервером

Примеры:Универсальная электронная карта (УЭК).Электронные паспорта РФ (проект).

Плюсы:Защита практически от любого нарушителя в канале.Использование простых протоколов (DH) и структур данных(CV-сертификаты).

Минусы:Требуется подключение к Интернет с определеннымиразрешениями.Высокий порог вхождения даже для продвинутогопользователя.

Смышляев, Алексеев, Агафьин () 90 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Защищенные считыватели: визуализация данных

Смышляев, Алексеев, Агафьин () 91 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Защищенные считыватели: визуализация данных

Смышляев, Алексеев, Агафьин () 92 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Защищенные считыватели: Подпись на телефоне

Смышляев, Алексеев, Агафьин () 93 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Ключевые носители

Защищенные считыватели: Подпись на телефоне

Смышляев, Алексеев, Агафьин () 94 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Генераторы случайных чисел

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 95 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Генераторы случайных чисел

ГСЧ, ДСЧ, ГПСЧ

Случайные числа – важнейший аттрибут любойкриптографической системы.

Зачем изобретать велосипед? Можно взять любой надежныйзападный ДСЧ!

Dual EC DRBG: продвижение скрытно проплачивается АНБ(Сноуден, 2013).Intel Secure Key: потенциальный рай для аппаратных закладок(Becker, 2013).Linux RNG: вся энтропия основана на теоретическинеобоснованных утверждениях.Windows RNG: проприетарный....?

Смышляев, Алексеев, Агафьин () 96 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Генераторы случайных чисел

ГСЧ, ДСЧ, ГПСЧ

Случайные числа – важнейший аттрибут любойкриптографической системы.

Зачем изобретать велосипед? Можно взять любой надежныйзападный ДСЧ!

Dual EC DRBG: продвижение скрытно проплачивается АНБ(Сноуден, 2013).Intel Secure Key: потенциальный рай для аппаратных закладок(Becker, 2013).Linux RNG: вся энтропия основана на теоретическинеобоснованных утверждениях.Windows RNG: проприетарный....?

Смышляев, Алексеев, Агафьин () 96 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Генераторы случайных чисел

ГСЧ, ДСЧ, ГПСЧ

Случайные числа – важнейший аттрибут любойкриптографической системы.

Зачем изобретать велосипед? Можно взять любой надежныйзападный ДСЧ!

Dual EC DRBG: продвижение скрытно проплачивается АНБ(Сноуден, 2013).Intel Secure Key: потенциальный рай для аппаратных закладок(Becker, 2013).Linux RNG: вся энтропия основана на теоретическинеобоснованных утверждениях.Windows RNG: проприетарный....?

Смышляев, Алексеев, Агафьин () 96 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Генераторы случайных чисел

Отечественные ГСЧ

Вид Представители Высокаяскорость

Широкаяприменимость

Аппаратныедатчики

"Соболь";"Аккорд"; ... + –

Биологическиедатчики КриптоПро CSP – +

Перспективныедатчики

Попов-Смышляев"РусКрипто’2013";Агафьин"РусКрипто’2015";

+ +

Смышляев, Алексеев, Агафьин () 97 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

1 Российские криптоалгоритмы: стандарты, мифы, перспективыСтойкость алгоритмов ГОСТПроизводительность алгоритмов ГОСТ

2 Криптография на ГОСТ и реальная защищенностьБезопасность ”бумажная“ и реальнаяУязвимости при небезопасном выборе IV в CBC, CFBУязвимости при небезопасном использовании паддингаУязвимости при перекрытии гаммыУязвимости при превышении нагрузки на ключВыбор алгоритма хэшированияРекомендации по стандартизации ТК 26

3 Практическое использованиеРешаемые задачиКлючевые носителиГенераторы случайных чиселВстраивание отечественной криптографии

Смышляев, Алексеев, Агафьин () 98 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Встраивание

Это всё здорово, но...Западные решения и алгоритмы есть по умолчанию везде. Что женужно, чтобы работали отечественные?

А почти ничего!

Смышляев, Алексеев, Агафьин () 99 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Встраивание

Это всё здорово, но...Западные решения и алгоритмы есть по умолчанию везде. Что женужно, чтобы работали отечественные?

А почти ничего!

Смышляев, Алексеев, Агафьин () 99 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Встраивание в Microsoft Windows

Microsoft Office: Outlook, Word, ExcelШифрование писем.Подпись писем.Подпись документов.

WinlogonАутентификация на локальной машине по смарт-карте.Аутентификация по RDP.

TLSКлиентские и серверные приложения, функционирующие черезстандартные WinAPI-функции.

Смышляев, Алексеев, Агафьин () 100 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Встраивание в Microsoft Windows

Microsoft Office: Outlook, Word, ExcelШифрование писем.Подпись писем.Подпись документов.

WinlogonАутентификация на локальной машине по смарт-карте.Аутентификация по RDP.

TLSКлиентские и серверные приложения, функционирующие черезстандартные WinAPI-функции.

Смышляев, Алексеев, Агафьин () 100 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Встраивание в Microsoft Windows

Microsoft Office: Outlook, Word, ExcelШифрование писем.Подпись писем.Подпись документов.

WinlogonАутентификация на локальной машине по смарт-карте.Аутентификация по RDP.

TLSКлиентские и серверные приложения, функционирующие черезстандартные WinAPI-функции.

Смышляев, Алексеев, Агафьин () 100 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Встраивание в Microsoft Windows

Высокая модульность WindowsCryptoAPI – интерфейс из нескольких десятков функций,реализовав которые в наборе библиотек (криптографическомпровайдере), можно путем изменения нескольких аргументовдобиться корректного применения любых криптографическихалгоритмов.SSPI API – интерфейс, благодаря которому можно создаватьсобственные реализации протоколов безопасности, в т.ч.сетевого обмена (TLS).

Смышляев, Алексеев, Агафьин () 101 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

А как же Unix?

Поддержка в библиотекахOpenSSL.LibreSSL.

Следовательно, поддержка на серверахnginx.Apache.

Смышляев, Алексеев, Агафьин () 102 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

А как же Unix?

ПО, использующее криптографию, с помощью CryptoAPI подWindows писать просто.

Как портировать на Unix, где нет системного обработчикаCryptoAPI?

Реализовать данный обработчик. Либо использовать бесплатнуюбиблиотеку, которая уже это делает (capilite).

Смышляев, Алексеев, Агафьин () 103 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

А как же Unix?

ПО, использующее криптографию, с помощью CryptoAPI подWindows писать просто.

Как портировать на Unix, где нет системного обработчикаCryptoAPI?

Реализовать данный обработчик. Либо использовать бесплатнуюбиблиотеку, которая уже это делает (capilite).

Смышляев, Алексеев, Агафьин () 103 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

А как же Unix?

ПО, использующее криптографию, с помощью CryptoAPI подWindows писать просто.

Как портировать на Unix, где нет системного обработчикаCryptoAPI?

Реализовать данный обработчик. Либо использовать бесплатнуюбиблиотеку, которая уже это делает (capilite).

Смышляев, Алексеев, Агафьин () 103 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Как работать с криптографией через интерфейсы?

CryptoAPI 1.0

Базовые простые функции.

Работа с байтовыми массивами.

CryptoAPI 2.0

Расширенные функции.

Работа с ключами через сертификаты.

Большое количество функций под различные задачи.

Например, CryptSignMessage() позволяет подписать сообщениеключом из заданного открытого контекста.

Смышляев, Алексеев, Агафьин () 104 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Пример CryptoAPI 1.0: Как выполнить протоколДиффи-Хеллмана?

AliceCryptGetUserKey(AliceProv, AT_KEYEXCHANGE, &AliceKey, ...)CryptExportKey(AliceKey, PUBLICKEY_BLOB, pbAlicePublicKey,...)

BobCryptGetUserKey(BobProv, AT_KEYEXCHANGE, &BobKey, ...)CryptExportKey(BobKey, PUBLICKEY_BLOB, pbBobPublicKey,...)

AliceCryptImportKey(AliceKey, pbBobPublicKey, &DHKeyA, ...)CryptSetKeyParam (DHKeyA, KP_ALGID, pbAlgId28147, ...)

BobCryptImportKey(BobKey, pbAlicePublicKey, &DHKeyB, ...)CryptSetKeyParam (DHKeyB, KP_ALGID, pbAlgId28147, ...)

Смышляев, Алексеев, Агафьин () 105 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Браузеры

Internet Explorer работает через интерфейсы MS ⇒ алгоритмыдоступны из коробки при наличии CSP.

Возможна сборка с алгоритмамиMozilla.Chromium.

При наличии бесплатного плагина CADESGoogle Chrome.Mozilla.Opera.

Смышляев, Алексеев, Агафьин () 106 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Браузеры

Internet Explorer работает через интерфейсы MS ⇒ алгоритмыдоступны из коробки при наличии CSP.

Возможна сборка с алгоритмамиMozilla.Chromium.

При наличии бесплатного плагина CADESGoogle Chrome.Mozilla.Opera.

Смышляев, Алексеев, Агафьин () 106 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Браузеры

Internet Explorer работает через интерфейсы MS ⇒ алгоритмыдоступны из коробки при наличии CSP.

Возможна сборка с алгоритмамиMozilla.Chromium.

При наличии бесплатного плагина CADESGoogle Chrome.Mozilla.Opera.

Смышляев, Алексеев, Агафьин () 106 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Спасибо за внимание!

Вопросы?

Материалы, вопросы, комментарии:[email protected];[email protected];[email protected].

Смышляев, Алексеев, Агафьин () 107 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Режимы CBC, CFB: уязвимости при небезопасномвыборе синхропосылок

Отправитель −→ (C1| . . . |Cm) = EK(M1| . . . |Mm) −→ Получатель↓

Нарушитель

Нарушителем проверяется гипотеза: блок Mi равен M∗.

Смышляев, Алексеев, Агафьин () 108 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Режимы CBC, CFB: уязвимости при небезопасномвыборе синхропосылок

Отправитель −→ . . . −→ Получатель↑

M′ ←− Нарушитель ←−error:incorrect padding

Отправителю навязывается зашифрование сообщения,начальный блок которого равен M′ = Ci−1 ⊕ IV ⊕M∗.

Смышляев, Алексеев, Агафьин () 109 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Режимы CBC, CFB: уязвимости при небезопасномвыборе синхропосылок

Отправитель −→ EK(M′|M̃2| . . . |M̃q) −→ Получатель↑ ↓

M’ ←− Нарушитель ←−error:incorrect padding

Первый блок ШТ будет равенC′ = EK(M′ ⊕ IV) = EK(Ci−1 ⊕ IV ⊕M∗ ⊕ IV) = EK(Ci−1 ⊕M∗).Mi = M∗ тогда и только тогда, когда C′ = Ci.

Смышляев, Алексеев, Агафьин () 110 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

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

. . .BYTE* pbMAC = pbData + dwLen;DWORD dwPaddedDataLen = dwLen;. . .

CryptCreateHash(hProv, CALG_G28147_IMIT, hKey, 0, &hVerifyMAC);if(!CryptDecrypt(hKey, 0, TRUE, 0, pbData, &dwLen))

SendErrorCodeToChannel("error: incorrect padding");CryptHashData(hVerifyMac, pbData, dwPaddedDataLen, 0);CryptGetHashParam(hMAC, HP_HASHVAL, pbVerMAC, &dwVerifyMACLen, 0);if(memcmp(pbMAC, pbVerifyMAC, dwVerifyMACLen))

SendErrorCodeToChannel("error: incorrect MAC");else

SendErrorCodeToChannel("success");

Смышляев, Алексеев, Агафьин () 111 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель −→ C = (EK(M)|MACK(M)) −→ Получатель↓

Нарушитель

EK(M) = (C1|C2| . . . |CdwLen8

)

Ci = EK(Ci−1 ⊕Mi) = (c1i |c2i | . . . |c

8i )

Mi = (m1i |m

2i | . . . |m

8i )

Цель нарушителя: дешифровать последний байт Ci.

Смышляев, Алексеев, Агафьин () 112 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (Tj|Ci|Incorrect_MAC) −→ Получатель↑

Нарушитель

Формируются случайные блоки Tj = (t1j | . . . |t8j ), j = 1, 2, . . ..

Вместе с Ci и произвольным (заведомо неверным) значениемимитовставки блоки Tj отправляются в канал.

Смышляев, Алексеев, Агафьин () 113 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (Tj|Ci|Incorrect_MAC) −→ Получатель↑

Нарушитель

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t1j |t2j | . . . |t

8j )?=

(. . . |0x01)или (. . . |0x02|0x02)

или (. . . |0x03|0x03|0x03). . .

Смышляев, Алексеев, Агафьин () 114 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T1|Ci|Incorrect_MAC) −→ Получатель↑

Нарушитель ←−error:incorrect padding

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t11|t21| . . . |t

81)=

Смышляев, Алексеев, Агафьин () 115 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T1|Ci|Incorrect_MAC) −→ Получатель↑ ↓

Нарушитель ←−error:incorrect padding

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t11|t21| . . . |t

81)=

(0xF3|0xAD|0x3D|0x71|0x1D|0xAA|0x01|0x31)

Смышляев, Алексеев, Агафьин () 116 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T2|Ci|Incorrect_MAC) −→ Получатель↑

Нарушитель error:incorrect padding

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t12|t22| . . . |t

82)=

Смышляев, Алексеев, Агафьин () 117 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T2|Ci|Incorrect_MAC) −→ Получатель↑ ↓

Нарушитель ←−error:incorrect padding

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t12|t22| . . . |t

82)=

(0x32|0x3D|0x13|0x8D|0xC5|0x81|0x7C|0xA5)

Смышляев, Алексеев, Агафьин () 118 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T130|Ci|Incorrect_MAC) −→ Получатель↑

Нарушитель error:incorrect padding

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t1130|t2130| . . . |t

8130)=

Смышляев, Алексеев, Агафьин () 119 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T130|Ci|Incorrect_MAC) −→ Получатель↑ ↓

Нарушитель ←−error:incorrect padding

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t1130|t2130| . . . |t

8130)=

(0x48|0xFA|0xD0|0x3E|0x01|0x4C|0x86|0xD1)

Смышляев, Алексеев, Агафьин () 120 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T131|Ci|Incorrect_MAC) −→ Получатель↑

Нарушитель error:incorrect MAC

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t1131|t2131| . . . |t

8131)=

Смышляев, Алексеев, Агафьин () 121 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

Отправитель (T131|Ci|Incorrect_MAC) −→ Получатель↑ ↓

Нарушитель ←−error:incorrect MAC

Получатель: обработка второго блока сообщения

DK(c1i |c2i | . . . |c

8i )⊕

(t1131|t2131| . . . |t

8131)=

(0x89|0x12|0x84|0x0C|0x01|0xAB|0x86|0x01)

Смышляев, Алексеев, Агафьин () 122 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

(m1i |m

2i | . . . |m

8i )=

(c1i−1|c2i−1| . . . |c

8i−1)⊕

(t1131|t2131| . . . |t

8131)⊕

(0x??|0x??|0x??|0x??|0x??|0x??|0x??|0x01)

При возникновении кода ошибки на этапе проверкиимитовставки (после успешной проверки паддинга)нарушитель вычисляет m8

i .

Смышляев, Алексеев, Агафьин () 123 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

Уязвимости при небезопасном использовании паддинга

(m1i |m

2i | . . . |m

8i )=

(c1i−1|c2i−1| . . . |c

8i−1)⊕

(t1131|t2131| . . . |t

8131)⊕

(0x??|0x??|0x??|0x??|0x??|0x??|0x??|0x01)

При возникновении кода ошибки на этапе проверкиимитовставки (после успешной проверки паддинга)нарушитель вычисляет m8

i .

Смышляев, Алексеев, Агафьин () 124 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

РешениеОтсекать побочный канал по коду ошибки прирасшифровании/проверке имитовставки.

. . .BYTE* pbMAC = pbData + dwLen;DWORD dwPaddedDataLen = dwLen;. . .

CryptCreateHash(hProv, CALG_G28147_IMIT, hKey, 0, &hVerifyMAC);if(!CryptDecrypt(hKey, 0, TRUE, 0, pbData, &dwLen))

SendErrorCodeToChannel("error: incorrect padding");CryptHashData(hVerifyMac, pbData, dwPaddedDataLen, 0);CryptGetHashParam(hMAC, HP_HASHVAL, pbVerMAC, &dwVerifyMACLen, 0);if(memcmp(pbMAC, pbVerifyMAC, dwVerifyMACLen))

SendErrorCodeToChannel("error: incorrect MAC");else

SendErrorCodeToChannel("success");

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

Смышляев, Алексеев, Агафьин () 125 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

РешениеОтсекать побочный канал по коду ошибки прирасшифровании/проверке имитовставки.

. . .BYTE* pbMAC = pbData + dwLen;DWORD dwPaddedDataLen = dwLen;. . .

CryptCreateHash(hProv, CALG_G28147_IMIT, hKey, 0, &hVerifyMAC);if(!CryptDecrypt(hKey, 0, TRUE, 0, pbData, &dwLen))

SendErrorCodeToChannel("error");CryptHashData(hVerifyMac, pbData, dwPaddedDataLen, 0);CryptGetHashParam(hMAC, HP_HASHVAL, pbVerMAC, &dwVerifyMACLen, 0);if(memcmp(pbMAC, pbVerifyMAC, dwVerifyMACLen))

SendErrorCodeToChannel("error");else

SendErrorCodeToChannel("success");

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

Смышляев, Алексеев, Агафьин () 126 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

РешениеОтсекать побочный канал по коду ошибки прирасшифровании/проверке имитовставки.

. . .BYTE* pbMAC = pbData + dwLen;DWORD dwPaddedDataLen = dwLen;. . .

CryptCreateHash(hProv, CALG_G28147_IMIT, hKey, 0, &hVerifyMAC);if(!CryptDecrypt(hKey, 0, TRUE, 0, pbData, &dwLen))

SendErrorCodeToChannel("error");CryptHashData(hVerifyMac, pbData, dwPaddedDataLen, 0);CryptGetHashParam(hMAC, HP_HASHVAL, pbVerMAC, &dwVerifyMACLen, 0);if(memcmp(pbMAC, pbVerifyMAC, dwVerifyMACLen))

SendErrorCodeToChannel("error");else

SendErrorCodeToChannel("success");

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

Смышляев, Алексеев, Агафьин () 127 / 128

© 2000-2015 КРИПТО-ПРО

Практическое использование Встраивание отечественной криптографии

РешениеОтсекать побочный канал по коду ошибки прирасшифровании/проверке имитовставки.

. . .BYTE* pbMAC = pbData + dwLen;DWORD dwPaddedDataLen = dwLen;. . .

CryptCreateHash(hProv, CALG_G28147_IMIT, hKey, 0, &hVerifyMAC);if(!CryptDecrypt(hKey, 0, TRUE, 0, pbData, &dwLen))

bErrorOnDecrypt = TRUE;CryptHashData(hVerifyMac, pbData, dwPaddedDataLen, 0);CryptGetHashParam(hMAC, HP_HASHVAL, pbVerMAC, &dwVerifyMACLen, 0);if(memcmp(pbMAC, pbVerifyMAC, dwVerifyMACLen) || bErrorOnDecrypt)

SendErrorCodeToChannel("error");else

SendErrorCodeToChannel("success");

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

Смышляев, Алексеев, Агафьин () 128 / 128