ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017) — различия между версиями

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

(Новая страница: «;{{SpeakerInfo}}: {{Speaker|Дмитрий Белявский}} <blockquote> Начиная с 2005 года мои коллеги и я занимаемся вн…»)
 
;{{SpeakerInfo}}: {{Speaker|Дмитрий Белявский}}
<blockquote>
Начиная с 2005 года мои коллеги и я занимаемся внедрением поддержки российской специфики в OpenSSL.

Российская специфика не сводится к криптографии, хотя начиналось всё именно с неё. Не меньшее значение имеет и
корректный вывод русских букв, и поддержка расширений X.509-сертификатов, и многое другое.

На первом этапе работа сводилась прежде всего к выделению структур, предназначенных реализовать более-менее любой
алгоритм электронной подписи в OpenSSL. Этот этап был закончен к выходу версии 1.0, когда эти структуры были
специфицированы, и в состав проекта OpenSSL вошла реализация алгоритмов шифрования, хеширования и электронной подписи
по ГОСТ. Тогда поддержка была добавлена за счёт спонсорства моего работодателя на тот момент, фирмы «Криптоком». 

На тот момент в OpenSSL не было отлаженных процедур работы с запросами извне, и если запрос не был интересен кому-нибудь
из core team или не был спонсирован, с большими шансами обращение, не приводящее к уязвимости, игнорировалось. 

Внутренние процедуры в OpenSSL существенно изменились после Heartbleed, когда стало понятно, что такой механизм развития
продукта чреват большими неприятностями. Тогда были получены средства, выстроены процедуры и составлен план развития
продукта.

К этому моменту было принято новое семейство стандартов ГОСТ (хеш и электронная подпись), поддержка которых существовала
в виде патчей у того же «Криптокома». Было желание включить это в апстрим, но не было понимания, как именно.

Следующий этап наступил в результате моего знакомства с Ричем Сальзом (Rich Salz) на одной из конференций IETF. Там мне
удалось договориться о включении поддержки ГОСТ в ядро системы в части протоколов и о вынесении ГОСТ engine в отдельный
проект. Это было сделано в 2015 году, и начиная с версии 1.1.0 код для поддержки ГОСТ в TLS, PKCS12, PKCS8 и кое-где по
мелочи входит в апстрим. Реализация алгоритмов живёт отдельно.

Потом присылались отдельные патчи, исправлявшие вывод русских букв, утечки памяти и прочие мелочи. 

Общий вывод: успех в добавлении кода в апстрим зависит от наличия у апстрима процедур и личных знакомств с
представителями основной команды, настроенных на взаимодействие. 
</blockquote>

{{VideoSection}}

{{vimeoembed||800|450}}
<!-- {{youtubelink|}} -->

{{SlidesSection}}
[[File:ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf|left|page=-|300px]]

{{----}}

== Thesis ==

{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->


<references/>

[[Категория:OSSDEVCONF-2017]]

Версия 17:54, 3 октября 2017

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

Начиная с 2005 года мои коллеги и я занимаемся внедрением поддержки российской специфики в OpenSSL.

Российская специфика не сводится к криптографии, хотя начиналось всё именно с неё. Не меньшее значение имеет и корректный вывод русских букв, и поддержка расширений X.509-сертификатов, и многое другое.

На первом этапе работа сводилась прежде всего к выделению структур, предназначенных реализовать более-менее любой алгоритм электронной подписи в OpenSSL. Этот этап был закончен к выходу версии 1.0, когда эти структуры были специфицированы, и в состав проекта OpenSSL вошла реализация алгоритмов шифрования, хеширования и электронной подписи по ГОСТ. Тогда поддержка была добавлена за счёт спонсорства моего работодателя на тот момент, фирмы «Криптоком».

На тот момент в OpenSSL не было отлаженных процедур работы с запросами извне, и если запрос не был интересен кому-нибудь из core team или не был спонсирован, с большими шансами обращение, не приводящее к уязвимости, игнорировалось.

Внутренние процедуры в OpenSSL существенно изменились после Heartbleed, когда стало понятно, что такой механизм развития продукта чреват большими неприятностями. Тогда были получены средства, выстроены процедуры и составлен план развития продукта.

К этому моменту было принято новое семейство стандартов ГОСТ (хеш и электронная подпись), поддержка которых существовала в виде патчей у того же «Криптокома». Было желание включить это в апстрим, но не было понимания, как именно.

Следующий этап наступил в результате моего знакомства с Ричем Сальзом (Rich Salz) на одной из конференций IETF. Там мне удалось договориться о включении поддержки ГОСТ в ядро системы в части протоколов и о вынесении ГОСТ engine в отдельный проект. Это было сделано в 2015 году, и начиная с версии 1.1.0 код для поддержки ГОСТ в TLS, PKCS12, PKCS8 и кое-где по мелочи входит в апстрим. Реализация алгоритмов живёт отдельно.

Потом присылались отдельные патчи, исправлявшие вывод русских букв, утечки памяти и прочие мелочи.

Общий вывод: успех в добавлении кода в апстрим зависит от наличия у апстрима процедур и личных знакомств с представителями основной команды, настроенных на взаимодействие.

Видео

Презентация

ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf ГОСТ в OpenSSL — 12 лет международного взаимодействия (Дмитрий Белявский, OSSDEVCONF-2017).pdf

Thesis

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