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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline e.ochkurov  
#1 Оставлено : 29 августа 2011 г. 15:11:00(UTC)
e.ochkurov

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

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

Есть Крипто-про CSP 3.6, который включает в себя revocation provide. Я так понимаю он встраивается в систему вместо дефолтного(в реестре посмотрел) И по-идее должен по умолчанию проверять статус сертификата при запросе CryptoAPI Windows, я использую CAPICOM который по сути является оберткой функций CryptoAPI. Сертификат получил из тестового центра Крипто-про, он предоставляет сервис OCSP, пытаюсь проверить статус этого сертификата, но проверка выдает что статус сертификата неизвестен, но при установке CRL с тестового центра Крипто-про статус определяется как валидный. В сертификате имеется ссылка на OCSP сервер тестового центра Крипто-про, и вроде бы запрос OCSP должен был бы идти по умолчанию к центру но что-то не получается проверить. Можете помочь?
Offline Femi  
#2 Оставлено : 29 августа 2011 г. 15:31:42(UTC)
Наталья Мовчан

Статус: Padawan

Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC)
Сообщений: 1,381
Женщина
Российская Федерация
Откуда: Москва

Сказала «Спасибо»: 11 раз
Поблагодарили: 69 раз в 47 постах
Цитата:
Крипто-про CSP 3.6, который включает в себя revocation provide

А Вы его установили?
Цитата:
пытаюсь проверить статус этого сертификата

как проверяете?
Техническую поддержку оказываем тут.
Наша база знаний.
Offline e.ochkurov  
#3 Оставлено : 29 августа 2011 г. 17:28:42(UTC)
e.ochkurov

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

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

Да, установил. В ветке реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\OID\EncodingType 1\CertDllVerifyRevocation\DEFAULT стоит значение :
C:\ Program Files\Crypto Pro\CSP\reprov.dll. В панели КриптоПро PKI тоже есть пункт КриптоПро Revocation Provider.

А проверяю так
Код:
function CheckDigitalCertificates(Certificate)
    {	
      	  
	  var CAPICOM_CHECK_ONLINE_ALL = 495;
	  var CAPICOM_CHECK_OFFLINE_ALL = 503;	  
	  
	  var CAPICOM_INFO_SUBJECT_SIMPLE_NAME = 0;
	  
	  var CAPICOM_TRUST_IS_NOT_TIME_VALID = 1;
      var CAPICOM_TRUST_IS_NOT_TIME_NESTED = 2;
      var CAPICOM_TRUST_IS_REVOKED = 4;
      var CAPICOM_TRUST_IS_NOT_SIGNATURE_VALID = 8;
      var CAPICOM_TRUST_IS_NOT_VALID_FOR_USAGE = 16;
      var CAPICOM_TRUST_IS_UNTRUSTED_ROOT = 32;
      var CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN = 64;
      var CAPICOM_TRUST_IS_CYCLIC = 128;
      var CAPICOM_TRUST_IS_PARTIAL_CHAIN = 65536;
      var CAPICOM_TRUST_CTL_IS_NOT_TIME_VALID = 131072;
      var CAPICOM_TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144;
      var CAPICOM_TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288;      
	  
	  Certificate.IsValid().CheckFlag = CAPICOM_CHECK_ONLINE_ALL;
	  
	  var CertStat;
	  
	  if (Certificate.IsValid().Result == true)
      {           
		document.write("<div style = 'color : green'>The certificate is valid</div>");
      }
	  else
      {
        var Chain = new ActiveXObject("CAPICOM.Chain");
        Chain.Build(Certificate);
     
        if (CAPICOM_TRUST_IS_NOT_SIGNATURE_VALID & Chain.Status)
        {          
		  document.write("<div style = 'color : red'>The certificate or one of the certificates in the certificate chain does not have a valid signature</div>");
		  delete Chain;
          return false;
        }
        if ((CAPICOM_TRUST_IS_UNTRUSTED_ROOT & Chain.Status) || (CAPICOM_TRUST_IS_PARTIAL_CHAIN & Chain.Status))
        {          
		  document.write("<div style = 'color : red'>Unable to chain to a trusted authority</div>");
		  delete Chain;
          return false;
        }
        if (CAPICOM_TRUST_IS_CYCLIC & Chain.Status)
        {
          document.write("<div style = 'color : red'>One of the certificates in the chain was issued by a certification authority that the original certificate had certified</div>");
          delete Chain;
		  return false;
        }
        if (CAPICOM_TRUST_CTL_IS_NOT_TIME_VALID & Chain.Status)
        {
          document.write("<div style = 'color : red'>A CTL used to create this chain was not time valid</div>");
          delete Chain;
		  return false;
        }
        if (CAPICOM_TRUST_CTL_IS_NOT_SIGNATURE_VALID & Chain.Status)
        {
          document.write("<div style = 'color : red'>A CTL used to create this chain did not have a valid signature</div>");
		  delete Chain;
          return false;
        }
        if (CAPICOM_TRUST_CTL_IS_NOT_VALID_FOR_USAGE & Chain.Status)
        {
          document.write("<div style = 'color : red'>A CTL used to create this chain is not valid for this usage</div>");
		  delete Chain;
          return false;
        }
        if (CAPICOM_TRUST_IS_NOT_TIME_VALID & Chain.Status)
        {
          document.write("<div style = 'color : red'>This certificate or one of the certificates in the certificate chain is not time valid</div>");
		  delete Chain;
          return false;
        }
        if (CAPICOM_TRUST_IS_NOT_TIME_NESTED & Chain.Status)
        {
          document.write("<div style = 'color : red'>Certificates in the chain are not properly time nested</div>");
		  delete Chain;
          return false;
        }
        if (CAPICOM_TRUST_IS_NOT_VALID_FOR_USAGE & Chain.Status)
        {
          document.write("<div style = 'color : red'>The certificate or certificate chain is not valid for its proposed usage</div>");
		  delete Chain;
          return false;
        }
        if (CAPICOM_TRUST_IS_REVOKED & Chain.Status)
        {
          document.write("<div style = 'color : red'>Trust for this certificate or one of the certificates in the certificate chain has been revoked</div>");
		  delete Chain;
          return false;
        }
        if (CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN & Chain.Status)
        {
          document.write("<div style = 'color : red'>The revocation status of the certificate or one of the certificates in the certificate chain is unknown</div>");
		  delete Chain;
          return false;
        }
      }	     
    }
