ЭЦП видеопотока / Хабр

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

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

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

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

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

Богатый ассортимент

ВидСозданиеИзменение
1ПростаяИспользуются коды, пароли, подтверждающие принадлежность определенному лицу; сертификат отсутствует.
2Усиленная неквалифицированнаяКриптографическое преобразование инфо, закрытый ключ; сертификат есть.
3Усиленная квалифицированнаяСредства криптозащиты проверяются ФСБ России; обладает квалифицированным сертификатом.

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

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

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

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

Вариант 2. установить отдельную программу для создания подписи

Чтобы подписывать документы любого формата (*rar, *.jpeg и *.png,*.ppt, видео, базы данных и т.д.), можно установить на компьютер специальную программу — например, КриптоАРМ.

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

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

  • Количество файлов, которые нужно подписать: можно подписать несколько файлов или папку с документами.
  • Формат подписи: присоединенная или отсоединенная. В первом случае подпись будет встроена в файл, а во втором будет создана в отдельном файле с расширением *.sig.
  • Сертификат, которым нужно подписать документ.

Что учесть при использовании программы:

  • В бесплатной версии можно поставить только базовую КЭП (без проверки времени подписания документа и статуса сертификата). Но проверить можно и усовершенствованную подпись (со статусом сертификата и временем подписания документа).

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

Вариант 3. воспользоваться веб-сервисами

Можно подписать документ любого формата, не устанавливая на компьютер специальных программ, — например, в веб-сервисе Контур.Крипто.

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

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

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

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

Читайте также:  Где найти сертификат эцп на компьютере

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

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

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

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

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

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

Для документов формата word и excel

Чаще всего требуется подписать документ в формате Word:

  • трудовой или хозяйственный договор,
  • иск в арбитраж,
  • заявление в вуз и т.д.

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

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

  1. В главном меню документа выберите пункт «Сервис» и перейдите в «Параметры». В появившемся окне выберите вкладку «Безопасность» и нажмите кнопку «Цифровые подписи».

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

  3. С его помощью создайте для документа электронную подпись: нажмите «Подписать» и введите пароль ключевого контейнера.

Что учесть при использовании плагина:

  • Алгоритм подписания отличается в разных версиях Word.
  • Если создать подпись в одной версии программы, а проверять ее в другой, результат проверки может быть некорректным.
  • Документ, подписанный с помощью КриптоПро Office Signature, можно открыть и проверить даже на компьютере, где эта программа не установлена.

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

Завести квалифицированную электронную подпись

Оформить подобную ЭЦП можно только в специальном удостоверяющем центре. Никакие другие организации не вправе это делать!

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

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

Нужно оформить заявку. В большинстве случаев это делается через Интернет, в электронном варианте. Менеджер проводит консультацию онлайн. Заявка несложная, с указанием ФИО и контактов.

После оформления заявки менеджер в течение 30-60 минут связывается с Вами и уточняет, какой вариант электронной подписи Вам нужен.

По e-mail Вы с УЦ осуществляете обмен сканами документов.

Вам понадобится отослать следующие документы:

    Вам понадобится отослать:

  • паспорт и СНИЛС – для физических лиц;
  • выписку из Единого государственного реестра юридических лиц (свеженькую, максимум месячной давности), копию приказа, наделяющего должностное лицо правом действовать от лица компании – для юридических лиц;
  • подтверждение регистрации в Едином реестре ИП, свежую выписка из реестра, личные документа лица, на которого оформляется сертификат – для предпринимателей.

Оплачиваете присланный счет. Стоимость сертификата простой электронной подписи колеблется в диапазоне 900-2000 рублей. За квалифицированную, конечно, придется доплатить.

Чаще всего оформление сертификата занимает 2-6 часов. В ходе личного визита в УЦ субъект становится счастливым обладателем токена и может его использовать на полную катушку.

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

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

Кроме того, надо установить библиотеки «Capicom» и «Cadescom». Они доступны для скачивания в интернете и нужны для тот, чтобы работать с ЭЦП.

Может потребоваться настройка браузера. Иначе он заблокирует программы, и Вы не сможете подписать документ. Потребуется установка специальных плагинов. Самый распространённый вариант работы с ЭЦП – «КриптоПро». Его мы с Вами и рассмотрим.

Как установить электронную подпись в «криптопро?

  1. У Вас должна быть установлена программа «КриптоПро».
  2. С токена Вам надо установить на ПК сначала ваш сертификат, затем сертификат УЦ. В качестве места хранения необходимо выбрать вкладку «Доверенные корневые центры сертификации».
  3. С меню «Пуск» заходим в программу «КриптоПро». Во вкладке «Сервис» удаляем заполненные пароли.
  4. Выбираем пункт «Установить личный сертификат» и ищем его на токене. Открывается окно «Мастер установки личного сертификата». Выбираем опцию «Найти контейнер автоматически». Программа найдет сертификат автографа на токене.
  5. Далее, нажав на вкладку «Обзор» выбираем хранилище «Личные».

