И где они такую траву берут?
Jun. 8th, 2010 01:06 pmПришел на саппорт реквест, который саппротеры до меня проэскалировали. Хотя мы еще вроде как продукта на базе OpenSSL 1.0.0 не продаем, но вопросы уже задают:
> Нас интересует работа ГОСТ (89, 94, 2001) в openssl, и хотелось бы
> посмотреть на работу этих алгоритмов.
> Из описания на вашем сайте поддержки российских криптоалгоритмов в
> openssl, дана информация что в состав openssl версии 1.0.0 и выше уже
> включена поддержка росалгоритмов, разработанные вами.
> Я использовал src.rpm и rpm-пакеты openssl версии 1.0.0-3 из репозитария
> Fedora.
> При пересборке и установке openssl, и после выполнения любой команды с
> обращением к требуемым алгоритмам появляется ошибка, например:
> ---------------------------------
> openssl req -newkey gost2001:A -keyout mykey.p8 -out mykey.req
> Unknown algorithm gost2001
> ---------------------------------
> Пытался пересобирать пакет, отредактировав spec-файл (по разным
> источникам надо добавить парамерты в блок конфигурации enable-gost89
> enable-2001, по другим просто enable-gost) всё равно алгоритмы ГОСТ не
> были включены после установки
Блин, по каким-таким источникам? Скрипт Configure в OpenSSL не автоконфом каким сгенерен, человеком писан. Его читать можно. Там даже комментарии есть. И это есть единственный и неповторимый источником знаний о том, какие возможны опции. enable-gost бывает. Но она включена по умолчанию.
Засада в том, что в fedora собирают OpenSSL с no-ec. А если no-ec, то извините, никакого вам ГОСТа Потому что гост на эллиптических кривых. Еще почему-то также требуется dsa и dh. Если что-то из этих трех выключено, то $disable{"gost"} выставляется в "forced" и никакие отдельные enable не помогут, пока не сделаешь enable пререквизиту.
Вторая засада заклюючается в fips. Это - американская сертификация. И требования этой сертификации запрещают использовать не-фипс алгоритмы. Редхатовцы собирают openssl в FIPS mode, чем эффективно режут возможность работы с неамериканскими национальными алгоритмами.
Плюс еще у них некоторые приложения вроде sshd используют FIPS-cпецифичный API, поэтому сделать drop-in replacement не так-то просто, хотя и возможно.
И еще эти извращенцы из RedHat включили в свой rpm патчик, который искусственно занижает OPENSSL_VERSION_NUMBER до номера версии той беты, с котрой они впервые собирались. Хотя с тех пор уже вышло три беты и два релиза. Потому что у них тот же sshd проверяет OPENSSL_VERSION_NUMBER на ТОЧНОЕ равенство. Ну если бы он хотя бы младшую цифру проверял на больше либо равно...
Я понимаю, что человек столкнувшийся впервые с криптографией может всех этих тонкостей не знать. Но читать-то код на perl уметь надо!
> Нас интересует работа ГОСТ (89, 94, 2001) в openssl, и хотелось бы
> посмотреть на работу этих алгоритмов.
> Из описания на вашем сайте поддержки российских криптоалгоритмов в
> openssl, дана информация что в состав openssl версии 1.0.0 и выше уже
> включена поддержка росалгоритмов, разработанные вами.
> Я использовал src.rpm и rpm-пакеты openssl версии 1.0.0-3 из репозитария
> Fedora.
> При пересборке и установке openssl, и после выполнения любой команды с
> обращением к требуемым алгоритмам появляется ошибка, например:
> ---------------------------------
> openssl req -newkey gost2001:A -keyout mykey.p8 -out mykey.req
> Unknown algorithm gost2001
> ---------------------------------
> Пытался пересобирать пакет, отредактировав spec-файл (по разным
> источникам надо добавить парамерты в блок конфигурации enable-gost89
> enable-2001, по другим просто enable-gost) всё равно алгоритмы ГОСТ не
> были включены после установки
Блин, по каким-таким источникам? Скрипт Configure в OpenSSL не автоконфом каким сгенерен, человеком писан. Его читать можно. Там даже комментарии есть. И это есть единственный и неповторимый источником знаний о том, какие возможны опции. enable-gost бывает. Но она включена по умолчанию.
Засада в том, что в fedora собирают OpenSSL с no-ec. А если no-ec, то извините, никакого вам ГОСТа Потому что гост на эллиптических кривых. Еще почему-то также требуется dsa и dh. Если что-то из этих трех выключено, то $disable{"gost"} выставляется в "forced" и никакие отдельные enable не помогут, пока не сделаешь enable пререквизиту.
Вторая засада заклюючается в fips. Это - американская сертификация. И требования этой сертификации запрещают использовать не-фипс алгоритмы. Редхатовцы собирают openssl в FIPS mode, чем эффективно режут возможность работы с неамериканскими национальными алгоритмами.
Плюс еще у них некоторые приложения вроде sshd используют FIPS-cпецифичный API, поэтому сделать drop-in replacement не так-то просто, хотя и возможно.
И еще эти извращенцы из RedHat включили в свой rpm патчик, который искусственно занижает OPENSSL_VERSION_NUMBER до номера версии той беты, с котрой они впервые собирались. Хотя с тех пор уже вышло три беты и два релиза. Потому что у них тот же sshd проверяет OPENSSL_VERSION_NUMBER на ТОЧНОЕ равенство. Ну если бы он хотя бы младшую цифру проверял на больше либо равно...
Я понимаю, что человек столкнувшийся впервые с криптографией может всех этих тонкостей не знать. Но читать-то код на perl уметь надо!