Основы криптографии. Как работает система открытых ключей. – Cryptoworld

Основы криптографии. Как работает система открытых ключей. - Cryptoworld Электронная цифровая подпись
Содержание
  1. Что потребуется для подписания электронного документа?
  2. Что делать, если потеряли электронную подпись
  3. Что такое флешка и токен электронной подписи
  4. Электронная подпись в почтовой клиенте
  5. Что такое *.sig файл?
  6. Где можно использовать электронную подпись
  7. Для документов формата pdf
  8. Зачем нужна электронная подпись
  9. Инструмент №1 — криптопровайдер
  10. Инструмент №2 — сертификат эп и закрытый ключ к нему
  11. Инструмент №3 — настроенное рабочее место
  12. Как записать сертификат в личном кабинете
  13. Как записать электронную подпись на флешку
  14. Как записать эп в профиле контур.диагностики
  15. Как записать эп с помощью криптопро csp
  16. Как записать эп с помощью средств windows
  17. Как начать работать с квалифицированной электронной подписью
  18. Как начать работать с электронной подписью
  19. Как перевыпустить сертификат
  20. Как приобрести подпись физическому лицу
  21. Как приобрести подпись юридическому лицу и ип
  22. Как проверить подлинность подписи
  23. Как работать с эп в электронных документах
  24. Как работать с эп внутри различных информационных систем
  25. Какие бывают подписи формата sig
  26. Какой должен быть объем у флешки для электронной подписи
  27. Картина мира
  28. Криптоарм.
  29. Криптопро pdf
  30. На какие носители можно записать электронную подпись
  31. Открыть файл с расширением sig
  32. Отсоединенная подпись эцп в формате sig
  33. Проверка подписи и декодирование
  34. Проверка электронной подписи
  35. Расшифрование
  36. Сертификаты x.509
  37. Создать файл sig
  38. Сравнение программ для создания электронной подписи
  39. Такскомкриптолайн.
  40. Установка криптоарм5
  41. Цифровая подпись
  42. Шифрование
  43. Заключение

Что потребуется для подписания электронного документа?

Получить электронную подпись

Что делать, если потеряли электронную подпись

Если вы потеряли ключ от подписи или его украли, сразу обратитесь в удостоверяющий центр или МФЦ, который выдавал вам сертификат. Центр отзовет ваш сертификат, чтобы его не могли использовать мошенники. Еще обязательно сообщите об этом контрагентам, чтобы они знали, что вашей утерянной подписью могут воспользоваться злоумышленники.

Восстановить утерянный сертификат или ключ ЭП невозможно. Нужно получать новый: собирать документы и идти в удостоверяющий центр.

Что такое флешка и токен электронной подписи

Флешка — это портативное устройство, на котором можно хранить любую информацию, например документы, картинки, музыку. Она не занимает много места и вмещает в себя гигабайты данных. Флешки можно подключать к компьютеру, ноутбуку или другому устройству через USB-порт.

Токен — это тоже устройство для хранения данных, но в отличие от флешки основная задача токена не хранение, а защита информации. Для этого изготовитель устанавливает на все токены восьмизначный пароль.

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

На флешке тоже можно установить пароль, но уровень ее защиты намного ниже токена. На большинстве токенов стоят средства криптографической защиты информации (СКЗИ), которые проходят проверку в ФСБ. Они есть, например, на Рутокене ЭЦП 2.0 и JaCarta SF.

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

Электронная подпись в почтовой клиенте

Использование Электронной подписи возможно только в почтовом клиенте Microsoft Outlook. Настраиваемая почтовая учётная запись в MS Outlook должна совпадать с электронной почтой, указанной в сертификате ключа.

Что такое *.sig файл?

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

Файл формата SIG — имеет расширенное название Signature (что в переводе означает Подпись) уже отсюда можно сделать вывод, что данный файл имеет все основание называться официальным подписанным документом.

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

  1. исходный документ
  2. подпись

После того как подписывают файл 🔥 (через спец софт), в конец исходного документа добавляется блок кода «ключа-подпись» которым вы подписывает документ и на выходе получаем файл формата SIG 🔑

Итог: файл sig — это формат документа подписанный электронно цифровой подписью (ЭЦП)

Где можно использовать электронную подпись

ПростаяНеквалифицированнаяКвалифицированная
Внешние и внутренние электронные документы
Документооборот с физическими лицами
Госуслуги
Документы для ИФНС в личном кабинете налогоплательщика
ПФР и ФСС
Арбитражный суд

Для документов формата pdf

Для создания и проверки электронной подписи в программах Adobe Acrobat, Adobe Reader и Adobe LiveCycle ES есть отдельный модуль КриптоПро PDF.

КриптоПро PDF прилагается бесплатно при совместном использовании с программой Adobe Reader. В остальных программах также есть тестовый период, по истечении которого нужно приобрести лицензию.

Прежде чем вставить электронную подпись в документе PDF, необходимо установить и настроить Acrobat Reader DC или Adobe Acrobat Pro для работы с программой КриптоПро PDF.

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

Получить электронную подпись

Зачем нужна электронная подпись

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

Все эти операции призваны облегчить жизнь представителям бизнеса — экономить на документообороте, меньше бегать по инстанциям, получать государственные услуги удаленно и т. п.

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

Инструмент №1 — криптопровайдер

Это специальное ПО, реализующее все криптографические алгоритмы. Оно дает инструментарий для их использования: чтобы создавать ЭП, проверять ее, зашифровывать и расшифровывать информацию. Одни из самых известных криптопровайдеров — КриптоПро CSP и ViPNet CSP.

Инструмент №2 — сертификат эп и закрытый ключ к нему

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

Токены на российском рынке выпускают различные производители. Флагманами считаются Рутокен (компания «Актив»), JaСarta (компания «Аладдин Р.Д.»).

Инструмент №3 — настроенное рабочее место

Основной вопрос касается установки корневых сертификатов УЦ, выдавшего сертификат ЭП. При работе с квалифицированными сертификатами ЭП настройка корневых сертификатов часто связана с дополнительной задачей — установкой кросс-сертификатов Минкомсвязи.

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

Также часто требуется установка дополнительных надстроек или плагинов для браузера.

Как записать сертификат в личном кабинете

Если вы еще не выпустили сертификат ЭП и хотите сразу записать его на съемный носитель:

  1. Зайдите в личный кабинет на сайте удостоверяющего центра. Сервис попросит пройти аутентификацию: введите номер телефона, который указали в заявлении на получение ЭП. В течение двух минут на этот номер придет одноразовый пароль для входа. Этот пароль будет действовать только 5 минут, если вы не успеете ввести его за это время — запросите пароль еще раз.
  2. Затем вставьте в компьютер носитель, на который вы хотите записать сертификат ЭП — флешку или токен.
  3. В личном кабинете найдите нужный сертификат и нажмите на кнопку «Перейти к выпуску». Система автоматически проверит ваш компьютер и предупредит, если на него нужно установить дополнительные программы.
  4. Следуйте указаниям системы, чтобы выпустить сертификат.
  5. Если вы записываете ЭП на флешку, придумайте и установите на нее пароль в открывшемся окне.
    Если вы записываете ЭП на токен со стандартным паролем — пропустите этот пункт. Но если вы меняли стандартный пароль на собственный — введите его в открывшемся окне.
  6. После выпуска сертификат можно установить на носитель. Для этого нажмите на кнопку «Установить сертификат».

Если у вас есть сертификат для одного из сервисов Контура, например, Экстерна или Диадока, и вы хотите установить его на флешку или токен:

  1. Зайдите в личный кабинет на сайте удостоверяющего центра.
  2. Выберите сертификат электронной подписи, который хотите записать.
  3. Вставьте флешку или токен в компьютер. 
  4. Нажмите на кнопку «Сделать резервную копию».
  5. Выберите носитель, на который сервис запишет сертификат.
  6. Если вы копируете ЭП на флешку придумайте пароль и установите его в открывшемся окне. Этот пароль нужно вводить каждый раз, когда вы используете ЭП. Забытый пароль нельзя восстановить, однако мы не рекомендуем пропускать этот шаг — без пароля ваши данные останутся без защиты.
    Если вы устанавливаете ЭП на токен со стандартным паролем — пропустите этот шаг. А если вы задавали на токене собственный пароль — введите его в специальном окне.
  7. После ввода пароля система запишет сертификат ЭП на носитель.
Читайте также:  Как пользоваться электронной подписью с флешки | Портал Про ЭЦП

Как записать электронную подпись на флешку

Записать сертификат ЭП на флешку или токен можно тремя способами:

  • в личном кабинете удостоверяющего центра;
  • с помощью криптопровайдера КриптоПро CSP;
  • с помощью средств Windows;
  • в профиле Контур.Диагностики.

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

Как записать эп в профиле контур.диагностики

  1. Зайдите на страницу «Копирование сертификатов» Контур.Диагностики.
  2. Вставьте в компьютер флешку, на которую хотите записать сертификат.
  3. Выберите нужный сертификат из списка и нажмите кнопку «Скопировать». 
  4. Введите пароль от контейнера при необходимости.
  5. Выберите носитель, на который программа запишет сертификат ЭП.
  6. Придумайте название для нового контейнера и нажмите кнопку «Далее».

Как записать эп с помощью криптопро csp

  1. На компьютере откройте меню «Пуск», выберите выберите пункт «Панель управления» и нажмите на иконку «КриптоПро CSP».
  2. Во вкладке «Сервис» нажмите на кнопку «Скопировать». 
  3. В открывшемся окне нажмите на кнопку «Обзор» и выберите контейнер закрытого ключа ЭП, который хотите скопировать на флешку. 
  4. Укажите имя контейнера, на который программа скопирует сертификат.
  5. Вставьте флешку компьютер и укажите в программе на какой носитель записать ЭП.
  6. Если вы копируете ЭП на флешку, придумайте и установите пароль в специальном окне. Не пропускайте этот шаг, если хотите защитить свои данные. Без пароля любой пользователь, взявший флешку, сможет воспользоваться вашей подписью. Если вы устанавливаете ЭП на токен со стандартным паролем — пропустите этот шаг. А если вы меняли пароль на токене на собственный — введите его в специальном окне.
  7. После этого программа скопирует контейнер на токен или флешку и вернется во вкладку «Сервис».

Как записать эп с помощью средств windows

  1. Найдите папку с закрытым ключом ЭП на компьютере. В этой папке должно быть шесть файлов с расширением.key. 
  2. Скопируйте эту папку на выбранную флешку. Проверьте, чтобы в папке на флешке оказались все шесть файлов.

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

Чтобы начать работать с электронной подписью, необходимо подготовить свое рабочее место и приобрести сертификат подписи. Сертификат выдают быстро — в течение часа.

Еще для работы с квалифицированной подписью надо будет установить программу для криптозащиты информации (СКЗИ). Самые распространенные средства криптозащиты в России — это «Криптопро CSP», Signal-com CSP, «Лисси CSP», Vipnet CSP. Все они примерно одинаковые.

Какое конкретно СКЗИ потребуется и какие настройки будут нужны, вам скажут в удостоверяющем центре или МФЦ.

Как начать работать с электронной подписью

Для начала нужно разобраться, какие инструменты потребуются владельцу усиленной ЭП (будем рассматривать усиленную ЭП, основанную на российских криптоалгоритмах по ГОСТу, как наиболее актуальную с точки зрения массового использования).

Как перевыпустить сертификат

Срок действия сертификата электронной подписи — год. Когда он подойдет к концу, выпустите новый сертификат. Для этого обратитесь с заявлением в удостоверяющий центр или МФЦ. Если в документах ничего не изменилось, нести их снова не нужно. Если какие-то документы поменялись, нужно принести оригиналы только этих документов.

Как приобрести подпись физическому лицу

Физическим лицам проще всего получить подпись в ближайшем МФЦ: рядом может не быть удостоверяющих центров, а МФЦ найдется всегда. Для этого надо записаться на прием и подготовить следующие документы:

  1. Заявление на изготовление квалифицированного сертификата — шаблон дадут в МФЦ.
  2. Паспорт.
  3. СНИЛС.
  4. Свидетельство о присвоении ИНН.

В Москве электронная подпись для граждан стоит 900—950 рублей. Вместе с носителем цена составит 1500—1600 Р. Отдельно носитель будет стоить от 1500 рублей. Эта цена отличается в зависимости от тарифа удостоверяющего центра и того, насколько защищенную подпись вы хотите использовать.

Как приобрести подпись юридическому лицу и ип

Юридические лица получают квалифицированные сертификаты подписи в удостоверяющем центре или МФЦ.

Как проверить подлинность подписи

