Инфраструктура открытых ключей

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Инфраструктура открытых ключей

Инфраструктура открытых ключей (ИОК, англ. PKI - Public Key Infrastructure) — набор средств (технических, материальных, людских и т. д.), распределённых служб и компонентов, в совокупности используемых для поддержки криптозадач на основе закрытого и открытого ключей.В основе PKI лежит использование криптографической системы с открытым ключом и несколько основных принципов:

  1. закрытый ключ известен только его владельцу;
  2. удостоверяющий центр создает сертификат открытого ключа, таким образом удостоверяя факт того, что закрытый (секретный) ключ известен эксклюзивно владельцу этого сертификата;
  3. никто не доверяет друг другу, но все доверяют удостоверяющему центру;
  4. удостоверяющий центр подтверждает или опровергает принадлежность открытого ключа заданному лицу, которое владеет соответствующим закрытым ключом.

История[править | править вики-текст]

Начало асимметричным шифрам было положено в работе «Новые направления в современной криптографии» Уитфилда Диффи и Мартина Хеллмана, опубликованной в 1976 году. Находясь под влиянием работы Ральфа Меркле (англ. Ralph Merkle) о распространении открытого ключа, они предложили метод получения секретных ключей, используя открытый канал. Этот метод экспоненциального обмена ключей, который стал известен как обмен ключами Диффи — Хеллмана, был первым опубликованным практичным методом для установления разделения секретного ключа между заверенными пользователями канала. В 2002 году Хеллман предложил называть данный алгоритм «Диффи — Хеллмана — Меркле», признавая вклад Меркле в изобретение криптографии с открытым ключом. Эта же схема была разработана Малькольмом Вильямсоном в 1970-х, но держалась в секрете до 1997 г. Метод Меркле по распространению открытого ключа был изобретён в 1974 и опубликован в 1978 году, его также называют загадкой Меркле.

В 1977 году учёными Рональдом Ривестом, Ади Шамиром и Леонардом Адлеманом из Массачусетского технологического института был разработан алгоритм шифрования, основанный на проблеме о разложении на множители. Система была названа по первым буквам их фамилий (RSA — Rivest, Shamir, Adleman). Эта же система была изобретена в 1973 году Клиффордом Коксом (англ. Clifford Cocks), работавшим в центре правительственной связи (GCHQ), но эта работа хранилась лишь во внутренних документах центра, поэтому о её существовании было неизвестно до 1977 года. RSA стал первым алгоритмом, пригодным и для шифрования, и для электронной подписи.

Объекты PKI[править | править вики-текст]

PKI реализуется в модели клиент-сервер, то есть проверка какой-либо информации, предоставляемой инфраструктурой, может происходить только по инициативе клиента.

Основные компоненты PKI:
  • Удостоверяющий центр (УЦ) является основной структурой, формирующей цифровые сертификаты подчиненных центров сертификации и конечных пользователей. УЦ является главным компонентом PKI:
  1. он является доверенной третьей стороной (trusted third party)
  2. это сервер, который осуществляет управление жизненным циклом сертификатов (не их непосредственным использванием).
  • Сертификат открытого ключа (чаще всего просто сертификат) — это данные пользователя и его открытый ключ, скреплённые электронной подписью удостоверяющего центра. Выпуская сертификат открытого ключа, удостоверяющий центр тем самым подтверждает, что лицо, поименованное в сертификате, владеет секретным ключом, который соответствует этому открытому ключу.
  • Регистрационный центр (РЦ) — необязательный компонент системы, предназначенный для регистрации пользователей. Для этих целей РЦ обычно предоставляет веб-интерфейс. Удостоверяющий центр доверяет регистрационному центру проверку информации о субъекте. Регистрационный центр, проверив правильность информации, подписывает её своим ключом и передаёт удостоверяющему центру, который, проверив ключ регистрационного центра, выписывает сертификат. Один регистрационный центр может работать с несколькими удостоверяющими центрами (то есть состоять в нескольких PKI), один удостоверяющий центр может работать с несколькими регистрационными центрами. Иногда, удостоверяющий центр выполняет функции регистрационного центра.
  • Репозиторий — хранилище, содержащее сертификаты и списки отозванных сертификатов (СОС) и служащее для распространения этих объектов среди пользователей. В Федеральном Законе РФ № 63 «Об электронной подписи» он называется реестр сертификатов ключей подписей.
  • Архив сертификатов — хранилище всех изданных когда-либо сертификатов (включая сертификаты с закончившимся сроком действия). Архив используется для проверки подлинности электронной подписи, которой заверялись документы.
  • Центр запросов — необязательный компонент системы, где конечные пользователи могут запросить или отозвать сертификат.
  • Конечные пользователи — пользователи, приложения или системы, являющиеся владельцами сертификата и использующие инфраструктуру управления открытыми ключами.

