КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ ЭЦП

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

Содержание
  1. Что потребуется
  2. Как с помощью ЭЦП подписать документы формата Word и Excel
  3. Как с помощью ЭЦП подписать документ в формате PDF
  4. Как создать и подписать файл в формате SIG с помощью ЭЦП
  5. Как создать файл электронной подписи в формате SIG
  6. Инструкция по созданию файла, подписанного ЭЦП, с использованием ПО КриптоПро
  7. КриптоПро CSP
  8. Инструменты КриптоПро
  9. Установка сертификатов
  10. Создание подписанного документа
  11. Заключение
  12. Создание отсоединенной электронной подписи с помощью КриптоАРМ
  13. Что такое КриптоПро Office Signature
  14. Как установить плагин КриптоПро Office Signature
  15. Как подписать документ и проверить подпись
  16. Создание подписи
  17. Проверка подписи
  18. Как самостоятельно изготовить электронную подпись
  19. Что такое электронная подпись
  20. Генерирование открытого и секретного ключей
  21. Подписание документа
  22. Проверка подписи
  23. Что из себя представляет «КриптоАРМ»
  24. Как подписать файл «КриптоАРМ»
  25. Подготовка к работе
  26. Пошаговая инструкция

Что потребуется

Документ следует подписывать только в окончательной редакции — какие-либо изменения в нём после подписания будут невозможны, иначе документ таким образом потеряет свою юридическую силу.

Чтобы подписать документ с помощью ЭЦП, вам потребуются:

  1. Действующий сертификат квалифицированной электронной подписи.

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

  3. Средства электронной подписи.

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

  5. Программа для создания ЭЦП
    — плагины, онлайн-сервисы и программы, устанавливаемые отдельно.

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

Чтобы документ, подписанный в Word или Excel, обладал юридической силой, необходимо предварительно установить КриптоПро Office Signature — специальный программный модуль, позволяющий создавать и проверять ЭЦП по алгоритмам программ Word и Excel.

Порядок действий при подписании документа для разных версий MS Office отличается.
Для программ, начиная с версии MS Office 2010, алгоритм следующий:

  • на вкладке Файл
    перейти в разделе Сведения
    ;

  • нажать кнопку Добавить электронную подпись (КриптоПро)
    ;

картинка1

  • в окне Подписание
    нажать кнопку Изменить
    и выбрать личный сертификат ЭЦП;

  • после выбора сертификата нажать кнопку Подписать
    .

картинка2

Если ключевой контейнер защищён паролем, нужно указать его в соответствующем окне. Если ключевой контейнер защищён паролем, нужно указать его в соответствующем окне.

картинка3

Если пароль указан правильно, появится сообщение об успешном подписании документа.

картинка4

Обратите внимание! Если создать подпись в одной версии КриптоПро Office Signature, а проверять её в другой, результат проверки может быть некорректным.

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

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

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

картинка5

Рассмотрим настройку на примере Acrobat Reader DC:

  1. В блоке Создание и оформление
    нажимаем кнопку Подробнее
    .

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

картинка6

Чтобы подписать PDF-файл:

  1. Откройте документ в Acrobat Reader DC

  2. Выберите пункт Заполнить и подписать
    на панели инструментов справа.


  3. картинка7

  4. Выберите пункт Сертификаты
    . Если его нет в списке, то необходимо добавить через настройки панели инструментов.


  5. картинка8

  6. Нажмите Поставить цифровую подпись
    .

  7. картинка9

  8. Выделите область, где будет стоять ЭЦП . После этого появится окно, в котором нужно будет выбрать цифровое удостоверение для подписи.

  9. картинка10а


  10. картинка10

Как создать и подписать файл в формате SIG с помощью ЭЦП

картинка11

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

Чтобы сформировать документ в формате SIG или посмотреть содержимое документа с таким форматом, потребуется специальное ПО для шифрования и расшифрования данных, создания и проверки ЭЦП.

