Мегафон

Как подписать файл xml с помощью эцп. Инструкция по подписанию файлов электронной подписью. Электронная цифровая подпись XML-документов

Долгое время для меня самым наболевшим вопросом было, как и чем подписать документы и XML файлы электронной подписью или цифровой подписью. Это хорошо, когда ты в офисе и все программы для подписи документов и XML файлов, установлены на твоем рабочем месте. Но в моей работе часто возникали ситуации, когда сделать и подписать документы, XML файлы, нужно было находясь далеко от своего рабочего места или как всегда сделать срочно и сейчас, находясь дома. Покупать и устанавливать программное обеспечение для подписания электронно цифровой подписью, еще и домой, или же на ноутбук и вечно его таскать с собой, слишком накладно. Тогда я задался целью найти в интернете свободно распространяемые программы которыми возможно подписать документы и XML файлы электронно цифровой подписью- ЭЦП. Именно такие программы, а так же одну платную, мы и рассмотрим ниже.

Для отправки в Росреестр, и это обязательно, все документы должны быть подписаны ЭЦП (электронно цифровой подписью), так же порой нужно проверить свою или чужую ЭЦП.

И так, рассмотрим как и какими программными средствами можно подписать документ или XML файл электронно цифровой подписью. Одной из программ является ГИС «Панорама» — «Карта-2011» версии 11.10.4. Подпись документов работает даже в незарегистрированный версии. Порядок подписи документов, файлов Список программ позволяющих подписать документы, XML файлы, ЭЦП (электронно цифровой подписью) для обмена данными с порталом государственных услуг Федеральной службы государственной регистрации, кадастра и картографии, Росреестр, через интернет ЭЦП следующий: запускаете «Карта-2011» , или «Карта-мини», нажимаете «F12» вызвав меню запуска приложений. В появившимся окне выбираем задачу электронные документы , далее Формирование электронной цифровой подписи

Файл подписи: выбираете файл который нужно подписать, ну и соответственно в сертификате нужный сертификат. Вот и все Ваш документ или XML файл подписан ЭЦП. Если желаете проверить уже существующую подпись, то файл для подписи выбирайте файл подписи (файл с расширением «sig»). Официальный сайт ГИС « » .

Вторая программа для подписи документов, XML файлов это — КриптоЛайн. Бесплатная, полностью функциональная, позволяет подписывать, шифровать документы, а так же проверять ЭЦП. Скачать данную программу Вы можете с официального сайта или скачать по прямой ссылке со страницы данного сайта. Работа с программой весь проста и удобна. Выбираете и добавляете файлы которые нужно подписать, далее, выбираете сертификат которым нужно подписать документы, файлы XML и подписываете документы. Будьте внимательны — сертификат для подписи выбирайте лишь один!!! Иначе документы будут подписаны ровно столькими сертификатами, сколько вы добавите в программу. Инструкция по работе находится в архиве программы. Для подписи сдачи в Россреестр я приведу пример ниже.

После установки программы и ее запуска, добавляем в программу файлы которые необходимо подписать. Вкладка «действия», кнопка «добавить».

Для подписи всех файлов сразу их нужно все выделить — «Shift + правая кнопка мышки» или «Shift + стрелка вниз». Затем нажимаем «Подписать», в появившимся окне либо добавляем сертификат, либо оставляем тот что был выбран ранее, или же меняем на другой. Еще раз на помню, что для сдачи в Росреестр в данном окне не должно быть более 1 сертификата! Так же, выставляем все настройки как указано на рисунке:

Подписываем. После подписания у Вас в списке добавятся файлы с расширением «sigO». Это и есть подпись файла. Осталось только выгрузить файлы подписей или же все файлы (на Ваше усмотрение). Выделяете то, что хотите выгрузить, в данном случае три файла подписи и жмете «Выгрузить». Вот вроде и все. Но как у каждого бесплатного сыра есть маленький нюанс. Росреестр ругается на расширение файлов «sigO», поэтому нужно в проводнике или же в любом файловом менеджере переименовать расширение с » sigO» на «sig» .

