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

Цифровая подпись на основе алгоритмов с открытым ключом

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

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

  1. подпись воспроизводится только одним лицом, а подлинность ее может быть удостоверена многими;
  2. подпись неразрывно связывается с данным сообщением и не может быть перенесена на другой документ;
  3. после того, как документ подписан, его невозможно изменить;
  4. от поставленной подписи невозможно отказаться, то есть лицо, подписавшее документ, не сможет потом утверждать, что не ставило подпись.

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

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

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

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

Пусть, например, пользователь А хочет отправить пользователю Б подписанное сообщение. Процедура создания и проверки подписи состоит из следующих шагов:

  1. Пользователь А посылает пользователю Б свой открытый ключ U по любому каналу связи, например, по электронной почте.
  2. Пользователь А шифрует сообщение М своим закрытым ключом R и получает зашифрованное сообщение С.
  3. Зашифрованное сообщение пересылается пользователю Б.
  4. Пользователь Б расшифровывает полученное сообщение С, используя открытый ключ пользователя А. Если сообщение расшифровалось, значит, оно подписано пользователем А.
Читайте также:  Проверка ЭЦП на портале госуслуг

Этот протокол можно изобразить в виде схемы, как на
рис.
9.2.

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

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

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

На
рис.
9.2представлена схема формирования так называемой цифровой подписи с восстановлением документа. Цифровые подписи с восстановлением документа как бы содержат в себе подписываемый документ: в процессе проверки подписи автоматически вычисляется и тело документа.

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

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

К тому же практически все применяемые алгоритмы вычисления ЭЦП используют для расчета сообщения заранее заданной стандартной длины. Например, в российском алгоритме формирования цифровой подписи ГОСТ Р34.10-94 этот размер определен равным 32 байтам.

Читайте также:  Заказать КЭП — стоимость усиленной квалифицированной электронной подписи в Москве

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

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

Если пользователь А хочет отправить пользователю Б сообщение М, дополненное присоединенной цифровой подписью, то процедура создания и проверки подписи должна состоять из следующих шагов:

  1. Пользователь А посылает пользователю Б свой открытый ключ U по любому каналу связи, например, по электронной почте.
  2. Пользователь А с помощью некоторой надежной хеш-функции Н вычисляет хеш-код своего сообщения h = H(M).
  3. Затем пользователь А шифрует хеш-код сообщения h своим закрытым ключом R и получает цифровую подпись С.
  4. Исходное сообщение М вместе с цифровой подписью С пересылаются пользователю Б.
  5. Пользователь Б вычисляет хеш-код h полученного сообщения М, а затем проверяет цифровую подпись С, используя открытый ключ пользователя А.

Этот протокол можно изобразить в виде схемы, как на
рис.
9.3.

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

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

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

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

Читайте также:  Приказ о эцп для сбербанка

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

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

Как я пытался поменять полис омс через госуслуги

На портале госуслуг с помощью ЭП можно сделать многое. Эти сервисы планируют расширять. Недавно появились прототипы пяти суперсервисов:

  1. Рождение ребенка.
  2. Поступление в вуз онлайн.
  3. Переезд в другой регион.
  4. Оформление европротокола онлайн.
  5. Цифровое исполнительное производство.

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

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

Я надеялся, что мне никуда не придется ходить, чтобы подать заявление о выборе страховой, и визит в страховую компанию будет только один — для получения полиса.

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

Когда я заполнил форму, нужно было подписать заявление электронной подписью. Для этого необходимо вставить токен в USB-порт. Система сама обратится к токену — нужно только следовать подсказкам и в конце нажать на кнопку «Отправить».

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

Реальность. Сообщение о приеме заявления я не увидел. 30 дней прошло — заявление так и не было отправлено в страховую компанию.

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

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

Мое заявление так и находится в очереди на отправку. Судя по всему, страховая компания не знает, что я хочу поменять полис
Мое заявление так и находится в очереди на отправку. Судя по всему, страховая компания не знает, что я хочу поменять полис

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

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

Adblock
detector