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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline adudarko  
#1 Оставлено : 8 февраля 2016 г. 11:01:08(UTC)
adudarko

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

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

Сказал «Спасибо»: 1 раз
Здравствуйте,

Пытаюсь получить результат подписи SignedInfo аналогичный тому, что выдает cades_xmldsig_sample
На входе

На выходе

Подсчет значения хэша в DigestValue совпадает.

  1. канонизирую тег signedinfo (не забывая предварительно протранслировать неймспейс в тег SignedInfo):


  2. считаю ГОСТ хэш от SignedInfo, получаю:
    Hex: f98d4c65b6b6892d2d9de552507b32ad2275854622b961f8408b5ae260c3fbe6
    Base64: +Y1MZba2iS0tneVSUHsyrSJ1hUYiuWH4QIta4mDD++Y=

  3. втыкаю с помощью CAdESCOM.HashedData.SetHashValue HEX значение хэша

  4. с помощью CAdESCOM.RawSignature.SignHash создаю подпись
    получаю 87FAA3C95A9A99504BF5856799368AADFC21DF7AC6B9D1EE7E9BD32014F2EAFBA07FC81ECA6288E142C1402222830CE23DB835B701559A47291DFB89CA412950

  5. попарно, как строку, переворачиваю полученный HEX
    получаю 502941CA89FB1D29479A5501B735B83DE20C83222240C142E18862CA1EC87FA0FBEAF21420D39B7EEED1B9C67ADF21FCAD8A36996785F54B50999A5AC9A3FA87

  6. преобразовываю в base64
    получаю UClByon7HSlHmlUBtzW4PeIMgyIiQMFC4Yhiyh7If6D76vIUINObfu7RucZ63yH8rYo2mWeF9UtQmZpayaP6hw==

  7. втыкаю как значение тега SignatureValue

  8. наблюдаю отсутствие ошибки при проверке с помощью vbs скрипта


используемая функция:


Полученная подпись при замене в теге SignatureValue проходит проверку с помощью скрипта


p.s. исправил исходную постановку, теперь все работает

Отредактировано пользователем 12 февраля 2016 г. 8:13:15(UTC)  | Причина: теперь все работает

Offline Павел Смирнов  
#2 Оставлено : 8 февраля 2016 г. 13:55:02(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Переворот на шаге 5 сделан неправильно. Надо прочитать байты (пары символов) с конца в начало.
Техническую поддержку оказываем тут.
Наша база знаний.
thanks 1 пользователь поблагодарил Павел Смирнов за этот пост.
adudarko оставлено 12.02.2016(UTC)
Offline adudarko  
#3 Оставлено : 8 февраля 2016 г. 14:05:43(UTC)
adudarko

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

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

Сказал «Спасибо»: 1 раз
Автор: Смирнов Перейти к цитате
Переворот на шаге 5 сделан неправильно. Надо прочитать байты (пары символов) с конца в начало.


Т.е. переворот должен быть следующий:
на шаге 4 получаю: 6D2D2BAF55A010A537A5100B51584A8A664AC043013E237843A0405652273EE78CEBE92737E56FDF61A2BDC225D9D920D13D73A04582884D388CCA035046D101

на шаге 5 переворачиваю попарно: 01D1465003CA8C384D888245A0733DD120D9D925C2BDA261DF6FE53727E9EB8CE73E27525640A04378233E0143C04A668A4A58510B10A537A510A055AF2B2D6D

на шаге 6 преобразовываю в base64: AdFGUAPKjDhNiIJFoHM90SDZ2SXCvaJh32/lNyfp64znPidSVkCgQ3gjPgFDwEpmikpYUQsQpTelEKBVrystbQ==

... но втыкаю в тег SignatureValue - подпись не проходит

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

Offline Павел Смирнов  
#4 Оставлено : 9 февраля 2016 г. 12:26:21(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Посмотрите успешные примеры реализации подобного функционала здесь: https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=9870. Возможно, появятся какие-то идеи.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline adudarko  
#5 Оставлено : 9 февраля 2016 г. 13:00:46(UTC)
adudarko

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

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

Сказал «Спасибо»: 1 раз
Автор: Смирнов Перейти к цитате
Посмотрите успешные примеры реализации подобного функционала здесь: https://www.cryptopro.ru/forum2/default.aspx?g=posts&t=9870. Возможно, появятся какие-то идеи.


К сожалению задача в предложенном Вами варианте несколько отличается от моей. Мне нужно корректным образом получить подпись заранее подготовленного хэша и вставить потом ее обратно в документ. При этом нет возможности использовать КриптоПро.NET. По ссылке не нашел нигде работы с RawSignature и HashedData...
На сколько я понял, требуется корректно "перевернуть" значение подписи перед вставкой в документ, но, к сожалению, я не совсем понимаю как.

Быть может я упускаю что-то еще из алгоритма подписи, поэтому и прошу помочь.

Отредактировано пользователем 9 февраля 2016 г. 13:01:41(UTC)  | Причина: Не указана

Offline adudarko  
#6 Оставлено : 12 февраля 2016 г. 7:41:04(UTC)
adudarko

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

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

Сказал «Спасибо»: 1 раз
Разобрался - проблема, как и у большинства подобных тем на форуме с каноникализацией - в моем случае я забыл протранслировать namespace подписи в тег SignedInfo.
В итоге подпись прошла проверку vbs скриптом.

исправил первое сообщение

Отредактировано пользователем 12 февраля 2016 г. 7:48:27(UTC)  | Причина: Не указана

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