Как сгенерировать ключ эцп |

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

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

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

Где оформить сертификат эцп

Если вам необходима одна, сразу несколько десятков или сотен электронных подписей для ведения деятельности, обращайтесь в УЦ «Астрал». Мы оказываем подобные услуги, предлагая клиентам:

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

Итак, вы решили самостоятельно изготовить усиленную неквалифицированную электронную подпись и научиться подписывать ею свои документы. Начать необходимо, конечно, с генерирования пары ключей, открытого (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;
  • веб-интерфейс для проверки вашей подписи всеми желающими, не являющимися специалистами.
Читайте также:  Прописать сертификат закрытого ключа в реестр КриптоПро — mirAdmin

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

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

Процедура генерации ключа

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

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

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector