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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline eldargab  
#1 Оставлено : 19 января 2016 г. 18:55:45(UTC)
eldargab

Статус: Новичок

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

Формирование подписи

  1. Устанавливаем SDK, распаковываем архив с примерами и компилируем
  2. Запускаем любой проект формирующий подпись (например LowlevelSignDetachedCades)


Результаты

Пытаемся вытащить цепочку сертификатов

Код:
$ openssl pkcs7 -inform DER -noout -print_certs -text -in sign.dat
$ #Пусто


Смотрим на asn.1 дамп

Код:

    0:d=0  hl=4 l= 643 cons: SEQUENCE          
    4:d=1  hl=2 l=   9 prim:  OBJECT            :pkcs7-signedData
   15:d=1  hl=4 l= 628 cons:  cont [ 0 ]        
   19:d=2  hl=4 l= 624 cons:   SEQUENCE          
   23:d=3  hl=2 l=   1 prim:    INTEGER           :01
   26:d=3  hl=2 l=  12 cons:    SET               
   28:d=4  hl=2 l=  10 cons:     SEQUENCE          
   30:d=5  hl=2 l=   6 prim:      OBJECT            :GOST R 34.11-94
   38:d=5  hl=2 l=   0 prim:      NULL              
   40:d=3  hl=2 l=  11 cons:    SEQUENCE          
   42:d=4  hl=2 l=   9 prim:     OBJECT            :pkcs7-data
   53:d=3  hl=4 l= 590 cons:    SET               
   57:d=4  hl=4 l= 586 cons:     SEQUENCE          
   61:d=5  hl=2 l=   1 prim:      INTEGER           :01
   64:d=5  hl=3 l= 150 cons:      SEQUENCE          
   67:d=6  hl=2 l= 127 cons:       SEQUENCE          
   69:d=7  hl=2 l=  35 cons:        SET               
   71:d=8  hl=2 l=  33 cons:         SEQUENCE          
   73:d=9  hl=2 l=   9 prim:          OBJECT            :emailAddress
   84:d=9  hl=2 l=  20 prim:          IA5STRING         :support@cryptopro.ru


Смотрим на определение https://tools.ietf.org/html/rfc2315

Код:

   ContentInfo ::= SEQUENCE {
     contentType ContentType,
     content
       [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }

   SignedData ::= SEQUENCE {
     version Version,
     digestAlgorithms DigestAlgorithmIdentifiers,
     contentInfo ContentInfo,
     certificates
        [0] IMPLICIT ExtendedCertificatesAndCertificates
          OPTIONAL,
     crls
       [1] IMPLICIT CertificateRevocationLists OPTIONAL,
     signerInfos SignerInfos }

   DigestAlgorithmIdentifiers ::= SET OF DigestAlgorithmIdentifier

   ContentInfo ::= SEQUENCE {
     contentType ContentType,
     content
       [0] EXPLICIT ANY DEFINED BY contentType OPTIONAL }


Видим, что перед цепочкой сертификатов должна стоять метка [0], которая отсутсвует в дампе.

Смотрим на дамп корректной подписи

Код:

    0:d=0  hl=4 l=1434 cons: SEQUENCE          
    4:d=1  hl=2 l=   9 prim:  OBJECT            :pkcs7-signedData
   15:d=1  hl=4 l=1419 cons:  cont [ 0 ]        
   19:d=2  hl=4 l=1415 cons:   SEQUENCE          
   23:d=3  hl=2 l=   1 prim:    INTEGER           :01
   26:d=3  hl=2 l=  12 cons:    SET               
   28:d=4  hl=2 l=  10 cons:     SEQUENCE          
   30:d=5  hl=2 l=   6 prim:      OBJECT            :GOST R 34.11-94
   38:d=5  hl=2 l=   0 prim:      NULL              
   40:d=3  hl=2 l=  11 cons:    SEQUENCE          
   42:d=4  hl=2 l=   9 prim:     OBJECT            :pkcs7-data
   53:d=3  hl=4 l= 787 cons:    cont [ 0 ]        
   57:d=4  hl=4 l= 783 cons:     SEQUENCE          
   61:d=5  hl=4 l= 702 cons:      SEQUENCE          
   65:d=6  hl=2 l=   3 cons:       cont [ 0 ]        
   67:d=7  hl=2 l=   1 prim:        INTEGER           :02
   70:d=6  hl=2 l=  19 prim:       INTEGER           :12000A5F8F8C309AB893488BFD0000000A5F8F
   91:d=6  hl=2 l=   8 cons:       SEQUENCE          
   93:d=7  hl=2 l=   6 prim:        OBJECT            :GOST R 34.11-94 with GOST R 34.10-2001
  101:d=6  hl=2 l= 127 cons:       SEQUENCE          
  103:d=7  hl=2 l=  35 cons:        SET               
  105:d=8  hl=2 l=  33 cons:         SEQUENCE          
  107:d=9  hl=2 l=   9 prim:          OBJECT            :emailAddress
  118:d=9  hl=2 l=  20 prim:          IA5STRING         :support@cryptopro.ru      


Метка [0] перед сертификатами присутствует.

Таким образом, несмотря на то, что полученная подпись успешно проходит проверку средствами SDK, она совершенно не совместима и не понимается другими инструментами.

Версии

Windows 7 64
SDK 1.05.1549
CSP 3.9.8227
Примеры взяты из SDK 2.00.12098

Отредактировано пользователем 20 января 2016 г. 22:22:15(UTC)  | Причина: Не указана

Offline cross  
#2 Оставлено : 20 января 2016 г. 17:19:13(UTC)
Анатолий Беляев

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

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
В первой подписи у вас отсутствуют поля "certificates" и "crls". Сразу за ContentInfo у вас стоит SignerInfos, там версия сразу идет, соответственно меток [0] и [1] нет.
Поля "certificates" и "crls" - optional.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline eldargab  
#3 Оставлено : 20 января 2016 г. 20:25:59(UTC)
eldargab

Статус: Новичок

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

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