LINUX.ORG.RU
ФорумAdmin

CentOS 6, OpenSSL, GOST, очередная тема

 , ,


0

1

Привет. Ну вы поняли.

Гугление дало инфу, что начиная с версии 1.0.0 ГОСТ есть «из коробки», но не включен по умолчанию. В 1.0.1 - включен. В el6 - 1.0.0, что ж, будем включать.

https://www.altlinux.org/ГОСТ_в_OpenSSL Берём по этой ссылке файл конфигурации OpenSSL, и кладём его сюда: /etc/ssl/openssl.cnf. Проверяем:

openssl ciphers|tr ':' '\n'|grep GOST

Не работает. Узнаём что в el6 путь к файлу другой: /etc/pki/tls/openssl.cnf. Теперь его редактируем. Проверяем - нифига.

Смотрим /usr/lib/openssl/engines/. Госта нет. Что за ерунда?

С сайта http://vault.centos.org/ скачал SRPM-файл (вот он), открываем openssl.spec и:

./Configure \
--prefix=%{_prefix} --openssldir=%{_sysconfdir}/pki/tls ${sslflags} \
zlib enable-camellia enable-seed enable-tlsext enable-rfc3779 \
enable-cms enable-md2 no-mdc2 no-rc5 no-ec2m no-gost no-srp \
--with-krb5-flavor=MIT --enginesdir=%{_libdir}/openssl/engines \
--with-krb5-dir=/usr shared ${sslarch} %{?!nofips:fips}

Самое интересное место я подчеркнул. Пересобираем пакет. Устанавливаем. И:

 cd /usr/lib/openssl/engines/
 ls
lib4758cca.so  libcapi.so    libgmp.so    libpadlock.so
libaep.so      libchil.so    libgost.so   libsureware.so
libatalla.so   libcswift.so  libnuron.so  libubsec.so

Ура! Он есть. А если посмотреть список файлов оригинального пакета, его нет. Но openssl ciphers|tr ':' '\n'|grep GOST всё равно не говорит что GOST поддерживается. Я встрял. Помогите!

А включать GOST engine в конфиге будет кто? что именно ты отредактировал в конфиге - не ясно, может не всё включил

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Вот такой попробовал:

[openssl_def]
engines = engine_section
 
[engine_section]
gost = gost_section
 
[gost_section]
engine_id = gost
default_algorithms = ALL
CRYPT_PARAMS = id-Gost28147-89-CryptoPro-A-ParamSet
ZenitharChampion ★★★★★ ()

Ну и кому нужен этот гост, кроме банков?

А банки дурью с собиранием соселя из исходников самостоятельно маятся не будут - купят готовое решение с поддержкой от контор, занимающихся шифрованием и прочими хасп-ключами.

svr4 ()
Ответ на: комментарий от svr4

Ну и кому нужен этот гост, кроме банков?

ВНЕЗАПНО, провайдерам. Для выгрузки пресловутого реестра Роскомнадзора, чтобы его черти драли. Там нужна ЭЦП от российского удостоверяющего центра. Угадай с одного раза, какой алгоритм там используется...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Всё верно, значит опции сборки использованы не те. Погляди какие используются в гентушном ебилде - я использую GOST начиная с 1.0, проблем не испытываю.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

[оффтоп] Полез я на gentoo-portage.com , и долго не мог понять, что происходит. А оказалось, домен профукали, и там теперь дорвей обитает, всякие «emerge your penis» предлагает :)

Deleted ()
Ответ на: комментарий от berrywizard

А зря. OpenSSL - как Flash Player: каждые три дня - дыра в безопасности. Лучше всё-таки пакетом.

Вот мой алгоритм со всеми «граблями». Установил CentOS в виртуальную машину VirtualBox 4.3.40. Профиль Desktop. Подключил диск «Гостевых дополнений». Попробовал установить. Не находит kernel-devel. yum install kernel-devel. Нет интернета. Да ладно? Смотрим NetworkManager. А он и не думал соединяться. Соединяемся. Устанавливаем. Теперь нет gcc. Устанавливаем. Теперь версия kernel-devel не соответствует версии ядра. Программа установки гостевых дополнений тут же предлагает правильную команду установки конкретной версии kernel-devel. Пользуемся ей - хотя есть ещё вариант полностью обновить систему.

Ура, гостевые дополнения установлены. Теперь делаем yum-builddep openssl-devel. Ошибка. Редактируем /etc/yum.repo.d/CentOS-Vault.repo. В URL для пакетов с исходными кодами - ошибка. Меняем версию 6.0 на 6.8, а {repoversion} на sources (можно уточнить правильную ссылку на http://vault.centos.org/). Ну и конечно же enable=0 на enable=1. Вот, теперь yum-builldep отрабатывает, установив все зависимости для сборки.

Теперь скачиваем SRPM-пакет и делаем rpmbuild --rebuild пакет.src.rpm. Нет такой команды! Делаем yum install rpmbuild. Нет такого пакета! Нужен графичекий yum, делаем yum install yumex, и тоже нет такого пакета. Нужно подключить репозиторий EPEL, делаем это по инструкции с сайта http://pkgs.org/. Yumex установился. Ищем rpmbuild, ничего нет, ищем rpm, нашли «rpm-build». Так вот как он назывался!

Делаем rpmbuild --rebuild пакет.src.rpm, прерываем по Ctrl-C, идём в /home/username/rpmbuild/SPECS и редактируем spec-файл, удалив «no-gost». Делаем rpmbuild -ba openssl.spec. Всё.

Вот так я и делал. Теперь по совету Pinkbyte буду добавлять новые параметры отсюда, и удалять старые параметры по методу поиска льва в пустыне.

ZenitharChampion ★★★★★ ()
Последнее исправление: ZenitharChampion (всего исправлений: 4)
Ответ на: комментарий от ZenitharChampion

Ну, в очередной раз.

openssl с ГОСТ'ом в данном случае мне нужен исключительно для подписывания запроса на запрещалочный сервер.Поелику оно заработало — заменять этим колхозом системное я не стал, тем более, упариваться пересборкой при обновлении пакета. На каком-либо другом сервере это ставить не предполагается. Ну и зачем оно мне?

Кстати, в простыне для rpmbuild пропущен ключик "--sign". И вообще, простыня шизофазная, достаточно добавить пользователя builder, установить rpmbuild, gcc и что там для сборки openssl надо (видно в BuildRequires spec-файла), переключиться в builder'а, скачать src.rpm, установить его, подрихтовать spec и собрать пакет.

Я прошёл тест на умение собирать пакеты?

berrywizard ★★★★★ ()
16 апреля 2017 г.
Ответ на: комментарий от Pinkbyte

Это Зенитурка. Оказалось что в Alt Linux Wiki дан неполный конфигурационный файл. Не хватило строчки «openssl_conf=openssl_def» в начале файла. После того, как я её добавил, всё заработало! Ждите OBS-репозитория. И спасибо https://kirill-zak.ru/2015/08/13/298 за статью

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.