Как создать файл электронной подписи в формате SIG

Процесс создания документа в формате SIG мы рассмотрим на примере программы КриптоАРМ. Чтобы создать подписанный документ необходимо:

  1. Выбрать исходный документ, кликнув по нему правой кнопкой мыши

, выбрать в меню КриптоАРМ


, затем – Подписать

.


КриптоАРМ

  • Нажать кнопку Далее
    в открывшемся Мастере создания электронной подписи.

  • Мастере создания

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


  • исходный файл для подписания

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


  • преобразован исходный файл

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


  • Использование подписи

  • Нажать кнопку Выбрать
    картинка10а в окне Выбор сертификата подписи.


  • Выбор сертификата

  • В Хранилище сертификатов выбрать сертификат ЭЦП из списка.


  • Хранилище сертификатов

  • На последнем этапе создания документа с помощью Мастера нажать Готово.


  • Готово

    После завершения операции подписания документа появится окно с результатами

  • .


    SIG создан

    Готово! Документ в формате SIG создан и подписан.


    Выбрать
    подходящую лицензию КриптоАРМ рекомендуем в нашем интернет-магазине. Оставьте короткую заявку для бесплатной консультации специалиста.

    Для отправки цифровых документов рекомендуем квалифицированные электронные подписи от УЦ «Калуга Астрал». В каталоге
    представлены тарифы для физлиц и сотрудников организаций. Индивидуальные предприниматели и руководители юрлица могут воспользоваться услугой Получение КЭП в ФНС под ключ.

    Инструкция по созданию файла, подписанного ЭЦП, с использованием ПО КриптоПро

    Время на прочтение

    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    Для собственного использования создал инструкцию для подведов. Буду рад, если кому-нибудь пригодится в работе. Ниже представлен текст с картинками из инструкции по созданию подписанного ЭЦП электронного документа, с использованием ПО КриптоПро. В самом конце приложена ссылка на исходник, он выполнен в виде Гугл документа, шаблон — брошюра, формат листа А4. Его можно использовать по своему усмотрению.


    КриптоПро CSP

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

    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    Использование иных криптографических программ под административную ответственность руководителей и лиц, использующих ПО СКЗИ, не имеющих действующего сертификата соответствия ФСБ РФ.

    Инструменты КриптоПро

    Для работы с ЭЦП запустите утилиту “Инструменты КриптоПро”. В ней собраны все необходимые инструменты для работы с ЭЦП

    Установка сертификатов

    Используя Инструменты КриптоПро, перейдите в пункт меню “Сертификаты” и установите сертификат Федерального казначейства в “доверенные корневые центры сертификации”.

    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    Затем повторите процедуру для ЭЦП сотрудника, выбрав место установки сертификата “Личное”. Подготовка завершена.

    Создание подписанного документа

    Подписать можно абсолютно любой файл. 

    Перейдите в пункт “Создание подписи”

    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    Нажмите на кнопку “Выбрать файл для подписи” и выберите файл, который нужно подписать.

    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    Выберите подпись, которой необходимо подписать документ. Обратите внимание — ЭЦП должно быть актуальной. 

    После выбора ЭЦП станет активной кнопка “Подписать”. Необходимо её нажать. Если документ подписан и нет ошибок — под кнопкой “подписать появится соответствующая надпись. Либо будет указана ошибка с кодом.

    Далее перейдите в папку, где хранился подписываемый документ, в нем будет два файла — сам документ и его подпись. Размещать или пересылать необходимо оба документа.

    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    Заключение

    Инструкцию делал для подведов. Писал максимально простым языком. Если кому то пригодится в работе — буду рад.

    Ссылка
    на исходник инструкции в виде брошюры на Гугл диске

    Создание отсоединенной электронной подписи с помощью КриптоАРМ

    Для создания отсоединенной электронной подписи (ЭП) с помощью  КриптоАРМ
    , выполните следующие действия:

    1. Нажмите на подготовленный файл правой кнопкой мыши. Выберите пункт  КриптоАРМ
      , затем нажмите  КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
      Подписать
    2. В открывшемся окне нажмите  Далее

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    3. В следующем окне нажмите  Далее

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    4. В окне выбора выходного формата файла подписи выберите пункт  DER-кодировка
      , поставьте галочку  Помещать выходные файлы в указанный каталог,
      и  
      выберите каталог для сохранения открепленной подписи. Затем нажмите  Далее

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    5. В окне установки параметров подписи в списке «Использование подписи» выберите пункт   Утверждено
       , а так же поставьте галочку  Сохранять подпись в отдельном файле


      Все остальные галочки уберите. 

      Затем нажмите  Далее

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    6. В окне выбора сертификата подписи нажмите кнопку Выбрать

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    7. В открывшемся окне «Хранилище сертификатов» выберите нужный личный сертификат и нажмите кнопку ОК 
    8. Убедитесь в том, что выбран правильный сертификат.

      Нажмите Далее


      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    9. В следующем окне нажмите кнопку Готово

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    10. После нажатия кнопки «Готово» будет сформирована электронная подпись.

      Если все дейтсвия были выполнены верно, появится надпись Успех
      .

      Если данная надпись появилась, нажмите кнопку Закрыть. Если окно не появилось или результат содержит иную информацию, внимательно повторите инструкцию с самого начала.

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ
    11. В результате работы приложения создается файл с расширением *.sig

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    вопросы

    Из нашей статьи вы узнаете:

    В Microsoft Office можно подписать электронный документ, но предназначенная для этого функция не позволяет создать подпись, придающую документу юридическую силу. Чтобы подписать документ в формате документов Word или Excel потребуется дополнительное ПО, например, КриптоПро Office Signature.

    Что такое КриптоПро Office Signature

    КриптоПро Office Signature — специальный плагин, предназначенный для того, чтобы создавать и проверять электронную подпись (ЭП) по алгоритмам документов Word и Excel, входящих в состав пакета Microsoft Office. Плагин работает по принципу формирования сигнатур подписи в документе по алгоритмам ГОСТ Р 34.10-2001/ГОСТ Р 34.10-2012.

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

    При работе с КриптоПро Office Signature необходимо учитывать особенности некоторых версий MS Office. Например, Microsoft Office 365 поддерживает создание электронной подписи только в приложении для ПК, в веб-версии Microsoft Office 365 этой функции нет. Microsoft Office Starter не поддерживает функцию создания и проверки ЭП, поэтому для работы с КриптоПро Office Signature не подходит.

    Как установить плагин КриптоПро Office Signature

    Чтобы подписывать электронные документы с помощью КриптоПро Office Signature, необходимы:

    • ОС Windows 7 и выше (с разрядностью 32 или 64 bit)
    • действующий сертификат ЭП;
    • КриптоПро CSP (версия 4.0 9944 и выше);
    • Microsoft Office 2007 или более поздняя версия (с разрядностью 32 или 64 bit)
    • лицензионный ключ КриптоПро Office Signature.
    • xmldsigaddin-win32.msi (для MS Office с разрядностью 32 bit);
    • xmldsigaddin-x64.msi (для MS Office с разрядностью 64 bit).

    Откройте загруженный файл для запуска Мастера установки.

    Запуск установки

    Выберите вид установки. Рекомендуется Полный.

    Выбор вида установки

    В следующем окне Мастера установки необходимо ввести серийный номер (лицензионный ключ). Обратите внимание, дистрибутив КриптоПро Office Signature поставляется с демонстрационной бесплатной лицензией на 90 дней, поэтому, если продолжить установку без ключа, срок использования плагина будет ограничен.

    Чтобы пользоваться плагином по истечении бесплатного срока, необходимо приобрести лицензию. Сделать это можно в УЦ «Астрал-М». Чтобы оформить заказ, перейдите по ссылке и укажите необходимые данные.

    Указав серийный номер, нажмите Далее. После этого плагин будет установлен на ваш ПК.

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

    Процесс рассмотрим на примере Microsoft Office 2013. Если у вас другая версия, последовательность действий может отличаться.

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

    Нажмите Файл в верхней части окна.

    Картинка 2

    Выберите категорию Сведения и нажмите Добавить электронную подпись (КРИПТО-ПРО).

    Выбор категории

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

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

    Установка сертификата ЭЦП

    Если токен защищён паролем, появится окно для его ввода. Укажите пароль. Готово, документ подписан!

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

    Специальный символ

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

    Панель с информацией

    Создание подписи

    создание подписи в "Инструменты КриптоПро"

    Создание отсоединенной подписи в «Инструменты КриптоПро» из состава КриптоПро CSP 5.0 происходит в несколько простых шагов:

    1. Откройте «Инструменты КриптоПро». Ярлык можно найти в меню программ.
    2. Щёлкните левой кнопкой мыши в текст «Создание подписи».
    3. В списке в правой части окна щёлкните по строчке с вашей электронной подписью (если подписи нет в списке то см. эту статью
      , вариант 1).
    4. Если вы не видите поля для галочки «Создать отсоединённую подпись», левой кнопкой мыши щёлкните в кнопку «Показать расширенные» в левом нижнем углу окна программы.
    5. Щёлкните в квадрат чтобы проставить галочку «Создать отсоединённую подпись».
    6. Щёлкните в кнопку «Выбрать файл для подписи» в появившемся окне выберите файл который хотите подписать.
    7. Щёлкните в кнопку «Подписать». Произойдёт обращение к подписи. Если будет запрошен пароль от подписи — введите его. 

    Если подпись сформирована успешно, под кнопкой «Подписать» появится соответсвующий текст, а рядом с файлом-оригиналом появится новый файл с именем как у оригинала и расширением .p7s
    . Так, если вы подписывали документ scan_14027.jpg
    то файл подписи будет называться  scan_14027.jpg.p7s
    . Некоторые операционные системы скрывают расширение файла и вы увидите только имя «scan_14027» у оригинала и «scan_14027.jpg» у файла подписи. 

    Важно:
    у файла-оригинала и у файла-подписи имена до точки совпадают. Не переименовывайте и не редактируйте файл-оригинал и файл подписи
    , иначе подпись перестанет быть действительной. При отсоединённой подписи второй стороне передаются оба файла
    — оригинал и файл подписи.

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

    проверка подписи в "Инструменты КриптоПро"

    Проверка отсоединенной подписи требует наличия в одной и той же папке двух файлов: файла-оригинала и файла-подписи. Их имя до точки совпадает.  Не переименовывайте и не редактируйте файл-оригинал и файл подписи
     до проверки подписи, иначе проверка завершится неудачно для изменённой пары. Так, если оригинал документа называется  scan_14027.jpg
     то файл подписи будет называться  scan_14027.jpg.p7s
    . Некоторые операционные системы скрывают расширение файла и вы увидите только имя «scan_14027» у оригинала и «scan_14027.jpg» у файла подписи. 

    1. Откройте «Инструменты КриптоПро». Ярлык можно найти в меню программ.
    2. Щёлкните левой кнопкой мыши в текст «Проверка подписи».
    3. Щёлкните в кнопку «Выбрать файл с подписью для проверки» и в появившемся окне выберите файл подписи. Программа отфильтрует файлы в папке чтобы подсказать вам нужный.
    4. Если у вас было выбрано «Показать расширенные» из предыдущего пункта, вы увидите поле для галочки «Сохранять исходный файл.», галочка в нём для отсоединенной подписи не ставится — у вас уже есть файл-оригинал.
    5. Щёлкните в кнопку «Проверить подпись». В случае успешной проверки под кнопкой появится сообщение «Подпись была успешно проверена». Его можно раскрыть чтобы получить больше подробностей.

    Как самостоятельно изготовить электронную подпись

    Время на прочтение

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

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

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

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

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

    Мне однажды встречался такой способ удостоверения подлинности электронных документов в одной организации: перед рассылкой документа изготавливался его хэш
    и подписывался в базу хэшей (обычный текстовый файл, лежащий на сервере). Далее любой желающий удостовериться в подлинности электронного документа заходил на официальный сайт этой организации (в официальности которого ни у кого сомнений не возникало) и с помощью специального сервиса проверял, содержится ли хэш проверяемого документа в базе. Замечательно при этом, что сам документ даже не нужно было загружать на сервер: хэш можно вычислить на клиентской стороне в браузере, а на сервер послать только маленький fetch- или ajax-запрос с этим хэшем. Безусловно, этот немудрёный способ можно с полным основанием назвать простой ЭЦП: подписью в данном случае является именно хэш документа, размещенный в базе организации.

    Поговорим теперь об усиленной
    электронной подписи. Она предполагает использование стандартных криптографических алгоритмов; впрочем, таких алгоритмов существует достаточно много, так что и здесь единого стандарта нет. Тем не менее де-факто усиленная ЭЦП обычно основана на асимметричном шифровании
    (абсолютно гениальном, на мой взгляд, изобретении Ральфа Меркла
    ), идея которого чрезвычайно проста: для шифрования и расшифровывания используются два разных ключа
    . Эти два ключа всегда генерируются парой; один называется открытым ключом
    (public key), а второй — секретным ключом
    (private key). При этом, имея один из двух ключей, второй ключ воспроизвести за разумное время невозможно.

    Представим себе, что Аня хочет послать Боре (почему в литературе по криптографии обычно фигурируют Алиса и Боб? пусть будут Аня и Боря) секретную посылочку, закрытую на висячий замочек, и при этом на почте работают злые люди, которые хотят эту посылочку вскрыть. Других каналов связи, кроме почты, у Ани и Бори нет, так что ключ от замочка Аня передать Боре никак не может. Если она пошлет ключ по почте, то злые люди его, конечно, перехватят и вскроют посылочку.

    Ситуация кардинально меняется, если изобретен замок с двумя ключами
    : один только для закрывания, а второй — только для открывания. Боря генерирует себе пару таких ключей (открытый и секретный) и открытый ключ шлет по почте Ане. Работники почты, конечно, потирая руки, делают себе копию этого ключа, но не тут-то было! Аня закрывает замок на посылке открытым ключом Бори и смело идет на почту. Работники почты вскрыть посылку открытым ключом не могут (он использовался для закрывания
    ), а Боря спокойно открывает ее своим секретным ключом, который он бережно хранил у себя и никуда не пересылал.

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

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

    Что же теперь отправляет Иван Иванович получателям? А отправляет он три файла: сам документ, его электронную подпись и открытый
    ключ. Получатель документа:

    • изготавливает его хэш с помощью стандартного алгоритма;
    • расшифровывает электронную подпись, используя имеющийся у него открытый ключ Ивана Ивановича;
    • убеждается, что хэш совпадает с тем, что указан в расшифрованной электронной подписи (то есть документ не был подменен или отредактирован). Вуаля!

    Из этой коллизии существует два выхода. Первый, самый простой, заключается в том, что Иванов может разместить свой открытый ключ на своем персональном сайте (или на официальном сайте организации, где он работает). Если подлинность сайта не вызывает сомнений (а это отдельная проблема), то и принадлежность открытого ключа Иванову сомнений не вызовет. Более того, на сайте можно даже разметить не сам ключ, а его отпечаток
    (fingerprint), то есть, попросту говоря, хэш открытого ключа. Любой, кто сомневается в авторстве Иванова, может сверить отпечаток ключа, полученного от Иванова, с тем отпечатком, что опубликован на его персональном сайте. В конце концов, отпечаток можно просто продиктовать по телефону (обычно это 40 шестнадцатеричных цифр).

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

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

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

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

    Генерирование открытого и секретного ключей

    Итак, вы решили самостоятельно изготовить усиленную неквалифицированную электронную подпись и научиться подписывать ею свои документы. Начать необходимо, конечно, с генерирования пары ключей, открытого (public key) и секретного (private key).

    Существует множество стандартов и алгоритмов асимметричного шифрования. Одной из библиотек, реализующих эти алгоритмы, является PGP (Pretty Good Privacy). Она была выпущена в 1991 году под проприетарной лицензией, поэтому имеются полностью совместимые с ней свободные библиотеки (например, OpenPGP). Одной из таких свободных библиотек является выпущенная в 1999 году GNU Privacy Guard (GnuPG, или GPG). Утилита GPG традиционно входит в состав почти всех дистрибутивов Линукса; для работы из-под Windows необходимо установить, например, gpg4win
    . Ниже будет описана работа из-под Линукса.

    Сначала сгенерируем собственно ключи, подав (из-под обычного юзера, не из-под root’а) команду

       gpg --full-generate-key  
      

    В процессе генерирования вам будет предложено ответить на ряд вопросов:

    • тип ключей можно оставить «RSA и RSA (по умолчанию)»;
    • длину ключа можно оставить по умолчанию, но вполне достаточно и 2048 бит;
    • в качестве срока действия ключа для личного использования можно выбрать «не ограничен»;
    • в качестве идентификатора пользователя можно указать свои фамилию, имя и отчество, например, Иван Иванович Иванов
      ; адрес электронной почты можно не указывать;
    • в качестве примечания можно указать город, либо иную дополнительную информацию.

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

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

       gpg --export -a "Иван Иванович Иванов" > public.key
    gpg --export-secret-key -a "Иван Иванович Иванов" > private.key  
      

    Понятно, что private.key
    вы должны хранить в секрете, а вот public.key
    вы можете открыто публиковать и рассылать всем желающим.

    Подписание документа

    Нет ничего проще, чем создать отсоединенную ЭЦП в текстовом (ASCII) формате:

       gpg -ba имя_подписываемого_файла  
      

    Файл с подписью будет создан в той же папке, где находится подписываемый файл и будет иметь расширение asc
    . Если, например, вы подписали файл privet.doc
    , то файл подписи будет иметь имя privet.doc.asc
    . Можно, следуя традиции, переименовать его в privet.sig
    , хотя это непринципиально.

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

       #!/usr/bin/python
    # -*- coding: utf-8 -*-
    from Tkinter import *
    from tkFileDialog import *
    import os, sys, tkMessageBox
    
    def die(event):
        sys.exit(0)
    
    root = Tk()
    w = root.winfo_screenwidth()//2 - 400
    h = root.winfo_screenheight()//2 - 300
    root.geometry("800x600+{}+{}".format(w, h))
    root.title("Подписать документ")
    
    flName = askopenfilename(title="Что подписываем?")
    
    if flName:
        os.system("gpg -ba " + flName)
        button = Button(text="ЭЦП создана")
        button.bind("<Button-1>", die)
        button.pack(expand=YES, anchor=CENTER)
    else:
        die()
    
    root.mainloop()  
      

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

    Вряд ли, конечно, вам самому придется проверять достоверность собственной электронной подписи, но если вдруг (на всякий случай) вам захочется это сделать, то нет ничего проще:

       gpg --verify имя_файла_подписи имя_файла_документа  
      

    В реальности гораздо полезнее опубликовать где-нибудь в открытом доступе (например, на вашем персональном сайте или на сайте вашей организации):

    • открытый ключ public.key
      для того, чтобы все желающие могли проверить (верифицировать) вашу подпись с использованием, например, той же GPG;
    • веб-интерфейс для проверки вашей подписи всеми желающими, не являющимися специалистами.

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

    К счастью для нас, имеется свободная библиотека OpenPGP.js
    ; скачиваем самый маленький по размеру (на момент написания данного туториала — 506 КБ) файл dist/lightweight/openpgp.min.js
    и пишем несложную html-страничку (для упрощения восприятия я удалил все описания стилей и очевидные meta-тэги):

       <!DOCTYPE html>
    <html>
    <head><meta charset="utf-8"></head>
    <body>
    
    <label for="doc">Загрузите файл с документом</label>
    <input id="doc" type="file" onChange="readDoc('doc')">
    
    <label for="sig">Загрузите файл с подписью</label>
    <input id="sig" type="file" onChange="readDoc('sig')">
    
    <button type="button" disabled onClick="check()">Проверить</button>
    <output></output>
    
    <script src="openpgp.min.js"></script>
    <script src="validate.js"></script>
    
    </body>
    </html>  
      

    Понятно, что файл с открытым ключом public.key
    и файл библиотеки openpgp.min.js
    должны лежать в той же папке, что и эта страничка.

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

       "use strict";
    let cont   = {doc:'', sig:''},
        flag   = {doc:false, sig:false},
        pubkey = '',
        mess   = '';
    
    // Чтение файлов документа (как бинарного),
    // ключа и подписи (как текстовых)
    const readDoc = contKey => {
        let reader = new FileReader();
        reader.onload  = async e => {
            cont[contKey] = contKey == "sig" ?
                            e.target.result :
                            new Uint8Array(e.target.result);
            flag[contKey] = true;
            pubkey = await (await fetch("public.key")).text();   
            if (flag["doc"] && flag["sig"])
                document.querySelector("button").disabled = false;
        }
        reader.onerror = err => alert("Ошибка чтения файла");
    
        let fileObj = document.querySelector(`#${contKey}`).files[0];
        if (contKey == "sig") reader.readAsText(fileObj);
        else                  reader.readAsArrayBuffer(fileObj);
    }
    
    // Верификация подписи
    const check = async () => {
        try {   
           const verified = await openpgp.verify({
               message:    openpgp.message.fromBinary(cont["doc"]),
               signature:  await openpgp.signature.readArmored(cont["sig"]),
               publicKeys: (await openpgp.key.readArmored(pubkey)).keys
           });
           const {valid} = verified.signatures[0];
           mess = "Электронная подпись НЕ является подлинной!";
           if (valid) mess = "Электронная подпись является подлинной.";
        } catch(e) {mess = "Файл подписи имеет недопустимый формат.";}
        document.querySelector("output").innerHTML = mess;
    }  
      

    Вот, собственно, и всё. Теперь вы можете в соответствии с пунктом 5.23 ГОСТ 7.0.97–2016
    разместить на документе (в том месте, где должна стоять собственноручная подпись) вот такую красивую картинку:

    КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    вопросы

    Из нашей статьи вы узнаете:

    «КриптоАРМ» — программа, в которой можно подписывать электронные документы разных форматов. Популярные форматы, с которыми можно работать в программе — PDF и XML.

    В этой статье мы расскажем о преимуществах и особенностях «КриптоАРМ» и о том, как подписать электронной подписью XML и PDF файлы.

    Что из себя представляет «КриптоАРМ»

    «КриптоАРМ» шифрует и расшифровывает данные и создаёт ключи проверки электронной подписи. В своей основе программа использует популярный криптопровайдер «КриптоПро CSP»
    .

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

    С помощью «КриптоАРМ» можно подписать XML файл или PDF документ в единичном экземпляре или сразу целую папку. При подписании нескольких документов в папке для каждого файла, входящего в неё, создаётся подпись.

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

    Если вам нужно подписать электронный документ с помощью криптопровайдера «КриптоПро CSP», потребуется версия «Стандарт» или «Стандарт PRO».

    Как подписать файл «КриптоАРМ»

    Подготовка к работе

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

    Пошаговая инструкция

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

    1. Кликните по файлу, который нужно подписать, правой кнопкой мыши, выберите «КриптоАРМ» → «Подписать.».
    2. Выбор файла для подписи

    3. В появившемся окне «Мастер создания электронной подписи» нажмите «Далее».
    4. «Мастер создания электронной подписи»

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

    7. В окне «Выходной формат» выберите один из типов кодировки: DER или BASE64. Здесь также нужно выбрать, что делать с файлами после подписания: архивировать или поместить в выбранный каталог без архивирования.

      Выбор действия над файлами

    8. В следующем окне настройте параметры электронной подписи. Здесь можно также выбрать, будет ли подпись встроена в документ, или же будет представлена в виде отдельного файла.
    9. Настройка параметров ЭЦП

      После настройки параметров нажмите «Далее».

    10. В окне «Выбор сертификата подписи» нажмите кнопку «Просмотреть», выберите нужный сертификат и нажмите «Далее».
    11. Выбор нужного сертификата

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

    После проверки все информации нажмите «Готово».

    Нажмите «Готово»

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

    Если у вас ещё нет программы для подписания и шифрования «КриптоАРМ»
    или криптопровайдера «КриптоПро CSP»
    , вы можете приобрести это ПО в нашем УЦ «Калуга Астрал» по выгодной цене, заполнив

    Как зашифровать и подписать файл в КриптоАРМ

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

    Разберем, как зашифровать и подписать файл в программе КриптоАРМ версии 5.4, на примере отчета для портала ФСРАР и ГОЗ (Минобороны).

    Участники алкогольного рынка (оптовики, розничные продавцы и производители алкогольной продукции) обязаны сдавать отчетность в ФСРАР. Подробнее читайте в статье « Росалкогольрегулирование
    ».

    Отчет в формате *.xml, шифруется и подписывается прикрепленной ЭП. После этого файл с расширением *.xml.sig.zip.enc
    загружается на портал ФСРАР. Порядок действий зависит от версии приложения.

    Организации, которые выполняют государственный оборонный заказ (ГОЗ) Минобороны, должны отчитываться об исполнении контракта. Если у компании есть военное представительство — ежемесячно, не позднее 10 числа месяца, следующего за отчетным. Все остальные — в течение десяти дней со дня получения запроса Министерства обороны.

    Отчет в формате *.xml подписывается отсоединенной электронной подписью и передается в Минобороны на флеш-накопителе.

    1. Сертификат ЭП, которым будете подписывать документ, установите в хранилище «Личные»
      , а корневой — в « Доверенные корневые центры сертификации
      ».
    2. Кликните правой кнопкой мыши и выберите «КриптоАРМ/Подписать».

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    3. Пройдите первые два шага мастера, нажимая «Далее» и ничего не меняя.
    4. В окне «Выходной формат» выберите «BASE64-кодировка» и укажите расширение *.sign.
    5. Установите флаг «Отключить служебные заголовки». Нажмите «Далее».

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

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

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    7. Выберите сертификат и нажмите «Далее», затем «Готово».

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    8. Дождитесь сообщения об успешном выполнении операции.

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

      Появилось окно «Вставьте ключевой носитель». Что делать?

    9. В каталоге рядом с исходным документом появится файл отсоединенной подписи. Удалите из его названия «xml». Оба файла запишите на флеш-накопитель и передайте в Министерство обороны.

      вопросы

      КАК САМОМУ ИЗГОТОВИТЬ ЭЛЕКТРОННУЮ ПОДПИСЬ

    Нашли неточность?

    Выделите текст с ошибкой и нажмите ctrl + enter.

    ЭЦП:  Браузер Сhromium с протоколом TLS, плагин Госуслуг и плагин КриптоПро
  • Оцените статью
    ЭЦП64
    Добавить комментарий