Подпись данной программы не были проверены сайтом Росреестра . Проверка подписи была проведена программными продуктами которые взаимодействуют с порталом государственных услуг Федеральной службы государственной регистрации, кадастра и картографии. Все три программы, которыми проверялась подпись выполненная данной программой, выдали положительный результат. Проверка была проведена указанными здесь программами, ГИС «Панорама», Крипто АРМ и программой Полигон-Межевой план. Так же подпись была проверена онлайн сервисом проверки подлинности электронно цифровой подписи на сайте .

Еще одна программа для подписи документов и XML файлов это — . Скачать можно с официального сайта программы. Сама программа довольно функциональна и привлекательна, стоимость не велика, всего 1200 рублей за 1 рабочее место. Существует тех. поддержка и также развернутая помощь. Наиболее полную и актуальную информацию можно получить на . Так же читайте об ЭЦП в заметке

Благородная цель облагораживает деятельность во имя этой цели. К. Либкнехт

На сегодняшний день, когда практически весь документооборот становится безбумажным, подписание документов с помощью — обыденное дело.

В сфере государственных закупок электронной подписью подписывают поданные заявки. Это дает заказчикам гарантию, что они имеют дело с реальными участниками. Также контракты, которые заключаются по итогам госзакупок, вступают в действие только после визирования с помощью ЭЦП.

Также цифровая подпись необходима в таких ситуациях:

  1. Отчетность для контролирующих органов. Можно сдать ее в электронном виде таким службам, как ФНС, Росстат, ПФР и ФСС. Это значительно упрощает передачу информации и повышает правильность: большинство сервисов предлагают автоматическую проверку на ошибки.
  2. Электронный документооборот (ЭДО). Одно из самых распространенных применений, так как подписанное таким способом письмо соответствует бумажному с печатью и визой. Позволяет перейти на безбумажный документооборот как внутри компании, так и за ее пределами.
  3. Государственные услуги. Гражданин РФ может визировать подаваемые заявления в ведомства через портал госуслуг, участвовать в общественных инициативах, пользоваться личным кабинетом на сайте ФНС, даже оформлять кредит.
  4. В качестве доказательств можно использовать счет-фактуры, договоры, официальные письма, подписанные электронно. Согласно АПК РФ, такой документ является аналогом бумажного с собственноручной визой.

Какие бывают электронные подписи

ЭЦП — это «штамп», который позволяет идентифицировать ее владельца, а также удостовериться в целостности подписанного документа. Типы ЭЦП и порядок их оформления утверждены . Он установил, что подписи бывают трех видов:

  1. Простая. Распространена для подписания писем или спецификаций, подтверждается с использованием паролей, кодов и иных средств, чаще всего используется в системах корпоративного ЭДО.
  2. Усиленная . Получается в процессе криптографической обработки информации и использования закрытого ключа. Позволяет установить, кто подписал документ, а также факт внесения изменений после подписания.
  3. Усиленная . Аналогична неквалифицированной, но для ее создания и проверки используются наработки криптозащиты, сертифицированные ФСБ РФ. Такие ЭП выдаются только аккредитованными

Завизировать документ можно несколькими способами. Рассмотрим наиболее часто встречающиеся.

Подписываем с помощью программного комплекса «КриптоПРО CSP»

Как подписать электронной подписью документ Ворд (MS Word)

1. Открываем нужный файл, жмем в меню «Файл» — «Сведения» — «Добавить электронную подпись (КРИПТО-ПРО)».

2. Выбираем нужную ЭП, добавляем комментарий, если нужно, и жмем «Подписать».

3. Если нет ошибок, то система показывает окно с успешным подписанием.

Если установлен плагин КриптоПРО Office Signature

1. Открываем нужный файл, выбираем «Файл», затем — «Добавить цифровую подпись».

2. Аналогично предыдущему варианту, выбираем необходимую ЭП, добавляем, если нужен, комментарий и жмем «Подписать».

3. Если нет ошибок, то система показывает сообщение, что документ успешно подписан.

Как подписать электронной подписью документ PDF (Adobe Acrobat PDF)

1. Открываем необходимый PDF-файл, нажимаем на панели «Инструменты» и видим ярлык «Сертификаты». Выбираем его.

2. Нажимаем на «Поставить цифровую подпись» и выбираем область на файле, где будет располагаться отметка о подписании.

