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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline vega  
#1 Оставлено : 18 сентября 2015 г. 11:57:06(UTC)
vega

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

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

Сказал(а) «Спасибо»: 11 раз
Ситуация следующая. Java 7, JCP 2.0, Tomcat 8. csptest -tlsc успешно соединяется по https, ругается только на CN, так как в реале идет проброс портов на внешний интерфейс:

Код:

C:\Program Files\Crypto Pro\CSP\csptest.exe -tlsc -server localhost -port 8443 -verbose 
15 algorithms supported:
[0] 0x660e
[1] 0x6610
[2] 1.2.840.113549.3.4 (rc4)
[3] 1.2.840.113549.3.7 (3des)
[4] 1.3.14.3.2.7 (des)
[5] 1.2.840.113549.2.5 (md5)
[6] 1.3.14.3.2.26 (sha1)
[7] 0x800c
[8] 0x800d
[9] 0x800e
[10] 1.2.840.113549.1.1.1 (RSA)
[11] 1.2.840.113549.1.9.16.3.5 (ESDH)
[12] 0xae06
[13] 1.2.840.10040.4.1 (DSA)
[14] 0x2203
Cipher strengths: 256..256
Supported protocols: 0x20aa0
Protocol version: 3.3
ClientHello: RecordLayer: TLS, Len: 162
Cipher Suites: (00 81) (c0 28) (00 9f) (00 9e) (00 9d) (00 9c) (c0 2b) (c0 23) (c0 27) (c0 14) (c0 13) (00 3d) (00 3c) (00 35) (00 2f) (c0 2c) (c0 24) (c0 0a) (c0 09) (00 6a) (00 40) (00 38) (00 32) (00 0a) (00 13) (00 05) (00 04) 
167 bytes of handshake data sent
1174 bytes of handshake data received
210 bytes of handshake data sent
6 bytes of handshake data received
25 bytes of handshake data received
Handshake was successful
SECPKG_ATTR_CIPHER_INFO: Proto: 80, Suite: 81 (TLS_GOST_R_3410_01_WITH_28147_CNT_IMIT)
SECPKG_ATTR_NAMES: E=bushuyevm@vtbreg.ru, C=RU, L=Ìîñêâà, O=ZAO VTB Registrator, CN=portal.vtbreg.ru
SECPKG_ATTR_PACKAGE_INFO# fCapabilities: 0x107B3
SECPKG_ATTR_PACKAGE_INFO# wVersion: 1
SECPKG_ATTR_PACKAGE_INFO# wRPCID: 65535
SECPKG_ATTR_PACKAGE_INFO# cbMaxToken: 16379
SECPKG_ATTR_PACKAGE_INFO# Name: CryptoPro SSP
SECPKG_ATTR_PACKAGE_INFO# Comment: CryptoPro Security Package

Server certificate:
Subject: E=bushuyevm@vtbreg.ru, C=RU, L=Ìîñêâà, O=ZAO VTB Registrator, CN=portal.vtbreg.ru
Valid  : 31.08.2015 11:22:00 - 31.08.2016 11:32:00 (UTC)
Issuer : E=cpca@cryptopro.ru, C=RU, L=Ìîñêâà, O=ÎÎÎ ÊÐÈÏÒÎ-ÏÐÎ, CN=ÓÖ KPÈÏTO-ÏPO
Error 0x800b010f (CERT_E_CN_NO_MATCH) returned by CertVerifyCertificateChainPolicy!
An error occurred in running the program.
.\WebClient.c:620:Error authenticating server credentials!
Error number 0x800b010f (2148204815).
The certificate's CN name does not match the passed value.


Total: SYS: 0,016 sec USR: 0,031 sec UTC: 0,285 sec
[ErrorCode: 0x800b010f]


Java клиент с 7й java и той же версией JCP коннектится и работает, но при этом в логе tomcat появляется:
Код:

Sep 18, 2015 9:45:13 AM ru.CryptoPro.ssl.SSLEngineImpl a
SEVERE: http-nio-8443-exec-1, fatal error: 40: no cipher suites in common

