Электронная подпись для чайников: с чем ее есть и как не подавиться. Часть 2 / Хабр

Электронная подпись для чайников: с чем ее есть и как не подавиться. Часть 2 / Хабр Электронная цифровая подпись

Что такое удостоверяющий центр?

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

Удостоверяющий центр выполняет несколько функций:

  1. Создает персональные сертификаты. УЦ формирует ключи и сертификаты необходимые для создания электронных подписей, которые содержат контактные данные владельца и техническую информация о составе ЭП. С помощью персонального сертификата получатель заверенного документа может проверить ЭЦП, чтобы убедиться в ее принадлежности конкретному человеку.
  2. Предоставляет ЭЦП. Получить квалифицированную электронную подпись можно только в аккредитованном удостоверяющем центре. Его сотрудники создадут закрытый ключ и предоставят его только вам — владельцу ЭЦП.
  3. Обеспечивает проверку сертификатов. Удостоверяющий центр имеет собственную базу, в которой содержатся все выданные КЭП. Если вы сомневаетесь в подлинности подписи человека, который отправил вам документ, вы можете связаться с представителями УЦ и удостовериться в ее верности.

Сначала немного абстрактной юридической матчасти

Что такое сделка? В России, как и в большинстве развитых и не очень стран, есть целый стек законов и подзаконных актов, эдакое «дерево» нормативно-правовых актов (НПА), регулирующих повседневную жизнь граждан и объединений. Отбросив детализацию: у нас есть основной закон страны — Конституция Российской Федерации; через уровень от неё — масса федеральных законов, к которым в том числе относятся кодексы (в контексте нашего рассуждения — Гражданский Кодекс Российской Федерации, ГК РФ) и различные законы и постановления, затрагивающие электронную подпись (из них основной — Федеральный Закон «

» от 06.04.2021 № 63-ФЗ). 

Понятие «сделка» регулируется ГК РФ: в общем случае, это действия лиц, по установлению отношений между собой, влекущих возникновение гражданских прав и обязанностей. Сделок бывает невероятное количество видов, в целом их объединяет тот факт, что сторона сделки заверяет её со своей стороны своей собственноручной подписью (но не всегда), в знак того, что участие стороны в этой сделке соответсвует её свободному волеизъявлению.

Теперь, что касается электронной подписи. На заре становления ЭП в России её называли «электронная цифровая подпись» (ЭЦП), видимо, в качестве кальки с англоязычного digital signature. Потом слово digital переварилось и растворилось, осталась «электронная подпись».

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

Далее речь пойдёт исключительно про усиленную квалифицированную электронную подпись, УКЭП — именно данный тип подписи используется в юридически-значимом электронном документообороте в России.

А как у нас?

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

. Все УКЭП должны использовать алгоритм ГОСТ Р 34.10-2021 или ГОСТ Р 34.10-2001, чтобы считаться юридически признаваемыми. В целом, наши алгоритмы считаются вполне неплохими, построенными как раз на основе эллиптических кривых (не считая совсем устаревшего от 94 года).

в рамках

— за это плюс в карму.

В какой-то момент наши законодатели стали прибивать УКЭП гвоздями в разные сегменты гражданских отношений в России. Начали, естественно, с одной из самых обираемых групп субъектов — юридических лиц. В целом, идея здравая: перевести документооборот в электронный вид, убрать очереди из разных контролирующих контор, опять же, подорвать бизнес целлюлозных заводов и сохранить природу за счёт снижения объёма бумаги.

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

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

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

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

Не стоит даже упоминать, что этот ворох говнокода более-менее уверенно работает только в среде Windows (и не всегда последних версий), крайне ограниченно и с жуткими костылями работает в некоторых «гослинуксах» и абсолютно не работает на MacOS. Например, сайт налоговой всего менее года назад отучился работать только с Internet Explorer!

CC-BY-SA, Vadim Rybalko, Примерный список действий, которые выполняет скрипт-автоустановщик ПО для использования УКЭП. У УЦ СКБ Контур хоть есть такой сервис, некоторые УЦ просто дают инструкцию в DOC-файле.

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

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

Читайте также:  ЭОС и «Алладин Р.Д.» выпускают решение для Apple iPad с электронной подписью

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

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

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