4. Откроется окно с предварительным видом штампа. Если все верно, то нажимаем «Подписать».

5. Система выдаст оповещение об успешном подписании. На этом все.

Подписание программным комплексом «КриптоАРМ»

При таком способе есть возможность шифрования всех современных форматов, а также архивов.

Итак, разберемся, как подписать документ ЭЦП с помощью «КриптоАРМ».

1. Открываем программу «КриптоАРМ» и выбираем самый первый пункт действий — «Подписать».

2. Внимательно изучаем инструкцию Мастера созданий ЭП. Нажимаем «Далее».

3. Жмем на «Выбор файла», переходим к нужному файлу, щелкаем по нему и жмем «Далее».

4. Выбираем подписываемый файл, нажимаем «Далее».

5. Видим окно «Выходной формат». Если нет обязательных требований, то кодировку оставляем как есть. Можно сохранить в формат ZIP (для отправки по e-mail) или выбрать место сохранения конечного результата. Жмем «Далее».

6. В «Параметрах» можно выбрать свойство, добавить комментарий, а также выбрать присоединенную ЭП (присоединяется к исходному файлу) или отсоединенную (сохраняется отдельным файлом), а также дополнительные параметры по желанию. Когда все готово, жмем «Далее».

7. Теперь необходимо выбрать сертификат, для этого жмем «Выбрать», указываем необходимый сертификат и жмем «Далее».

8. На следующем этапе видим итоговое окно с кратким описанием данных. Если в следующий раз файлы будут подписываться в таком же порядке, то можно сохранить профиль. Жмем «Готово».

9. Если нет ошибок, то система выдаст сообщение об успешном подписании.

На одном из идущих в настоящее время проектов решалась задача подписания (наложения ЭП - электронной подписи) XML документов, а именно SOAP-пакетов. Рекомендованным форматом был OASIS Standard 200401 с профилем X.509 Certificate Token Profile . Эти документы описывают применение созданного www-консорциумом (W3C) формата электронных подписей XML (XMLDSig - XML Digital Signature) в SOAP-сообщениях. XML-подписи, как и другие виды ЭП, поддерживают аутентификацию, целостность данных и неотрекаемость от подписания данных.

Отмечу несколько особенностей формата XMLDSig:

1. Объектом подписания может служить не весь XML-документ, а только его часть, т.е. определённый узел. Согласно OASIS Standard 200401 подписываемым объектом является тело (узел Body ) SOAP-сообщения.

2. Различные части XML-документа могут быть подписаны несколькими исполнителями.

3. XML-подпись может находиться на разных уровнях по отношению к подписываемому объекту:

  • в структуре подписи может находиться URI (унифицированный идентификатор ресурса);
  • XML-подпись может находиться на одном уровне с подписываемым узлом;
  • XML-подпись может находиться внутри подписываемого узла;
  • подписываемый узел может находиться внутри структуры XML-подписи.

4. Для проверки действительности ЭП необходим доступ к объекту подписания.

Структура SOAP-коверта

В общем случае сообщение состоит из заголовка и тела: Header и Body . Header содержит метаданные, а Body данные. XML-подпись помещается в узел Header .

Криптографические алгоритмы и каноникализация.

Для решения задачи были использованы ГОСТ Р 34.11-94 - российский криптографический стандарт вычисления хеш-функции и ГОСТ Р 34.10-2001 - стандарт электронной подписи.

В силу гибкости правил составления XML, одна и та же структура документа и одна и та же часть информации могут быть представлены различными XML-документами. Рассмотрим два документа:

С логической точки зрения они равнозначны, то есть имеют одинаковую XML-схему. Но XML-файлы этих листингов не содержат одну и ту же последовательность символов, что повлечёт разные результаты, например, при получении значения хэша.

Во избежание подобных разночтений были приняты строгие правила форматирования и требования к содержанию XML-сообщений. Процесс приведения XML-документов к унифицированному (каноническому) виду называют каноникализацией (англ. Canonicalization). Примерами правил может быть применение определённой схемы кодирования (UTF-8), нормализация значений атрибутов, использование двойдых кавычек для значений атрибутов, определённый порядок атрибутов и объявлений пространств имён, и др. Каноникализация XML бывает нескольких видов, которые отличаются составом правил. Побробнее о процессе каноникализации можно прочитать в официальной спецификации W3C (русскоязычные статьи на эту тему можно найти и )

