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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline fks  
#1 Оставлено : 16 ноября 2011 г. 17:27:59(UTC)
fks

Статус: Новичок

Группы: Участники
Зарегистрирован: 16.11.2011(UTC)
Сообщений: 1
Откуда: Казань

Имеется java-клиент (jdk 1.5, сервлет), использующий jcp и jtls (1.0.48) для соединения с веб-сервисом по https, аутентификация двухсторонняя.
В обычном режиме, когда запросы к веб-сервису идут "по одному" - все работает нормально. При проведении нагрузочного тестирования (запросы идут в несколько потоков) те же самые запросы, что нормально отрабатывают в обычном режиме, часто сваливаются с ошибками.
Лицензия на jtls предполагает неограниченное количество сессий.

Ошибки -

Код:
bad handshake record MAC
ru.CryptoPro.ssl.K.a(Unknown Source)
ru.CryptoPro.ssl.t.a(Unknown Source)
ru.CryptoPro.ssl.t.a(Unknown Source)
ru.CryptoPro.ssl.t.a(Unknown Source)
ru.CryptoPro.ssl.t.i(Unknown Source)
ru.CryptoPro.ssl.t.startHandshake(Unknown Source)
sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402)
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
ru.icl.unicredit.nhconnect.SoapSend.doPost(Unknown Source)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:734)
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)
com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:226)
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:127)
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:116)
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)
oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
java.lang.Thread.run(Thread.java:595)


или

Код:
Remote host closed connection during handshake
ru.CryptoPro.ssl.t.a(Unknown Source)
ru.CryptoPro.ssl.t.i(Unknown Source)
ru.CryptoPro.ssl.t.startHandshake(Unknown Source)
sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402)
sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:133)
ru.icl.unicredit.nhconnect.SoapSend.doPost(Unknown Source)
javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:734)
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)
com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:226)
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:127)
com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:116)
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:234)
oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:29)
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:879)
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
java.lang.Thread.run(Thread.java:595)


Собственно об ошибки происходят при попытке handshake -
ru.CryptoPro.ssl.t.startHandshake(Unknown Source)
sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:402)

Подскажите, пожалуйста, в чем может быть проблема ?

Offline mka  
#2 Оставлено : 16 ноября 2011 г. 18:57:02(UTC)
mka

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

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

С последней версией выложенной на сайте - JCP 1.0.52. Ситуация такая же?
Offline zhe  
#3 Оставлено : 28 мая 2012 г. 14:22:25(UTC)
zhe

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

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

Здравствуйте,

У меня возникла похожая проблема. Не уверен, что она связана именно с многопоточностью, но время от времени происходят следующие ошибки.
Окружение: jcp+jtls 1.0.52, jdk 1.6.0_29 x64, os - redhat enterprise linux 6.0.
Ошибки происходят при вызове сервиса, использующего КриптоПро CSP 3.6 R2.


Код:
javax.net.ssl.SSLHandshakeException: bad handshake record MAC
        at ru.CryptoPro.ssl.K.a(Unknown Source)[cpSSL.jar:1.0.2391]
        at ru.CryptoPro.ssl.t.a(Unknown Source)[cpSSL.jar:1.0.2391]
        at ru.CryptoPro.ssl.t.a(Unknown Source)[cpSSL.jar:1.0.2391]
        at ru.CryptoPro.ssl.t.a(Unknown Source)[cpSSL.jar:1.0.2391]
        at ru.CryptoPro.ssl.t.i(Unknown Source)[cpSSL.jar:1.0.2391]
        at ru.CryptoPro.ssl.t.startHandshake(Unknown Source)[cpSSL.jar:1.0.2391]
        at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)[:1.6]
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)[:1.6]
        at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1014)[:1.6.0_29]
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:230)[:1.6]
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1359)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.onFirstWrite(HTTPConduit.java:1305)
        at org.apache.cxf.io.AbstractWrappedOutputStream.write(AbstractWrappedOutputStream.java:42)
        at org.apache.cxf.io.AbstractThresholdOutputStream.write(AbstractThresholdOutputStream.java:69)
        at org.apache.cxf.io.CacheAndWriteOutputStream.write(CacheAndWriteOutputStream.java:68)
        at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:100)
        at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:225)
        at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:255)


В чем может быть проблема и как ее решать?

Offline mka  
#4 Оставлено : 28 мая 2012 г. 19:56:35(UTC)
mka

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

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

>Окружение: jcp+jtls 1.0.52, jdk 1.6.0_29 x64, os - redhat enterprise linux 6.0.
Это окружение клиента?
Тогда какое окружение сервера(ОС, какой Веб сервер используется)?
Offline zhe  
#5 Оставлено : 28 мая 2012 г. 20:25:24(UTC)
zhe

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

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

Про окружение сервера точно сказать не могу, т.к. это стороннее приложение.
Известно, что сервер работает на Microsoft-IIS/7.5 + КриптоПро CSP 3.6 R2 + КриптоПро TLS
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.