Sep 18, 2015 9:45:13 AM ru.CryptoPro.ssl.SSLEngineImpl a
SEVERE: http-nio-8443-exec-1, fatal error: 
javax.net.ssl.SSLHandshakeException: no cipher suites in common
	at ru.CryptoPro.ssl.C.a(Unknown Source)
	at ru.CryptoPro.ssl.SSLEngineImpl.a(Unknown Source)
	at ru.CryptoPro.ssl.f.a(Unknown Source)
	at ru.CryptoPro.ssl.f.a(Unknown Source)
	at ru.CryptoPro.ssl.n.b(Unknown Source)
	at ru.CryptoPro.ssl.n.a(Unknown Source)
	at ru.CryptoPro.ssl.n.a(Unknown Source)
	at ru.CryptoPro.ssl.f.o(Unknown Source)
	at ru.CryptoPro.ssl.U.a(Unknown Source)
	at ru.CryptoPro.ssl.U.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at ru.CryptoPro.ssl.b.run(Unknown Source)
	at org.apache.tomcat.util.net.SecureNioChannel.tasks(SecureNioChannel.java:301)
	at org.apache.tomcat.util.net.SecureNioChannel.handshakeUnwrap(SecureNioChannel.java:359)
	at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:209)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1719)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)

Sep 18, 2015 9:45:13 AM ru.CryptoPro.ssl.SSLEngineImpl a
SEVERE: http-nio-8443-exec-1, fatal error: 80: problem unwrapping net record

Sep 18, 2015 9:45:13 AM ru.CryptoPro.ssl.SSLEngineImpl a
SEVERE: http-nio-8443-exec-1, fatal error: 
javax.net.ssl.SSLHandshakeException: no cipher suites in common
	at ru.CryptoPro.ssl.f.u(Unknown Source)
	at ru.CryptoPro.ssl.SSLEngineImpl.d(Unknown Source)
	at ru.CryptoPro.ssl.SSLEngineImpl.c(Unknown Source)
	at ru.CryptoPro.ssl.SSLEngineImpl.wrap(Unknown Source)
	at javax.net.ssl.SSLEngine.wrap(Unknown Source)
	at org.apache.tomcat.util.net.SecureNioChannel.handshakeWrap(SecureNioChannel.java:317)
	at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:182)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1719)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.net.ssl.SSLHandshakeException: no cipher suites in common
	at ru.CryptoPro.ssl.C.a(Unknown Source)
	at ru.CryptoPro.ssl.SSLEngineImpl.a(Unknown Source)
	at ru.CryptoPro.ssl.f.a(Unknown Source)
	at ru.CryptoPro.ssl.f.a(Unknown Source)
	at ru.CryptoPro.ssl.n.b(Unknown Source)
	at ru.CryptoPro.ssl.n.a(Unknown Source)
	at ru.CryptoPro.ssl.n.a(Unknown Source)
	at ru.CryptoPro.ssl.f.o(Unknown Source)
	at ru.CryptoPro.ssl.U.a(Unknown Source)
	at ru.CryptoPro.ssl.U.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at ru.CryptoPro.ssl.b.run(Unknown Source)
	at org.apache.tomcat.util.net.SecureNioChannel.tasks(SecureNioChannel.java:301)
	at org.apache.tomcat.util.net.SecureNioChannel.handshakeUnwrap(SecureNioChannel.java:359)
	at org.apache.tomcat.util.net.SecureNioChannel.handshake(SecureNioChannel.java:209)
	... 6 more



А клиент с той же самой версией JCP но с Java 8 выдает ошибку:
Код:

java.lang.RuntimeException: org.springframework.remoting.RemoteAccessException: Cannot access Hessian remote service at [https://portal.vtbreg.ru:8443/zenith-portal/handlers/abonent/Session]; nested exception is java.lang.IllegalArgumentException: TLSv1.1
                at ru.eldis.zenith.portal.client.Main$ClientLogonHandler.loginCryptoProSSL(Main.java:419)
                at ru.eldis.zenith.portal.client.Main$ClientLogonHandler.logon(Main.java:399)
                at ru.eldis.zenith.portal.client.LogonDialog.onOkButtonActionPerformed(LogonDialog.java:312)
                at ru.eldis.zenith.portal.client.LogonDialog$1.actionPerformed(LogonDialog.java:241)
                at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
                at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
                at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
                at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
                at javax.swing.AbstractButton.doClick(Unknown Source)
                at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(Unknown Source)
                at javax.swing.SwingUtilities.notifyAction(Unknown Source)
                at javax.swing.JComponent.processKeyBinding(Unknown Source)
                at javax.swing.KeyboardManager.fireBinding(Unknown Source)
                at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
                at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
                at javax.swing.JComponent.processKeyBindings(Unknown Source)
                at javax.swing.JComponent.processKeyEvent(Unknown Source)
                at java.awt.Component.processEvent(Unknown Source)
                at java.awt.Container.processEvent(Unknown Source)
                at java.awt.Component.dispatchEventImpl(Unknown Source)
                at java.awt.Container.dispatchEventImpl(Unknown Source)
                at java.awt.Component.dispatchEvent(Unknown Source)
                at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
                at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
                at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
                at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
                at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
                at java.awt.Component.dispatchEventImpl(Unknown Source)
                at java.awt.Container.dispatchEventImpl(Unknown Source)
                at java.awt.Window.dispatchEventImpl(Unknown Source)
                at java.awt.Component.dispatchEvent(Unknown Source)
                at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
                at java.awt.EventQueue.access$500(Unknown Source)
                at java.awt.EventQueue$3.run(Unknown Source)
                at java.awt.EventQueue$3.run(Unknown Source)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
                at java.awt.EventQueue$4.run(Unknown Source)
                at java.awt.EventQueue$4.run(Unknown Source)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
                at java.awt.EventQueue.dispatchEvent(Unknown Source)
                at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
                at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
                at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
                at java.awt.WaitDispatchSupport$2.run(Unknown Source)
                at java.awt.event.InvocationEvent.dispatch(Unknown Source)
                at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
                at java.awt.EventQueue.access$500(Unknown Source)
                at java.awt.EventQueue$3.run(Unknown Source)
                at java.awt.EventQueue$3.run(Unknown Source)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
                at java.awt.EventQueue.dispatchEvent(Unknown Source)
                at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
                at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
                at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
                at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
                at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
                at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: org.springframework.remoting.RemoteAccessException: Cannot access Hessian remote service at [https://portal.vtbreg.ru:8443/zenith-portal/handlers/abonent/Session]; nested exception is java.lang.IllegalArgumentException: TLSv1.1
                at org.springframework.remoting.caucho.HessianClientInterceptor.convertHessianAccessException(HessianClientInterceptor.java:266)
                at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:235)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
                at com.sun.proxy.$Proxy1.logon(Unknown Source)
                at ru.eldis.zenith.portal.client.config.ClientConfigFactory.logonFirstTime(ClientConfigFactory.java:63)
                at ru.eldis.zenith.portal.client.Main$ClientLogonHandler.loginCryptoProSSL(Main.java:411)
                ... 60 more
Caused by: java.lang.IllegalArgumentException: TLSv1.1
                at ru.CryptoPro.ssl.m.a(Unknown Source)
                at ru.CryptoPro.ssl.o.<init>(Unknown Source)
                at ru.CryptoPro.ssl.am.setEnabledProtocols(Unknown Source)
                at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
                at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
                at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(Unknown Source)
                at sun.net.www.protocol.http.HttpURLConnection.access$100(Unknown Source)
                at sun.net.www.protocol.http.HttpURLConnection$8.run(Unknown Source)
                at sun.net.www.protocol.http.HttpURLConnection$8.run(Unknown Source)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.AccessController.doPrivilegedWithCombiner(Unknown Source)
                at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source)
                at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(Unknown Source)
                at com.caucho.hessian.client.HessianURLConnection.getOutputStream(HessianURLConnection.java:97)
                at com.caucho.hessian.client.HessianProxy.sendRequest(HessianProxy.java:279)
                at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:171)
                at com.sun.proxy.$Proxy0.logon(Unknown Source)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at org.springframework.remoting.caucho.HessianClientInterceptor.invoke(HessianClientInterceptor.java:222)
                ... 65 more


