Лекция №16

Электронная цифровая подпись.

Оглавление

Введение.

Основные процедуры цифровой подписи

Процедура формирования цифровой подписи

Процедура проверки цифровой подписи

Алгоритм цифровой подписи DSA

Отечественный стандарт цифровой подписи ГОСТ Р 34.10–2012

Виды электронной подписи (ЭЦП)

Введение.

Стандарты и закон, на которые ссылается эта лекция.

ГОСТ Р 34.10-2012 (полное название: «ГОСТ Р 34.10-2012. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи»)

ГОСТ Р 34.11-2012 «Информационная технология. Криптографическая защита информации. Функция хэширования»

Федеральный закон от 06.04.2011 N 63-ФЗ (ред. от 23.06.2016) «Об электронной подписи» (с изм. и доп., вступ. в силу с 31.12.2017)


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

Целью аутентификации электронных документов является их защита от возможных видов злоумышленных действий, к которым относятся:

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

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

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

Основные процедуры цифровой подписи

Функционально цифровая подпись аналогична обычной рукописной подписи и обладает ее основными достоинствами:

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

Электронная цифровая подпись представляет собой относительно небольшое количество дополнительной цифровой информации, передаваемой вместе с подписываемым текстом.

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

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

Система ЭЦП включает две основные процедуры:

  •  процедуру формирования цифровой подписи;
  •  процедуру проверки цифровой подписи.

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

Процедура формирования цифровой подписи

На подготовительном этапе этой процедуры абонент А — отправитель сообщения — генерирует пару ключей: секретный ключ kA и открытый ключ КА. Открытый ключ КА вычисляется из парного ему секретного ключа kA. Открытый ключ КА рассылается остальным абонентам сети (или делается доступным, например, на разделяемом ресурсе) для использования при проверке подписи. Для формирования цифровой подписи отправитель А прежде всего вычисляет значение хэш- функции h(M) подписываемого текста M (рис. 1).

Рис. 1. Схема формирования электронной цифровой подписи.

Хэш-функция служит для сжатия исходного подписываемого текста М в дайджест — относительно короткое число, состоящее из фиксированного небольшого числа битов и характеризующее весь текст M в целом (Рис. 2).

Рис. 2. Схема формирования хэша H = h(M) (дайджеста сообщения М).

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

Процедура проверки цифровой подписи

Абоненты сети могут проверить цифровую подпись полученного сообщения М с помощью открытого ключа отправителя КА этого сообщения (рис. 6.22).

При проверке ЭЦП абонент В — получатель сообщения M — расшифровывает принятый дайджест m открытым ключом КА отправителя А. Кроме того, получатель сам вычисляет c помощью хэш-функции h(M) дайджест m принятого сообщения М и сравнивает его с расшифрованным. Если эти два дайджеста m и m’ совпадают, то цифровая подпись является подлинной. В противном случае либо подпись подделана, либо изменено содержание сообщения.

Рис. 3. Схема проверки электронной цифровой подписи

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

http://moskva.catalog2b.ru/uimages/product/013/067/050-580eeffe34f7f391525333_500.jpg Электронная цифровая подпись представляет собой уникальное число, зависящее от подписываемого документа и секретного ключа абонента. В качестве подписываемого документа может быть использован любой файл. Подписанный файл создается из неподписанного путем добавления в него одной или более электронных подписей.

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

Рис. 4. USB-токен Рутокен ЭЦП 2.0.

  • дату подписи;
  • срок окончания действия ключа данной подписи;
  • информацию о лице, подписавшем файл (Ф.И.О., должность, краткое наименование фирмы);
  • идентификатор подписавшего (имя открытого ключа);
  • собственно цифровую подпись.

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

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

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

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

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

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

https://alfaexp.ru/assets/files/2015/03/33.png

Рис. 5. Защита открытых ключей с помощью удостоверяющего центра.

Сегодня существует большое количество алгоритмов ЭЦП.

Алгоритм цифровой подписи DSA