Библиотека SIRCrypt

Для реализации подписания XML в DIRECTUM была написана COM-библиотека, внутри которорй описаны 3 класса: Hasher , Signer и XMLCanonicalizer для получения хэша, значения ЭП и каноникализации XML-документов соответственно.

Для функционирования библиотеки требуется Crypto PRO CSP (тестировалась на версии Crypto PRO CSP 3.6.6497 KC2 ) и .NET (минимально 2.0).

Регистрация библиотеки выполняется выполнением следующей команды:

> regasm.exe "путь к dll" /codebase /tlb

Объект Hasher для вычисления хэша по ГОСТ

Содержит поля Content (тип "строка") и HashValueAsBase64 (тип "строка"), а также метод для вычисления значения хэш-функции Hash() . Для вычисления необходимо означить Content , вызвать метод Hash() , в результате которого в поле HashValueAsBase64 запишется значение хэш-функции в Base64.

Объект Signer для получения значения ЭП по ГОСТ

Содержит поля Content (тип "строка"), ContainerName (тип "строка"), CertificateAsPEM (тип "строка"), BESignatureValueAsBase64 (тип "строка"), метод Sign() . После инициализации объекта необходимо означить Content (данные для подписания), ContainerName (имя контейнера закрытого ключа сертификата), вызвать метод Sign() . После чего в поле CertificateAsPEM попадёт соответствующий закрытому ключу сертификат в Base64, а в поле BESignatureValueAsBase64 значение подписи в виде Base64-строки.

Объект XMLCanonicalizer для каноникализации XML

Содержит поля XMLContent (тип "строка"), CanonicalXML (тип "строка"), метод C14NExc() . Для получения канонической формы XML нужно означить XMLContent , вызвать C14NExc() , получить результат из поля CanonicalXML .

Структура XML-подписи

Создание подписи выглядит следующим образом: сначала формируется основа soap-пакета, узлы Header и Body . Body заполняется данными и добавляется атрибут wsu:ID="Body" - идентификатор подписываемых данных.

Заполнение структуры Security происходит в следующем порядке:

  1. Берётся значение хэш-функции от узла Body в каноническом виде и помещается в узел DigestValue.
  2. Узел SignedInfo приводится к каноническому виду, подписывается ЭП. Результат в формате Base64-строки попадает в узел SignatureValue .
  3. Открытый ключ сертификата, которым было выполнено подписание помещается в узел BinarySecurityToken в формате строки Base64.

Для того, чтобы проверить сформированную таким образом ЭП необходимо проделать все действия в обратном порядке, а именно:

  1. получить каноническую форму элемента SignedInfo .
  2. С использованием резльтата предыдущего шага проверить, действительно ли значение ЭП из узла SignatureValue с помощью открытого ключа сертификата. На данном этапе проверяется только корректность ЭП, что не гарантирует неизменность данных.
  3. Если проверка действительности ЭП пройдена успешно, сравнивается хэш из узла DigestValue и хэш от узла с данными. Если они неравны, то подписанные данные изменены и вся ЭП недействительна.

Пример использования

Пакет разработки и библиотека

Примеры подписания XML на ISBL (сценарий): dev.zip (5,95 Кб)

Для постоянного использования код, выполняющий типовое подписание готового SOAP-конверта, вынесен в функцию SignSOAP() .

Для подписания используется сертификат из личного хранилища сертификатов текущего пользователя.

Согласно закону 218-ФЗ «О государственной регистрации недвижимости» электронные XML-документы и отсканированные образы документов необходимо подписывать усиленной квалифицированной электронной подписью . Все программы серии «Полигон», «Полигон Про» и программа «Подпись Про» подписывают именно такой подписью.

Для подписания:

    Получите ключ подписи (сертификат) в Удостоверяющем центре. Список аккредитованных удостоверяющих центров опубликован на сайте Росреестра (Список удостоверяющих центров). Получить сертификат можно в нашем Удостоверяющем центреООО «Программный центр» .

    Вместе с подписью приобретите и установите на компьютер программу КриптоПро CSP (она содержит требующиеся российские стандарты подписи), которую также можно приобрести в нашем Удостоверяющем центре ООО «Программный центр» .