Основные задачи[править | править вики-текст]

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

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

Основная идея[править | править вики-текст]

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

Основные функции удостоверяющего центра:

  • проверка личности будущих пользователей сертификатов;
  • выдача пользователям сертификатов;
  • в аннулировании сертификатов;
  • в ведении и публикации списков отозванных сертификатов (Certificate Revocation List/CRL), которые использоваться клиентами инфраструктуры открытого ключа, когда решают вопрос о доверии сертификату.

Дополнительные функции удостоверяющего центра:

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

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

Причины досрочного аннулирования сертификатов:

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

Ключевая пара — это набор, состоящий из двух ключей: секретного ключа (private key) и открытого ключа (public key). Эти ключи создаются вместе, являются комплементарными по отношению друг к другу (то, что зашифровано с помощью открытого ключа можно расшифровать, только имея секретный ключ, а электронную подпись, сделанную с помощью секретного ключа, можно проверить, используя открытый ключ).

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

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

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

Одним из ключевых понятий ИОК является электронная подпись. В рамках этой статьи понятия подпись, электронная подпись (ЭП), цифровая подпись и электронная цифровая подпись (ЭЦП) взаимозаменяемы. В Федеральном Законе РФ №1 "Об электронно-цифровой подписи" от 2001 года, существовало только понятие электронно-цифровой подписи. Федеральный Закон РФ №63 "Об электронной подписи" от 2011 года расширил понятие подписи. В соответствии со статьей 5 "Виды электронных подписей", различают простую электронную подпись и усиленную электронную подпись. В текущей статье и практически во всех литературных источниках об Инфраструктуре Открытых Ключей, как англоязычных, так и руссскоязычных, под понятием подписи понимается усиленная электронная подпись.

Электронная подпись - это результат использования алгоритма электронной подписи на хэш данных (документа/сообщения/файла).

Подлинность электронной подписи проверяется следующим образом:

  1. Получатель получает данные (зашифрованные или в открытом виде) и электронная подпись.
  2. [Опциональный шаг, так как документ/сообщение/файл мог быть отправлен в открытом виде]. Данные расшифровываются с помощью либо заранее оговоренного симметричного ключа, либо с помощью закрытого ключа получателя (во втором случае данные были зашифрованы с помощью открытого ключа получателя, извлеченного из его сертификата).
  3. Получатель вычисляет хэш расшифрованного документа/сообщения/файла (алгоритм хэш указан в сертификате).
  4. Получатель применяет к электронной подписи алгоритм снятия подписи (алгоритм подписи указан в сертификате), в результате чего получает хэш исходного документа/сообщения/файла.
  5. Получатель сравнивает хэши. Если они одинаковы - электронная подпись считается действительной*. *При условии, что сертификат действителен и был применен в соответствии с его политиками.

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


Краткое описание процесса работы с личными сертификатами[править | править вики-текст]

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

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

После получения сертификата его нужно установить в свою систему. При использовании ОС семейства Windows, после установки сертификата его можно будет увидеть через оснастку "хранилище личных сертификатов" (Пуск -> Выполнить -> certmgr.msc -> OK). В свойствах можно увидеть время действия сертификата, кем он был выдан, кому был выдан, его уникальный номер и другик атрибуты. Для того, чтобы клиент мог работать с удостоверяющим центром, необходимо включить центр в список доверенных. После включения в этот список, любой сертификат, выданный доверенным центром, считается достоверным, а его владелец — достойным доверия. Пользователи обмениваются сертификатами (таким образом происходит обмен открытыми ключами) и начинают взаимодействие.

Архитектуры PKI[править | править вики-текст]

