Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

3 Страницы123>
Опции
К последнему сообщению К первому непрочитанному
Offline mihmig  
#1 Оставлено : 20 января 2017 г. 14:41:54(UTC)
mihmig

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

Установлено:
Windows Server 2008 Standart SP2
КриптоПро CSP версия продукта 3.9.8227 (ядра СКЗИ 3.9.8001 КС2)
nginx 1.10.1

Некоторое время всё работало, даже клиентская авторизация.
Сегодня вернулся к проекту, браузеры не открывают страницу. В логах nginx следующее:
SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.2.75, server: 0.0.0.0:443

Запуск "C:\Program Files\Crypto Pro\CSP\csptest" -tlsc -server llo.yarcloud.ru -port 443
выдаёт вот это:
**** Error 0x80090326 returned by InitializeSecurityContext (2)
An error occurred in running the program.
.\WebClient.c:528:Error performing handshake.
Error number 0x80090326 (2148074278).
Получено непредвиденное сообщение или оно имеет неправильный формат.


Total: SYS: 0,047 sec USR: 0,000 sec UTC: 0,059 sec
[ErrorCode: 0x80090326]

Ещё смущает то что в некоторых мануалах (http://www.cryptopro.ru/forum2/default.aspx?g=posts&m=57216#post57216 ) требуется указывать
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;
а в некоторых:
ssl_ciphers GOST2001-GOST89-GOST89:HIGH:MEDIUM
Как правильно?

В чём смысл ошибки no shared cipher?
Вложения:
nginx.conf.txt (2kb) загружен 4 раз(а).
error.log.txt (33kb) загружен 1 раз(а).
access.log пустой
Offline Дмитрий Пичулин  
#2 Оставлено : 23 января 2017 г. 13:14:12(UTC)
pd

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,442
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: mihmig Перейти к цитате
SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.2.75, server: 0.0.0.0:443

Смысл "no shared cipher", является звоночком использования TLS 1.2 (НЕВЕРНОЕ УТВЕРЖДЕНИЕ)

Судя по вашему конфигу, как такое происходит -- неясно, возможно неверный конфиг прислали?

Попробуйте nginx-1.10.2-gost-147098.9 , мы добавили в него поддержку TLS 1.2 из коробки

Отредактировано пользователем 14 марта 2017 г. 15:39:29(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline mihmig  
#3 Оставлено : 23 января 2017 г. 17:16:35(UTC)
mihmig

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

Обновил nginx до указанной версии.
В nginx.conf изменил строки:
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;

CPFox 45.1.2 заработал
Но Chromium 55.0.2883.75 и Internet Explorer 11 нет, в логах по-прежнему:

SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.9.91, server: 0.0.0.0:443

И всё-таки, что именно означает фраза no shared cipher?
Меня смущает, что раньше всё работало а потом перестало...
Offline Дмитрий Пичулин  
#4 Оставлено : 23 января 2017 г. 17:48:19(UTC)
pd

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,442
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: mihmig Перейти к цитате
CPFox 45.1.2 заработал
Но Chromium 55.0.2883.75 и Internet Explorer 11 нет, в логах по-прежнему:

SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher) while SSL handshaking, client: 10.186.9.91, server: 0.0.0.0:443

И всё-таки, что именно означает фраза no shared cipher?
Меня смущает, что раньше всё работало а потом перестало...

"no shared cipher" -- сообщение от openssl в рамках TLS 1.2 (НЕВЕРНОЕ УТВЕРЖДЕНИЕ), в котором сообщается о невозможности построить пересечение алгоритмов подписи (sigalgs) между клиентом и сервером.

Так как поддержка TLS 1.2 в CSP у нас появилась осенью, значит либо CSP обновлён, либо CSP функционирует неверно (в следствие обновления Windows например до не поддерживаемой версии или обновления). Также можно посмотреть на настройки TLS в браузере Internet Explorer (Свойства браузера > Дополнительно) и попробовать вернуть значения по умолчанию.

Как правило, проблемы с "no shared cipher", проще всего решить на стороне сервера так: "ssl_protocols TLSv1;" (хотя по вашим утверждениям этот способ почему-то не заработал).

Последняя на текущий момент сертифицированная версия CSP ветки 3.9 -- это КриптоПро CSP 3.9.8495, возможно обновиться лучшее решение.

Отредактировано пользователем 14 марта 2017 г. 15:39:15(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline mihmig  
#5 Оставлено : 24 января 2017 г. 12:56:51(UTC)
mihmig

Статус: Активный участник

Группы: Участники
Зарегистрирован: 18.05.2016(UTC)
Сообщений: 112

Хм, обновление КриптоПро CSP до версии 3.9.8495 помогло с такими настройками
ssl_protocols TLSv1;
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;


все браузеры заработали (в Internet Explorer SSL 2.0, SSl 3.0, TLS 1.2 "галочки" сняты, TLS 1.1, TLS 1.0 - установлены)
Да, Windows Update в промежутке между последним использованием сервера "отрабатывал". Отключать Windows Update нельзя - ведь мы же тут все в "контексте безопасности".

Получается - система (nginx + авторизация по ГОСТ-сертификату) "статически неустойчива" - т.е. может в любой момент развалиться?
Что делать если такая ситуация повторится после окончания цикла поддержки КриптоПро CSP 3.9?

Также непонятно как всё-таки правильно указывать:
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;
или
ssl_ciphers GOST2001-GOST89-GOST89:HIGH:MEDIUM
в чём разница?
Offline Дмитрий Пичулин  
#6 Оставлено : 24 января 2017 г. 14:01:06(UTC)
pd

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,442
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: mihmig Перейти к цитате
Получается - система (nginx + авторизация по ГОСТ-сертификату) "статически неустойчива" - т.е. может в любой момент развалиться?

Ещё раз уточняем, что "no shared cipher" это ошибка в рамках TLS 1.2 (НЕВЕРНОЕ УТВЕРЖДЕНИЕ), и если на сервере стоит явное использование только TLS 1.0, то совершенно непонятно, как сервер мог ответить в режиме TLS 1.2. Продукты nginx и openssl стабильны, и в этой части ошибок уже давно не находят. Поэтому, если хотите точно выяснить в чём была причина, необходимо точно воспроизвести и проверить все ваши утверждения ещё раз.

Ситуация с TLS 1.0 в отечественной криптографии стабильна и должна работать в текущем состоянии до 2018 года (когда сертификаты с алгоритмами 2001 года станут запрещёнными к использованию).

Автор: mihmig Перейти к цитате
Также непонятно как всё-таки правильно указывать:
ssl_ciphers HIGH:MEDIUM:+GOST2001-GOST89;
или
ssl_ciphers GOST2001-GOST89-GOST89:HIGH:MEDIUM
в чём разница?

При работе с ГОСТ сертификатом, у сервера на openssl круг сужается до единственного варианта: "GOST2001-GOST89-GOST89". Поэтому ssl_ciphers можно не указывать. Или можете указать "ssl_ciphers GOST2001-GOST89-GOST89;" для спокойствия.

Отредактировано пользователем 14 марта 2017 г. 15:38:54(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline stufford  
#7 Оставлено : 14 марта 2017 г. 14:20:43(UTC)
stufford

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.01.2017(UTC)
Сообщений: 30
Российская Федерация
Откуда: moscow

Сказал(а) «Спасибо»: 2 раз
Здравствуйте!

Позвольте поднять данную тему, столкнулся с этой же проблемой.
Код:
SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking


Хост: https://csp.nodomain.me/

ОС:
Код:
root@csp:~# uname -a
Linux csp 2.6.32-042stab120.11 #1 SMP Wed Nov 16 12:05:45 MSK 2016 x86_64 GNU/Linux


Установленные пакеты
Код:

root@csp:~# dpkg -l | grep csp
ii  cprocsp-cpopenssl-gost-64      4.0.0-4                              amd64        OpenSSL capi_gost engine. Build 9842.
ii  cprocsp-curl-64                4.0.0-4                              amd64        CryptoPro Curl shared library and binaris. Build 9842.
ii  cprocsp-pki-cades              2.0.0-1                              amd64        CryptoPro PKI
ii  lsb-cprocsp-base               4.0.0-4                              all          CryptoPro CSP library. Build 9842.
ii  lsb-cprocsp-capilite-64        4.0.0-4                              amd64        CryptoAPI lite. Build 9842.
ii  lsb-cprocsp-devel              5.0.0-5                              all          CryptoPro CSP static libraries and headers. Build 10579.
ii  lsb-cprocsp-kc1-64             4.0.0-4                              amd64        CryptoPro CSP library. Build 9842.
ii  lsb-cprocsp-kc2-64             4.0.0-4                              amd64        CryptoPro CSP KC2. Build 9842.
ii  lsb-cprocsp-rdr-64             4.0.0-4                              amd64        CryptoPro CSP readers. Build 9842.


OpenSSL:
Код:

root@csp:~# openssl version
OpenSSL 1.0.1t  3 May 2016

root@csp:~# openssl engine
(rsax) RSAX engine support
(rdrand) Intel RDRAND engine
(dynamic) Dynamic engine loading support
(gost_capi) CryptoPro ENGINE GOST CAPI ($Revision: 147820 $)

root@csp:~# openssl ciphers | tr ":" "\n" | grep GOST
GOST2001-GOST89-GOST89


nginx собран из репо https://github.com/deemru/nginx
Код:

root@csp:~# nginx -V
nginx version: nginx/1.10.3
built by gcc 4.9.2 (Debian 4.9.2-10)
built with OpenSSL 1.0.1t  3 May 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security' --with-ld-opt=-Wl,-z,relro


Конфиг nginx
Код:

	ssl on;
	ssl_certificate "/root/csp.nodomain.me.cer.pem";
	ssl_certificate_key  engine:gost_capi:csp.nodomain.me;
	ssl_session_cache shared:SSL:1m;
	ssl_session_timeout  5m;
	ssl_protocols               TLSv1;
	ssl_ciphers  HIGH:MEDIUM:+GOST2001-GOST89;
	ssl_prefer_server_ciphers   on;


/root/csp.nodomain.me.cer.pem - получил путем экспорта
Код:
certmgr -export -store uMy -dest /root/csp.nodomain.me.ce
openssl x509 -inform DER -outform PEM -in /root/csp.nodomain.me.cer -out /root/csp.nodomain.me.cer.pem


Получил тествый сертификат, установил его.
Код:

root@csp:~# certmgr -list -store uMy
Certmgr 1.0 (c) "CryptoPro",  2007-2010.
program for managing certificates, CRLs and stores

=============================================================================
1-------
Issuer              : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2
Subject             : CN=csp.nodomain.me
Serial              : 0x12001A5E4D29EB37E386A8F9E60000001A5E4D
SHA1 Hash           : 0x561a7e5770c761f6f0bad92a212fbef8a6f79729
SubjKeyID           : 08fe318b2a34a2824d98d7a0d488b43a6b01ce55
Signature Algorithm : ГОСТ Р 34.11/34.10-2001
PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits)
Not valid before    : 09/03/2017  19:29:22 UTC
Not valid after     : 09/06/2017  19:39:22 UTC
PrivateKey Link     : Yes
Container           : HDIMAGE\\cont.000\021E
Provider Name       : Crypto-Pro GOST R 34.10-2001 KC2 CSP
Provider Info       : ProvType: 75, KeySpec: 1, Flags: 0x0
CA cert URL         : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt
OCSP URL            : http://testca.cryptopro.ru/ocsp/ocsp.srf
CDP                 : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl
Extended Key Usage  : 1.3.6.1.5.5.7.3.1
=============================================================================

[ErrorCode: 0x00000000]


Подпись файл проходит успешно.


Помогите, пожалуйста, разобраться
Offline Дмитрий Пичулин  
#8 Оставлено : 14 марта 2017 г. 14:30:33(UTC)
pd

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,442
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: stufford Перейти к цитате
Позвольте поднять данную тему, столкнулся с этой же проблемой.
Код:
SSL_do_handshake() failed (SSL: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher) while SSL handshaking


<...>

Конфиг nginx
Код:

<...>
	ssl_protocols               TLSv1;
<...>


Помогите, пожалуйста, разобраться

Эта ошибка из кода TLS версии 1.2, которая не должна возникать при "ssl_protocols TLSv1;" (НЕВЕРНОЕ УТВЕРЖДЕНИЕ)

Нигде не напутали? Если нет — ждём инструкцию как воспроизвести.

Отредактировано пользователем 14 марта 2017 г. 15:38:22(UTC)  | Причина: Не указана

Знания в базе знаний, поддержка в техподдержке
Offline stufford  
#9 Оставлено : 14 марта 2017 г. 15:19:03(UTC)
stufford

Статус: Активный участник

Группы: Участники
Зарегистрирован: 10.01.2017(UTC)
Сообщений: 30
Российская Федерация
Откуда: moscow

Сказал(а) «Спасибо»: 2 раз
Автор: pd Перейти к цитате

Нигде не напутали? Если нет — ждём инструкцию как воспроизвести.


Нет, не напутал.

Попробуйте:
Код:
openssl s_client -connect csp.nodomain.me:443 -tls1

Offline Дмитрий Пичулин  
#10 Оставлено : 14 марта 2017 г. 15:37:24(UTC)
pd

Статус: Сотрудник

Группы: Администраторы
Зарегистрирован: 16.09.2010(UTC)
Сообщений: 1,442
Откуда: КРИПТО-ПРО

Сказал(а) «Спасибо»: 31 раз
Поблагодарили: 412 раз в 306 постах
Автор: stufford Перейти к цитате
Нет, не напутал.

Так точно, путаница с нашей стороны.

Ошибка "no shared cipher" гораздо проще, она означает, что пользователь при попытке соединиться с сервером работающим по ГОСТ не предоставил сюиту поддерживающую ГОСТ.

Проще говоря, в вашем клиенте нет поддержки ГОСТ или она не задействована.
Знания в базе знаний, поддержка в техподдержке
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.