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

Уведомление

Icon
Error

4 Страницы<1234>
Опции
К последнему сообщению К первому непрочитанному
Offline lartok  
#41 Оставлено : 2 апреля 2019 г. 12:00:28(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Попробуйте пожалуйста еще раз. Спасибо
Offline Евгений Афанасьев  
#42 Оставлено : 2 апреля 2019 г. 12:02:15(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
Да, теперь вижу.
Offline Евгений Афанасьев  
#43 Оставлено : 2 апреля 2019 г. 12:13:35(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
Не могли бы вы дать адрес для подключения? Есть предположение, что используется не тот корневой.
Offline lartok  
#44 Оставлено : 2 апреля 2019 г. 12:22:50(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате
Не могли бы вы дать адрес для подключения? Есть предположение, что используется не тот корневой.


Это у них тестовая среда. Доступ к сервису открывают по IP. По политике конфиденциальности адрес к сожалению не могу дать.
Offline Евгений Афанасьев  
#45 Оставлено : 2 апреля 2019 г. 12:26:07(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
Тогда можете приложить сертификат сервера и ваш trust store? Сертификат сервера можно скачать с помощью того же csptest с опцией -savecert (сохранит p7b), делая запрос к серверу: -tlsc -server ...
Offline lartok  
#46 Оставлено : 2 апреля 2019 г. 12:26:26(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Где в логе мне тыкнуть - чтобы показать им на подозрение.
Offline lartok  
#47 Оставлено : 2 апреля 2019 г. 12:27:54(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате
Тогда можете приложить сертификат сервера и ваш trust store? Сертификат сервера можно скачать с помощью того же csptest с опцией -savecert (сохранит p7b), делая запрос к серверу: -tlsc -server ...


Сделаю в течении часа. Спасибо
Offline lartok  
#48 Оставлено : 2 апреля 2019 г. 14:23:07(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате
Тогда можете приложить сертификат сервера и ваш trust store? Сертификат сервера можно скачать с помощью того же csptest с опцией -savecert (сохранит p7b), делая запрос к серверу: -tlsc -server ...


Эта конференция требует регистрации перед тем как вы сможете увидеть скрытые сообщения.

Отредактировано пользователем 2 апреля 2019 г. 14:36:34(UTC)  | Причина: Не указана

Offline lartok  
#49 Оставлено : 2 апреля 2019 г. 14:24:48(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Сертификат сервера получил путем импорта-экспорта криптопро CSP, чтобы получить нормальный вид.

P.S.: Сравнивал - 1 в 1 одинаковые.

Отредактировано пользователем 2 апреля 2019 г. 14:25:31(UTC)  | Причина: Не указана

Offline lartok  
#50 Оставлено : 3 апреля 2019 г. 9:30:55(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате
Тогда можете приложить сертификат сервера и ваш trust store? Сертификат сервера можно скачать с помощью того же csptest с опцией -savecert (сохранит p7b), делая запрос к серверу: -tlsc -server ...


Есть какие-нибудь предположения?
Offline Евгений Афанасьев  
#51 Оставлено : 3 апреля 2019 г. 9:59:08(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
Доступ в сеть для проверки на отзыв имеется? Попробуйте отключить проверку цепочки сертификатов в настройках JTLS в панели управления JCP под управлением администратора. Если нет возможности в панели, то так (под управлением администратора):
<JRE>/bin/java ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl -key Enable_revocation_default -value false
Offline lartok  
#52 Оставлено : 3 апреля 2019 г. 10:10:27(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате
Доступ в сеть для проверки на отзыв имеется? Попробуйте отключить проверку цепочки сертификатов в настройках JTLS в панели управления JCP под управлением администратора. Если нет возможности в панели, то так (под управлением администратора):
<JRE>/bin/java ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl -key Enable_revocation_default -value false


Автор: lartok Перейти к цитате
Еще до этого добавил:
Код:
Preferences p = Preferences.userRoot().node("ru/CryptoPro/ssl");
p.put("Enable_revocation_default", "false");



Также проделывал
Код:
<JRE>/bin/java ru.CryptoPro.JCP.Util.SetPrefs -system -node ru/CryptoPro/ssl -key Enable_revocation_default -value false


Еще раз сделаю.
Offline lartok  
#53 Оставлено : 3 апреля 2019 г. 10:24:41(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
WARNING: Thread-13, handling exception: javax.net.ssl.SSLHandshakeException: ru.CryptoPro.ssl.pc_4.cl_5: Extended key usage does not permit use for TLS server authentication

