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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline JfbYtd-7900  
#1 Оставлено : 23 августа 2019 г. 13:08:26(UTC)
JfbYtd-7900

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

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

Поблагодарили: 1 раз в 1 постах
ФСС prParseReestrFile DigestValue. Некорректная подпись головной организации: ЭЦП неверна. INVALID_SIGNATURE ЭП недействительна. Обратитесь к разработчику программного обеспечения, на котором осуществлялось подписание данных.

Здравствуйте!

Может кто подскажет.

Реализовал взаимодействие с ФСС на получение ЭЛН getPrivateLNData, с шифрованием и без. Написал апи по вычислению DigestValue, формированию подписей, вычисление SignedInfo и пр. Все работает. Теперь дошло дело до реализации корректировки ЭЛН prParseReestrFile. Использую тоже самое апи. Казалось бы, просто другой BODY и добавлено еще несколько блоков подписей. Алгоритмы по вычислению DigestValue, формированию подписей, вычисления SignedInfo и пр должны быть таким же, просто подставь другие данные :). Но нет, ФСС возвращает ошибку:
Код:
<S:Body wsu:Id="OGRN_1027739443236">
      <ns1:prParseReestrFileResponse xmlns:ns1="http://ru/ibs/fss/ln/ws/FileOperationsLn.wsdl" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
         <ns1:WSResult>
            <ns1:REQUEST_ID>LNDATAINS_3103275205_2019_08_22_00018</ns1:REQUEST_ID>
            <ns1:STATUS>0</ns1:STATUS>
            <ns1:MESS>Найдены ошибки при проверке электронной подписи</ns1:MESS>
            <ns1:INFO>
               <ns1:ROWSET>
                  <ns1:ROW>
                     <ns1:ROW_NO>1</ns1:ROW_NO>
                     <ns1:LN_CODE>900000352887</ns1:LN_CODE>
                     <ns1:LN_HASH/>
                     <ns1:LN_STATE/>
                     <ns1:STATUS>0</ns1:STATUS>
                     <ns1:ERRORS>
                        <ns1:ERROR>
                           <ns1:ERR_CODE>ERR_SIGN</ns1:ERR_CODE>
                           <ns1:ERR_MESS>Некорректная подпись головной организации: ЭЦП неверна. INVALID_SIGNATURE ЭП недействительна. Обратитесь к разработчику программного обеспечения, на котором осуществлялось подписание данных.</ns1:ERR_MESS>
                        </ns1:ERROR>
                     </ns1:ERRORS>
                  </ns1:ROW>
               </ns1:ROWSET>
            </ns1:INFO>
         </ns1:WSResult>
      </ns1:prParseReestrFileResponse>
   </S:Body>


Есть ресурс https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_xmldsig_sample.html, где можно проверить подпись и получить DigestValue. Полученный там DigestValue совпадает с моим! Данные все в латинице, чтобы пока не напрягаться с кодировкой.

Связался с поддержкой ФСС, вышел еще на кого-то. У них запросы проходят корректно, но DigestValue не совпадают с моим и что интересно, с тем ресурсом от КрипоПро. Говорят, что-то у вас не так, а на вопрос почему ваш корректный DigestValue не совпадает с тем что выдает ресурс КрипоПро - молчание.

DigestValue можно вычислить несколькими способами: обработкой данных целиком и по блочно. Но значение блоков мне не известно, решил узнать методом подстановки, циклом. Но не вышел на их значение. Пробовал и DigestInputStream, безрезультатно.

Может кто сталкивался с подобной ситуацией? Помогите, пожалуйста. Очень странно когда один сервис работает, а другой не хочет. Ведь уверяют, что все одинаково.
Offline two_oceans  
#2 Оставлено : 23 августа 2019 г. 13:43:30(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Учитывая как ФСС натягивает стандарты, я не удивлюсь если ошибка из-за какого-то префикса в другом теле собщения, которого в ФСС не ожидали. Если нужно могу тоже проверить подпись своей программой, прикрепите сообщения вложениями здесь или в личку (кнопка со скрепкой). Возможно где-то перепутаны URI или дублируются ID, тогда будет просто выбираться не тот фрагмент текста от которого Вы считаете хэш (например, хэш от пустой строки, это обычно визуально похоже как если бы хэш не менялся от изменений текста).
Offline JfbYtd-7900  
#3 Оставлено : 23 августа 2019 г. 13:51:55(UTC)
JfbYtd-7900

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

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

Поблагодарили: 1 раз в 1 постах
Body_A.txt (2kb) загружен 35 раз(а).