Чтобы проверить подлинность подписи и неизменность документа, воспользуйтесь любым из бесплатных сервисов:

  1. Портал «Криптопро».
  2. Сайт госуслуг.
  3. Сервис «Контур-крипто».
На сайте «Криптопро» укажите путь к подписанному документу и подписи в специальном окне, и программа выдаст результат

Как работать с эп в электронных документах

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

1. Электронные документы специализированного формата, которые позволяют встроить ЭП внутрь самого документа (документы Microsoft Word, PDF).

Чтобы встроить ЭП внутрь файла, иногда нужны дополнительные настройки, но часто достаточно обычной версии программы. В случае с Microsoft Word многое зависит от версии продукта: в версии до 2007 года включительно ЭП в документе можно создавать без дополнительных надстроек, для более поздних версий понадобится  специальный плагин — КриптоПро Office Signature. Руководство по настройке ЭП для Microsoft Word/Excel можно найти на сайте УЦ СКБ Контур.

Для подписания PDF-файлов можно использовать программу Adobe Acrobat. При помощи данного функционала можно встраивать ЭП внутрь документа. Проверка созданной таким образом ЭП осуществляется также при помощи программ Adobe Reader и Adobe Acrobat.

2. Неформализованные электронные документы, не обладающие дополнительным инструментарием для встраивания ЭП.

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

Набор инструментов для реализации таких возможностей в целом не ограничивается каким-то одним решением. Существуют отдельные программы, которые устанавливаются на рабочее место и позволяют создавать и проверять ЭП, например, КриптоАРМ. Есть веб-решения, с помощью которых можно прямо в браузере создать ЭП, загрузив документ в форму на сайте, присоединив свой токен с закрытым ключом. На выходе вы получите отсоединенную ЭП. Такие возможности предоставляет сервис Контур.Крипто.

Каким требованиям должно соответствовать рабочее место, чтобы с него можно было работать с ЭП? С критериями можно ознакомиться по ссылке.

Как работать с эп внутри различных информационных систем

Информационные системы могут представлять собой веб-сервис или настольное приложение. Поскольку каждое настольное решение имеет свои особенности реализации и правила настройки для работы с ЭП, разбирать общие сценарии не имеет смысла. Остановимся на более унифицированных веб-решениях.

Чтобы получить возможность работать с ЭП в электронной облачной системе, нужно правильно настроить браузер. В данном случае потребуется установка плагинов, дополнительных настроек, которые помогают работать с ЭП. Например, на электронной торговой площадке «Сбербанк-АСТ» используется штатный плагин от Microsoft — Capicom. На портале госуслуг устанавливается свой плагин, работающий во всех браузерах и осуществляющий работу с ЭП.

Работа с ЭП на определенном веб-портале осуществляется при помощи интерфейса этого портала. Интерфейсы могут быть разные, но базовые сценарии сходны — это загрузка или создание документа и последующее его подписание ЭП. Веб-портал использует плагин, который совершает необходимые операции по созданию или проверке ЭП, и результат работы попадает на серверы информационной системы.

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

Часто в процессе работы c веб-ориентированными информационными системами у пользователей возникают вопросы: почему мой сертификат не принимается системой? как проверить подлинность сертификата? Ответы на первый вопрос могут быть разными, но основных, как правило, три:

  1. Сертификат не подходит для работы в данной информационной системе.
  2. Недействительность сертификата (сертификат выпущен недоверенным УЦ, сертификат отозван, срок действия сертификата истек).
  3. Различные технические проблемы, которые могут зависеть как от площадки, так и от пользователя (например, неправильно настроено рабочее место).  

Какие бывают подписи формата sig

✅ У данного формата ЭЦП есть два варианта исполнения:

  1. 🔑 Отсоединенная ЭЦП
  2. 🔑 Присоединенная ЭЦП

Главное отличие этих подписей состоит в том:

Какой должен быть объем у флешки для электронной подписи

Электронная подпись «весит» очень мало — около четырех килобайт (Кб). Поэтому для хранения сертификата подойдет флешка с любым объемом памяти.

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

Читайте также:  Росэлторг эцп архангельск

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

Получить электронную подпись

Картина мира