Нет, разговор не о доверии к УКЭП, просто владельцы торговых площадок на этом зарабатывают. Технически электронная подпись для площадок та же УКЭП, но в состав сертификата дополнительно входят дополнительные идентификаторы, OID, которые дают право использовать данный ключ УКЭП на конкретной площадке.

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

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

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

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

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

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

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

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

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

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

При разработке следующего проекта с применением УКЭП, ЕГАИС, разработчики пошли чуть более в сторону светлой стороны: допустили для работы в системе только те УКЭП, которые находятся в неизвлекаемом виде на честных криптографических токенах.

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

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

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

Ну и нельзя не упомянуть весьма странный проект по запихиванию алгоритмов ГОСТ в мобильную телефонию, а именно в SIM-карты. Здравому анализу данная хотелка некоего круга лиц из числа russian silovik и подконтрольных «лицензированных» вендоров крипто-оборудования не поддаётся.

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

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

Есть ли свет в конце тоннеля?

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

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

Та же передача ключа условному бухгалтеру — невежество, надо передавать полномочия, а бухгалтеру делать свой ключ на его имя (а с УКЭП на ID-карте достаточно просто передать полномочия, ключ к этому моменту у бухгалтеру уже будет свой). Но пока, возможно, никто этим не заморачивается.

. Посмотреть в сторону

, как наиболее прогрессивного и элегантного.

Здесь отдельная боль по поводу нормального пластикового удостоверения личности взамен морально устаревшему российскому внутреннему паспорту. При неспособности взять и сделать как все (а всё придумано до нас), мы выдумываем свой особый путь с берёзовым соком и кокошниками, проектируем каких-то монстров в интересах коммерческого банка (SIC!) — это камень в огород УЭК.

История приключения Сбербанка с УЭК тянет ещё на один обзор, так как в ней много боли. Сегодня снова заговорили об ID-картах, но теперь уже Ростелеком тянет одеяло на свою сторону и предлагает очередного франкенштейна, вместо того, чтобы взять спецификацию ICAO, обмазать её любимым ГОСТом (смарт-карты и не такое переживали) и пустить в опытную эксплуатацию.

Вот тогда заживём (если доживём)!

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

Как выбрать подходящую кэп?

Существует множество тарифов сертификатов, предназначеных для различных нужд. Чтобы выбрать подходящую КЭП, следует учесть два важных параметра:

  1. Возможности подписи. Нет единой ЭЦП, которая могла бы подойти для всех сфер сразу. Чтобы работать с Госуслугами, требуется базовая КЭП. Для взаимодействия с коммерческими порталами требуется КЭП с расширениями (дополнениями) для ЭП. Кроме того, для регистрации на некоторых платформах существуют требования по получению КЭП в определенных удостоверяющих центрах. Поэтому выбирайте подпись, максимально соответствующую вашим потребностям.
  2. Стоимость сертификата. Кроме возможностей подписи стоит обратить внимание и на ее функционал. Нет смысла переплачивать за ненужные опции: если вам нужна ЭЦП для передачи отчетностей в ФНС России, нет необходимости покупать сертификат с доступом к торговым площадкам — достаточно получить стандартную КЭП. На стоимость влияет также назначение подписи. Для физических лиц, которым нужно работать только с сайтом Госуслуг, ЭЦП обойдется почти в 10 раз дешевле, чем организациям, участвующим в торгах на крупных площадках.

Как получить кэп?

  1. Подайте заявление в удостоверяющий центр. УЦ — аккредитованные Минкомсвязи организации, которые имеют право выдавать электронные подписи. Компания «Сигнал-КОМ» является одной из них. Вы можете связаться с нами, оставив заявку на сайте или позвонив по номеру 8 (495) 259-40-21.
  2. Вам отправят список необходимых документов для получения ЭЦП и образцы их заполнения. Также сотрудники УЦ пришлют счет на оплату.
    • Для физических лиц:
    • Для юридических лиц и ИП:
      • Паспорт.
      • СНИЛС.
      • Свидетельство ЕГРЮЛ/ЕГРИП.
      • ИНН .Вы вносите на счет удостоверяющего центра требующуюся сумму и предоставляете копии документов (позже потребуются оригиналы):
  3. Удостоверяющий центр проверяет полученные документы и подтверждает оплату. Обычно процедура занимает не более 3 дней. Если КЭП требуется срочно, за дополнительную плату можно сократить процесс до нескольких часов.
  4. После проверки документов вас приглашают в офис, куда вы приносите оригиналы всех вышеперечисленных документов и заверенные нотариусом копии.
  5. Вы получаете флешку-рутокен, которая содержит ключ, сертификат и программу для создания подписи.

