1. большую работу по алгоритмам ГОСТ ведёт "Криптоком"
Имеются следующие реализации российской криптографии для openssl:
Программный продукт МагПро КриптоПакет;
Поддержка ГОСТ в OpenSSL 0.9.8;
Поддержка ГОСТ в OpenSSL 1.0.0.
Поддерживаемая функциональность:
В соответствии с RFC 4357:
Электронная подпись ГОСТ Р 34.10-2001;
Распределение ключей VKO 34.10-2001;
Хэширование ГОСТ Р 34.11-94;
Симметричное шифрование ГОСТ 28147-89;
MAC (имитовставка) ГОСТ 28147-89.
работа с защищенными сообщениями по RFC 4490;
функциональность PKI по RFC 4491;
шифрсьюты TLS на базе российских алгоритмов в соответствии с draft-chudov-cryptopro-cptls.
Общую информацию лучше читать там.
2. Поддержка ГОСТ в OpenSSL существует давно (http://forum.russianfedora.ru/viewtopic.php?f=5&t=2849):
По моим наблюдениям, даже в OpenSSL 0.9.8 она уже есть (хотя считается, что в 1.0.0 и 1.0.1)Уже как минимум с 2009го года в OpenSSL есть поддержка российских алгоритмов шифрования и ЭЦП ГОСТ. Тем не менее, ребята из Федоры упорно собирают OpenSSL без поддержки этих алгоритмов. Это понятно - все мы под КГБ^H^H^H ЦРУ^H^H^H (нувыпонели) ходим, и им, вероятно, не хочется с ними ссориться. Тем не менее, хотелось бы таки иметь полноценно собранный OpenSSL со всеми алгоритмами.
3. Но многие майнтейнеры дистрибутивов (Fedora, RedHat - это точно, но, похоже, что большинство) исключают поддержку ГОСТ опциями при сборке пакета.
Разговоры об этом идут, как минимум, 3 года ... а то и больше (http://forum.russianfedora.ru/viewtopic ... =150#p9504 - 2010г.):
4. Эти вещи вылазят при сборке из исходников (при использовании собранных пакетов-приложений там вообще чудеса будут наблюдаться по сообщениям ошибок!), см. Криптовалюты (и https://copperlark.com/forum/index.php? ... 38#msg3938).GreyWolf писал(а):RPM-то есть - периодически для своих нужд собираю, но тут посерьёзней проблема - FIPS и целенаправленное вырезание EC-алгоритмов RedHat'ом. Один из сотрудников Криптокома (чьими, по-сути, заслугами ГОСТ-алгортимы были продвинуты в OpenSSL) частенько на своём блоге на этот счёт пишет, к примеру, тут: http://vitus-wagner.livejournal.com/501859.html.Vascom писал(а):У вас есть готовый rpm? Вы готовы и дальше его поддерживать? Тогда его можно будет включить в репозиторий russianfedora.GreyWolf писал(а):Вот было бы здорово, если бы в русской федоре, был бы openssl собранный с поддержкой ГОСТ-криптографии. А то постоянно приходится либо пересобирать самому, либо бдить, чтобы не дай бог не обновилась с родных репозиториев.
Может быть как-то попробовать пообщаться непосредственно с криптокомом на предмет мэйнтейнерства?
И такие вещи будут вылезать всё чаще!
Это пока ещё "цветочки".
Как решить эту проблему?
Кое-что из возможных решений подсказывает тот-же "Криптоком" (это для OpenSSL 1.0.1, но там рядом и для 1.0.0 есть):
и далее как обычно...Выполнить команду:Код: Выделить всё
./config shared zlib enable-rfc3779 --prefix=/opt/cryptopack2
Но это, как легко видеть - установка параллельной копии по другим путям, которые нужно указывать приложениям при сборке, или использовать символьные ссылки на библиотеки из /lib.
Я собрал так пробно по их рекомендациям OpenSSL в /opt:
Код: Выделить всё
bash-4.2$ ./openssl ciphers
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:SRP-DSS-AES-256-CBC-SHA:SRP-RSA-AES-256-CBC-SHA:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:DHE-DSS-CAMELLIA256-SHA:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-GCM-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:ECDH-RSA-AES256-SHA:ECDH-ECDSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:CAMELLIA256-SHA:PSK-AES256-CBC-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:SRP-DSS-3DES-EDE-CBC-SHA:SRP-RSA-3DES-EDE-CBC-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:ECDH-RSA-DES-CBC3-SHA:ECDH-ECDSA-DES-CBC3-SHA:DES-CBC3-SHA:PSK-3DES-EDE-CBC-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:SRP-DSS-AES-128-CBC-SHA:SRP-RSA-AES-128-CBC-SHA:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-SEED-SHA:DHE-DSS-SEED-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-DSS-CAMELLIA128-SHA:ECDH-RSA-AES128-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-SHA256:ECDH-ECDSA-AES128-SHA256:ECDH-RSA-AES128-SHA:ECDH-ECDSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:SEED-SHA:CAMELLIA128-SHA:IDEA-CBC-SHA:PSK-AES128-CBC-SHA:ECDHE-RSA-RC4-SHA:ECDHE-ECDSA-RC4-SHA:ECDH-RSA-RC4-SHA:ECDH-ECDSA-RC4-SHA:RC4-SHA:RC4-MD5:PSK-RC4-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC4-MD5
Я так понимаю, ECDH-RSA-DES-CBC3-SHA и ему подобные во множестве алгоритмы - это и есть то, что требовалось.