http://media2.govtech.com/images/940*652/nist-logo_rl.gif

DSA (англ. Digital Signature Algorithm — алгоритм цифровой подписи) — криптографический алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования (в отличие от RSA и схемы Эль-Гамаля). Подпись создается секретно, но может быть публично проверена. Это означает, что только один субъект может создать подпись сообщения, но любой может проверить её корректность. Алгоритм основан на вычислительной сложности взятия логарифмов в конечных полях.

Алгоритм был предложен Национальным институтом стандартов и технологий (США) в августе 1991 и является запатентованным (автор патента — David W. Kravitz), НИСТ сделал этот патент доступным для использования без лицензионных отчислений. DSA является частью DSS (англ. Digital Signature Standard — стандарт цифровой подписи), впервые опубликованного 15 декабря 1998 (документ FIPS-186 (англ. Federal Information Processing Standards — федеральные стандарты обработки информации)). Стандарт несколько раз обновлялся, последняя версия FIPS-186-4 (июль 2013).

Описание алгоритма.

DSA включает в себя два алгоритма (S, V): для создания подписи сообщения (S) и для ее проверки (V).

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

Стоит подчеркнуть, что фактически подписывается не сообщение (произвольной длины), а его хэш (160 — 256 бит), поэтому неизбежны коллизии и одна подпись, вообще говоря, действительна для нескольких сообщений с одинаковым хэшем. Поэтому выбор достаточно «хорошей» хэш-функции очень важен для всей системы в целом. В первой версии стандарта использовалась хэш-функция SHA-1 (англ. Secure Hash Algorithm — безопасный алгоритм хэширования), в последней версии также можно использовать любой алгоритм семейства SHA-2. В августе 2015 был опубликован FIPS-202, описывающий новую хэш-функцию SHA-3. Но на сегодняшний день она не включена в стандарт DSS.

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

https://upload.wikimedia.org/wikipedia/commons/a/a9/Dsa_workflow_rus.png

Рис. 6. Иллюстрация работы DSA.

Генерация ключей DSA.

Отправитель и получатель электронного документа используют при вычислениях большие целые числа:

g и p – простые числа длиной L битов каждое (512 <=L <=1024);

q –простое число длиной 160 бит (делитель числа (p – 1)). Числа g, p, q являются открытыми и могут быть общими для всех пользователей сети.

Отправитель выбирает случайное целое число x, 1 < x < q. Число x является секретным ключом отправителя для формирования электронной цифровой подписи.

Затем отправитель вычисляет значение

y = gx mod p.

Число y является открытым ключом для проверки подписи отправителя. Число y передается всем получателям документов.

Генерация подписи DSA. Этот алгоритм предусматривает использование односторонней функции хэширования h(・). В первых редакциях стандарта определен алгоритм безопасного хэширования SHA-1.

Для того чтобы подписать сообщение M, участник A выполняет следующие шаги:

  1. Выбирает случайное целое k в интервале [1, q – 1].
  2. Вычисляет r = (gk mod p) mod q.
  3. Вычисляет s = [k–1{h(M) + xr}] mod q, где h есть алгоритм хэширования SHA-1.
  4. Если s = 0, тогда перейти к шагу 1.
  5. Подпись для сообщения М есть пара целых чисел (r, s).

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

Для того чтобы проверить подпись (r, s) на М участника A, участник B делает следующие шаги:

1. Получает подлинную копию открытого ключа y участника А.

2. Вычисляет w = s–1 mod q и хэш-значение h(М).

3. Вычисляет значения u1 = [h(М)w] mod q и u2 = (rw) mod q.

4. Используя открытый ключ y, вычисляет значение
v = ((gu1yu2)mod p) mod q.

5. Признает подпись (r, s) под документом M подлинной, если v = r.

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

Отечественный стандарт цифровой подписи ГОСТ Р 34.10–2012