Другие программы для подписи не требуются: КриптоАРМ (возможности КриптоАРМ в части подписи аналогичны возможностям программ серии «Полигон», «Полигон Про» и программы «Подпись Про»).

Программные модули платформы «Полигон Про»

Подписать электронный документ в программе «Полигон Про»

Чтобы подписать XML-файл выполните следующее:

  • Сформируйте электронный документ без ошибок.


Подписать XML-файл можно сразу в окне «Просмотр XML », для этого на панели инструментов нажмите кнопку – «Подписать XML-файл» .

  • После нажатия откроется окно со списком установленных сертификатов. Выберите нужный и нажмите «ОК» .

  • Программа выполнит подписание основного документа и выдаст сообщение об успешном выполнении.

В той же папке, что и подписанный файл, будет сформирован файл подписи с тем же именем, с расширением *.sig .

Подписать группу файлов в программе «Полигон Про»

В программе имеется возможность подписать группу файлов одновременно. Для этого выполните следующее:

  • На ленте программного модуля на вкладке «Главная» нажмите кнопку и из подменю выберите . Откроется окно с выбором файлов проекта (по умолчанию все файлы проекта выбраны).
  • Если в списке присутствуют файлы, которые подписывать не нужно, снимите с них галочки.

  • Нажмите кнопку «Подписать» . Откроется окно со списком установленных сертификатов. Выберите нужный и нажмите «ОК» .
  • Программа выполнит подписание всех документов и выдаст сообщение об успешном выполнении.

    Если возникнут ошибки при подписании, будет выведен протокол проверки с предупреждениями и/или ошибками. Для корректного подписания требуется исправить ошибки.

    Подписать файл в программных модулях платформы «Полигон Про»

    В программе имеется возможность подписать абсолютно любой файл.

      Откроется окно со списком установленных сертификатов. Выберите нужный и нажмите «ОК ».

    • Программа выполнит подписание документов и выдаст сообщение об успешном выполнении.

    В той же папке, что и подписанный файл, будет сформирован файл подписи с тем же именем, с расширением *.sig .

    Проверить электронную подпись в программе «Полигон Про»

    Если Вы получили подписанный файл извне и хотели бы проверить, не был ли он изменен, либо просто проверить правильность сформированной подписи файла, выполните следующие действия:

    • На ленте программного модуля во вкладке «Главная » в подменю кнопки «Подписать все » нажмите на кнопку «Проверить… ».

    • Выберите файл, содержащий подпись (с расширением *.sig ), который необходимо проверить, либо подписанный файл.

    Если эти два файла находятся в разных папках, то программа выдаст окно с предупреждением. Нажмите кнопку «Повтор » и выбрать исходный файл.

    • Откроется протокол с информацией, правильно ли был подписан документ, кем и когда.

    Программа «Подпись Про»

    Для удобного взаимодействия с Удостоверяющим центром , управления цифровыми сертификатами и закрытыми ключами ЭП, а также для подписания различных файлов электронной подписью была разработана программа .

    Как подписать файл электронно-цифровой подписью?

    Данная инструкция является примерной, конкретные шаги могут зависеть от установленного на Вашем компьютере программного обеспечения. Часть инструкции выполнена в феврале 2012 года, однако в наших программах предусмотрена более удобная возможность подписания файлов электронных документов усиленной квалифицированной электронной подписью.

    Для подписи файлов электронных документов: межевой план, карта план, технический план электронной подписью необходимо убедиться в наличии установленных программ:

      криптопровайдер «КриптоПро CSP»;

      «Крипто АРМ» – эта программа необходима только тогда, когда у Вас не используются программы серии "Полигон", эта программа в части подписания идентична программам серии "Полигон", поэтому она не нужна; для подписания файлов программами серии "Полигон" смотрите предыдущую страницу инструкции; подписывать можно как программами серии "Полигон", так и программой КриптоАРМ, если Вы считаете, что это будет удобнее, чем использовать имеющиеся возможности программ серии "Полигон" ;

    Каждый файл (XML, скан печатного документа и файлы приложений) необходимо подписать, так как орган кадастрового учета принимает только пары файлов: оригинальный файл и файл подписи к нему. Чтобы подписать файл необходимо выбрать его в окне проводника и нажать правой кнопкой мыши (ПКМ), появится контекстное меню, в нем следует выбрать пункт «КриптоАРМ», а затем «Подписать… ».



    Затем убедиться в правильности имени файла



    Важно! установить переключатель в положение «DER-кодировка », папку для выходных файлов указать по своему усмотрению. Нажать кнопку «Далее ». В следующем окне назначить параметры подписи


    В этом окне самым важным является указать галочку «Сохранить подпись в отдельном файле ». Нажмите кнопку «Далее ». В следующем окне нажмите кнопку «Выбрать »


    откроется окно выбора сертификата


    в нем выберите сертификат Вашего ключа (смотрите по имени владельца). После выбора нажмите кнопку «ОК » и «Далее ». В последнем окне перед подписанием документа нажмите кнопку «Готово ».

    Важно! Для каждого файла необходимо сделать файл подписи, так как принимается только пара: оригинальный файл (xml или другой) + подпись к нему (sig-файл).

