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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline YuraYura  
#1 Оставлено : 23 апреля 2015 г. 15:53:42(UTC)
YuraYura

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

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

Помогите пожалуйста разобраться почему у меня не удается проверить подпись содержащейся в файле TSLExt.1.0.xml скачанного с http://e-trust.gosuslugi.ru/CA

Имею следующие результаты:
1) Мне удалось подсчитать ГОСТ хэш данных файла TSLExt.1.0.xml и этот хэш совпал с содержащимся в этом файле
2) Мне не удается проверить подпись содержащуюся в этом файле
3) У меня есть опыт подписания xml и создания xmldsig файлов, которые успешно проверяется на http://smev.gosuslugi.ru/portal/services-tools.jsp
также я успешно отсылаю SOAP запросы (в формате xmldsig) в сервисы СМЭВ и получаю ответы в формате xmldsig. Успешно проверяю содержащиеся в этих файлах подписи в линуксе используя следующие утилиты:
- программа для получения хэшей гост:
/opt/cprocsp/bin/amd64/cryptcp -hash <файл_с_каноникализированными_данными> -dir <директория_для_сохранения_файла_с_хэшом>
- программа для проверки подписи:
/opt/cprocsp/bin/amd64/csptestf -keyset -verify GOST -in <файл_с_каноникализированными_данными> -signature <файл_с_побайтно_ревертированной_подписью> -certificate <сертификат_для_проверки>

Пытаюсь проверить подпись (элемент /АккредитованныеУдостоверяющиеЦентры/Signature/) всех данных в файле TSLExt.1.0.xml следующим образом:
1) сохраняю в файле элемент /АккредитованныеУдостоверяющиеЦентры/Signature/SignedInfo и каноникализирую exc-c14n с помощью (xmlstarlet)
2) сохраняю сертификат /АккредитованныеУдостоверяющиеЦентры/Signature/KeyInfo/X509Data/X509Certificate в файл, раскодируя из base64
3) сохраняю подпись /АккредитованныеУдостоверяющиеЦентры/Signature/SignatureValue в файл, раскодируя из base64
4) пытаюсь проверить подпись с помощью утилиты /opt/cprocsp/bin/amd64/csptestf и получаю отрицательный результат

Предположительно возможные причины получения отрицательного результата при проверке подписи:
1) подпись содержащаяся в файле не верна (маловероятно)
2) неверная каноникализация данных SignedInfo
3) возможно что перед проверкой подпись SignatureValue надо как-то преобразовать (я не знаю в каком формате подпись и как это выяснить)
4) утилита /opt/cprocsp/bin/amd64/csptestf не поддерживает формат подписи или каких-то параметров не хватает

Изучал следующие документы:
http://www.gosuslugi.ru/...s/DS_Information_MKS.pdf
http://www.etsi.org/deli...60/ts_102231v020101p.pdf
Offline Skarvon  
#2 Оставлено : 16 июня 2015 г. 17:24:42(UTC)
Skarvon

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

Группы: Участники
Зарегистрирован: 17.09.2012(UTC)
Сообщений: 37
Мужчина
Откуда: Москва

Сказал «Спасибо»: 9 раз
ну точно, метод канонизации не правильный, для подписи должен быть "REC-xml-c14n-20010315", для данных: - "xml-exc-c14n#"
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.