Статус: Участник
  Группы: Участники
 Зарегистрирован: 14.12.2010(UTC) Сообщений: 18 Откуда: Питер
  
	 
	
     | 
    
        
            
		      
                Да, спасибо, есть у меня такой SDK. Там кстати нет примеров на использование Chain. Да и вот думаю, а надо ли оно, мне: может достаточно проверить сертификат на время действия? (что собственно и делает метод verify с параметром CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE)  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2351 раз в 1847 постах
  
	 
	
     | 
    
        
            
		      
                PavelK написал:Да, спасибо, есть у меня такой SDK. Там кстати нет примеров на использование Chain. Да и вот думаю, а надо ли оно, мне: может достаточно проверить сертификат на время действия? (что собственно и делает метод verify с параметром CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE)   Цитата:Там кстати нет примеров на использование Chain.  есть!   открыть папку  \Program Files\Microsoft CAPICOM 2.1.0.2 SDK\Samples\c_sharp\chainsh или это был скрытый вопрос - а где?Отредактировано пользователем 2 марта 2012 г. 21:32:34(UTC)
 | Причина: Не указана    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 14.12.2010(UTC) Сообщений: 18 Откуда: Питер
  
	 
	
     | 
    
        
            
		      
                В примере на c нет использования метода build, а я так понимаю, вся суть в нем. Вот такой пример я нашел на  http://support.microsoft.com/kb/304298/ru:Dim cert  Dim chain as New Chain  For i = 1 To sData.Certificates.Count    Set cert = sData.Certificates(i)    cert.IsValid.CheckFlag = CAPICOM_CHECK_TRUSTED_ROOT Or _                             CAPICOM_CHECK_TIME_VALIDITY Or _                             CAPICOM_CHECK_SIGNATURE_VALIDITY Or _                             CAPICOM_CHECK_ONLINE_REVOCATION_STATUS    If cert.IsValid.Result Then      'CERTIFICATE IS VALID!    Else      chain.Build cert      If CAPICOM_TRUST_IS_REVOKED And chain.Status Then       'AT LEAST ONE CERTIFICATE IN THE CHAIN HAS BEEN REVOKED.      End If        If CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN And chain.Status Then        'THE REVOCATION STATUS COULD NOT BE DETERMINED.     End If    End If    Next i  Хотелось бы понять что тут происходит. Вот мы только что получили файл .sig, выполнили проверку его содержимого через verify (там все ок), выдернули из signData сертификат и проверяем его цепочку как в этом примере:  1. проперти cert.IsValid.CheckFlag в момент задания значений выполняет какие-то проверки (так ли?), после чего анализируется cert.IsValid.Result.  Среди прочих там задается флаг CAPICOM_CHECK_ONLINE_REVOCATION_STATUS, но как можно проверять отозванные сертификаты, если цепочка еще не построена? Причем онлайн!  2. В какой момент (в этом примере) отозванные сертификаты скачиваются с УЦ и что будет, если нет интернет-соединения?  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,733  Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
  
	 
	
     | 
    
        
            
		      
                Цитата:1. проперти cert.IsValid.CheckFlag в момент задания значений выполняет какие-то проверки (так ли?), после чего анализируется cert.IsValid.Result.  Среди прочих там задается флаг CAPICOM_CHECK_ONLINE_REVOCATION_STATUS, но как можно проверять отозванные сертификаты, если цепочка еще не построена? Причем онлайн!  Из MSDN Цитата:The IsValid method builds a certificate verification chain for a certificate and returns a CertificateStatus object that contains the validity status of the certificate.  Так что цепочка там строится. Цитата:2. В какой момент (в этом примере) отозванные сертификаты скачиваются с УЦ и что будет, если нет интернет-соединения?  Будет ошибка в Chain.Status CAPICOM_TRUST_REVOCATION_STATUS_UNKNOWN | CAPICOM_TRUST_IS_OFFLINE_REVOCATION.    | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 14.12.2010(UTC) Сообщений: 18 Откуда: Питер
  
	 
	
     | 
    
        
            
		      
                >Так что цепочка там строится. Тогда не очень понял, зачем еще раз строить цепочку, но уже через chain.Build cert, как видно из примера microsoft.  (если метод IsValid уже ее построил) 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Участник
  Группы: Участники
 Зарегистрирован: 14.12.2010(UTC) Сообщений: 18 Откуда: Питер
  
	 
	
     | 
    
        
            
		      
                Очень странно. Похоже, что функция Verify все же проверяет в том числе и цепочку. Вот, что она выдает на одном из sig-ов:
  "Цепочка сертификатов обработана, но обработка прервана на корневом сертификате, у которого отсутствует отношение доверия с поставщиком доверия."
  Тогда я не понимаю, зачем мне еще юзать Chain.Build cert   ? Или она только CLR обновляет? (цель по-прежнему выполнить полную проверку ЭЦП) 
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 18.08.2014(UTC) Сообщений: 90   Сказал «Спасибо»: 21 раз Поблагодарили: 9 раз в 9 постах
  
	 
	
     | 
    
        
            
		      
                Всем здравствовать! Возвращаясь к самой теме: как узнать "Что внутри файла sig?" для обычного пользователя, у которого установлено КриптоПро CSP-4.0.x (есть capicom-2.1.0), но  нет КриптоАРМ? От клиента при ЭДО получены файлы скан-копии документа из ЕИС по закупкам с sig-файлом открепленной ЭП. ВОПРОС: возможно-ли чем-то и как просмотреть информацию sig-файла, подтверждающую ЭП основного ЭД скан-копии, на уровне прессэникейщиков? (т.е. с минимальными действиями администратора что-то доустановить или доступным для уровня простых пользователей порядком действий "перейти туда-то -> открыть то-то -> выбрать это -> нажать тут -> ...)  в закрытой доменной сети без доступа к интернету? Понимаю, что без помощи системного администратора не обойтись, но цель - сделать это как можно проще и быстрее для него, не обладающим программированием в области криптографии. Отредактировано пользователем 13 августа 2020 г. 9:28:24(UTC)
 | Причина: Не указана  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Сотрудник
  Группы: Участники
 Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,987   Сказал «Спасибо»: 605 раз Поблагодарили: 2351 раз в 1847 постах
  
	 
	
     | 
    
        
            
		      
                Здравствуйте.  В составе КриптоПро CSP 5 есть приложение для проверки подписи-Инструменты КриптоПро, в меню Пуск\... \КриптоПро
 
     | 
 | 
            
	 
        
    
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
        
            
            
    
        
	Статус: Эксперт
  Группы: Участники
 Зарегистрирован: 05.03.2015(UTC) Сообщений: 1,602  Откуда: Иркутская область Сказал(а) «Спасибо»: 110 раз Поблагодарили: 397 раз в 367 постах
  
	 
	
     | 
    
        
            
		      
                Добрый день. Немного жесткая формулировка задачи, потому что как раз в Интернете есть различные ресурсы для проверки ЭП файла, удобные для рядового пользователя: это и госуслуги и госзакупки и сервисы конкретных УЦ (Контура, например) и DSS сервисы от Криптопро. В принципе во многих системах ЭДО (как СУФД) уже есть команда проверки подписи или она чем-то не устраивает? Есть на форуме и ссылки на авторские утилиты проверки с графическим интерфейсом, но тут уже сами смотрите доверяете ли автору. В дополнение к ответу выше, описывающему возможности 5 версии. Технически на Криптопро CSP 4 версии можно для проверки подписи воспользоваться утилитами командной строки от КриптоПро cryptcp (скачивается на сайте КриптоПро) / csptest (уже идет в комплекте). Либо через командную строку openssl + gostengy + Криптопро CSP  подробнее здесь). Если "как есть" и без гарантий - есть уже скомпилированные openssl под Windows с добавленным gostengy, так что не нужно вникать в тонкости сборки из исходных текстов. Текст команд можно поискать по форуму. У утилит есть встроенная справка, по ней тоже можно составить команду, а для cryptcp и openssl еще и справка в виде pdf. Далее, удобнее сделать или cmd/bat файл, на который перетаскивать .sig файл или дописать команду в реестр, а потом щелкать правой кнопкой по файлу и выбирать команду проверки. С учетом того, что форматы содержимого SIG могут быть слегка разные, а не все утилиты автоматически определяют формат - возможно потребуется несколько cmd файлов или пунктов команд. Вроде бы названное не требует глубоких знаний криптографии, скорее уж навыков написания cmd файлов, работы с командной строкой и добавления команд в контекстное меню.
 
 Выглядит cmd на подписание у меня примерно так, по аналогии можно и проверку организовать Код:chcp 1251
