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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline ГПавелВ  
#1 Оставлено : 23 ноября 2022 г. 17:57:59(UTC)
ГПавелВ

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Добрый день.

Устанавливаю пробную версию КП5 на Oracle Linux 9

./install.sh выдаёт вот такую ошибку:

Uninstalling CryptoPro CSP packages...
CryptoPro CSP packages have been successfully uninstalled
Installing lsb-cprocsp-base-5.0.12500-6.noarch.rpm ...
error: Failed dependencies:
lsb-core-noarch >= 3.0 is needed by lsb-cprocsp-base-5.0.12500-6.noarch
Error: installation failed. Maybe system LSB package is missing.
Install LSB package and reinstall CryptoPro CSP. If it does not help, please
read documentation or visit support: https://support.cryptopro.ru


Пожалуйста, подскажите, что делать. В Линуксе, к сожалению, не силён. Так что, буду очень благодарен за подробную инструкцию.

Спасибо!
Offline nickm  
#2 Оставлено : 23 ноября 2022 г. 18:18:10(UTC)
nickm

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

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

Сказал(а) «Спасибо»: 682 раз
Поблагодарили: 534 раз в 505 постах
Поищите в репозитории и установите пакет:
Код:
lsb-core
thanks 1 пользователь поблагодарил nickm за этот пост.
ГПавелВ оставлено 01.12.2022(UTC)
Offline ГПавелВ  
#3 Оставлено : 1 декабря 2022 г. 18:04:26(UTC)
ГПавелВ

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Большое спасибо!
Помогло! Написалось, что успешно установлено.

К сожалению, теперь, при запуске моего .Net Core 3.1 приложения на Линукс, выдаётся вот такая ошибка:

No usable version of libssl was found
Aborted (core dumped)


Я проверил версию OpenSSL, которая установлена у меня на Линукс машине - 3.0.1.
Но я не знаю, как понять, какая версия используется в моём приложении...

Если у кого-то есть идеи, как можно продвинуться дальше в решении этой проблемы, буду очень благодарен!

Спасибо.
Offline Андрей Русев  
#4 Оставлено : 2 декабря 2022 г. 0:34:05(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,578

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 663 раз в 458 постах
Вообще-то правильный ответ - ставить КриптоПро CSP 5.0.12600 Quinotaur или более новую версию - там почти всё будет подтягиваться по зависимостям само.
Net Core наш или обычный?
Узнать зависимости можно с помощью objdump (надо перебирать приложения и библиотеки из состава Net Core или сразу угадать нужную) в таком духе:
Код:
$ objdump -x /usr/bin/zip|grep NEEDED
  NEEDED               libc.so.6
Официальная техподдержка. Официальная база знаний.
Offline ГПавелВ  
#5 Оставлено : 2 декабря 2022 г. 10:27:49(UTC)
ГПавелВ

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Спасибо за участие!

К сожалению, я прям совсем новичок в этом вопросе и не смог понять Ваш ответ.

1. "Net Core наш или обычный?" -> Мы пользуемся стандартным .Net Core 3.1, который поставляет Microsoft. Он установлен на машине Windows, на которой мы разрабатываем приложение. Мы задеплоили это приложение как автономное (Self-Contained). На Линукс не установлен .Net Core, но это не мешает запускать там тестовые консольные приложения, не содержащие Крипто Про.
Вы имеете в виду, что у вас есть какой-то свой .Net Core, подскажите, пожалуйста, как и куда его можно установить.

2. Я выполнил эту команду и получил вот такой результат:

[root@mskmdlpserver simple_console]# objdump -x /root/share/simple_console/MdlpLoader|grep NEEDED
NEEDED libpthread.so.0
NEEDED libdl.so.2
NEEDED libstdc++.so.6
NEEDED libm.so.6
NEEDED libgcc_s.so.1
NEEDED libc.so.6
NEEDED ld-linux-x86-64.so.2


Но в этом списке нет libssl. Хотя, жалуется именно на него.

3. Подскажите, пожалуйста, где найти триальную версию "КриптоПро CSP 5.0.12600 Quinotaur" и как её установить на Линукс? Или её надо ставить на Windows машину?

Заранее спасибо за ответы.
Offline Андрей Русев  
#6 Оставлено : 2 декабря 2022 г. 11:38:10(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,578

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 663 раз в 458 постах
1. У нас есть https://github.com/CryptoPro/libcore Автономные приложения просто так едва ли заработают.
2. Тогда можно попробовать ldd -r /root/share/simple_console/MdlpLoader, но проблема не связана с нашими продуктами - вам лучше писать в Microsoft или Oracle.
3. https://cryptopro.ru/pro...downloads#latest_csp50r3 только без решения п.2 всё это не имеет смысла.
Официальная техподдержка. Официальная база знаний.
thanks 1 пользователь поблагодарил Русев Андрей за этот пост.
ГПавелВ оставлено 05.12.2022(UTC)
Offline ГПавелВ  
#7 Оставлено : 5 декабря 2022 г. 14:29:44(UTC)
ГПавелВ

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Спасибо.

