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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline coldplay  
#1 Оставлено : 24 октября 2019 г. 9:05:06(UTC)
coldplay

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

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

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Имеется запрос на сертификат сгенерированный с помощью КриптоАРМ. Как можно посмотреть его детальный такой вид ? :

Код:
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject:
            commonName                = testcert.redkestrel.co.uk
            organizationName          = Red Kestrel Consulting Ltd
            localityName              = Stoke on Trent
            stateOrProvinceName       = Staffordshire
            countryName               = GB
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:d6:2d:e5:bc:f0:87:80:21:ad:e7:db:74:7d:f6:
                    2f:3b:e1:f8:74:8d:eb:5f:f9:24:ec:18:f8:24:7c:
                    65:c6:27:ef:ad:72:52:86:93:73:09:13:48:a3:0f:
                    83:cd:6b:11:97:50:23:54:2e:09:f6:44:ec:b2:6e:
                    6e:6c:4e:61:b3:a4:43:83:fb:50:00:03:25:7e:a4:
                    b4:28:14:d9:07:10:5b:ae:74:6a:95:33:a5:e4:3d:
                    67:ea:68:cd:af:2a:f7:73:51:b3:cf:0b:45:ff:31:
                    f0:c5:18:fc:5c:f0:06:37:4d:43:37:f3:97:3d:73:
                    df:d6:38:81:7a:35:47:00:bc:01:48:40:5d:33:1b:
                    b7:af:cc:96:41:a8:36:f8:7a:75:27:6a:d3:12:2c:
                    79:b1:45:63:22:d4:97:87:b5:f2:c8:35:78:4d:8a:
                    d1:de:c0:44:16:80:80:77:8f:5c:66:87:b0:8f:3b:
                    91:5e:4d:be:87:cd:00:f1:73:e7:fb:b8:c8:ac:63:
                    ab:3d:27:f3:e1:dc:67:8e:09:e2:03:a2:8a:94:f2:
                    39:df:57:97:86:13:32:0c:1f:90:85:31:98:da:8e:
                    b3:4a:17:80:d8:2b:76:11:c9:42:34:2b:ae:be:bf:
                    42:88:2e:85:27:b4:4b:3e:f8:cd:b4:2e:13:a7:f9:
                    51:3d
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption
         51:61:3b:a0:15:f7:48:b8:d8:34:ce:77:6e:c0:4e:94:d1:a7:
         b2:00:29:d4:fd:5f:88:23:e9:10:a6:99:18:43:94:27:6c:4e:
         82:e2:07:4a:ed:4d:d5:98:a0:2a:95:a6:88:00:19:c6:ea:1a:
         81:6d:51:fc:03:4c:de:35:e9:bc:22:d5:05:1b:f8:d0:01:c2:
         16:ca:2d:f6:e7:6b:74:26:23:23:8d:da:0c:70:1a:62:f2:e6:
         4f:8f:cf:be:99:ed:72:7d:3f:ef:e8:3f:fd:e9:40:1e:1a:fd:
         50:8a:28:31:9c:30:c2:8e:b2:a2:6e:bb:27:07:f0:fd:b7:bf:
         83:b3:1a:7b:b9:8f:1d:9d:a5:b1:04:d2:d3:68:44:7a:a5:72:
         9c:84:64:d9:6f:66:79:05:0b:ae:df:bf:6a:da:20:d2:6a:89:
         48:1c:74:5a:cc:2d:1e:58:93:73:e9:d7:16:94:2b:c0:52:04:
         cd:5b:8f:18:23:95:c3:b2:e6:09:f3:66:1c:d0:a4:65:5b:91:
         48:90:7f:f4:c7:4b:9a:b7:f0:72:13:c8:dc:d7:93:19:27:be:
         05:97:ec:3a:da:6d:db:fe:e3:f9:ba:9e:60:a1:6e:f0:1d:2c:
         b4:ba:09:04:49:e2:87:15:28:57:5f:2e:64:e9:8e:7a:e5:6e:
         5f:53:7a:9c


Пробовал разобрать контейнер стандартным кодом JCP:
Код:
 
        byte[] data = Files.readAllBytes(Paths.get("request.pem"));
        Decoder decoder = new Decoder();
        byte[] bytes = decoder.decodeBuffer(new String(data));
        Asn1BerDecodeBuffer dbuf = new Asn1BerDecodeBuffer(bytes);
        final ContentInfo all = new ContentInfo();
        all.decode(dbuf);
        dbuf.reset();
        final EnvelopedData cms = (EnvelopedData) all.content;


