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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline MaxAlex  
#1 Оставлено : 15 июля 2020 г. 15:37:44(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Здравствуйте, настраиваю на Spring Boot + JCP (jcp-2.0.40035)
Выставил согласно документации настроки, но пока что у меня не получается настроить односторонюю аутентификацию. Я точно что-то упустил :) Можете подсказать, что не так?
Ошибка:
INFO [main] [o.a.c.h.Http11NioProtocol] [] [] - Initializing ProtocolHandler ["https-jsse-nio-8443"]
INFO [main] [o.a.c.h.Http11NioProtocol] [] [] - Starting ProtocolHandler ["https-jsse-nio-8443"]
INFO [main] [r.C.ssl.SSLLogger] [] [] - SSLContextImpl init.
INFO [main] [r.C.ssl.SSLLogger] [] [] - trustStore is : No File Available, using empty keystore.
INFO [main] [r.C.ssl.SSLLogger] [] [] - trustStore type is : HDImageStore
INFO [main] [r.C.ssl.SSLLogger] [] [] - trustStore provider is :
INFO [main] [r.C.ssl.SSLLogger] [] [] - init truststore
INFO [main] [r.C.J.t.JCPLogger] [] [] - Loading JCP 2.0.40035
INFO [main] [r.C.J.t.JCPLogger] [] [] - JCP loaded.
INFO [main] [r.C.ssl.SSLLogger] [] [] - trigger seeding of SecureRandom
INFO [main] [r.C.ssl.SSLLogger] [] [] - done seeding SecureRandom
INFO [main] [r.C.ssl.SSLLogger] [] [] - SSLContextImpl initialized.
INFO [main] [r.C.ssl.SSLLogger] [] [] - %% adding as private keys %%
INFO [main] [r.C.ssl.SSLLogger] [] [] - %% adding as private keys %%
INFO [main] [r.C.ssl.SSLLogger] [] [] - trustStore is : No File Available, using empty keystore.
INFO [main] [r.C.ssl.SSLLogger] [] [] - trustStore type is : HDImageStore
INFO [main] [r.C.ssl.SSLLogger] [] [] - trustStore provider is :
INFO [main] [r.C.ssl.SSLLogger] [] [] - init truststore
INFO [main] [o.a.t.u.n.NioSelectorPool] [] [] - Using a shared selector for servlet write/read
INFO [main] [o.s.b.c.e.t.TomcatEmbeddedServletContainer] [] [] - Tomcat started on port(s): 8443 (https)
INFO [main] [r.r.e.d.f.Application] [] [] - Started Application in 34.473 seconds (JVM running for 35.517)
.....

затем делаю запрос: csptest -tlsc -port 8443 -v -file index.jsp -nocheck

020-07-15 12:51:35,526 ERROR [https-jsse-nio-8443-exec-1] [o.a.t.u.n.NioEndpoint] [] [] -
java.lang.IllegalArgumentException: Unsupported ciphersuite TLS_CIPHER_2012
at sun.security.ssl.CipherSuite.valueOf(CipherSuite.java:228)
at sun.security.ssl.CipherSuiteList.<init>(CipherSuiteList.java:79)
at sun.security.ssl.SSLEngineImpl.setEnabledCipherSuites(SSLEngineImpl.java:2047)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLEngine(AbstractJsseEndpoint.java:177)
at org.apache.tomcat.util.net.SecureNioChannel.processSNI(SecureNioChannel.java:331)
at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:175)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1436)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

Выставленные настройки для Tomcat(Apache Tomcat/8.5.27):