cd \openssl_\bin
openssl cms -sign -engine gostengy -keyform ENGINE -inkey 028df5c169b8225feb40cc2c6396177966bd5a32 -in "%1" -out "%1.sig" -outform PEM -signer "C:\Others\1234.crt"
pause 
 
 
 
            
	  
         
     | 
    
        
              1 пользователь поблагодарил two_oceans за этот пост.  
     | 
    
        
     | 
    | 
        
	
     | 
        
        
        
            
        
            
            
    
        
	Статус: Активный участник
  Группы: Участники
 Зарегистрирован: 18.08.2014(UTC) Сообщений: 90   Сказал «Спасибо»: 21 раз Поблагодарили: 9 раз в 9 постах
  
	 
	
     | 
    
        
            
		      
                Автор: Андрей *  В составе КриптоПро CSP 5 есть приложение для проверки подписи-Инструменты КриптоПро, в меню Пуск\... КриптоПро
   Автор: Alex_04  установлено КриптоПро CSP-4.0.x (есть capicom-2.1.0), но нет КриптоАРМ  Спасибо за интересную информацию, но это не вариант, к сожалению. :(  Нет 5 пока и не слышно когда лицензии будут на неё.  
            
	  
         
     | 
    | 
         
             
     | 
    
         
            
         
     | 
    | 
        
	
     | 
        
        
        
    
	                           
	
    
        Быстрый переход
         
	
    
    Вы не можете создавать новые темы в этом форуме.
	
	Вы не можете отвечать в этом форуме.
	
	Вы не можете удалять Ваши сообщения в этом форуме.
	
	Вы не можете редактировать Ваши сообщения в этом форуме.
	
	Вы не можете создавать опросы в этом форуме.
	
	Вы не можете голосовать в этом форуме.
	
	
    
    
        Important Information:
        The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
        
        
More Details
        Close