В основном выделяют 5 видов архитектур PKI, это:

  1. простая PKI (одиночный УЦ)
  2. иерархическая PKI
  3. сетевая PKI
  4. кросс-сертифицированные корпоративные PKI
  5. архитектура мостового УЦ

В основном PKI делятся на разные архитектуры по следующим признакам:

  • количество УЦ (а также количество УЦ, которые доверяют друг-другу)
  • сложность проверки пути сертификации
  • последствия выдачи злоумышленника себя за УЦ

Рассмотрим более подробно каждую из архитектур PKI в отдельности.

1. Простая PKI[править | править вики-текст]

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

2. Иерархическая PKI[править | править вики-текст]

Иерархическая структура — это наиболее часто встречающаяся архитектура PKI. В данном случае во главе всей структуры стоит один Головной УЦ, которому все доверяют и ему подчиняются нижестоящие УЦ. Кроме этого головного УЦ в структуре присутствуют ещё не один УЦ, который подчиняется вышестоящему, которому в свою очередь приписаны какие-либо пользователи или нижестоящие УЦ. Частный пример иерархической PKI — корпоративная PKI. В иерархической PKI, даже если злоумышленник выдал себя за какой — либо УЦ, сеть продолжает работать без него, а когда он восстанавливает нормальную работоспособность — он просто снова включается в структуру.

3. Сетевая PKI[править | править вики-текст]

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

Сетевые PKI обладают большой гибкостью, так как имеют многочисленные пункты доверия. Компрометация одного УЦ не отражается на сетевой PKI в целом: удостоверяющие центры, которые выпустили сертификаты для скомпрометированного УЦ, просто аннулируют их, тем самым удаляя из инфраструктуры ненадежный УЦ. В результате не нарушается работа пользователей, связанных с другими удостоверяющими центрами, — они по-прежнему могут полагаться на надежные пункты доверия и защищенно связываться с остальными пользователями своей PKI. Компрометация сетевой PKI приводит либо к тому, что сворачивается работа одного УЦ вместе с его сообществом пользователей, либо, если стали ненадежными несколько удостоверяющих центров, к тому, что PKI распадается на несколько меньших инфраструктур. Восстановление после компрометации сетевой PKI происходит проще, чем иерархической, прежде всего, потому что компрометация затрагивает меньше пользователей.

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

4. Архитектура кросс-сертифицированной корпоративной PKI[править | править вики-текст]

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

5. Архитектура мостового УЦ[править | править вики-текст]

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

Внедрение PKI[править | править вики-текст]

Внедрение инфраструктуры управления открытыми ключами с учетом снижения затрат и сроков внедрения осуществляется в течение семи этапов.

  • Этап 1. Анализ требований к системе.
  • Этап 2. Определение архитектуры.
  • Этап 3. Определение регламента.
  • Этап 4. Обзор системы безопасности. Анализ и минимизация рисков.
  • Этап 5. Интеграция.
  • Этап 6. Развертывание.
  • Этап 7. Эксплуатация.

Примеры использования PKI[править | править вики-текст]

Электронная подпись (ЭП)[править | править вики-текст]

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

Шифрование сообщений[править | править вики-текст]

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

Авторизация[править | править вики-текст]

Сертификаты могут использоваться для подтверждения личности пользователя и задания полномочий, которыми он наделён. В числе полномочий субъекта сертификата может быть, например, право просматривать информацию или разрешение вносить изменения в материал, представленный на web-сервере.

Терминология PKI[править | править вики-текст]

Из всего выше сказанного можно выделить некоторые пункты, а также добавить новые, для того чтобы определить основные термины, используемые в PKI. Итак, в PKI используются термины:

сертификат

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

закрытый ключ

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

открытый ключ

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

электронный отпечаток (fingerprint)

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

подписанные данные

данные, подписанные при помощи закрытого ключа пользователя

зашифрованные данные

данные, зашифрованные при помощи открытого ключа пользователя

Термины, которые необходимы для общего понимания:

путь доверия

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

личные сертификаты

сертификаты которые хранятся у пользователя в личном хранилище сертификатов.

корневые центры сертификации

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

доверенные центры сертификации

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

Библиография[править | править вики-текст]

  • Полянская О. Ю., Горбатов В. С. Инфраструктуры открытых ключей. Учебное пособие., Москва, 2007. ISBN 978-5-94774-602-0

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