Ключик

Рассматривая ЭЦП, мы не конкретизировали понятие «ключ». Он относится только к квалифицированным подписям и является важнейшей составляющей системы.

    В сертификате содержится:

  • информация о собственнике электронной подписи;
  • уникальный номер;
  • данные о центре, выдавшем сертификат.
Читайте также:  Стартовая страница - ЭТП "СЭлТ"

Ключи

ОткрытыйЗакрытый
Для обмена информацией в открытом вариантеПодтверждение подписи в документах

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

Нет ничего проще, чем создать отсоединенную ЭЦП в текстовом (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-тэги):

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

 

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

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

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

Стоимость

Платные

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

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

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

Word и Excel, PDF

Все

Все

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

Есть

Есть

Есть

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

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

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

до 100 Мб

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

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

Есть

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

Есть

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

Есть

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

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

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

Есть

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

Есть

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

Электронный автограф

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

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

В России она стала реальностью с середины 1990-х гг. В Гражданский кодекс были внесены пункты, приравнивающие ЭЦП к собственной подписи субъекта и защищающие электронные документы. В 2021 г. был принят «Закон об электронной подписи», через 5 лет получивший важные поправки. В случае спорных ситуаций, необходимо обращаться к этому акту.

    Для чего нужна электронная подпись? Она подтверждает:

  • авторство;
  • полноту и точность информации;
  • целостность и юридическую достоверность электронного документа.

Электронная подпись объединяет три составляющие:

  1. программное обеспечение;
  2. сертификат;
  3. хранилище сертификата.

Хранилище электронной подписи именуют токеном. Специальные носители Rutoken и JaСarta российского производства похожи на флэшку, с ними очень удобно работать. Также сертификат может быть записан на универсальную электронную карту.

Эцп видеопотока

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

Идея у меня возникла после фразы Чурова про «кино, снятое на квартирах». Несколько лет назад была представлена идея видеонаблюдения за выборами. Дескать, если понаставить видеокамер на избирательных участках, то выборы сразу станут честными и прозрачными… В реальности же получилось строго по-черномырдински — «хотели, как лучше, а получилось, как всегда». Люди смотрели, как сотрудники УИКов бросали в урны для голосования пачки бюллетеней, возмущались, а потом оказалось, что «онлайн к делу не пришьёшь», запросы в хранилище, где якобы должны были храниться официальные видеозаписи того, что происходило на избирательных участках, оказывались напрасными, поскольку «внезапно» оказалось, что эти записи получить невозможно из-за технических сбоев, а «неофициальные» копии отказались признавать.

На грядущих выборах 18 марта ситуация дополнительно усложняется тем, что срок хранения видеозаписей официально сокращён с года до 3 месяцев. Моё мнение заключается в том, что это сделано специально, чтобы сделать выборы неоспоримыми — результаты выборов невозможно будет оспорить даже при наличии вопиющих нарушений, допущенных на выборах. Пока будет рассматриваться заявление в избиркоме, в прокуратуре, в суде первой инстанции и т.д., три месяца пролетят быстро и незаметно, а через 3 месяца после выборов, первичные документы (избирательные бюллетени, собранные с участков в ТИКах) уничтожаются безвозвратно, после чего ничего уже ни доказать, ни опровергнуть нельзя. Я знаю, о чём говорю — я сам участвовал в выборах в качестве наблюдателя на участке и в качестве доверенного лица кандидата в депутаты.

Читайте также:  USB-ключи. Токены. Электронные идентификаторы. Купить в

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

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

Хэш-функция вычисляется от документа любого размера, но определённого, а у нас видеопоток в общем случае неопределённой длины. Соответственно, можно подписать каждый отдельный кадр, но тогда у нас от модификации будет защищён каждый конкретный кадр, но последовательность кадров не защищена — можно будет видеозапись отредактировать — что-то вырезать или переставить последовательность кадров или заменить одни кадры другими… Можно нарезать видеопоток на фрагменты определённого размера, скажем, по 15 минут — тогда в этом фрагменте не только все кадры будут защищены от модификации, но и последовательность кадров, но что если интересующее событие попало на границу двух фрагментов? Можно подписать сразу все 24 часа трансляции — но получившийся видеофайл будет огромным, с ним неудобно будет работать.

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

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

Я не захотел патентовать эту идею, поэтому я её описал в виде статьи, выкладываю в общий доступ и, как автор идеи, передаю её в public domain для неограниченного использования.

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

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

Adblock
detector