Offline Максим Коллегин  
#4 Оставлено : 29 августа 2011 г. 17:29:32(UTC)
Максим Коллегин

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

Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC)
Сообщений: 6,393
Мужчина
Откуда: КРИПТО-ПРО

Сказал «Спасибо»: 37 раз
Поблагодарили: 717 раз в 621 постах
А лицензия на reprov валидна?
Знания в базе знаний, поддержка в техподдержке
Offline e.ochkurov  
#5 Оставлено : 29 августа 2011 г. 17:58:41(UTC)
e.ochkurov

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

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

maxdm написал:
А лицензия на reprov валидна?

да, до 29.11.2011

и попутный еще вопрос:
можно ли через тестовый УЦ КриптоПро отозвать выданный сертификат, чтобы проверить работу OCSP?

Отредактировано пользователем 29 августа 2011 г. 18:00:02(UTC)  | Причина: Не указана

Offline Femi  
#6 Оставлено : 29 августа 2011 г. 18:15:49(UTC)
Наталья Мовчан

Статус: Padawan

Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC)
Сообщений: 1,381
Женщина
Российская Федерация
Откуда: Москва

Сказала «Спасибо»: 11 раз
Поблагодарили: 69 раз в 47 постах
Для чего? OCSP должен дать ответ- если сертификат как валиден, так и отозван
Техническую поддержку оказываем тут.
Наша база знаний.
Offline e.ochkurov  
#7 Оставлено : 29 августа 2011 г. 18:43:01(UTC)
e.ochkurov

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

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

А КриптоПро сначала будет проверять по OCSP и в случае неудачи по CRL?
Offline Femi  
#8 Оставлено : 29 августа 2011 г. 18:55:36(UTC)
Наталья Мовчан

Статус: Padawan

Группы: Администраторы
Зарегистрирован: 02.12.2010(UTC)
Сообщений: 1,381
Женщина
Российская Федерация
Откуда: Москва

Сказала «Спасибо»: 11 раз
Поблагодарили: 69 раз в 47 постах
Наш Revocation provider сначала пойдет по ссылкам в сертификате на OCSP службу. Если нормального ответа не получит, то пойдет по адресу, заданному групповыми политиками(если такой указан). Если всеми описанными способами не получит ответ- проверять начинает виндовый ревок.провайдер. Тот в свою очередь сначала ищет локально СОС, потом идет по ссылке на CRL из сертификата(или не идет, если он по ней уже ходил и СОС еще не истек-использует файловый кеш)
Техническую поддержку оказываем тут.
Наша база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.