Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.06.2014(UTC) Сообщений: 65  Сказал(а) «Спасибо»: 5 раз
|
Добрый день! Мы используем сертифицированную версию Крипто-про JCP 2.0.39014 и JTLS 2.0. Недавно нам от партнера пришло сообщение, что с февраля 2020 года "при передаче через Интернет (конфигурация протокола HTTPS) начнет использоваться TLS версии 1.2." И рекомендации по тестированию, куда зайти и что посмотреть. Мы попробовали обратиться к их тестовому серверу, используя стандартное установление ssl-соединения Код:
SSLContext ctx =SSLContext.getInstance("GostTLS");
TrustManagerFactory tmf =TrustManagerFactory.getInstance("GostX509");
...
ctx.init(null, tmf.getTrustManagers(),null);
И нам возвращается ошибка Caused by: javax.net.ssl.SSLException: Received fatal alert: PROTOCOL_VERSION at ru.CryptoPro.ssl.C.a(Unknown Source) at ru.CryptoPro.ssl.C.a(Unknown Source) at ru.CryptoPro.ssl.am.b(Unknown Source) at ru.CryptoPro.ssl.am.a(Unknown Source) at ru.CryptoPro.ssl.am.i(Unknown Source) at ru.CryptoPro.ssl.am.startHandshake(Unknown Source)
С текущими боевыми серверами все работает корректно. Почитали доки и не нашли, где можно каким-то образом указать версию TLS. Можно нам подсказать, есть ли возможность где-то указать в коде или настроить используемую версию TLS?
|
|
|
|
Статус: Эксперт
Группы: Участники
Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 395 раз в 366 постах
|
Добрый день. Насчет Джавы могу ошибаться, но я бы попробовал указать что-то вроде "GostTLSv1.2" или "GostTLSv12".
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Добрый день. Добавлю, что нужно обновить версию jcp, а все константы для выбора алгоритма указаны в рук-ве разработчика jtls. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.06.2014(UTC) Сообщений: 65  Сказал(а) «Спасибо»: 5 раз
|
Автор: Евгений Афанасьев  Добавлю, что нужно обновить версию jcp, а все константы для выбора алгоритма указаны в рук-ве разработчика jtls. Хорошо, спасибо. В какой версии jcp 2.0 есть такая возможность? Отредактировано пользователем 16 декабря 2019 г. 12:05:42(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Если искать по слову tls в changelog, то можно найти первое упоминание: 2017-06-28 КриптоПро JCP 2.0.39267 * tls: рефакторинг, добавлена поддержка ГОСТ TLS v. 1.1, 1.2, удалены сайфер-сюиты SSL3_CK_GVO_KB2, SSL3_CK_GVO (JCP-386) Последние версии (2.0.40XXX) на сайте сертифицированы. Есть версия для java 10+. После обновления спустя 3 года (39014 был 2016-10-04) не исключены "сюрпризы" (были введены различные ограничения в виде отключаемых предупреждений, например, может потребоваться передать -Dtls_prohibit_disabled_validation=false для java и т.п., все изменения в changelog для тэга tls). Значимые изменения: Код:
* tls: добавлена проверка отключения проверки сертификата другой стороны в SSLContext, которую можно отключить -Dtls_prohibit_disabled_validation=false (JCP-1256)
* tls: удалена фильтрация сертификатов по алгоритму ключа из CertificateRequest для клиента (JCP-1211, JCP-1215)
* tls: на закладке "Настройки сервера" удалена возможность отключить передачу RI клиентом (JCP-1081)
* tls: удалено явное определение ГОСТового провайдера подписи в параметрах при построении цепочки сертификатов другой стороны (JCP-1003)
* tls: устранена ошибка bad handshake record mac (JCP-692)
* tls: рефакторинг, добавлена поддержка ГОСТ TLS v. 1.1, 1.2, удалены сайфер-сюиты SSL3_CK_GVO_KB2, SSL3_CK_GVO (JCP-386)
* tls: хранение и редактирование настроек JTLS только под управлением учетной записи администратора (JCP-713)
Отредактировано пользователем 16 декабря 2019 г. 12:11:41(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 10.06.2014(UTC) Сообщений: 65  Сказал(а) «Спасибо»: 5 раз
|
Автор: Евгений Афанасьев  все константы для выбора алгоритма указаны в рук-ве разработчика jtls. Скачали новую версию, 40502, сидим, читаем доки. В руководстве разработчика jtls видим текст: Из SSLContext далее можно получить SSLSocketFactory и создавать сокеты. Поддерживаемые протоколы: GostTLS – соответствует TLS v. 1.0.
Но про другие протоколы ни слова. Почитали документ, поиском поискали, ничего нету про TLS 1.2. В примерах тоже не нашли. Везде только GostTLS. Можно подсказать хоть примерно, где описаны константы?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Автор: HelenKlimova  Автор: Евгений Афанасьев  все константы для выбора алгоритма указаны в рук-ве разработчика jtls. Скачали новую версию, 40502, сидим, читаем доки. В руководстве разработчика jtls видим текст: Из SSLContext далее можно получить SSLSocketFactory и создавать сокеты. Поддерживаемые протоколы: GostTLS – соответствует TLS v. 1.0.
Но про другие протоколы ни слова. Почитали документ, поиском поискали, ничего нету про TLS 1.2. В примерах тоже не нашли. Везде только GostTLS. Можно подсказать хоть примерно, где описаны константы? Проверил, действительно, нет упоминаний. Скорее всего, по каким-то причинам были удалены. Алгоритмы есть в классе ru.CryptoPro.ssl.Provider: Код:
public static final String ALGORITHM = "GostTLS";
public static final String ALGORITHM_11 = "GostTLSv1.1";
public static final String ALGORITHM_12 = "GostTLSv1.2";
Также можно использовать "TLSv1", "TLSv1.1", "TLSv1.2" в сочетании с именем провайдера "JTLS". Отредактировано пользователем 16 декабря 2019 г. 13:31:38(UTC)
| Причина: Не указана |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 23.12.2019(UTC) Сообщений: 4
|
Добрый день java version "1.8.0_231" версия криптопро rel.2.0.40502 настройки tls [img]https://pastenow.ru/63c1173501e42a3ba39a7702f5fd7ee7[/img] при запуске Цитата: public static void main(String[] args) throws NoSuchAlgorithmException { SSLContext sslContext = SSLContext.getDefault(); System.out.println(sslContext.getSocketFactory()); }
исключение Цитата:Caused by: java.security.KeyManagementException: Certificate validation is disabled but required. The check can be turned off using -Dtls_prohibit_disabled_validation=false or SetPrefs (see the programmer's guide) or TLSSettings.
при использовании системной настройки -Dtls_prohibit_disabled_validation=false все ок. но при попытке задать настройку через SetPrefs - та же ошибка поиск по форуму предлагает варианты задания настройки Цитата:java ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl/util -key tls_prohibit_disabled_validation -value false данный вариант не срабатывает... в ходе отладки было определено, что поиск производится в узле System Preference Node: /ru/CryptoPro/ssl, а не в ru/CryptoPro/ssl/util так же было обнаружено, что реализация метода для этой настройки выглядит следующим образом Цитата: public static boolean getTlsProhibitDisabledValidation() { boolean var0 = GetProperty.getBooleanProperty("tls_prohibit_disabled_validation", true); boolean var1 = a.getBoolean("tls_prohibit_disabled_validation", var0); return var0 || var1; }
т.е. если мы хотим задать значение false через SetPrefs, то false мы никогда не получим Подскажите, пожалуйста, в чем тут проблема?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 23.12.2019(UTC) Сообщений: 4
|
Так же еще есть вопрос, почему после установки JCP провайдер становится дефолтным в системе, т.е. SSLContext.getDefault() возвращает инстанс JCP, это поведение как то можно поменять?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Здравствуйте. Автор: gusev.a.c@gmail.com  Подскажите, пожалуйста, в чем тут проблема?
Выглядит, как ошибка, спасибо, исправим в следующей сборке. Автор: gusev.a.c@gmail.com  почему после установки JCP провайдер становится дефолтным в системе, т.е. SSLContext.getDefault() возвращает инстанс JCP, это поведение как то можно поменять?
Поведение можно поменять, если вернуть часть настроек в java.security, как было: ssl.KeyManagerFactory.algorithm=SunX509 ssl.TrustManagerFactory.algorithm=PKIX и убрать ssl.SocketFactory.provider=ru.CryptoPro.ssl.SSLSocketFactoryImpl ssl.ServerSocketFactory.provider=ru.CryptoPro.ssl.SSLServerSocketFactoryImpl Это, кстати, можно сделать и программно, с помощью Security.setProperty(). Эти настройки добавляются, т.к. не все реализации http client используют SSLContext, куда можно явно передать алгоритмы, а обращаются к дефолтным параметрам (тем, что в java.security и которые могут быть не-ГОСТ). Отредактировано пользователем 23 декабря 2019 г. 17:47:18(UTC)
| Причина: Не указана |
|
 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close