Инфраструктура открытых ключей
Инфраструктура открытых ключей (ИОК, англ. PKI - Public Key Infrastructure) — набор средств (технических, материальных, людских и т. д.), распределённых служб и компонентов, в совокупности используемых для поддержки криптозадач на основе закрытого и открытого ключей. В основе PKI лежит использование криптографической системы с открытым ключом и несколько основных принципов:
- закрытый ключ (private key) известен только его владельцу;
- удостоверяющий центр (УЦ или CA - Certificate Authority) создает электронный документ — сертификат открытого ключа, таким образом удостоверяя факт того, что закрытый (секретный) ключ известен эксклюзивно владельцу этого сертификата, открытый ключ (public key) свободно передается;
- никто не доверяет друг другу, но все доверяют удостоверяющему центру;
- удостоверяющий центр подтверждает или опровергает принадлежность открытого ключа заданному лицу, которое владеет соответствующим закрытым ключом.
История
Начало асимметричным шифрам было положено в работе «Новые направления в современной криптографии» Уитфилда Диффи и Мартина Хеллмана, опубликованной в 1976 году. Находясь под влиянием работы Ральфа Меркле (англ. Ralph Merkle) о распространении открытого ключа, они предложили метод получения секретных ключей, используя открытый канал. Этот метод экспоненциального обмена ключей, который стал известен как обмен ключами Диффи — Хеллмана, был первым опубликованным практичным методом для установления разделения секретного ключа между заверенными пользователями канала. В 2002 году Хеллман предложил называть данный алгоритм «Диффи — Хеллмана — Меркле», признавая вклад Меркле в изобретение криптографии с открытым ключом. Эта же схема была разработана Малькольмом Вильямсоном в 1970-х, но держалась в секрете до 1997 г. Метод Меркле по распространению открытого ключа был изобретён в 1974 и опубликован в 1978 году, его также называют загадкой Меркле.
В 1977 году учёными Рональдом Ривестом, Ади Шамиром и Леонардом Адлеманом из Массачусетского технологического института был разработан алгоритм шифрования, основанный на проблеме о разложении на множители. Система была названа по первым буквам их фамилий (RSA — Rivest, Shamir, Adleman). Эта же система была изобретена в 1973 году Клиффордом Коксом (англ. Clifford Cocks), работавшим в центре правительственной связи (GCHQ), но эта работа хранилась лишь во внутренних документах центра, поэтому о её существовании было неизвестно до 1977 года. RSA стал первым алгоритмом, пригодным и для шифрования, и для электронной подписи.
Объекты PKI
- Основные компоненты PKI:
- Удостоверяющий центр он же и центр сертификации (УЦ или CA - Certificate Authority) является основной структурой, формирующей цифровые сертификаты подчиненных центров сертификации и конечных пользователей. УЦ является главным компонентом PKI:
- он является доверенной третьей стороной
- это сервер, который осуществляет управление жизненным циклом сертификатов (но не их непосредственным использованием).
- Сертификат открытого ключа (чаще всего просто сертификат) — это данные пользователя/сервера и его открытый ключ, скреплённые электронной подписью удостоверяющего центра. Выпуская сертификат открытого ключа, удостоверяющий центр тем самым подтверждает, что лицо, поименованное в сертификате, владеет закрытым ключом, который соответствует этому открытому ключу.
- Регистрационный центр (РЦ) — необязательный компонент системы, предназначенный для регистрации пользователей. Удостоверяющий центр доверяет регистрационному центру проверку информации о субъекте. Регистрационный центр, проверив правильность информации, подписывает её своим ключом и передаёт удостоверяющему центру, который, проверив ключ регистрационного центра, выписывает сертификат. Один регистрационный центр может работать с несколькими удостоверяющими центрами (то есть состоять в нескольких PKI), один удостоверяющий центр может работать с несколькими регистрационными центрами. Иногда, удостоверяющий центр выполняет функции регистрационного центра.
- Репозиторий — хранилище, содержащее сертификаты и списки отозванных сертификатов (СОС) и служащее для распространения этих объектов среди пользователей. В Федеральном Законе РФ № 63 «Об электронной подписи» он называется реестр сертификатов ключей подписей.
- Архив сертификатов — хранилище всех изданных когда-либо сертификатов (включая сертификаты с закончившимся сроком действия). Архив используется для проверки подлинности электронной подписи, которой заверялись документы.
- Центр запросов — необязательный компонент системы, где конечные пользователи могут запросить или отозвать сертификат.
- Конечные пользователи — пользователи, приложения или системы, являющиеся владельцами сертификата и использующие инфраструктуру управления открытыми ключами.
Основные задачи
Основные задачи системы информационной безопасности, которые решает инфраструктура управления открытыми ключами:
- обеспечение конфиденциальности информации;
- обеспечение целостности информации;
- обеспечение аутентификации пользователей и ресурсов, к которым обращаются пользователи;
- обеспечение возможности подтверждения совершенных пользователями действий с информацией (неотказуемость/неотрекаемость — англ. non-repudiation).
Основная идея
Упрощенно, PKI представляет собой систему, основным компонентом которой является удостоверяющий центр и пользователи, взаимодействующие между собой используя сертификаты, выданные этим удостоверяющим центром. Деятельность инфраструктуры управления открытыми ключами осуществляется на основе регламента системы. Инфраструктура открытых ключей основывается на использовании принципов криптографической системы с открытым ключом. Инфраструктура управления открытыми ключами состоит из центра сертификации, конечных пользователей и опциональных компонентов: центра регистрации и сетевого справочника.
Основные функции удостоверяющего центра:
- проверка личности будущих пользователей сертификатов;
- выдача пользователям сертификатов;
- аннулирование сертификатов;
- ведение и публикация списков отозванных сертификатов (Certificate Revocation List/CRL), которые используются клиентами инфраструктуры открытого ключа, когда они решают вопрос о доверии сертификату.
Дополнительные функции удостоверяющего центра:
- УЦ может производить генерацию пар ключей, один из которых будет включен в сертификат.
- По запросу, при разрешении конфликтов, УЦ может производить проверку подлинности электронной подписи владельца сертификата, выданного этим УЦ.
Сертификат — это электронный документ, который содержит электронный ключ пользователя (открытый ключ), информацию о пользователе, которому принадлежит сертификат, электронную подпись центра выдачи сертификатов (УЦ), информацию о сроке действия сертификата и другие атрибуты. Сертификат не может быть бессрочным, он всегда содержит дату и время начала и окончания своего действия.
Причины досрочного аннулирования сертификатов:
- компрометация закрытого ключа;
- изменение информации о владельце сертификата, содержащейся в этом сертификате;
- добровольное заявление владельца сертификата;
- изменения полномочий текущего владельца сертификата.
Ключевая пара — это набор, состоящий из двух ключей: закрытого ключа (private key) и открытого ключа (public key). Эти ключи создаются вместе, являются комплементарными по отношению друг к другу (то, что зашифровано с помощью открытого ключа можно расшифровать, только имея закрытый ключ, а электронную подпись, сделанную с помощью закрытого ключа, можно проверить, используя открытый ключ).
Ключевая пара создается либо центром выдачи сертификатов (удостоверяющим центром) по запросу пользователя, или же самим пользователем с помощью специального программного обеспечения. Пользователь делает запрос на сертификат, и после процедуры идентификации пользователя УЦ выдаёт ему сертификат, подписанный этим Удостоверяющим Центром. Электронная подпись УЦ свидетельствует о том, что данный сертификат выдан именно этим центром и никем другим.
Открытый ключ известен всем, в то время закрытый ключ хранится в тайне. Владелец закрытого ключа всегда хранит его в тайне и ни при каких обстоятельствах не должен допустить того, чтобы этот ключ стал известным злоумышленникам или другим пользователям. Если же закрытый ключ всё-таки станет известен злоумышленникам, то он считается скомпрометированным, поэтому сертификат со связанным с ним открытым ключом должен быть отозван. Только владелец закрытого ключа может подписать данные, а также расшифровать данные, которые были зашифрованы открытым ключом, связанным с закрытым ключом владельца. Действительная подпись гарантирует авторство информации и то, что информация в процессе передачи не подверглась изменениям. Подпись кода гарантирует, что данное программное обеспечение действительно произведено указанной компанией и не содержит вредоносного кода, если компания это декларирует.
Собственный закрытый ключ используется для подписи данных; собственный закрытый ключ, в свою очередь, используется для расшифрования данных, полученных от других участников PKI. Открытый ключ, извлеченный из сертификата другого участника Инфраструктуры Открытых Ключей, может использоваться для подтверждения корректности электронной подписи этого участника, а также для шифрования данных отправляемых этому участнику. Процесс шифрования с использованием асимметричной криптографии является медленным по сравнению с симметричными алгоритмами, поэтому использование его для шифрования данных не рекомендуется и по факту не производится в системах, где время является критическим фактором. При использовании сертификатов открытых ключей для защищенного взаимодействия с веб-сайтами (интернет-магазинами, банками), сертификаты используются только для установления защищенной связи; для последующего обмена информацией используются выбранные сторонами симметричные ключи.
Одним из ключевых понятий ИОК является электронная подпись. В рамках этой статьи понятия подпись, электронная подпись (ЭП), цифровая подпись и электронная цифровая подпись (ЭЦП) взаимозаменяемы. В Федеральном Законе РФ № 1 «Об электронно-цифровой подписи» от 2001 года, существовало только понятие электронно-цифровой подписи. Федеральный Закон РФ № 63 «Об электронной подписи» от 2011 года расширил понятие подписи. В соответствии со статьей 5 «Виды электронных подписей», различают простую электронную подпись и усиленную электронную подпись. В текущей статье и практически во всех литературных источниках об Инфраструктуре Открытых Ключей, как англоязычных, так и русскоязычных, под понятием подписи понимается усиленная электронная подпись.
Электронная подпись — это результат использования алгоритма электронной подписи на хеш данных (документа/сообщения/файла).
Подлинность электронной подписи проверяется следующим образом:
- Получатель получает данные (зашифрованные или в открытом виде) и электронную подпись.
- [Опциональный шаг, так как документ/сообщение/файл мог быть отправлен в открытом виде]. Данные расшифровываются с помощью либо заранее оговоренного симметричного ключа, либо с помощью закрытого ключа получателя (во втором случае данные были зашифрованы с помощью открытого ключа получателя, извлеченного из его сертификата).
- Получатель вычисляет хеш расшифрованного документа/сообщения/файла (алгоритм хеша указан в сертификате).
- Получатель применяет к электронной подписи алгоритм снятия подписи (алгоритм подписи указан в сертификате), в результате чего получает хеш исходного документа/сообщения/файла.
- Получатель сравнивает хеши. Если они одинаковы — электронная подпись считается действительной, при условии, что сертификат действителен и был применен в соответствии с его политиками.
В число приложений, поддерживающих PKI, входят: защищённая электронная почта, протоколы платежей, электронные чеки, электронный обмен информацией, защита данных в сетях с протоколом IP, электронные формы и документы с электронной цифровой подписью (ЭП).
Краткое описание процесса работы с личными сертификатами
Для того чтобы получить сертификат, нужно обратиться в Удостоверяющий Центр. Перед запросом на получение сертификата нужно удостовериться, что данный УЦ аккредитован в той сфере, где владелец сертификата будет его использовать. Для получения сертификата необходимо сгенерировать пару открытый-закрытый ключи; это производит либо пользователь, либо УЦ, в зависимости от политики Удостоверяющего Центра или договоренностей между клиентом и УЦ.
Для использования сертификатов (подписи или проверки подписи), пользователь должен установить на используемую операционную систему криптографические средства, поддерживающие работу с данными сертификатами и алгоритмами электронной подписи.
После получения сертификата его нужно установить в свою систему. При использовании ОС семейства Windows после установки сертификата его можно будет увидеть через оснастку «хранилище личных сертификатов» (Пуск -> Выполнить -> certmgr.msc -> OK). В свойствах можно увидеть время действия сертификата, кем он был выдан, кому был выдан, его уникальный номер и другие атрибуты. Для того, чтобы клиент мог работать с удостоверяющим центром, необходимо включить центр в список доверенных. После включения в этот список любой сертификат, выданный доверенным центром, считается достоверным, а его владелец — достойным доверия. Пользователи обмениваются сертификатами (таким образом происходит обмен открытыми ключами) и начинают взаимодействие.
Архитектуры PKI
В основном выделяют 5 видов архитектур PKI, это:
- простая PKI (одиночный УЦ)
- иерархическая PKI
- сетевая PKI
- кросс-сертифицированные корпоративные PKI
- архитектура мостового УЦ
В основном 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
Электронная подпись (ЭП)
Сторона А для документа вычисляет хеш-функцию, затем полученное значение шифруется с помощью закрытого ключа (private key) получая ЭП. Сторона Б получает документ, ЭП и сертификат (ссылку на сертификат) стороны А, верифицирует сертификат открытого ключа стороны А в удостоверяющем центре, проверяет полученную ЭП при помощи публичного ключа (public key), вычисляет хеш-функцию документа и проверяет с расшифрованым значением. Если сертификат стороны А действителен и проверка прошла успешно, принимается, что документ был подписан стороной А.
Шифрование сообщений
Сторона Б зашифровывает документ открытым ключом стороны А. Чтобы убедиться, что открытый ключ действительно принадлежит стороне А, сторона Б запрашивает сертификат открытого ключа у удостоверяющего центра. Если это так, то только сторона А может расшифровать сообщение, так как владеет соответствующим закрытым ключом.
Авторизация
Сертификаты могут использоваться для подтверждения личности пользователя и задания полномочий, которыми он наделён. В числе полномочий субъекта сертификата может быть, например, право просматривать информацию или разрешение вносить изменения в материал, представленный на web-сервере.
Терминология PKI
Из всего выше сказанного можно выделить некоторые пункты, а также добавить новые, для того чтобы определить основные термины, используемые в PKI. Итак, в PKI используются термины:
электронный документ удостоверенный электронной подписью удостоверяющего центра, содержащий открытый ключ, информацию о сроке его действия и владельце ключа.
ключ, известный только его владельцу, сгенерированный с помощью асимметричного криптографического алгоритма, использующийся для электронной подписи данных и расшифровки данных зашифрованных на соответствующем этому закрытому ключу открытом ключе.
ключ, создаваемый в паре с закрытым ключом с помощью асимметричного криптографического алгоритма, используется для шифрования данных и проверки электронной подписи.
- Отпечаток открытого ключа (fingerprint/thumbprint)
информация, по которой можно идентифицировать открытый ключ. Отпечаток создаётся путём применения криптографической хеш-функции к значению открытого ключа.
- Подписанные данные
данные, подписанные при помощи закрытого ключа пользователя.
- Зашифрованные данные
данные, зашифрованные при помощи открытого ключа пользователя.
- Путь доверия
цепочка документов, которая позволяет удостовериться, что предъявленный сертификат был выдан доверенным центром; последним звеном в этой цепочке является предъявленный сертификат, начальным — сертификат корневого доверенного центра сертификации, а промежуточными — сертификаты, выданные промежуточным центрам сертификации. Особенностью пути доверия является то, что при потере доверия к начальному звену цепочки (корневому центру сертификации) теряется доверие ко всей цепочке, то есть ко всем выданным данным центром сертификатам и к предъявленному в том числе.
- Личные сертификаты
сертификаты которые хранятся у пользователя в личном хранилище сертификатов.
- Корневые центры сертификации
центры сертификации, которым доверяют изначально все, либо руководствуясь политикой предприятия, либо из-за предустановленных настроек хранилища сертификатов, и которые могут находиться в начале пути доверия.
- Доверенные центры сертификации
список центров сертификации, которым доверяют владельцы сертификатов. Чтобы сделать какой-либо центр доверенным, достаточно получить от него сертификат и внести его в список доверенных центров.
Международные удостоверяющие центры
Примечания
Литература
- Полянская О. Ю., Горбатов В. С. Инфраструктуры открытых ключей. Учебное пособие., Москва, 2007. ISBN 978-5-94774-602-0
Ссылки
- Public-Key Infrastructure (X.509) (pkix) (англ.)
- PKI – Establishing Trust in a Digital World (англ.)
- Основные компоненты инфраструктуры c открытыми ключами | Журнал сетевых решений/LAN | Издательство «Открытые системы» (рус.)
- PKI в деталях | Windows IT Pro/RE | Издательство «Открытые системы» (рус.)
- [rfc:5280 RFC5280]
- [rfc:6960 RFC6960]
- Стандарты PKCS