Но получаю ошибку парсинга :
Код:
Exception in thread "main" com.objsys.asn1j.runtime.Asn1MissingRequiredException: ASN.1 decode error @ offset 4:
SEQUENCE or SET is missing a required element.
	at ru.CryptoPro.JCP.ASN.CryptographicMessageSyntax.ContentInfo.decode(ContentInfo.java:73)
	at com.objsys.asn1j.runtime.Asn1Type.decode(Asn1Type.java:218)
	at internal.crypt.CryptoUtil.main(CryptoUtil.java:166)


Offline Санчир Момолдаев  
#2 Оставлено : 24 октября 2019 г. 21:55:02(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,215
Российская Федерация

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
запрос на сертификат это pkcs10
cms это pkcs7
поэтому вы и ловите ошибку
ну и зачем использовать jcp если ключевая пара сгенерирована на rsa?

p.s. очень странная печатная форма запроса
в конце должно быть еще следующее
-----BEGIN CERTIFICATE REQUEST-----
сам запрос в base64
его обычно и отправляют на УЦ
-----END CERTIFICATE REQUEST-----

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

Техническую поддержку оказываем тут
Наша база знаний
Offline two_oceans  
#3 Оставлено : 25 октября 2019 г. 5:21:16(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 395 раз в 366 постах
Автор: Санчир Момолдаев Перейти к цитате
p.s. очень странная печатная форма запроса
в конце должно быть еще следующее
Соглашусь, что в файле с кодировкой base64 должна быть последняя часть, но на печать может выводиться только "человеко-понятная форма", а не весь ASN.1 \ base64 запроса. По такой печатной форме невозможно точно восстановить сам запрос или сертификат (в сертификате больше информации чем в форме), но, например, УЦ Федерального казначейства выдает на ознакомление подобную форму сертификата.

Offline coldplay  
#4 Оставлено : 25 октября 2019 г. 8:45:39(UTC)
coldplay

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

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

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Автор: Санчир Момолдаев Перейти к цитате

ну и зачем использовать jcp если ключевая пара сгенерирована на rsa?


Я же прислал ПРИМЕР как хотелось бы получить данные из запроса сгенерированного из КриптоАРМ, было бы странно просить что-то уже имя это перед глазами =) Сам запрос в виде обычной base64 строки.

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

Offline Санчир Момолдаев  
#5 Оставлено : 25 октября 2019 г. 9:00:06(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,215
Российская Федерация

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
Тогда посмотрите в сторону GostCertificateRequest
Выдернуть данные оттуда, и сформировать как вам необходимо
Пример должен быть в samples-source.jar
Техническую поддержку оказываем тут
Наша база знаний
Offline coldplay  
#6 Оставлено : 25 октября 2019 г. 14:47:00(UTC)
coldplay

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

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

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
GostCertificateRequest за создание готового CSR отвечает судя по коду. Для разбора запроса на сертификат нужен CertificationRequest, вот рабочий пример :

Код:
  
        byte[] data = Files.readAllBytes(Paths.get("request"));
        Decoder decoder = new Decoder();
        byte[] bytes = decoder.decodeBuffer(new String(data));
        Asn1BerDecodeBuffer dbuf = new Asn1BerDecodeBuffer(bytes);
        CertificationRequest csr = new CertificationRequest();
        csr.decode(dbuf);
        dbuf.reset();


В итоге в полях csr лежат все данные. Единственное что не нашел способа вывода этого в читабельный вариант. certutil может некоторые атрибуты не находить. Большую часть идентификаторов полей нашел в ru.CryptoPro.reprov.x509.X500Name,
но некоторые никак не могу найти например { 2 5 29 37 } или { 2 5 29 15 }. Где можно узнать полное описание такие идентификаторов ?
thanks 1 пользователь поблагодарил coldplay за этот пост.
Санчир Момолдаев оставлено 25.10.2019(UTC)
Offline Санчир Момолдаев  
#7 Оставлено : 25 октября 2019 г. 15:32:45(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,215
Российская Федерация

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
Да) акелла промахнулся.
Спасибо за ваше уточнение.
Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#8 Оставлено : 25 октября 2019 г. 18:11:05(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 1,215
Российская Федерация

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 285 раз в 265 постах
Про oid посмотрите тут

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

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
coldplay оставлено 30.10.2019(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.