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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline ThinkingAnna  
#1 Оставлено : 4 декабря 2017 г. 17:54:27(UTC)
ThinkingAnna

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

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

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

Используем JTLS для создания защищенного соединения с двухcторонней аутентификации (мы - клиент).
На JCP 1.0.54 (JDK 1.7.21) все работает как надо.

Код такой:
Код:

            SSLContext sslContext = SSLContext.getInstance("GostTLS");
            
            KeyStore keyStore = KeyStore.getInstance("HDImageStore", JCP.PROVIDER_NAME);
            keyStore.load(null, ksPassword.toCharArray());
            KeyManagerFactory kmf = KeyManagerFactory.getInstance("GostX509");
            kmf.init(keyStore, null);
            
            KeyStore trustedKeyStore = KeyStore.getInstance("CertStore", "JCP");
            trustedKeyStore.load(new FileInputStream(tsAlias), tsPassword.toCharArray());
            TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
            tmf.init(trustedKeyStore);
            sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), SecureRandom.getInstance("CPRandom", "JCP"));


При переходе на JCP 2.0.39014 (JDK 1.7.45) возникли проблемы.
Обновили Java, КриптоПро, контейнеры с ключами и сертификатами остались прежние. На запрос получаем ответ сервера:
Bad Request HTTP Error 400. The request URL is invalid

В логе (в прикрепленном файле) с ключами и сертификатами как будто все в порядке.

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

log.txt (42kb) загружен 6 раз(а).
Offline Евгений Афанасьев  
#2 Оставлено : 5 декабря 2017 г. 9:45:02(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Визуально в логе все в порядке, хендшейк произведен, ошибку сервер дает на конкретный запрос HTTPS://test.rb-ei.com:443/cpuEnquiry.asp после хендшейка.
По логу - найден ключ:
Код:

found key: OKN
------
Certificate chain [0] for key:OKN 
  Subject: T=Тестовый xxx, CN=Тестовый xxx 2017, O=XXX XXX, L=Москва, C=RU, EMAILADDRESS=xx@xx-xxx.ru
  Valid from Mon Apr 10 16:54:00 MSK 2017 until Sun Apr 10 17:04:00 MSK 2022
------

Отправлен ClientHello:
Код:

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>;

Получен ServerHello и сертификат:
Код:

FINE: %% ServerHello, TLSv1; Cipher Suite: TLS_CIPHER_2001; Compression Method: 0; Extensions: Extension ext_hash_and_mac_alg_select, ext_hash_and_mac_alg_select: [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];
FINE: %% Certificate message:
------
  Subject: CN=*.rb-ei.com, O=UCB, L=Moscow, C=RU, EMAILADDRESS=pki@e-i.ru
  Valid from Fri Jun 09 17:41:00 MSK 2017 until Sat Jun 09 17:51:00 MSK 2018
------
FINE: [PKIX] Certificate chain was built (length: 2).

Получен ServerHelloDone:
Код:

FINE: %% ServerHelloDone (empty) 

Отправлен ClientKeyExchange:
Код:

FINE: %% ClientKeyExchange...

Затем
Код:

FINE: %% Finished.
FINE: ChangeCipherSpec %% Finished.

Далее запрос в ходе обмена данными:
Код:

ALL: [Session-2, TLS_CIPHER_2001] Plaintext before ENCRYPTION:  len = 229
0000: 43 4F 4E 4E 45 43 54 20   74 65 73 74 2E 72 62 2D  CONNECT test.rb-
0010: 65 69 2E 63 6F 6D 3A 34   34 33 20 48 54 54 50 2F  ei.com:443 HTTP/
0020: 31 2E 31 0D 0A 55 73 65   72 2D 41 67 65 6E 74 3A  1.1..User-Agent:
0030: 20 4A 61 76 61 2F 31 2E   37 2E 30 5F 34 35 0D 0A   Java/1.7.0_45..
0040: 48 6F 73 74 3A 20 74 65   73 74 2E 72 62 2D 65 69  Host: test.rb-ei
0050: 2E 63 6F 6D 0D 0A 41 63   63 65 70 74 3A 20 74 65  .com..Accept: te
0060: 78 74 2F 68 74 6D 6C 2C   20 69 6D 61 67 65 2F 67  xt/html, image/g
0070: 69 66 2C 20 69 6D 61 67   65 2F 6A 70 65 67 2C 20  if, image/jpeg, 
0080: 2A 3B 20 71 3D 2E 32 2C   20 2A 2F 2A 3B 20 71 3D  *; q=.2, */*; q=
0090: 2E 32 0D 0A 50 72 6F 78   79 2D 43 6F 6E 6E 65 63  .2..Proxy-Connec
00A0: 74 69 6F 6E 3A 20 6B 65   65 70 2D 61 6C 69 76 65  tion: keep-alive
00B0: 0D 0A 50 72 6F 78 79 2D   61 75 74 68 6F 72 69 7A  ..Proxy-authoriz
00C0: 61 74 69 6F 6E 3A 20 42   61 73 69 63 20 59 57 35  ation: Basic YW5
00D0: 7A 4F 6D 46 75 63 7A 45   31 55 67 3D 3D 0D 0A 0D  zOmFuczE1Ug==...
00E0: 0A 2D D3 7D 80                                     .-...

и ответ:
Код:

ALL: [Session-2, TLS_CIPHER_2001] Plaintext after DECRYPTION:  len = 507
0000: 48 54 54 50 2F 31 2E 31   20 34 30 30 20 42 61 64  HTTP/1.1 400 Bad
0010: 20 52 65 71 75 65 73 74   0D 0A 43 6F 6E 74 65 6E   Request..
01F0: 48 54 4D 4C 3E 0D 0A 75   95 33 74                 ..u.3t

Попробуйте задать у JCPLogger уровень INFO (чтобы не мешал), а у логера SSLLogger оставить ALL.
Правда, не заметил HelloRequest с сервера с последующей передачей им списка доверенных издателей, выбора сертификата на стороне клиента и его отправки на сервер - клиентская аутентификация на сервере включена?

Отредактировано пользователем 5 декабря 2017 г. 9:47:24(UTC)  | Причина: Не указана

Offline ThinkingAnna  
#3 Оставлено : 5 декабря 2017 г. 11:43:54(UTC)
ThinkingAnna

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

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

Сказала «Спасибо»: 4 раз
Какой-то HelloRequest есть. Это не он?

Код:
дек 05, 2017 12:34:34 PM ru.CryptoPro.ssl.ao a
FINE: %% HelloRequest (empty)


Переключила JCPLogger на уровень INFO
Новый лог.
logNew2.txt (190kb) загружен 3 раз(а).

Вот для сравнения лог с 1.0.54, где соединение проходит успешно
logOk.txt (42kb) загружен 2 раз(а).

Отредактировано пользователем 5 декабря 2017 г. 11:48:55(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 5 декабря 2017 г. 12:38:38(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
В логе 1.0.54 его нет и первом логе тоже не было (сервер по-разному отвечает?). JRE используется разная? Настройки в панели на закладке "Настройки JTLS" совпадают? Ограничения на экспорт сняты? Как нам воспроизвести проблему, требуется ли ключевой контейнер?

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

Offline ThinkingAnna  
#5 Оставлено : 5 декабря 2017 г. 12:54:43(UTC)
ThinkingAnna

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

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

Сказала «Спасибо»: 4 раз
Экспортные ограничения сняты.
JRE разные, т.к. соответствуют версиям JCP. Работает на Java 1.7.21 (JCP 1.0.54). Ошибку получаем на Java 1.7.45 (JCP 2.0)
Настройки JTLS совпадают (в 2.0 настроек больше, галка "Check revocation status of the sertificate chain" снята)

Вот ключевой контейнер, который используем
пароль 4747
OKN.000.rar (2kb) загружен 2 раз(а).
Offline Евгений Афанасьев  
#6 Оставлено : 5 декабря 2017 г. 13:05:25(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
На закладке JTLS есть галка с надписью вида "Не отправлять расширение..." (последняя снизу) - можете попробовать ее поставить?
thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
ThinkingAnna оставлено 05.12.2017(UTC)
Offline ThinkingAnna  
#7 Оставлено : 5 декабря 2017 г. 13:15:07(UTC)
ThinkingAnna

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

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

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

Цитата:
На закладке JTLS есть галка с надписью вида "Не отправлять расширение..." (последняя снизу) - можете попробовать ее поставить?


Помогло! Огромное спасибо! Applause
Offline Евгений Афанасьев  
#8 Оставлено : 5 декабря 2017 г. 13:19:47(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Причина, видимо, в том, что клиент шлет renegotiation indication (появилось в jcp 2.0) после HelloRequest в своем ClientHello, при этом CSP неправильно обрабатывает RI на своей стороне.

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

Offline ThinkingAnna  
#9 Оставлено : 20 июня 2018 г. 19:05:17(UTC)
ThinkingAnna

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

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

Сказала «Спасибо»: 4 раз
Добрый вечер!

Опять проблемы при работе с этим ресурсом, уже с рабочим сервером.
Исходные данные те же (JCP 2.0.39014 + JDK 1.7.45, двухcторонняя аутентификация, все корневые сертификаты в хранилище, личный сертификат корректен)

На запрос получаем ответ сервера: Ошибка 503.
На стороне сервера говорят, что ресурс доступен и проблема у нас в сертфикатах.
Вот логи (в прикрепленном файле)
Подскажите, пожалуйста, в чем может быть дело?

log20602018.txt (40kb) загружен 4 раз(а).
Offline Евгений Афанасьев  
#10 Оставлено : 20 июня 2018 г. 19:42:32(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Если бы сертификат не был отправлен, то ошибка была бы другая.
По логам он успешно передается:
Код:

%% Certificate message: 
------
  Subject: T=***, CN=***, O=***, L=***, ST=Московская, C=RU, EMAILADDRESS=***@***.ru
  Valid from Mon Aug 28 12:23:00 AST 2017 until Sun Aug 28 12:33:00 AST 2022

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