Принцип функционирования pki

Инфраструктура открытых ключей PKI (Public Key Infrastructure) предназначена для надежного функционирования корпоративных информационных систем и позволяет как внутренним, так и внешним пользователям безопасно обмениваться информацией с помощью цепочки доверительных отношений. Инфраструктура открытых ключей PKI основывается на цифровых сертификатах, которые действуют подобно электронным паспортам, связывающим индивидуальный секретный ключ пользователя с его открытым ключом.

Защита от атаки «человек-в-середине»

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

Предположим, есть два пользователя i и j, каждый из которых имеет по паре ключей, при этом у пользователя j есть открытый ключ Kpi для провер­ки ЭЦП пользователя i. Далее предположим, что злоумышленник может перехватить этот ключ Kpi в процессе его передачи от пользователя i пользо­вателю j или получить доступ к этому ключу, хранящемуся у пользователя j. В любом случае злоумышленник считает из ключа его реквизиты (например, фамилию владельца, место работы и т.д.) и создаст свою пару ключей, Ksi' и Крi', в которые запишет известные ему реквизиты пользователя i. Затем он подменит посланный пользователю j открытый ключ Крi своим фальшивым открытым ключом Крi', имеющим реквизиты пользователя i.

Любое сообщение злоумышленник будет подписывать своим секретным ключом Ksi' (причем для пользователя j эта подпись выглядит так, как если бы она была поставлена пользователем i). Подпись такого сообщения, проверяемая пользователем j будет верна, поскольку ему был послан фальшивый ключ Крi', парный столь же фальшивому ключу Ksi'.

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

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

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

Основное назначение сертификата открытого ключа – сделать доступным и достоверным открытый ключ пользователя.

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

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

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

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

Таким источником согласно стандарту Х.509 является центр сертификации (Certification Authority). Центр сертификации называют также – удостоверяющим центром последний термин используется, в частности, в отечественном «Законе об ЭЦП».

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

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

Открытый ключ совместно с сертифицирующей его ЭЦП часто называют сертификатом открытого ключа или просто сертификатом.

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

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

В соответствии с форматом Х.509 в этот набор данных включаются:

· период действия открытого ключа, состоящий из двух дат: начала и конца периода;

· номер и серия ключа;

· уникальное имя пользователя;

· информация об открытом ключе пользователя: идентификатор алгоритма, для которого предназначен данный ключ, и собственно открытый ключ;

· ЭЦП и информация, используемая при проведении процедуры проверки ЭЦП (например, идентификатор алгоритма генерации ЭЦП);

· уникальное имя сертификационного центра.

Таким образом, цифровой сертификат содержит три главные составляющие:

· информацию о пользователе-владельце сертификата;

· открытый ключ пользователя;

· сертифицирующую ЭЦП двух предыдущих составляющих, вычисленную на секретном ключе сертификационного центра.

Сертификат открытого ключа обладает следующими свойствами:

· каждый пользователь, имеющий доступ к открытому ключу центра сертификации, может извлечь открытый ключ, включенный в сертификат;

· ни одна сторона, помимо центра сертификации, не может изменить сертификат так, чтобы это не было обнаружено (сертификаты нельзя подделать).

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

Создание сертификата открытого ключа начинается с создания пары ключей (открытый/секретный).

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

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

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

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

Наши рекомендации