21 ноября, среда 04:31
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Сигнатура: как проверить подпись с помощью spki1utl

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Сигнатура: как проверить подпись с помощью spki1utl

    Коллеги,

    подскажите пожалуйста. Имеем ответ на 701-ю форму из СВК в виде xml сообщения в котором в тегах

    dsig:MACValue – подпись МЦИ на сообщение обработчика в кодировке Base64

    sen:Object – текст ответного сообщения в кодировке Windows-1251 + Base64

    Хочется проверить подпись МЦИ с помощью spki1utl. Сделал следующее - распаковал из base64 оба тега в разные файлы (1.txt и 2.txt). Пытался проверить подпись с помощью

    spki1utl -verify -in 1.txt -data 2.txt

    spki1utl -verify -in 1.txt -data 2.txt -detached

    в обоих случаях получаю ошибку "Сообщение не подписано или формат искажен". Собственно вопрос - что я делаю не так?

  • #2
    Сорри, я несколько не в курсе, какие СКЗИ и где в первопрестольной юзаются при обмене с ЦБ, вот у нас в провинции для обмена ЭПД юзается Сигнатура, а для статистики - Верба.

    Терзают смутные сомнения, может, и не Сигнатура там вовсе? Потому как в любом другом случае ошибка должна звучать по-другому, и мы теряемся в непонимании...

    Комментарий


    • #3
      Ну если сама форма обрабатывается Сигнатурой, отправляется в МЦИ через СВК и оттуда же мы получаем ответ. То вряд ли он чем-то еще может быть что-то еще. Верба в Москве тоже разумеется используется, но только для отчетности в МГТУ. А 701-я и 325-я формы отправляются в МЦИ.
      Кстати те банки которые при переходе на Рабис остались на Астре/ФИ2 по прежнему пользуются МагПро, а не Сигнатурой и насколько я понимаю наших проблем не испытывают.

      Комментарий


      • #4
        А после раскодировки sen:Object выглядит читабельно? То есть, это и есть нужная квитанция? Если нет - возможно, там еще сжатие+шифрование есть... У нас в платежке такая система.

        Комментарий


        • #5
          Ага, читабельно - вполне себе текст ответа типа документ принят к обработке и т.д.
          МЦИ порекомендовало воспользоваться функцией vcert_sign_verify_mem() из Сигнатуры. Единственное НО - для этого придется самим это реализовывать на С. Ну а опыт написания ПО для работы с Сигнатурой у нас отсутствует. На вопрос, а нельзя ли воспользоваться для этого утилитой spki1utl выразили большие сомнения.

          Комментарий


          • #6
            Проверка КА/ЭЦП
            При проверке необходимо учесть, что по технологии файлы *.a??, полученные из ЦОИ, подписаны одной КА/ЭЦП (контура контроля), а все остальные – двумя (контура обработки и контура контроля).

            @echo off
            :-check.bat
            :=AV=2006
            :-- если нет файлов, переходим в конец --
            if not exist c:\in\*.* goto no_files
            :-- если нет выходной папки, создаем ее --
            if not exist c:\in_ok\nul md c:\in_ok
            :-- для всех файлов, подходящих по маске, выполнить команду --
            :- проверить ЭЦП
            :- удалить 2 последние ЭЦП
            :- записать файл в папку C:\IN_OK
            :-подтверждение аутентификации a?? (на все)
            for %%F in (c:\in\*.a??) DO "c:\Program Files\MDPREI\spki\spki1utl" -verify -delete 1 -profile check –policy 1.3.6.1.4.1.3670.4.20.6 -silent c:\in\protocol.log -in %%F -out c:\IN_OK\%%~nxF
            :-результат обработки с?? (на е)
            for %%F in (c:\in\*.c??) DO "c:\Program Files\MDPREI\spki\spki1utl" -verify -delete 2 -profile check –policy 1.3.6.1.4.1.3670.4.20.6 -silent c:\in\protocol.log -in %%F -out c:\IN_OK\%%~nxF
            :-успешная обработка J от клиента o??
            for %%F in (c:\in\*.o??) DO "c:\Program Files\MDPREI\spki\spki1utl" -verify -delete 2 -profile check –policy 1.3.6.1.4.1.3670.4.20.6 -silent c:\in\protocol.log -in %%F -out c:\IN_OK\%%~nxF
            :-успешная обработка J от КО t??
            for %%F in (c:\in\*.t??) DO "c:\Program Files\MDPREI\spki\spki1utl" -verify -delete -1 -profile check –policy 1.3.6.1.4.1.3670.4.20.6 -silent c:\in\protocol.log -in %%F -out c:\IN_OK\%%~nxF
            goto End
            :no_files
            echo In-Files not exists!!!
            pause
            :end

            Пояснения:

            -verify -delete -1 - проверка КА с удалением всех (-1) подписей (при успешной проверке)
            -profile check - ссылка на секцию [check] из файла конфигурации pki1.conf, оттуда будут взяты пути к справочникам пользователя
            -policy 1.3.6.1.4.1.3670.4.20.6 - дополнительный контроль политики использования сертификата (4.20.6 - платежная система, 4.20.8 – управление ключевой системой)

            При использовании параметра –policy программа контролирует, может ли данный сертификат применяться для подписания этого файла. Например, при проверке подписи AKS001 (с политикой 4.20.8, недопустимой для платежных файлов) в протокол выводится следующее сообщение:

            Проверка ЭЦП файла
            Результат: Ошибка проверки ЭЦП (E0700019)
            ЭЦП 1: Использование сертификата не по назначению (E0700041)
            Fri Mar 24 12:26:00 2006
            Владелец: CN=AKS001,OU=7102xxxxxx,O=KOxxx,L=REGRNP,ST=71,C=RU
            Хэш: 49:FC:85:26:1A:58:2C:62:9A:5A:5E:01:1E:5D:71:3C:FB:60:94:747:F9:0B:80:89:B6:510:76:67:2A:A3

            Если используется этот вариант, необходимо учесть следующие моменты:
             рекомендуется настроить администраторский пароль в ПК «Справочник сертификатов» для ограничения функций, доступных обычному пользователю (при этом в самом ПК СС ему будут доступны операции проверки КА/ЭЦП и просмотра свойств объектов в справочнике, а через утилиту spki1utl – все функции);
             ПК «Справочник сертификатов» должен быть запущен именно с тем ключом, который будет использоваться при подписании файлов (и чьи справочники используются);
             рекомендуется настроить блокировку консоли, поскольку ключи КА/ЭЦП постоянно находятся в памяти, пока запущен ПК «Справочник сертификатов»;
             перед удалением КА/ЭЦП необходимо сохранить полученный файл в архиве.

            Комментарий


            • #7
              w3d,
              Боюсь в нашем случае такой вариант не поможет. Во-первых мне приходит ответ в виде файла *.9s0, во-вторых внутри него транспортный XML конверт СВК, в котором в отдельных тегах находятся
              - ЭЦП МЦИ, запакованная в base64
              - Сам ответ, также запакованный base64

              Если и то и другое распаковать из base64 (получим на выходе два файла - ЭЦП и ответ) непонятно как можно эту самую подпись проверить.

              Комментарий


              • #8
                Насколько я понял из документации - утилита нормально должна распознавать и внедренную в файл подпись, и подпись отдельным файлом.
                Проверить не на чем - у меня все по другому построено.

                Комментарий

                Пользователи, просматривающие эту тему

                Свернуть

                Присутствует 1. Участников: 0, гостей: 1.

                Обработка...
                X