Почему идет ругань на Java 7 только на сервере, а на Java 8 на клиенте? В какую сторону копать?
Offline Евгений Афанасьев  
#2 Оставлено : 18 сентября 2015 г. 12:46:57(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
По второму логу (java 8) - попытка софта передать в JTLS протокол TSLv1.1, отсюда - IllegalArgumentException: TLSv1.1, т.к. JTLS работает только с TLSv1.0.
В первом случае (java 7) - видимо, не выбрана сайферсюита. Нужны подробные логи (SSLLogger с уровнем ALL), версии JCP и JTLS на сервере и клиенте.
Offline vega  
#3 Оставлено : 21 сентября 2015 г. 11:51:46(UTC)
vega

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

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

Сказал(а) «Спасибо»: 11 раз
Автор: afev Перейти к цитате
По второму логу (java 8) - попытка софта передать в JTLS протокол TSLv1.1, отсюда - IllegalArgumentException: TLSv1.1, т.к. JTLS работает только с TLSv1.0.
В первом случае (java 7) - видимо, не выбрана сайферсюита. Нужны подробные логи (SSLLogger с уровнем ALL), версии JCP и JTLS на сервере и клиенте.


Непонятно кто пытается передать неправильный протокол. В софте вся настройка TLS заключается в установке системных свойств:
Код:

	public void initClientSsl(boolean twoWaySsl) throws CryptException {
		if (!isInitialized())
			throw new CryptException("Библиотека не инициализирована");

		System.setProperty("javax.net.ssl.trustStoreType", "CertStore");
		System.setProperty("javax.net.ssl.trustStorePassword", "XXXXXXXX");
		System.setProperty("javax.net.ssl.trustStore", settings.getTrustStoreFile()
				.getAbsolutePath());

		if (twoWaySsl) {
			System.setProperty("javax.net.ssl.keyStoreType", settings.getKeyStoreType().getName());
			char[] pass = settings.getKeyPassword();
			System.setProperty("javax.net.ssl.keyStorePassword", pass == null ? "" : new String(
					pass));
			System.setProperty("javax.net.ssl.keyStoreAlias", settings.getKeyName());
		}
	}


По 7-й версии - пробовал JCP 2.0.38150 (у меня на тесте c Java 7 все с ней работает) и 2.0.38481. Java 1.7.0_80-b15. Лог после включения SSLLogger: catalina.2015-09-21.log (182kb) загружен 5 раз(а).
Offline Евгений Афанасьев  
#4 Оставлено : 21 сентября 2015 г. 13:05:45(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
По логу видно, что сначала пришло:
Код:
FINE: %% ClientHello, TLSv1; Cipher Suites: [Unknown 0xc0:0xa, Unknown 0xc0:0x14, Unknown 0x0:0x35, Unknown 0xc0:0x5, Unknown 0xc0:0xf, Unknown 0x0:0x39, Unknown 0x0:0x38, Unknown 0xc0:0x9, Unknown 0xc0:0x13, Unknown 0x0:0x2f, Unknown 0xc0:0x4, Unknown 0xc0:0xe, Unknown 0x0:0x33, SSL3_CK_GVO_KB2, Unknown 0xc0:0x8, Unknown 0xc0:0x12, Unknown 0x0:0xa, Unknown 0xc0:0x3, Unknown 0xc0:0xd, Unknown 0x0:0x16, Unknown 0x0:0x13, Unknown 0xc0:0x7, Unknown 0xc0:0x11, Unknown 0x0:0x5, Unknown 0xc0:0x2, Unknown 0xc0:0xc, Unknown 0x0:0x4, Unknown 0x0:0xff]; Compression Methods: 0; Extensions: Unsupported extension elliptic_curves, data: [0, 50, 0, 23, 0, 1, 0, 3, 0, 19, 0, 21, 0, 6, 0, 7, 0, 9, 0, 10, 0, 24, 0, 11, 0, 12, 0, 25, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 2, 0, 18, 0, 4, 0, 5, 0, 20, 0, 8, 0, 22], Extension ec_point_formats, formats: [uncompressed];

