Российская криптография в свободном ПО (Дмитрий Белявский, OSSDEVCONF-2018)
- Докладчик
- Дмитрий Белявский
Поддержка российской криптографии в свободном ПО становится всё более актуальной в связи с текущими политическими тенденциями. Доклад рассказывает об основных вариантах доработок свободного ПО, использующего OpenSSL, для работы с российской криптографией.
Содержание
Видео
Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.
Презентация
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) с использованием ГОСТ. В этом случае требуется содержательный анализ кода.
Примечания и ссылки
По результатам этого выступления была создана eмайл рассылка, посвященная российской криптографии в open-source.
- https://lists.altlinux.org/mailman/listinfo/oss-gost-crypto
- https://www.altlinux.org/OSS-GOST-Crypto
- Discuss on VK
- Discuss on Facebook
Plays:71 Comments:0