Сертификат алгоритм 2012-256
DigestValue zXM2cc7biPpMRU/Hg18nczzwUKpgpe6Onoj5Qzue4y4=
Offline JfbYtd-7900  
#4 Оставлено : 23 августа 2019 г. 14:38:27(UTC)
JfbYtd-7900

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

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

Поблагодарили: 1 раз в 1 постах
Вставляю запрос целиком.
FSSSOAPQuery.txt (15kb) загружен 51 раз(а).
Offline two_oceans  
#5 Оставлено : 23 августа 2019 г. 18:51:10(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Кажется я понял почему расхождение: Вы считаете хэш от Body (после приведения к каноническому виду разумеется) он действительно равен zXM2cc7biPpMRU/Hg18nczzwUKpgpe6Onoj5Qzue4y4= тут все честно.

Однако посмотрите на подпись внимательно, надо посчитать хэш от тега с ID="ELN_900000352887" и это... (смотрим документ, барабанная дробь) тег ROW, а вовсе не тег Body. Выходит хэш посчитан верно, но от другого фрагмента. К слову, моя программа крашится как раз на взятии фрагмента, спасибо за примерчик. Сторонними средствами выходит хэш правильного фрагмента в каноническом виде ETGAiowq8gjabEvKYe18k4juuqWNe3MkDeKqvOfO0/M= Нужно ли подписать еще и Body лучше уточнять в спецификации сервиса.

thanks 1 пользователь поблагодарил two_oceans за этот пост.
ssg_eln оставлено 26.08.2019(UTC)
Offline JfbYtd-7900  
#6 Оставлено : 26 августа 2019 г. 12:32:04(UTC)
JfbYtd-7900

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

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

Поблагодарили: 1 раз в 1 постах
Автор: two_oceans Перейти к цитате
Кажется я понял почему расхождение: Вы считаете хэш от Body (после приведения к каноническому виду разумеется) он действительно равен zXM2cc7biPpMRU/Hg18nczzwUKpgpe6Onoj5Qzue4y4= тут все честно.

Однако посмотрите на подпись внимательно, надо посчитать хэш от тега с ID="ELN_900000352887" и это... (смотрим документ, барабанная дробь) тег ROW, а вовсе не тег Body. Выходит хэш посчитан верно, но от другого фрагмента. К слову, моя программа крашится как раз на взятии фрагмента, спасибо за примерчик. Сторонними средствами выходит хэш правильного фрагмента в каноническом виде ETGAiowq8gjabEvKYe18k4juuqWNe3MkDeKqvOfO0/M= Нужно ли подписать еще и Body лучше уточнять в спецификации сервиса.



two_oceans, здравствуйте!

Вы нам реально помогли, огромное спасибо! Applause prParseReestrFile работает, корректировка листка проходит. Dancing Подписывать нужно было только блок ROW.



Offline fcknmars  
#7 Оставлено : 2 сентября 2019 г. 12:08:38(UTC)
fcknmars

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

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

Добрый день, ребят а у вас реализована отправка реестров ПВСО?
Не могу понять каким образом получить esl-файл после подписания и шифрования...Алгоритм бы сам понять)
Само получение электронных больничных у меня работает..там довольно все просто..
Заранее спасибо за помощь.
Offline JfbYtd-7900  
#8 Оставлено : 2 сентября 2019 г. 12:19:24(UTC)
JfbYtd-7900

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

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

Поблагодарили: 1 раз в 1 постах
Автор: fcknmars Перейти к цитате
Добрый день, ребят а у вас реализована отправка реестров ПВСО?
Не могу понять каким образом получить esl-файл после подписания и шифрования...Алгоритм бы сам понять)
Само получение электронных больничных у меня работает..там довольно все просто..
Заранее спасибо за помощь.


Добрый день! Пока такая задача не стоит, отправляется руками через информационную систему "Фельд'егерь"
Offline two_oceans  
#9 Оставлено : 2 сентября 2019 г. 12:41:32(UTC)
two_oceans

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

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

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Добрый день. У нас тоже не стоит - технически возможно через 1С:отчетность и через Контур-Экстерн, не уточнял чем бухгалтерия пользуется.
Offline korka  
#10 Оставлено : 19 июня 2020 г. 13:34:58(UTC)
korka

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

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

А кто-нибудь может выложить пример зашифрованного запроса для метода prParseReestrFile? А то при отправке на тестовый контур (https://docs-test.fss.ru/ws-insurer-crypto-v11/FileOperationsLnPort) у меня появляется ошибка "Не удалось расшифровать сообщение. Возможно сообщение зашифровано на ключе отличном от ключа уполномоченного лица ФСС"?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.