Ключ ЭЦП (электронной подписи)

Ключ ЭЦП (электронной подписи) Электронная цифровая подпись

Принцип работы

Наглядное объяснение принципа работы сертификатов открытого ключа на примере установки ПО от стороннего разработчика пользователем в Интернете

Наглядное объяснение принципа работы сертификатов открытого ключа на примере установки ПО от стороннего разработчика пользователем в Интернете

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

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

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

Сертификат открытого ключа выдаётся центром сертификации и состоит из таких полей как:

  • сам открытый ключ владельца сертификата,
  • срок действия,
  • имя эмитента (центра сертификации),
  • имя владельца сертификата
  • и, самой важной части, цифровой подписи.

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

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

Ключ ЭЦП (электронной подписи)

В SSL используется целая цепочка доверия: сертификат подписывается закрытым ключом владельца сертификата, находящегося выше в цепи.[1]

Читайте также:  как зарегистрировать лицензию криптопро

Управление закрытыми ключами: программные хранилища

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

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

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

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

Формальное описание

Пусть имеются две стороны информационного обмена — A{displaystyle A}, B{displaystyle B}, желающие обмениваться сообщениями конфиденциально, и третья сторона T{displaystyle T} (играющая роль удостоверяющего центра), которой доверяют A{displaystyle A} и B{displaystyle B}.

  1. Стороне A{displaystyle A} принадлежит пара ключей (KAo{displaystyle KA_{o}}, KAs{displaystyle KA_{s}}), где KAo{displaystyle KA_{o}} — открытый ключ, а KAs{displaystyle KA_{s}} — закрытый (секретный) ключ стороны A{displaystyle A}.
  2. Стороне T{displaystyle T} принадлежит пара ключей (KTo{displaystyle KT_{o}}, KTs{displaystyle KT_{s}}).

A{displaystyle A} регистрируется у T{displaystyle T} (посылает запрос на подпись), указывая данные о себе и свой KAo{displaystyle KA_{o}}. Сторона T{displaystyle T} посредством определенных механизмов “удостоверяет личность” стороны A{displaystyle A} и выдает стороне A{displaystyle A} сертификат C{displaystyle C}, устанавливающий соответствие между субъектом A{displaystyle A} и ключом KAo{displaystyle KA_{o}}. Сертификат C{displaystyle C} содержит:

  1. ключ KAo{displaystyle KA_{o}},
  2. идентификационные данные субъекта A{displaystyle A},
  3. идентификационные данные удостоверяющей стороны T{displaystyle T},
  4. подпись стороны T{displaystyle T}, которую обозначим ST{displaystyle ST}. Подпись ST{displaystyle ST} — это хеш (набор символов, хеш-сумма/хеш-код), полученный в результате применения хеш-функции к данным сертификата C{displaystyle C}, зашифрованный стороной T{displaystyle T} с использованием своего закрытого ключа KTs{displaystyle KT_{s}}.
  5. и другую информацию.
Читайте также:  Введите свой код puk и элементарный ниндзя-код на Jacarta

A{displaystyle A} посылает стороне B{displaystyle B} свой сертификат C{displaystyle C}. B{displaystyle B} проверяет цифровую подпись ST{displaystyle ST}. Для этого B{displaystyle B}

  1. самостоятельно вычисляет хеш от данных сертификата C{displaystyle C},
  2. расшифровывает ЭЦП сертификата ST{displaystyle ST} с помощью всем известного KTo{displaystyle KT_{o}}, получив другой хеш,
  3. проверяет равенство этих двух хешей.

Если полученные хеши равны – ЭЦП корректна, а это подтверждает, что KAo{displaystyle KA_{o}} действительно принадлежит A{displaystyle A}.

Теперь B{displaystyle B}, зная открытый ключ A{displaystyle A} и зная, что он принадлежит именно A{displaystyle A}, может шифровать этим открытым ключом все последующие сообщения для A{displaystyle A}. И только A{displaystyle A} сможет их расшифровать, так как KAs{displaystyle KA_{s}} известен только A{displaystyle A}.

Структура сертификата

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

Кроме этого в сертификат могут вноситься дополнительные поля.

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

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