Другая ошибка
Offline Евгений Афанасьев  
#54 Оставлено : 3 апреля 2019 г. 10:34:51(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
Вероятно, потому что в сертификате сервера нет использования "Проверка подлинности сервера":
Цитата:

Проверка подлинности сервера (1.3.6.1.5.5.7.3.1)

Есть только:
Цитата:

Проверка подлинности клиента (1.3.6.1.5.5.7.3.2)
Защищенная электронная почта (1.3.6.1.5.5.7.3.4)
Пользователь Центра Регистрации, HTTP, TLS клиент (1.2.643.2.2.34.6)
Неизвестное использование ключа (1.2.643.6.45.1.1.1)

Эту проверку не отключить, разве что свои менеджеры (KeyManager и TrustManager) передавать в SSLContext.

Offline Евгений Афанасьев  
#55 Оставлено : 3 апреля 2019 г. 10:35:53(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
Автор: lartok Перейти к цитате

Автор: lartok Перейти к цитате
Еще до этого добавил:
Код:
Preferences p = Preferences.userRoot().node("ru/CryptoPro/ssl");
p.put("Enable_revocation_default", "false");



userRoot() -> systemRoot()

Offline lartok  
#56 Оставлено : 3 апреля 2019 г. 10:39:42(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате

Эту проверку не отключить, разве что свои менеджеры (KeyManager и TrustManager) передавать в SSLContext.

Конечно первым делом позвоню, как альтернатива - где посмотреть как это сделать?
Offline lartok  
#57 Оставлено : 3 апреля 2019 г. 10:50:32(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате
Вероятно, потому что в сертификате сервера нет использования "Проверка подлинности сервера":
Цитата:

Проверка подлинности сервера (1.3.6.1.5.5.7.3.1)

Есть только:
Цитата:

Проверка подлинности клиента (1.3.6.1.5.5.7.3.2)
Защищенная электронная почта (1.3.6.1.5.5.7.3.4)
Пользователь Центра Регистрации, HTTP, TLS клиент (1.2.643.2.2.34.6)
Неизвестное использование ключа (1.2.643.6.45.1.1.1)

Эту проверку не отключить, разве что свои менеджеры (KeyManager и TrustManager) передавать в SSLContext.



Код:
	    
	    System.setProperty("com.sun.security.enableCRLDP", "false");
	    System.setProperty("com.ibm.security.enableCRLDP", "false");
	    try{
	    	KeyStore trustStore = KeyStore.getInstance("HDImageStore"); 

	    	trustStore.load(new FileInputStream(trustStorePath),
	      "12345".toCharArray()); // пароль к хранилищу - 11111111

	    	TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
	    	tmf.init(trustStore);

	    	KeyStore keyStore = KeyStore.getInstance("HDImageStore");
	    	keyStore.load(null, null);

	    	KeyManagerFactory kmf = KeyManagerFactory.getInstance("GostX509");
	    	kmf.init(keyStore, keyStorePassword.toCharArray()); // пароль к ключу для отбора по типу и паролю

	    	SSLContext sslCtx = SSLContext.getInstance("GostTLS");
	    	sslCtx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);

	    	SSLSocketFactory sslSocketFactory = sslCtx.getSocketFactory();

	    	URL url = new URL(urlstr); // адрес подключения
	    	HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();

	    	connection.setSSLSocketFactory(sslSocketFactory); // используется метод объекта, а не статический
	    	connection.connect();
	    	printContent(connection); // чтение данных
	    	connection.disconnect();
	    } catch (NoSuchAlgorithmException e) {
			// TODO Auto-generated catch block
			log.info(e.getMessage());
		} catch (CertificateException e) {
			// TODO Auto-generated catch block
			log.info(e.getMessage());
		} catch (KeyStoreException e) {
			// TODO Auto-generated catch block
			log.info(e.getMessage());
		} catch (UnrecoverableKeyException e) {
			// TODO Auto-generated catch block
			log.info(e.getMessage());
		} catch (KeyManagementException e) {
			// TODO Auto-generated catch block
			log.info(e.getMessage());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			log.info(e.getMessage());			
		}	


Так тоже пробовал
Offline Евгений Афанасьев  
#58 Оставлено : 3 апреля 2019 г. 11:57:11(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
Условно, так:
Код:

class MyX509ExtendedKeyManager extends X509ExtendedKeyManager {

  private final KeyStore keyStore;

  // Обычно формируется кэш из пар "алиас=сертификат+ключ", перечисленных и подобранных по паролю
  public MyX509ExtendedKeyManager(KeyStore keyStore, char[] password) {
    System.out.println("MyX509ExtendedKeyManager()");
    this.keyStore = keyStore;
  }

