Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018)

Материал из 0x1.tv

Докладчик
Дмитрий Белявский.jpg
Дмитрий Белявский

Поддержка российской криптографии в свободном ПО становится всё более актуальной в связи с текущими политическими тенденциями. Доклад рассказывает об основных вариантах доработок свободного ПО, использующего OpenSSL, для работы с российской криптографией.

Видео

on youtube

Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.

Презентация

Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018).pdf

Thesis

Компания «Криптоком» последовательно занимается внедрением поддержки российской криптографии в Open Source продукты в течение последних 15 лет. За это время накоплен опыт доработок свободного ПО для поддержки криптографии по ГОСТ.

Первое, что мы сделали — приняли решение, что поддержка российской криптографии будет встроена в OpenSSL. Это один из самых популярных инструментов для работы с разного рода алгоритмами и протоколами. Поддержка была добавлена в линейку версий 1.0, которая остаётся актуальной до конца 2019 года. Она включала в себя как модификацию архитектуры, так и свободную реализацию алгоритмов по ГОСТ. Впоследствии engine был выделен в отдельный проект и сейчас он развивается отдельно, хотя и параллельно. Многие более мелкие патчи, добавляющие российские алгоритмы, расширения и т.п. в закрытые списки, также включены в upstream.

Для большинства приложений, использующих OpenSSL, достаточно обеспечить загрузку engine. До ветки 1.1.* это делалось вызовом функции OPENSSL_config(). Сейчас актуальный способ требует вызова функции OpenSSL_add_all_algorithms() и сборки -DOPENSSL_LOAD_CONF.

Авторы некоторых приложений, особенно сравнительно старых, содержат прибитый гвоздями в лучшем случае список алгоритмов, а в худшем — только RSA. Если такие приложения удаётся перевести на EVP-интерфейс — универсальный для OpenSSL последних версий — то годятся предыдущие советы. Если нет, то может оказаться проще этот интерфейс хотя бы частично дописать.

В случае с библиотекой XMLSec пришлось полностью отклонировать структуры callback-функций и наполнить их ГОСТ-овым содержанием с опорой на уже упомянутый EVP интерфейс.

Для приложений, использующих нестандартные протоколы, такие как OpenVPN, недостаточно механически заменить криптопримитивы. Так, для OpenVPN при работе с поддержкой ГОСТ используется содержательно другая технология имитозащиты (имитовставка по ГОСТ существенно отличается от HMAC) и PRF (Pseudo Random Function) с использованием ГОСТ. В этом случае требуется содержательный анализ кода.

Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018)!.jpg

Примечания и ссылки

По результатам этого выступления была создана eмайл рассылка, посвященная российской криптографии в open-source.

Plays:71   Comments:0