ГОСТ Р 34.10-2012 (полное название: «ГОСТ Р 34.10-2012. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи») — российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи. Принят и введён в действие Приказом Федерального агентства по техническому регулированию и метрологии от 7 августа 2012 года № 215-ст вместо ГОСТ Р 34.10-2001. До ГОСТ Р 34.10-2001 действовал стандарт ГОСТ Р 34.10-94.

Цифровая подпись позволяет:

  1. Аутентифицировать лицо, подписавшее сообщение;
  2. Контролировать целостность сообщения;
  3. Защищать сообщение от подделок;
  4. Доказать авторство лица, подписавшего сообщение.

Данный алгоритм разработан главным управлением безопасности связи Федерального агентства правительственной связи и информации при Президенте Российской Федерации при участии Всероссийского научно-исследовательского института стандартизации. Разрабатывался взамен ГОСТ Р 34.10-94 для обеспечения большей стойкости алгоритма.

ГОСТ Р 34.10-2012 и ГОСТ Р 34.10-2001 основаны на эллиптических кривых. Стойкость этих алгоритмов основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции. Для ГОСТ Р 34.10-2012 используется хэш-функция по ГОСТ Р 34.11-2012. Для ГОСТ Р 34.10-2001 — ГОСТ Р 34.11-94.

Эллиптическая кривые описываются уравнением вида

Каноническая форма (форма Вейерштрасса):

где a и b — вещественные числа.

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

Different shapes for different elliptic curves

Рис. 7. Различные формы эллиптических кривых (b=1, a изменяется от 2 до -3).

Types of singularities

Рис. 8.

Механизм цифровой подписи определяется посредством реализации двух основных процессов

— формирование подписи;

— проверка подписи.

Схематическое представление подписанного сообщения показано на рисунке 7.

 

Рисунок 7. Схема подписанного сообщения

Поле «Текст», показанное на данном рисунке и дополняющее поле «Цифровая подпись», может, например, содержать идентификаторы субъекта, подписавшего сообщение, и/или метку времени.

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

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

Необходимо прочесть документ ГОСТ Р 34.10-2012 во время занятий по самоподготовке.

Виды электронной подписи (ЭЦП)

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

Виды электронной подписи (ЭЦП)

Простая электронная подпись, или ПЭП

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

Где используется?

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

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

Юридическая сила

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

правила, по которым подписанта определяют по его простой электронной подписи.

обязанность пользователя соблюдать конфиденциальность закрытой части ключа ПЭП (например, пароля в паре “логин-пароль” или СМС-кода, присланного на телефон).

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

Неквалифицированная электронная подпись, или НЭП

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

Человек получает в удостоверяющем центре два ключа электронной подписи: закрытый и открытый. Закрытый ключ хранится на специальном ключевом носителе с пин-кодом или в компьютере пользователя.

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

Соответствие открытого ключа владельцу закрытого ключа прописывается в сертификате электронной подписи, который также выдается удостоверяющим центром. Требования к структуре неквалифицированного сертификата не установлены в федеральном законе № 63-ФЗ “Об электронной подписи”. При использовании НЭП сертификат можно не создавать.

Где используется?

НЭП необходима, чтобы участвовать в электронных госзакупках по 44-ФЗ в качестве поставщика на шести федеральных электронных торговых площадках госзакупок. Этот же вид подписи можно использовать для внутреннего и внешнего ЭДО, если стороны предварительно договорились об этом.

Юридическая сила

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

Квалифицированная электронная подпись, или КЭП

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

Обязательно имеет квалифицированный сертификат в бумажном или электронном виде, структура которого определена приказом ФСБ России № 795 от 27.12.2011.

Программное обеспечение для работы с КЭП сертифицировано ФСБ России.

Выдавать КЭП может только удостоверяющий центр, который аккредитован Минкомсвязи России.

Где используется?

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

Юридическая сила

КЭП — это подпись, которая придает документам юридическую силу без дополнительных условий.  Если организации ведут ЭДО, подписывая документы КЭП,  их юридическая сила признается автоматически согласно федеральному закону № 63-ФЗ “Об электронной подписи”.