Как у них?

В ряде цивилизованных стран ключ ЭП выдаётся гражданам вместе с пластиковым идентификатором личности. Так как ID выдаётся государственным органом власти, ключ ЭП в составе ID также выдаётся государством и равняется сроку действия самого удостоверения.

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

. ИКАО (ICAO) на самом деле не для того создана, чтобы заниматься стандартизацией удостоверений личности, так как это вообще-то Международная организация гражданской авиации, стандартизирующая всякое в авиации. Но так повелось, что миграционный контроль граждан — немалая часть обязанностей авиаперевозчиков и наземных авиаслужб, поэтому ИКАО взялись и за стандартизацию проездных документов, среди которых паспорта всех видов и идентификационные карты, выпустив серию стандартов 9303 в

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

Основные атрибуты идентификационной карты соответствующей стандарту ICAO. Образец документа крупного производителя пластиковых карт Oberthur

С другой стороны, основные операционные системы содержат в себе встроенные программные реализации всемирно признанных криптоалгоритмов, что делает возможным обмен подписанными документами и проверку ЭП среди контрагентов из разных стран.

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

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

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

Читайте также:  1С Бухгалтерия - произвольный документ в электронном виде

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

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

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

Перспективы

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

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

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

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

Отдельно стоит кратко рассказать про «облачную электронную подпись». Как и все термины, имеющие в своём составе слово «облачный», данная технология не является чем-то волшебным: это всего навсего хранение ключевой пары владельца (включая закрытый ключ) на некоем сервере в сети Интернет.

Криптографические операции аналогично производятся на удалённом компьютере, по сути, владелец ЭП не контролирует свой закрытый ключ никак. В России появились сервисы облачной подписи, один из первых стала предоставлять ФНС для личного кабинета физических лиц, а сейчас такие сервисы предоставляются некоторыми поставщиками «облачной бухгалтерии».

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

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

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

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

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

Помимо прочего, электронная подпись используется в криптовалютах, в частности — в Bitcoin. У каждого пользователя Bitcoin есть пара из секретного и откpытого ключа. Хеш-значение открытого ключа служит основным адресом для передачи монет. Это значение не секретно, и сообщать его можно кому угодно. Но по значению хеша вычислить значение открытого ключа невозможно.

Сама пара ключей будет использована лишь однажды — при передаче прав собственности. На этом жизнь пары ключей заканчивается.

  • PUB1 — публичный ключ;
  • PRIV1 — секретный ключ;
  • HASH1 или HASH(PUB1) — хеш-значение открытого ключа (биткойн-адрес);
  • HASH2 или HASH(PUB2) — хеш открытого ключа следующего владельца.

Вот как устроен сам процесс передачи прав собственности на биткойны.

  1. Владелец монеты открыто сообщает хеш своего публичного ключа HASH(PUB1), это и будет идентифицировать биткойн.
  2. До момента продажи оба ключа PUB1, PRIV1 продавца остаются в секрете. Известен только HASH(PUB1) и соответствующий ему биткойн.
  3. Как только появляется пoкупатель, владелец формирует открытое письмо, в котором указывает адрес биткойна HASH(PUB1) и хеш-значение публичного ключа нового владельца HASH(PUB2). И конечно же, подписывает письмо своим секретным ключом PRIV1, прилагая публичный ключ PUB1.
  4. После этого пара ключей владельца PUB1 и PRIV1 теряют свою актуальность. Публичным ключом можно проверить само письмо, узнать новый адрес монеты.

О втором собственнике ничего не извeстно, кроме HASH(PUB2), до тех пор пока он не передаст права третьему владельцу. И эта цепочка может быть бесконечной.

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

Благодаря HASH(PUB) получается двойная защита. Первая загадка — узнать публичный ключ по его хешу. Вторая загадка — подписаться чужим секретным ключом.

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

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