Перед погружением в код давай разберем немного терминологии. PKI — инфраструктура открытых ключей. Как несложно догадаться, PKI основана на асимметричном шифровании. В симметричных шифрах для шифрования и расшифрования используется один ключ. В aсимметричных для шифрования используется один ключ, а для расшифрования — другой. Вместе они образуют ключевую пару.

Информация, необходимая для работы PKI, содержится в сертификате X.509. В PKI участвуют как минимум три стороны: Алиса, Боб и удостоверяющий центр (УЦ). У Алисы и Боба есть сертификаты с закрытым ключом, подписанные так называемым корневым сертификатом УЦ.

Криптоарм.

Применяется для электронного подписания документов с помощью ЭЦП и шифрования файлов и документов любого формата. Используя программу КриптоАРМ вы можете расшифровать или посмотреть цифровую подпись файла, а так же создавать как открепленную так и присоединенную подпись.

Криптопро pdf

Данный плагин разработан для подписания внутри документов PDF. Есть возможность создать видимую цифровую подпись (она показывается на панели Подписи, и в виде отдельного поля подписи). Так же можно создать невидимую (она показывается только на панели Подписи).

На какие носители можно записать электронную подпись

Сертификат электронной подписи можно записать:

  • в память компьютера: в реестр или на жесткий диск;
  • токен;
  • флешку;
  • съемный жесткий диск.

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

Некоторые типы сертификатов можно хранить только на токене. Например, записать на флешку нельзя сертификаты для работы с Федеральной таможенной службой или для системы для учета алкогольной продукции ЕГАИС ФСРАР.

Открыть файл с расширением sig

Теперь пойдем от обратной ситуации, вам прислали присоединенный файл SIG и вам надо его просмотреть и у вас естественно возникают вопросы:

  1. Как открыть файл sig
  2. Чем открыть файл sig
  3. Как посмотреть и прочитать файл sig

Если вы читали то, что я написал Выше, то у вас уже не возникнет вопрос чем открыть документы подписанные ЭПЦ формата sig, для этого мы используем нашу программу КриптоАРМ

Для примеры мы возьмем обратную ситуацию, наш файл который мы подписали Документ Microsoft Word.docx.sig откроем для просмотра.

  1. Запускаем программу КриптоАРМ  с рабочего стола или из меню Пуск -> Все программы
    просмотр sig файла
  2. открывается главное окно программы в котором заходим в пункт меню Файл (рис.1) и из выпадающего меню выбираем Просмотр документов (рис.2)
    программа КриптоАРМ
  3. в открывшемся окне выбираем документ который хотим открыть для просмотра
    открываем файл sig для просмотра
  4. После этого у нас происходит процесс открытия подписанного документа
    вскрытие документов сиг
  5. и после этого у нас открывается файл, я создавал текстовый документ формата doc в котором просто написал test
    ЭЦП sig

Если вы осилили мою статью от начала и до конца, то я уверен на все 100% у вас отпали все вопросы о том как подписывать и просматривать документы формата sig, но если появились какие то ошибки или другие вопросы, пишите мне на почту или в комментариях под статьей буду вам помогать!

ну и как полагается Видео )

Отсоединенная подпись эцп в формате sig

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

на рисунке видно документ Документ Microsoft Word.docx и рядом с ним идет документ Документ Microsoft Word.docx.sig который считается его подписью

Тоесть когда вы подписываете отсоединенной подписью человек на другой стороне может без специальных программ открыть ваш файл и его прочитать (если вы подписывали документ PDF 🔥 то его откроют стандартной программой Adobe PDF и могут смотреть и так же с документами word и другими ) но вот если вы внесете в исходный документ какие то данные, то второй файл который идет с ним (отсоединенный) в формате sig уже будет не актуальный.

Поэтому отсоединенная копия очень удобный вариант подписи для второй стороны.

Проверка подписи и декодирование

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

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

[ad name=»Responbl»]

Если пользователь прислал тебе отчет в виде прикрепленной подписи, тебе для чтения придется его декодировать:

public bool VerifyAttached(byte[] dataToVerify) {
    try {
        var cms = new SignedCms();
        cms.Decode(dataToVerify);
        foreach (var signer in cms.SignerInfos) {
            signer.CheckSignature(true);
        }
        return true;
    }
    catch (CryptographicException) {
        return false;
    }
}

