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

Сертификаты, как правило, используются для обмена зашифрованными данными в больших сетях. Криптосистема с открытым ключом решает проблему обмена секретными ключами между участниками безопасного обмена, однако не решает проблему доверия к открытым ключам. Предположим, что Алиса, желая получать зашифрованные сообщения, генерирует пару ключей, один из которых (открытый) она публикует каким-либо образом.
Любой, кто желает отправить ей конфиденциальное сообщение, имеет возможность зашифровать его этим ключом, и быть уверенным, что только она (так как только она обладает соответствующим секретным ключом) сможет это сообщение прочесть. Однако описанная схема ничем не может помешать злоумышленнику Давиду создать пару ключей, и опубликовать свой открытый ключ, выдав его за ключ Алисы.
Идея сертификата — это наличие третьей стороны, которой доверяют две другие стороны информационного обмена. Предполагается, что таких третьих сторон немного, и их открытые ключи всем известны каким-либо способом, например, хранятся в операционной системе или публикуются в журналах. Таким образом, подлог открытого ключа третьей стороны легко выявляется.
Сертификат открытого ключа выдаётся центром сертификации и состоит из таких полей как:
- сам открытый ключ владельца сертификата,
- срок действия,
- имя эмитента (центра сертификации),
- имя владельца сертификата
- и, самой важной части, цифровой подписи.
Цифровая подпись гарантирует невозможность подделки сертификата. Она является результатом криптографической хеш-функции от данных сертификата, зашифрованным закрытым ключом центра сертификации. Открытый ключ центра сертификации является общеизвестным, поэтому любой может расшифровать им цифровую подпись сертификата, затем вычислить хеш самостоятельно и сравнить, совпадают ли хеши.
Если Алиса сформирует сертификат со своим публичным ключом, и этот сертификат будет подписан третьей стороной (например, Трентом), любой, доверяющий Тренту, сможет удостовериться в подлинности открытого ключа Алисы. В централизованной инфраструктуре в роли Трента выступает удостоверяющий центр. В сетях доверия Трент может быть любым пользователем, и следует ли доверять этому пользователю, удостоверившему ключ Алисы, решает сам отправитель сообщения.
В SSL используется целая цепочка доверия: сертификат подписывается закрытым ключом владельца сертификата, находящегося выше в цепи.[1]
Формальное описание
Пусть имеются две стороны информационного обмена — A{displaystyle A}, B{displaystyle B}, желающие обмениваться сообщениями конфиденциально, и третья сторона T{displaystyle T} (играющая роль удостоверяющего центра), которой доверяют A{displaystyle A} и B{displaystyle B}.
- Стороне A{displaystyle A} принадлежит пара ключей (KAo{displaystyle KA_{o}}, KAs{displaystyle KA_{s}}), где KAo{displaystyle KA_{o}} — открытый ключ, а KAs{displaystyle KA_{s}} — закрытый (секретный) ключ стороны A{displaystyle A}.
- Стороне 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} содержит:
- ключ KAo{displaystyle KA_{o}},
- идентификационные данные субъекта A{displaystyle A},
- идентификационные данные удостоверяющей стороны T{displaystyle T},
- подпись стороны T{displaystyle T}, которую обозначим ST{displaystyle ST}. Подпись ST{displaystyle ST} — это хеш (набор символов, хеш-сумма/хеш-код), полученный в результате применения хеш-функции к данным сертификата C{displaystyle C}, зашифрованный стороной T{displaystyle T} с использованием своего закрытого ключа KTs{displaystyle KT_{s}}.
- и другую информацию.
A{displaystyle A} посылает стороне B{displaystyle B} свой сертификат C{displaystyle C}. B{displaystyle B} проверяет цифровую подпись ST{displaystyle ST}. Для этого B{displaystyle B}
- самостоятельно вычисляет хеш от данных сертификата C{displaystyle C},
- расшифровывает ЭЦП сертификата ST{displaystyle ST} с помощью всем известного KTo{displaystyle KT_{o}}, получив другой хеш,
- проверяет равенство этих двух хешей.
Если полученные хеши равны – ЭЦП корректна, а это подтверждает, что 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}.
Пусть имеются две стороны информационного обмена — , — и третья сторона , которой доверяют и . Стороне принадлежит пара (, ), где — открытый ключ, — закрытый (секретный) ключ. Стороне принадлежит пара (, ).
регистрируется у , указывая данные о себе и свой . выдает стороне сертификат , устанавливающий соответствие между и . содержит , сведения о , название стороны , подпись (результат применения хеш-функции к данным сертификата с использованием ) и другую информацию.
посылает стороне свой сертификат , подписанный с помощью . извлекает из ключ и проверяет с его помощью подпись. Корректность ЭЦП подтверждает, что действительно принадлежит .
Затем с помощью широко известного проверяется подпись стороны . Если подпись корректна — значит действительно прошел регистрацию у .
Структура сертификата
| Украина | Россия | |
|---|---|---|
| уникальный регистрационный номер сертификата | ||
| дата и время начала и окончания срока действия сертификата | ||
| фамилия, имя и отчество владельца сертификата ключа подписи или псевдоним владельца | ||
| открытый ключ | ||
| наименование и реквизиты ЦС | ||
| наименование криптографического алгоритма | ||
| информацию об ограничении использования подписи | ||
| указание на страну выпуска сертификата | – |
Кроме этого в сертификат могут вноситься дополнительные поля.
Бумажный сертификат должен выдаваться на основании подтверждающих документов и в присутствии лица с последующим заверением подписями работника УЦ и носителя закрытого ключа.
| Украина | Россия | |
|---|---|---|
| уникальный регистрационный номер сертификата | ||
| даты и время начала и окончания срока действия сертификата | ||
| фамилия, имя и отчество владельца сертификата ключа подписи или псевдоним владельца | ||
| открытый ключ | ||
| наименование и реквизиты ЦС | ||
| наименование криптографического алгоритма | ||
| информацию об ограничении использования подписи | ||
| указание на страну выпуска сертификата | – |
Кроме этого в сертификат могут вноситься дополнительные поля.
Бумажный сертификат должен выдаваться на основании подтверждающих документов и в присутствии лица с последующим заверением подписями работника УЦ и носителя закрытого ключа.
Российские стандарты
В России действуют свои криптографические стандарты. Использование их совместно с сертификатами описано в RFC4491: Using GOST with PKIX.
В России действуют свои криптографические стандарты. Использование их совместно с сертификатами описано в RFC4491: Using GOST with PKIX.