Поэтому no cipher suites in common (нет ГОСТ cipher suite).

Затем следом:
Код:
FINE: %% ClientHello, TLSv1; Cipher Suites: [TLS_CIPHER_2012, TLS_CIPHER_2001, SSL3_CK_GVO_KB2]; Compression Methods: 0; Extensions: Extension ext_hash_and_mac_alg_select, ext_hash_and_mac_alg_select: [48, 32, 48, 30, 48, 8, 6, 6, 42, -123, 3, 2, 2, 9, 48, 8, 6, 6, 42, -123, 3, 2, 2, 22, 48, 8, 6, 6, 42, -123, 3, 2, 2, 23], Extension renegotiation_info, renegotiated_connection: <empty>;


Тут все в порядке, далее по логу состоялся обмен, сервером отправлен ответ:
Код:
ALL: [Session-1, TLS_CIPHER_2001] Plaintext before ENCRYPTION:  len = 6743
0000: 48 54 54 50 2F 31 2E 31   20 32 30 30 20 4F 4B 0D  HTTP/1.1 200 OK.
0010: 0A 53 65 72 76 65 72 3A   20 41 70 61 63 68 65 2D  .Server: Apache-
0020: 43 6F 79 6F 74 65 2F 31   2E 31 0D 0A 53 65 74 2D  Coyote/1.1..Set-
0030: 43 6F 6F 6B 69 65 3A 20   4A 53 45 53 53 49 4F 4E  Cookie:


По поводу установки параметров типа javax.net.ssl* - если используется интеграция с каким-то сторонним софтом, то:
1) тот может переопределять эти свойства;
2) может инициализировать контекст (SSLContext) по-своему, на свое усмотрение, и передавать/устанавливать свои параметры.

Отредактировано пользователем 21 сентября 2015 г. 13:07:27(UTC)  | Причина: Не указана

Offline vega  
#5 Оставлено : 21 сентября 2015 г. 13:46:35(UTC)
vega

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

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

Сказал(а) «Спасибо»: 11 раз
Спасибо за разъяснения, вот только вопрос, как мне кажется, мало связан со сторонним ПО (из него используется Spring Framework). Почему один и тот же клиент (Java desktop приложение) и сервер ведут себя по разному:
1. На клиенте и сервере Java 6 и JCP 1.0, никаких проблем не возникает, все работает, логи чистые
2. На клиенте и сервере Java 7 + JCP 2.0 - связка работает, но вначале не могут выбрать шифр, а потом все таки договариваются
3. На сервере Java 7, на клиенте Java 8. Везде JCP 2.0. Клиент не стартует, показывая ошибку "java.lang.IllegalArgumentException: TLSv1.1".

ПО не пересобирается, меняются только версии Java и JCP.
Offline Евгений Афанасьев  
#6 Оставлено : 24 сентября 2015 г. 16:46:55(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 715 раз в 675 постах
Автор: vega Перейти к цитате

2. На клиенте и сервере Java 7 + JCP 2.0 - связка работает, но вначале не могут выбрать шифр, а потом все таки договариваются
3. На сервере Java 7, на клиенте Java 8. Везде JCP 2.0. Клиент не стартует, показывая ошибку "java.lang.IllegalArgumentException: TLSv1.1".

2 - не согласуется список сайферсюит, потому что кто-то шлет неподдерживаемый список, я привел Client Hello из лога выше. Потом приходит правильный список (содержащий TLS_CIPHER_2001 и TLS_CIPHER_2012). Такое бывает, когда в софте используется HttpsConnection - объекты этого класса могут по-своему регулировать список сюит и протоколы. Например, в android он может слать SSLv3, хотя тот не поддерживается в cpSSL.
3 - тут от софта исходит требование использовать TLSv1.1, т.к., видимо, это протокол по умолчанию (т.е. предполагается использовать его или версию выше). Однако cpSSL поддерживает только TLS v1.0. Значит, надо это как-то прописать и передать (в объект класса, использующего cpSSL или еще где-то).

Отредактировано пользователем 24 сентября 2015 г. 16:48:27(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.