public byte[] Decode(byte[] signedCms) {
    var cms = new SignedCms();
    cms.Decode(signedCms);
    return cms.ContentInfo.Content;
}

Нетрудно догадаться, что и тут разработчики .NET Framework подложили нам свинью. Не можем мы проверить подпись большого файла! По той же самой причине — OutOfMemoryException. Но и эту проблему несложно решить, обратившись к магии MS Crypto API. Так как код поточной проверки подписи достаточно длинный, остановлюсь на основных моментах:

Проверка электронной подписи

Чтобы проверить ЭП в документах Microsoft Word и PDF, можно воспользоваться штатной программой, открыть в ней документ и посмотреть, корректна ЭП или нет.

Второй способ более универсальный — воспользоваться отдельным инструментарием для работы с ЭП — КриптоАРМ или Контур.Крипто. Нужно загрузить в программу электронный документ с ЭП, сертификат, при помощи которого создавалась ЭП, и осуществить проверку.

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

Расшифрование

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

Сертификаты x.509

Так повелось, что основным «активом» в PKI является сертификат X.509. Сертификат — это что-то вроде паспорта, он содержит информацию, позволяющую идентифицировать субъект, которому выдан сертификат (поле Subject), указывает, кем он был выпущен (поле Issuer), серийный номер сертификата и многое другое. В Windows управлять сертификатами можно с помощью оснастки «Сертификаты» (run->certmgr.msc).

Сертификаты хранятся в хранилищах («Личнoе», «Доверенные центры сертификации», «Доверенные лица»…).

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

Читайте также:  1. Термины и определения / КонсультантПлюс

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

Самое интересное о сертификате мы можем узнать на вкладке «Состав».

Обрати внимание на поля «Алгоритм подписи», «Алгоритм хеширования подписи» и «Открытый ключ». Если хочешь использовать сертификат для осуществления транзакций в России, во всех этих полях ты должен видеть слово «ГОСТ». Также следует обратить внимание на значение поля «Использование ключа» и поля «Действителен с» и «Действителен по»: первое позволит понять, возможно ли использование сертификата для выполнения нужной нам операции (шифрование, подпись), а второе и третье — возможно ли использовать данный сертификат в указанный момент времени.

Создать файл sig

Для создания подписанного файла сиг, после установки КриптоАРМ проделываем следующую операцию:

  1. кликните правой кнопкой мыши на вашем файле который нужно подписать (рис.1) далее из выпадающего меню выбираем КриптоАРМ (рис.2) и далее выбираем Подписать (рис.3)
    Создать файл SIG
  2. у нас открывается мастер создания ЭЦП и нам нужно только нажать Далее
     мастер создания ЭЦП
  3. далее в окне у нас будет список файлов на подписание в который можно добавить дополнительные файлы или убрать лишние
    программа для подписи SIG
  4. на следующим шаге выбираем  выходной формат файла с кодировкой и расширением (оставляем все по умолчанию и нажимаем Далее)
    создание подписи формата сиг
  5. На этом шаге у нас идет настройка параметров подписи тут мы указываем, что делаем (в нашем случае это Подписано) (рис.4) и самое важно в этих параметрах вы можем указать Присоединенная или Отсоединенная будет подпись (рис.5)
    параметры подписи SIG
  6. после того как мы выбрали параметры переходим к самому процессу подписания и нажимаем кнопку Выбрать
    подпись файла эцп
  7. из списка выбираем наш сертификат (я для примера создал тестовый сертификат ЭЦП ) в списке он у меня называется Test
    выбор сертификата для подписи ЭЦП
  8. Мастер подписи закончен и переходим к кульминации, нажимаем на кнопку готово
    создать один файл sig
  9. у нас запускается операция подписания и после появится окно с результатами подписи (рис.6) и видим в папке откуда мы запускали подпись документа, рядом с этим фалом появился файл с таким же названием и на конце у него добавился формат sig
    результат подписания ЭЦП
  10. Все!

НУ вот вы и научились создавать и подписывать документы в формате *.SIG

Сравнение программ для создания электронной подписи

 

Плагины КриптоПро

Отдельная программа КриптоАРМ

Веб-сервис Контур.Крипто

Стоимость

Платные

Бесплатна только базовая версия Старт

Все функции доступны бесплатно

Форматы документов

Word и Excel, PDF

Все

Все

Соподпись/ пакетная подпись