К сожалению, мы не смогли запустить приложение на Core .NET 3.1 и решили перейти на .NET 6.0.
С ним результаты более оптимистичные, но все равно, далеки от желаемых :-)

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


ErrorException: System.Net.Http.HttpRequestException: The SSL connection could not be established, see inner exception.
---> System.Security.Authentication.AuthenticationException: Authentication failed, see inner exception.
---> Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.
---> Interop+Crypto+OpenSslCryptographicException: error:0A000410:SSL routines::sslv3 alert handshake failure
--- End of inner exception stack trace ---
at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, ReadOnlySpan`1 input, Byte[]& sendBuf, Int32& sendCount)
at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteSslContext& context, ReadOnlySpan`1 inputBuffer, Byte[]& outputBuffer, SslAuthenticationOptions sslAuthenticationOptions)
--- End of inner exception stack trace ---
at System.Net.Security.SslStream.ForceAuthenticationAsync[TIOAdapter](TIOAdapter adapter, Boolean receiveFirst, Byte[] reAuthenticationData, Boolean isApm)
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.EstablishSslConnectionAsync(SslClientAuthenticationOptions sslOptions, HttpRequestMessage request, Boolean async, Stream stream, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(HttpRequestMessage request)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at RestSharp.RestClient.ExecuteRequestAsync(RestRequest request, CancellationToken cancellationToken).


Возможно, у Вас есть какие-то мысли, как это победить...
Offline Андрей Русев  
#8 Оставлено : 5 декабря 2022 г. 16:36:31(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,578

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 663 раз в 458 постах
Я вижу, что при соединении проблема при аутентификации. Возможно, диагностика неточна и соединение оборвалось ещё до аутентификации.
  1. Сервер, к которому вы подключаетесь работает на ГОСТ TLS? Если используется ГОСТ, то необходимо ставить наш https://github.com/CryptoPro/libcore и использовать свежую версию КриптоПро CSP 5.0 R3
  2. На сервере включена аутентификация клиентов (клиентам требуются закрытые ключи и сертификаты)?
  3. Возможно, аутентификация завершилась неуспехом из-за недоверия к сертификату сервера. При использовании libcore нужно установить соответствующий корневой в КриптоПро CSP в таком духе (запускать под тем же пользователем, под которым будет работать .net):
    Код:
    /opt/cprocsp/bin/*/certmgr -inst -store uroot -file /tmp/корневой.cer


Официальная техподдержка. Официальная база знаний.
Offline ГПавелВ  
#9 Оставлено : 6 декабря 2022 г. 14:24:59(UTC)
ГПавелВ

Статус: Участник

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

Сказал(а) «Спасибо»: 4 раз
Спасибо!

1. Мы подключаемся с серверу МДЛП. Я подозреваю, что Вы знаете, что это такое, так как я часто встречал на форумах его упоминание вместе с Крипто Про :-)
На сколько я знаю, сервер, действительно, использует ГОСТ-овский алгоритм криптографии.
Мы используем X509Certificate2 тип сертификата для подписи.

По поводу CryptoPro/libcore, я не вполне уверен, зачем оно нам нужно. Мы разрабатываем приложение в Visual Studio для Windows, но деплоим его для Линукс. Если мы деплоим для Windows, то все работает хорошо и аутентификация проходит корректно.
На Линукс мы не разрабатываем. Его используем только для запуска готового приложения. Нам всё равно нужно устанавливать CryptoPro/libcore под Линукс?

2. Да, на сервере включена аутентификация и наше приложение её успешно проходит, когда задеплоено и работает на Windows. Проблемы только с Линукс.

3. У меня подозрение, что ошибка при handshake возникает из-за разницы версий SSL. Насколько я знаю, сервер МДЛП использует версию SSL 3.0. А на своей Линукс машине я пока не могу понять, какая версия используется. Версия OpenSSL у меня 3.0.1. Версия Крипто Про - 5.0. Можно ли как-то явно указать версию SSL при подключении к серверу МДЛП, или я вообще не туда смотрю/думаю?
Offline Андрей Русев  
#10 Оставлено : 7 декабря 2022 г. 1:50:55(UTC)
Русев Андрей

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

Группы: Администраторы, Участники
Зарегистрирован: 16.04.2008(UTC)
Сообщений: 1,578

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 663 раз в 458 постах
Если на сервере ГОСТ, то на Linux вы строго попадаете в мой п.1 и нужно делать то, что я описал. На винде всё работает якобы само, а на самом деле из-за нашей глубой интеграции с ОС.
Официальная техподдержка. Официальная база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.