Код:
public void customizeTomcat(TomcatEmbeddedServletContainerFactory factory) {
           factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
               @Override
               public void customize(Connector connector) {                
                   connector.setScheme("https");
                   connector.setPort(8443);
                   connector.setSecure(true);
                   connector.setEnableLookups(false);
                   Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
                   protocol.setSslImplementationName("ru.CryptoPro.ssl.tomcat.jsse.JCPJSSEImplementation");
                   protocol.setAlgorithm("GostX509");
                   protocol.setTruststoreAlgorithm("GostX509");
                   protocol.setKeystoreType("HDImageStore");
                   protocol.setKeystoreFile("/root/certStore");
                   protocol.setKeystorePass("123");
                   protocol.setKeystoreProvider("JCP");
                   protocol.setSSLCipherSuite("TLS_CIPHER_2012");
                   protocol.setSSLProtocol("GostTLS");
                   protocol.setSslEnabledProtocols("TLSv1");
                   protocol.setDisableUploadTimeout(true);
                   protocol.setSSLEnabled(true);

Спасибо

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

Offline Евгений Афанасьев  
#2 Оставлено : 16 июля 2020 г. 9:00:02(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Здравствуйте.
Здесь было обсуждение - https://www.cryptopro.ru...aspx?g=posts&t=18274
Решения пока нет, приложите по возможности простой проект-пример.
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
MaxAlex оставлено 07.08.2020(UTC)
Offline MaxAlex  
#3 Оставлено : 20 июля 2020 г. 5:55:14(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Спасибо.
собрал отдельный проект, на springBoot 1.5.19. Запустил, работает. Вернул на 1.5.10. сейчас также все запапускается. Похоже, что где-то напутал с библиотеками.

Подскажите пожалуйста, сейчас обрывается соединение при запросе страниц с клиентской части (из IE), если же не отдается с сервера ответ, то соединение работает.

Если я отдаю ч.-л. от сервера к клиенту, то соединение обрывается с ошибкой на клиенте в сплывающем окне.
На сервере только
INFO 27179 --- [nio-3443-exec-8] ru.CryptoPro.ssl.SSLLogger : Using SSLEngineImpl.
INFO 27179 --- [nio-3443-exec-8] ru.CryptoPro.ssl.SSLLogger : %% Chosen server alias: store

При переходе с клиента на https://cryptopro.ru:4444/test/tls-cli.asp получаб сраницу. Все работает

Отредактировано пользователем 20 июля 2020 г. 5:55:58(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 20 июля 2020 г. 10:31:41(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Нужно включить логирование: https://support.cryptopr...lirovnija-kriptopro-jtls
SSLLogger с уровнем ALL

Возможно, сервер шлет список корневых, которым доверяет, и издателя клиентского сертификата нет в их числе.

Отредактировано пользователем 20 июля 2020 г. 10:32:13(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
MaxAlex оставлено 07.08.2020(UTC)
Offline MaxAlex  
#5 Оставлено : 20 июля 2020 г. 12:29:22(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Спасибо, включил логирование
log_20_07_2020.txt (15kb) загружен 2 раз(а).
Offline Евгений Афанасьев  
#6 Оставлено : 20 июля 2020 г. 17:42:23(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Сервер шлет список доверенных:
Код:

Cert Types: Type-239, Type-238, Type-22, Type-21
Cert Authorities:
<CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, EMAILADDRESS=support@cryptopro.ru>
<CN=store, O=CryptoPro, C=RU>

То есть всего два: "CN=CRYPTO-PRO Test Center 2, O=CRYPTO-PRO LLC, L=Moscow, C=RU, EMAILADDRESS=support@cryptopro.ru" и "CN=store, O=CryptoPro, C=RU". Клиентский сертификат должен быть выпущен этими центрами. Но клиент отвечает и сервер получает:
Код:

FINE: *** ServerHelloDone
2020-07-20 11:03:02,676 INFO [https-jsse-nio-8443-exec-3] [r.C.ssl.SSLLogger] [] [] - Using SSLEngineImpl.
2020-07-20 11:03:02,681 INFO [https-jsse-nio-8443-exec-3] [r.C.ssl.SSLLogger] [] [] - %% Chosen server alias: store
2020-07-20 11:03:02,688 ERROR [https-jsse-nio-8443-exec-2] [r.C.ssl.SSLLogger] [] [] - https-jsse-nio-8443-exec-2, fatal error: 42: null cert chain
javax.net.ssl.SSLHandshakeException: null cert chain

То есть клиент не смог найти ничего подходящего и ничего не ответил серверу (выслал null).
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
MaxAlex оставлено 07.08.2020(UTC)
Offline MaxAlex  
#7 Оставлено : 21 июля 2020 г. 9:42:34(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Screenshot from 2020-07-21 09-27-29.png (429kb) загружен 6 раз(а).
Спасибо
Можете подсказать по сертификатам?
Сертификаты делал следующим образом:
1. Серверный подписывал на тестовом сайте https://www.cryptopro.ru/certsrv/ по сгенерированному ключу (в BASE64 в JCP - ControlPane.sh). Далее скачал цепочку сертификатов и установил в контейнер JCP, добавил в доверенный скаченный с сайта сертификат (CRYPTO-PRO Test Center 2)

2. Клиенский делал 2мя способами
а. сгенерировал ключ в BASE64 в JCP и далее по ссылке https://www.cryptopro.ru/certsrv/, получил сертификат и установил в CSP(Personal) + (CRYPTO-PRO Test Center 2) добавил в CSP(trusted)
б. сгенерировал клиентский сразу по ссылке https://www.cryptopro.ru/certsrv/, получил сертификат и установил в CSP(Personal) + (CRYPTO-PRO Test Center 2) добавил в CSP(trusted)
3 Добавил в хранилище сертификатов JCP сертификат (CRYPTO-PRO Test Center 2)

Можете подсказать что не так?

Отредактировано пользователем 21 июля 2020 г. 9:44:42(UTC)  | Причина: Не указана

Offline MaxAlex  
#8 Оставлено : 22 июля 2020 г. 9:44:52(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Подскажите а чем может быть вызвана причина такого поведения IE? Может быть нужно выставлять доп. настройки для IE?
установил сборку chromium крипто Про с сайта https://www.cryptopro.ru/products/chromium-gost и у меня все заработало
Offline Евгений Афанасьев  
#9 Оставлено : 22 июля 2020 г. 10:39:09(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Автор: MaxAlex Перейти к цитате
Screenshot from 2020-07-21 09-27-29.png (429kb) загружен 6 раз(а).
Спасибо
Можете подсказать по сертификатам?
Сертификаты делал следующим образом:
1. Серверный подписывал на тестовом сайте https://www.cryptopro.ru/certsrv/ по сгенерированному ключу (в BASE64 в JCP - ControlPane.sh). Далее скачал цепочку сертификатов и установил в контейнер JCP, добавил в доверенный скаченный с сайта сертификат (CRYPTO-PRO Test Center 2)

2. Клиенский делал 2мя способами
а. сгенерировал ключ в BASE64 в JCP и далее по ссылке https://www.cryptopro.ru/certsrv/, получил сертификат и установил в CSP(Personal) + (CRYPTO-PRO Test Center 2) добавил в CSP(trusted)
б. сгенерировал клиентский сразу по ссылке https://www.cryptopro.ru/certsrv/, получил сертификат и установил в CSP(Personal) + (CRYPTO-PRO Test Center 2) добавил в CSP(trusted)
3 Добавил в хранилище сертификатов JCP сертификат (CRYPTO-PRO Test Center 2)

Можете подсказать что не так?


Проблема где-то в п.2, т.к. именно браузер не выбирает нужный клиентский сертификат, когда сервер шлет список доверенных имен. Либо браузер не имеет доступа к данному сертификату (не тот пользователь), либо, допустим, сертификат клиента не содержит нужных расширений: аутентификация клиента, использование ключа, просрочен и т.п. и браузер видит, но отбраковывает сертификат. Можно попробовать с помощью csptest:
> csptest -tlsc -server <your-host-name> -port <your-host-port> -get / -v -v

Отредактировано пользователем 22 июля 2020 г. 10:40:39(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
MaxAlex оставлено 07.08.2020(UTC)
Offline MaxAlex  
#10 Оставлено : 12 августа 2020 г. 14:19:18(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Здравствуйте, подскажите, есть ли возможность изменить настройки TLS Settings без запуска JCP (консоли), это необходимо для снятия флажков проверки цепочек сертификата? На сервере Centos без GUI.
Можно например это сделать через командную строку с параметрами?
По типу:
"/usr/lib/jvm/jdk1.8.0_261/jre/bin/java ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl/util -key Enable_revocation_default -value false"

У меня при запуске этой команды ничего не меняется. Screenshot from 2020-08-12 14-17-48.png (19kb) загружен 5 раз(а).

Подскажите может быть можно перенести конфиг с локальной машины на сервер? Где хранятся эти настройки?

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

Offline MaxAlex  
#11 Оставлено : 13 августа 2020 г. 8:21:51(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Мне помогло изменение настроек в свойсвах ..../jre/.systemPrefs/ru/CryptoPro/ssl>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map SYSTEM "http://java.sun.com/dtd/preferences.dtd">
<map MAP_XML_VERSION="1.0">
..... здесь номер лицензии
<entry key="Enable_CRL_revocation_online_default" value="false"/>
<entry key="Enable_revocation_default" value="false"/>
<entry key="RI_support" value="1"/>
<entry key="disable_client_ri" value="true"/>
<entry key="not_existing_key" value="0"/>
<entry key="ssl.KeyManagerFactory.algorithm" value="SunX509"/>
<entry key="ssl.ServerSocketFactory.provider" value=""/>
<entry key="ssl.SocketFactory.provider" value=""/>
<entry key="ssl.TrustManagerFactory.algorithm" value="PKIX"/>
</map>

Подскажите RI_support" и "not_existing_key" что это за свойства?
Offline MaxAlex  
#12 Оставлено : 1 сентября 2020 г. 6:35:51(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Здравствуйте, кто-нибудь сталкивался с проблемой по разрыву сессии?

Можно ли управлять сессией с крипто про?

В моем приложении после добавления крипто вижу постоянный обмен сертификатами и сессия обновляется.
Я пробовал выкрутить настройки томката, но это не помогло,
сессия истекает примерно только через 10 мин.

Спасибо

Offline Евгений Афанасьев  
#13 Оставлено : 1 сентября 2020 г. 8:25:42(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Здравствуйте.
Опишите проблему, ошибку, если есть.
Томкат сам управляет сессиями, обычно они доступны через SSLSession.
Offline MaxAlex  
#14 Оставлено : 5 октября 2020 г. 8:15:45(UTC)
MaxAlex

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

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

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

подскажите пожалуйста, а как можно разорвать TLS соединение уже установленное (использую Spring Boot + JCP (jcp-2.0.40035) + Tomcat (8.5.27))
Может быть какие-то механизмы рекомендовано использовать?

Спасибо.
Offline Евгений Афанасьев  
#15 Оставлено : 5 октября 2020 г. 9:38:32(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Здравствуйте.
Часто у объекта, реализующего соединение, имеется метод close или disconnect.
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
MaxAlex оставлено 05.10.2020(UTC)
Offline MaxAlex  
#16 Оставлено : 5 октября 2020 г. 9:57:20(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Спасибо, а если соединение восстанавливается клиентом?
Т.е. даже после перезапуска приложения, восстанавливается сессия со стороны клиента.
Единственным способом полностью уничтожить текущую сессию это дождаться ее протухания либо второе это когда клиенту приходится полностью закрывать Browser чтобы разорвать соединение и обновить сессию.
Все мои попытки влиять на сессию со стороны сервера не принесли успеха. Соединение все равно восстанавливается.
Можете подсказать как повлиять на это?
Offline Евгений Афанасьев  
#17 Оставлено : 5 октября 2020 г. 10:25:29(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Пробовали у объекта, реализующего SSLSession, вызвать invalidate() ?
Offline MaxAlex  
#18 Оставлено : 5 октября 2020 г. 10:44:27(UTC)
MaxAlex

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

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

Сказал(а) «Спасибо»: 7 раз
Да, попробовал вызывать session.invalidate(). Но это не помогло клиент восстановил сессию, не предлагая выбрать сертификат
Offline Евгений Афанасьев  
#19 Оставлено : 6 октября 2020 г. 20:18:24(UTC)
Евгений Афанасьев

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

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,190
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 14 раз
Поблагодарили: 515 раз в 494 постах
Опишите, пожалуйста, какое поведение ожидается на клиенте.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.