  // получение списка алиасов для выбора ключа и сертификата
  @Override
  public String[] getClientAliases(String s, Principal[] principals) {
    System.out.println("getClientAliases()");
    return new String[] {"clientTLS"};
  }

  // получение алиаса для выбора ключа и сертификата
  @Override
  public String chooseClientAlias(String[] strings, Principal[] principals, Socket socket) {
    System.out.println("chooseClientAlias()");
    return "clientTLS";
  }

  @Override
  public String[] getServerAliases(String s, Principal[] principals) {
    System.out.println("getServerAliases()");
    return new String[0];
  }

  @Override
  public String chooseServerAlias(String s, Principal[] principals, Socket socket) {
    System.out.println("chooseServerAlias()");
    return null;
  }

  // чтение сертификатов, обычно это кэш со списком пар "алиас=сертификат+ключ"
  @Override
  public X509Certificate[] getCertificateChain(String s) {
    System.out.println("getCertificateChain()");
    try {
      Certificate[] certs1 = keyStore.getCertificateChain(s);
      X509Certificate[] certs2 = new X509Certificate[certs1.length];
      System.arraycopy(certs1, 0, certs2, 0, certs1.length);
      return certs2;
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

  // чтение ключа, обычно это кэш со списком пар "алиас=сертификат+ключ"
  @Override
  public PrivateKey getPrivateKey(String s) {
    System.out.println("getPrivateKey()");
    try {
      return (PrivateKey) keyStore.getKey(s, "1".toCharArray());
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

};

class MyX509ExtendedTrustManager extends X509ExtendedTrustManager {

  // Загрузка доверенных сертификатов
  public MyX509ExtendedTrustManager(KeyStore trustStore, char[] password) {
    System.out.println("MyX509ExtendedTrustManager()");
  }

  @Override
  public void checkClientTrusted(X509Certificate[] x509Certificates, String s, Socket socket) throws CertificateException {
    System.out.println("checkClientTrusted()");
  }

  // проверка серверного сертификата
  @Override
  public void checkServerTrusted(X509Certificate[] x509Certificates, String s, Socket socket) throws CertificateException {
    System.out.println("checkServerTrusted()");
  }

  @Override
  public void checkClientTrusted(X509Certificate[] x509Certificates, String s, SSLEngine sslEngine) throws CertificateException {
    System.out.println("checkClientTrusted()");
  }

  // проверка серверного сертификата
  @Override
  public void checkServerTrusted(X509Certificate[] x509Certificates, String s, SSLEngine sslEngine) throws CertificateException {
    System.out.println("checkServerTrusted()");
  }

  @Override
  public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
    System.out.println("checkClientTrusted()");
  }

  // проверка серверного сертификата
  @Override
  public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
  System.out.println("checkServerTrusted()");
  }

  @Override
  public X509Certificate[] getAcceptedIssuers() {
    System.out.println("getAcceptedIssuers()");
    return new X509Certificate[0];
  }

};

  KeyStore keyStore = KeyStore.getInstance("HDImageStore");
  keyStore.load(null, null);

  KeyStore trustStore = KeyStore.getInstance("CertStore");
  trustStore.load(new FileInputStream("truststore.store"), "1".toCharArray());

  SSLContext sslCtx = SSLContext.getInstance("GostTLS");
  sslCtx.init(new KeyManager[] {
                new MyX509ExtendedKeyManager(keyStore, "1".toCharArray())},
                new TrustManager[] {new MyX509ExtendedTrustManager(trustStore, null)},
                null
  );

  SSLSocketFactory sslSocketFactory = sslCtx.getSocketFactory();
  ...

Отредактировано пользователем 3 апреля 2019 г. 12:31:02(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#59 Оставлено : 3 апреля 2019 г. 11:58:47(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 15 раз
Поблагодарили: 529 раз в 507 постах
System.setProperty("com.sun.security.enableCRLDP", "false"); означает, что CRL будут переданы иначе и их не нужно грузит из сети по CRLDP в сертификатах.
Offline lartok  
#60 Оставлено : 3 апреля 2019 г. 14:01:22(UTC)
lartok

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

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

Сказал(а) «Спасибо»: 9 раз
Поблагодарили: 1 раз в 1 постах
Автор: Евгений Афанасьев Перейти к цитате
System.setProperty("com.sun.security.enableCRLDP", "false"); означает, что CRL будут переданы иначе и их не нужно грузит из сети по CRLDP в сертификатах.


У нас (клиент) нельзя подгружать он-лайн CRL - нам надо указать путь до CRL? правильно ли я понимаю?

Пробовал System.setProperty("com.sun.security.enableCRLDP", "True"); - Ошибка не поменялась.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
4 Страницы<1234>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.