В данном разделе предлагается для скачивания программы XML Конвертер / XML Конструктор / XML Отчёты / Просто Подписать / XML Контакт — Росреестр.

Примеры формирования электронных версий документов с помощью программы XML Конструктор и их печатных аналогов с помощью программы XML Отчёты можно скачать в разделе . Также предлагаем посмотреть раздел , в котором вы найдете различные бесплатные утилиты, библиотеки и другое.

Программа XML Конвертер настроена для преобразования XML-файлов/документов Росреестра таких как кадастровые выписки, кадастровые планы территории в другие, удобные для использования форматы, такие как MIF/MID, DXF, CSV, TXT, HTML.

Программа XML Конструктор настроена на создание электронных версий в формате XML, таких документов для кадастровой деятельности как межевые планы, технические планы, карта(план) и др., а также уведомлений о залоге движимого имущества и уведомлений согласно закону FATCA.

Программа XML Отчёты настроена на преобразование электронных документов для кадастровой деятельности таких как межевые планы, технические планы, карта(план) в соответствующие печатные (бумажные) аналоги.

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

Программа XML Контакт-Росреестр предназначена для взаимодействия с веб-сервисом Росреестра, т.е. создания заявлений на постановку на кадастровый учет земельных участков и объектов недвижимости, запросов сведений кадастра, получения результатов по данным заявлениям и запросам.

Все программы (кроме Просто Подписать и XML Контакт-Росреестр) имеют демонстрационный режим длительностью 30 дней, позволяющий использовать функционал программ без ограничений. После истечения периода действия демонстрационного режима полагается либо приобрести полные версии программ, либо прекратить их использование. Программа Просто Подписать является бесплатной программой и не имеет ограничений в использовании. Программа XML Контакт-Росреестр находится на стадии бета-тестирования и в настоящее время ее использование бесплатно.

ВАЖНО! Для преобразования с помощью программы XML Конвертер или XML Конструктор XML файлов большого размера нужно скачать и установить внешний обработчик запросов XQuery и перед преобразованием указывать его в соответствующем поле программы. В настоящее время поддерживается два свободно распространяемых обработчика запросов AltovaXML 2010 (разработчик www.altova.com) и Saxon-HE 9.5 (разработчик www.saxonica.com). Скачать их можно с сайта производителя или с данного сайта по ниже приведенным ссылкам:

ВАЖНО! Перед тем как приступить к работе с программами необходимо ознакомиться с инструкциями. Особенно это важно для программы XML Конструктор, т. к. перед работой необходимо понять принцип работы данной программы. Инструкции находятся в той же папке, что и исполнительный файл программы, т. е. для XML Конструктора в папке «c:\ProgramFiles\XMLCON\XMLConstructor\XMLConstructor-help.rtf». Вызвать инструкцию можно через ярлык из главного меню программ Windows, т. е. для XML Конструктора «Пуск->Программы->XMLКонструктор->XML Конструктор — Инструкция». Для программы XML Конструктор инструкция также доступна через меню Справка.