Есть

Есть

Есть

Максимальный вес файла

Без ограничений

Без ограничений

до 100 Мб

Создание усовершенство

ванной подпись

Есть

Только в платных версиях

Есть

Присоединенная/ отсоединенная

Есть

Присоединенная/ отсоединенная

Только отсоединенная

Функции проверки, шифрования и расшифрования

Есть

Только в платных версиях

Есть

Получить электронную подпись

Такскомкриптолайн.

Бесплатная программа «КриптоЛайн» предоставляет достаточно широкий функционал. Она даёт возможность подписывать, а так же проверять или удалять подписи у файлов для ЭДО с ФСФР, ФСРАР, Росприроднадзором. Вы можете использовать программу и в других видах электронного документооборота.

Установка криптоарм5

По ссылке выше вы уже скачали сам файл КриптоАРМ и теперь нам надо его просто происталировать, сама установка проходит как и любая программа в которой после запуска просто нажимаем далее и ждем установки.
Установка КриптоАРМ5

Цифровая подпись

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

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

Подпись гарантирует, что твой отчет отправлен именно тобой, а не уборщицей или сторожем. С другой стороны, ты не сможешь отказаться от авторства (это называется «неотрекаемость») и, если накосячишь в своем суперважном документе, на сторожа свалить вину не получится.

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

Для программирования подписи необходимо ознакомиться с несколькими классами .NET Framework:

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

X509Chain certificateChain = new X509Chain {
    ChainPolicy = {
        RevocationMode = X509RevocationMode.Online,
        VerificationFlags = X509VerificationFlags.IgnoreNotTimeValid,
        RevocationFlag = X509RevocationFlag.ExcludeRoot
    }
};

bool chainOk = certificateChain.Build(certificate);
bool certNotExpired = (certificate.NotAfter >= DateTime.Now) && (certificate.NotBefore <= DateTime.Now);

Мы проверили сертификат и убедились, что он в порядке. Переходим непосредственно к подписыванию данных. Подпись бывает двух видов: прикрепленная и открепленная.

Результатом прикрепленной подписи будет CMS (Cryptography Message Syntax) — сообщение, содержащее как подписываемые данные, так и саму подпись. Открепленная подпись содержит только саму подпись. Рекомендую использовать именно открепленную подпись, потому что с ней намного меньше мороки.

В нее проще поставить метку времени, она меньше весит, так как не содержит подписываемые данные. Подписываемые данные легко открыть, посмотреть. В случае прикрепленной подписи для того, чтобы просмотреть подписанные данные, CMS-сообщение необходимо сначала декодировать.

В общем, прикрепленной подписи я рекомендую избегать всеми силами. Если потребуется передавать подпись и контент вместе, рассмотри вариант архивирования (вместо использования прикрепленной подписи используй открепленную, просто заархивируй подписываемый файл и открепленную подпись). Посмотрим на код подписи (С#):

Шифрование

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

public byte[] Encrypt(byte[] dataToEncrypt, params X509Certificate2[] recepients) {
    var contentInfo = new ContentInfo(dataToEncrypt);
    var recipientsCertificates = new X509Certificate2Collection(recepients);
    var recipients = new CmsRecipientCollection(SubjectIdentifierType.IssuerAndSerialNumber, recipientsCertificates);
    var cms = new EnvelopedCms(contentInfo);
    cms.Encrypt(recipients);
    return cms.Encode();
}

Заключение

В статье не удалось охватить все аспекты PKI, так как их очень много. Тем не менее закодить основные операции ты теперь сможешь без проблем. Разработчикам, которые умеют писать на C#, рекомендую освоить C хотя бы на базовом уровне. Это очень пригодится, когда придется работать с нативными функциями.

А до многих возможностей ОС по-другому и не добраться, так как .NET реализует весьма ограниченный набор возможностей. Например, .NET не имеет полной поддержки MS Crypto API и CNG (cryptography next geberation), поэтому тебе придется писать тонны P/invoke-кода на С# либо значительно меньше на C .

[ad name=»Responbl»]

Как видишь, работа с PKI достаточно сложная и требует серьезной подготовки, выдержки и терпения. Перед тем как бросаться реализовывать классные фичи, крайне важно понимать основные концепции PKI.

Оцените статью
ЭЦП Эксперт
Добавить комментарий