Подпись документов, файлов XML ЭЦП (электронно цифровой подписью). Инструкция по подписанию файлов электронной подписью Формирование и проверка ЭЦП

Не могу придти к общему пониманию механизмов подписи xml-документов. Буду благодарен за помощь разобраться)

Ситуация у меня такая:

1) есть удостоверяющий центр, выпущенные сертификаты которого проставляются на серверах в хранилище windows.. в личные, доверенные и так далее..не суть.

При логине в приложение пользователь подписывает случайно сгенерированную строку выбранным им сертификатом. На сервере эта подпись проходит проверку:

CAPICOM.SignedData _signedData = new CAPICOM.SignedData(); _signedData.Verify(signedData, false, CAPICOM_SIGNED_DATA_VERIFY_FLAG.CAPICOM_VERIFY_SIGNATURE_AND_CERTIFICATE); if (_signedData.Content != data) throw new Exception("Контент подписи не совпадает с полученным контентом"); var _certificate = _signedData.Certificates; // сертификат пользователя

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

2) теперь нужно, чтобы эти же пользователи подписывали своими сертами xml-и. Моё ПО на клиенте генерит сами xml-и и подписывает их указанным пользователем сертификатом:

Public static void SignXml(XmlDocument xmlDoc, /*RSA*/AsymmetricAlgorithm Key) { SignedXml signedXml = new SignedXml(xmlDoc); signedXml.SigningKey = Key; Reference reference = new Reference(); reference.Uri = "";//подпись всего xml-документа XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform(); reference.AddTransform(env); signedXml.AddReference(reference); KeyInfo keyInfo = new KeyInfo(); keyInfo.AddClause(CryptService.GetKeyInfoClause(Key)); // RSA or GOST signedXml.KeyInfo = keyInfo; signedXml.ComputeSignature(); XmlElement xmlDigitalSignature = signedXml.GetXml(); xmlDoc.DocumentElement.AppendChild(xmlDoc.ImportNode(xmlDigitalSignature, true)); }

XmlDocument doc = new XmlDocument(); doc.PreserveWhitespace = true; doc.Load(path); SignedXml sx = new SignedXml(doc); XmlNodeList nodeList = doc.GetElementsByTagName("Signature"); sx.LoadXml((XmlElement)nodeList); return sx.CheckSignature();

Код работает, но у меня возникают вопросы с пониманием: в таком случае можно подписать xml абсолютно любым сертификатом, не выпущенным нашим УЦ, и так как инфа об открытом ключе хранится в самом подписанном xml, подпись проходит проверку. Этот вариант мне не подходит. У метода CheckSignature есть перегрузка с параметром типа AsymmetricAlgorithm , который проверит сертификат подписи на существование в хранилище, проверит его валидность, срок действия и так далее. Это мне и нужно, но я не знаю заранее какой из пользователей прислал подписанный xml.

Скажите пожалуйста: как проверять подпись xml или как её правильно создавать, чтобы проверку подписи проходили только те xml-и, которые подписаны только нашими сертификатами (которые установлены в хранилище)?

P.s. и в чем вообще смысл держать в xml и саму подпись, и открытый ключ для расшифровки подписи? Если при подписи убрать строку signedXml.KeyInfo = keyInfo; , то 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. Если нет ошибок, то система выдаст сообщение об успешном подписании.

В статье описывается как подписать документы (pdf, word, excel, xml, архив) с помощью ЭЦП. Рассмотрим какое программное обеспечение необходимо, чтобы подписать документы с помощью ЭЦП, их плюсы и минусы.

Как подписать файл с помощью ЭЦП

Есть две программы с помощью которых можно подписать файл с помощью ЭЦП:

  1. ViPNet CryptoFile;
  2. КриптоАРМ.

ViPNet CryptoFile

С помощью этой программы можно подписать любой файл, например: doc, xls, jpg, xml, txt, подписать декларацию эцп, архив. После подписания файл будет с окончанием.sig

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

Минусы: при подписании можно добавить только одну электронную подпись;

Подписать документ ЭЦП можно правой кнопкой мыши на файле выбрать в меню ViPNet CryptoFile -> Подписать.

КриптоАРМ

Минусы: платное программное обеспечение;

Плюсы: можно добавить множество ЭЦП подписей при подписывании файла.

Подписать документ ЭЦП можно правой кнопкой мыши на файле выбрать в меню КриптоАРМ -> Подписать.

Как подписать pdf с помощью ЭЦП

Если Вам необходимо подписать документ например для налоговой, читайте инструкцию выше «Как подписать файл с помощью ЭЦП», если же Вам необходима подпись с видимой частью в документе, то читайте инструкцию ниже.

Для того чтобы подписать pdf документ с помощью ЭЦП необходимо ПО .

Плюсы: Электронная подпись видна в документе.

Минусы: Стоимость программы (90 дней бесплатно.)

также, необходимо чтобы был установлен Acrobat Reader DC или Adobe Acrobat Pro.

Прежде чем вставить электронную подпись в документе pdf, необходимо настроить Acrobat Reader DC для работы с программой КриптоПро PDF, для этого в Acrobat Reader DC нажимаем Ctrl+K или заходим в меню Редактирование -> Установки, в категориях выбираем Подписи -> где «Создание и оформление» нажимаем Подробнее см. рисунок:

В «Методе подписания по умолчанию» выбираем КриптоПро PDF как на рисунке:

Подписываем документ pdf с ЭЦП

Открываем документ pdf -> в правой панели нажимаем на заполнить и подписать

В верхней панели программы Acrobat Reader нажимаем на «Заполнить и подписать» -> «Дополнительные инструменты»

Необходимо выбрать инструмент Сертификаты для добавления на панель.

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

Выберите сертификат -> ОК -> Подписать.

Цифровая подпись в pdf выглядет вот таким образом:



Наш документ pdf подписан, таким же способом можно поставить несколько подписей в одном файле pdf.

Как подписать документ Word с помощью ЭЦП

Если Вам необходимо подписать документ с видимой частью подписи в документе, то читайте инструкцию ниже, если же Вам необходимо подписать документ word и отправить например в налоговую, то Вам подойдет инструкция выше «Как подписать файл с помощью ЭЦП».

Для того чтобы подписать документ Word с помощью ЭЦП нам необходима программа КриптоПро Office Signature.

— платное программное обеспечение, служит для подписания документов Wort, Excel.

После установки можно сразу приступить к подписанию документов Word ЭЦП, для этого открываем документ Word который необходимо подписать с ЭЦП -> меню Ставка -> в блоке Текст нажать на Строка подписи и выбрать Строка подписи (КРИПТО-ПРО).

Предположим, что необходимо вставить две электронные подписи в документ Word, для этого проделываем два раза операцию показанную выше, без подписания. Так как после подписания одной подписью, документ станет не редактируемым. Поэтому вставляем два поля для электронной подписи.

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

Подписанный ЭЦП документ word выглядит вот так:


Как подписать документ Excel с помощью ЭЦП

Не буду повторяться, для того чтобы подписать документ Excel c помощью ЭЦП, необходимо проделать все тоже самое что и для Word см, чуть выше.

Внимание : Если Вам необходимо подписать документ excel с видимой частью подписи в документе, то читайте инструкцию дальше «Как подписать документ Word с помощью ЭЦП» , если же Вам необходимо подписать документ excel и отправить например в налоговую, то Вам подойдет инструкция в начале страницы «Как подписать файл с помощью ЭЦП».

Как подписать договор с помощью ЭЦП

В зависимости в каком формате создан договор, прочитайте выше статью Как подписать документ Word или PDF.

Как подписать доверенность с помощью ЭЦП

Прочитайте выше статью и выберите подходящий вариант как подписать доверенность с помощью ЭЦП.

Вопросы:

Разрешается ли редактирование файла подписанного ЭЦП

— Нет, после подписания файл отредактировать не получиться, например, если попытаться отредактировать текст подписанный в Word-е, то все подписи удаляются.

Как выглядит документ подписанный ЭЦП

— Все зависит каким методом вы подписывали документ. Если подписывали документ как в инструкции в начале, файл будет с расширение.sig. Также файл и ЭЦП может быть отдельным файлом, это зависит от метода подписания файла.

Если же вы подписывали документ pdf, word или excel с помощью специальных программ, то отличить их не предоставляется возможным. Необходимо открыть документ и уже внутри удостовериться, есть ли подпись или нет.

В данном разделе предлагается для скачивания программы 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 Конструктор инструкция также доступна через меню Справка.

Последние материалы раздела:

Почему режется скорость Интернета по WiFi: Бесплатные советы как ускорить передачу данных
Почему режется скорость Интернета по WiFi: Бесплатные советы как ускорить передачу данных

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

Контекстное меню в Windows
Контекстное меню в Windows

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

Продвижение в Instagram: самая подробная инструкция
Продвижение в Instagram: самая подробная инструкция

XXI век - стремительно меняющийся и ломающий прежние представления об успехе. Социальные сети стали феноменом, люди часами проводят время в режиме...