Сертификат открытого ключа

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Сертификат открытого ключа (сертификат ЭП, сертификат ключа подписи, сертификат ключа проверки электронной подписи (согласно ст. 2 Федерального Закона от 06.04.2011 «Об электронной подписи» № 63-ФЗ)) — электронный или бумажный документ, содержащий открытый ключ, информацию о владельце ключа, области применения ключа, подписанный выдавшим его Удостоверяющим центром и подтверждающий принадлежность открытого ключа владельцу.

Открытый ключ может быть использован для организации защищённого канала связи с владельцем двумя способами:

Существует две модели организации инфраструктуры сертификатов: централизованная (PKI) и децентрализованная (реализуемая на основе т. н. сетей доверия), получившая наибольшее распространение в сетях PGP.

Принцип работы[править | править вики-текст]

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

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

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

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

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

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

Формальное описание[править | править вики-текст]

Пусть имеются две стороны информационного обмена — A_1,A_2 — и третья сторона A_3, которой доверяют A_1 и A_2. Стороне A_1 принадлежит пара (K1_o, K1_s), где K1_o — открытый ключ, K1_s — закрытый (секретный) ключ. Стороне A_3 принадлежит пара (K3_o, K3_s).

A_1 регистрируется у A_3, указывая данные о себе и свой K1_o. A_3 выдает стороне A_1 сертификат S, устанавливающий соответствие между A_1 и K1_o. S содержит K1_o, сведения о A_1, название стороны A_3, подпись A_3 (результат применения хеш-функции к данным сертификата с использованием K3_s) и другую информацию.

A_1 посылает стороне A_2 свой сертификат S, подписанный с помощью K1_s. A_2 извлекает из S ключ K1_o и проверяет с его помощью подписи S_s. Корректность ЭЦП подтверждает, что K1_o действительно принадлежит A_1.

Затем с помощью широко известного K3_o проверяется подпись стороны A_3. Если подпись корректна — значит A_1 действительно прошел регистрацию у A_3.

Структура сертификата[править | править вики-текст]

Электронная форма сертификата определяется стандартом X.509. Перечень обязательных и необязательных полей, которые могут присутствовать в сертификате, определяется данным стандартом, а также законодательством. Согласно законодательству России и Украины (закон «Об электронной цифровой подписи») сертификат должен содержать следующие поля:

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

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

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

Российские стандарты[править | править вики-текст]

В России действуют свои криптографические стандарты. Использование их совместно с сертификатами описано в RFC4491: Using GOST with PKIX.

Ссылки[править | править вики-текст]

См. также[править | править вики-текст]