Инфраструктура открытых ключей
- 1 year ago
- 0
- 0
Инфраструктура открытых ключей (ИОК, англ. PKI — public key infrastructure) — набор средств (технических, материальных, людских и т. д.), распределённых служб и компонентов, в совокупности используемых для поддержки криптозадач, на основе закрытого и открытого ключей. В основе PKI лежит использование криптографической системы с открытым ключом и несколько основных принципов:
Начало асимметричным шифрам было положено в работе «Новые направления в современной криптографии» Уитфилда Диффи и Мартина Хеллмана , опубликованной в 1976 году. Находясь под влиянием работы Ральфа Меркле (англ. Ralph Merkle) о распространении открытого ключа, они предложили метод получения секретных ключей, используя открытый канал. Этот метод экспоненциального обмена ключей, который стал известен как обмен ключами Диффи — Хеллмана , был первым опубликованным практичным методом для установления разделения секретного ключа между заверенными пользователями канала. В 2002 году Хеллман предложил называть данный алгоритм «Диффи — Хеллмана — Меркле», признавая вклад Меркле в изобретение криптографии с открытым ключом. Эта же схема была разработана Малькольмом Вильямсоном в 1970-х, но держалась в секрете до 1997 г. Метод Меркле по распространению открытого ключа был изобретён в 1974 и опубликован в 1978 году, его также называют загадкой Меркле.
В 1977 году учёными Рональдом Ривестом , Ади Шамиром и Леонардом Адлеманом из Массачусетского технологического института был разработан алгоритм шифрования, основанный на проблеме о разложении на множители — RSA . Система была названа по первым буквам их фамилий (RSA — Rivest, Shamir, Adleman). Эта же система была изобретена в 1973 году Клиффордом Коксом (англ. Clifford Cocks), работавшим в центре правительственной связи (GCHQ), но эта работа хранилась лишь во внутренних документах центра, поэтому о её существовании было неизвестно до 1977 года. RSA стал первым алгоритмом, пригодным и для шифрования, и для электронной подписи.
Основные задачи системы информационной безопасности, которые решает инфраструктура управления открытыми ключами:
Упрощенно, PKI представляет собой систему, основным компонентом которой является удостоверяющий центр и пользователи, взаимодействующие между собой используя сертификаты, выданные этим удостоверяющим центром. Деятельность инфраструктуры управления открытыми ключами осуществляется на основе регламента системы. Инфраструктура открытых ключей основывается на использовании принципов криптографической системы с открытым ключом. Инфраструктура управления открытыми ключами состоит из центра сертификации , конечных пользователей и опциональных компонентов: центра регистрации и сетевого справочника.
Основные функции удостоверяющего центра:
Дополнительные функции удостоверяющего центра:
Сертификат — это электронный документ, который содержит электронный ключ пользователя (открытый ключ), информацию о пользователе, которому принадлежит сертификат, электронную подпись центра выдачи сертификатов (УЦ), информацию о сроке действия сертификата и другие атрибуты. Сертификат не может быть бессрочным, он всегда содержит дату и время начала и окончания своего действия.
Причины досрочного аннулирования сертификатов:
Ключевая пара — это набор, состоящий из двух ключей: закрытого ключа (private key) и открытого ключа (public key). Эти ключи создаются вместе, являются комплементарными по отношению друг к другу (то, что зашифровано с помощью открытого ключа можно расшифровать, только имея закрытый ключ, а электронную подпись, сделанную с помощью закрытого ключа, можно проверить, используя открытый ключ).
Ключевая пара создается либо центром выдачи сертификатов (удостоверяющим центром) по запросу пользователя, или же самим пользователем с помощью специального программного обеспечения. Пользователь делает запрос на сертификат, и после процедуры идентификации пользователя УЦ выдаёт ему сертификат, подписанный этим Удостоверяющим Центром. Электронная подпись УЦ свидетельствует о том, что данный сертификат выдан именно этим центром и никем другим.
Открытый ключ известен всем, в то время как закрытый ключ хранится в тайне. Владелец закрытого ключа всегда хранит его в тайне и ни при каких обстоятельствах не должен допустить того, чтобы этот ключ стал известным злоумышленникам или другим пользователям. Если же закрытый ключ всё-таки станет известен злоумышленникам, то он считается скомпрометированным , поэтому сертификат со связанным с ним открытым ключом должен быть отозван. Только владелец закрытого ключа может подписать данные, а также расшифровать данные, которые были зашифрованы открытым ключом, связанным с закрытым ключом владельца. Действительная подпись гарантирует авторство информации и то, что информация в процессе передачи не подверглась изменениям. Подпись кода гарантирует, что данное программное обеспечение действительно произведено указанной компанией и не содержит вредоносного кода, если компания это декларирует.
Собственный закрытый ключ используется для подписи данных и для расшифровки данных, полученных от других участников PKI. Открытый ключ, извлеченный из сертификата другого участника Инфраструктуры Открытых Ключей, может использоваться для подтверждения корректности электронной подписи этого участника, а также для шифрования данных отправляемых этому участнику. Процесс шифрования с использованием асимметричной криптографии является медленным по сравнению с симметричными алгоритмами, поэтому использование его для шифрования данных не рекомендуется и по факту не производится в системах, где время является критическим фактором. При использовании сертификатов открытых ключей для защищенного взаимодействия с веб-сайтами (интернет-магазинами, банками), сертификаты используются только для установления защищенной связи; для последующего обмена информацией используются выбранные сторонами симметричные ключи.
Одним из ключевых понятий ИОК является электронная подпись . В рамках этой статьи понятия подпись, электронная подпись (ЭП), цифровая подпись и электронная цифровая подпись (ЭЦП) взаимозаменяемы. В Федеральном Законе РФ № 1 «Об электронно-цифровой подписи» от 2001 года, существовало только понятие электронно-цифровой подписи. Федеральный Закон РФ № 63 «Об электронной подписи» от 2011 года расширил понятие подписи. В соответствии со статьёй 5 «Виды электронных подписей», различают простую электронную подпись и усиленную электронную подпись. В текущей статье и практически во всех литературных источниках об Инфраструктуре Открытых Ключей, как англоязычных, так и русскоязычных, под понятием подписи понимается усиленная электронная подпись.
Электронная подпись — это результат использования алгоритма электронной подписи на хеш данных (документа/сообщения/файла).
Подлинность электронной подписи проверяется следующим образом:
В число приложений, поддерживающих PKI, входят: защищённая электронная почта , протоколы платежей, электронные чеки, электронный обмен информацией, защита данных в сетях с протоколом IP , электронные формы и документы с электронной цифровой подписью (ЭП).
Для того чтобы получить сертификат, нужно обратиться в Удостоверяющий Центр. Перед запросом на получение сертификата нужно удостовериться, что данный УЦ аккредитован в той сфере, где владелец сертификата будет его использовать. Для получения сертификата необходимо сгенерировать пару открытый-закрытый ключи; это производит либо пользователь, либо УЦ, в зависимости от политики Удостоверяющего Центра или договоренностей между клиентом и УЦ.
Для использования сертификатов (подписи или проверки подписи), пользователь должен установить на используемую операционную систему криптографические средства, поддерживающие работу с данными сертификатами и алгоритмами электронной подписи.
После получения сертификата его нужно установить в свою систему. При использовании ОС семейства Windows после установки сертификата его можно будет увидеть через оснастку «хранилище личных сертификатов» (Пуск -> Выполнить -> certmgr.msc -> OK). В свойствах можно увидеть время действия сертификата, кем он был выдан, кому был выдан, его уникальный номер и другие атрибуты. Для того, чтобы клиент мог работать с удостоверяющим центром , необходимо включить центр в список доверенных. После включения в этот список любой сертификат, выданный доверенным центром, считается достоверным, а его владелец — достойным доверия. Пользователи обмениваются сертификатами (таким образом происходит обмен открытыми ключами) и начинают взаимодействие.
В основном выделяют 5 видов архитектур PKI, это:
В основном PKI делятся на разные архитектуры по следующим признакам:
Рассмотрим более подробно каждую из архитектур PKI в отдельности.
Как уже говорилось выше, самая простая из архитектур это архитектура одиночного УЦ. В данном случае все пользователи доверяют одному УЦ и переписываются между собой. В данной архитектуре, если злоумышленник выдаст себя за УЦ, необходимо просто перевыпустить все выписанные сертификаты и продолжить нормальную работу.
Иерархическая структура — это наиболее часто встречающаяся архитектура PKI. В данном случае во главе всей структуры стоит один Головной УЦ, которому все доверяют и ему подчиняются нижестоящие УЦ. Кроме этого головного УЦ в структуре присутствуют ещё не один УЦ, который подчиняется вышестоящему, которому в свою очередь приписаны какие-либо пользователи или нижестоящие УЦ. Частный пример иерархической PKI — корпоративная PKI. В иерархической PKI, даже если злоумышленник выдал себя за какой-либо УЦ, сеть продолжает работать без него, а когда он восстанавливает нормальную работоспособность — он просто снова включается в структуру.
Сетевая архитектура PKI строится как сеть доверия, многочисленные удостоверяющие центры которой предоставляют PKI-сервисы и связаны одноранговыми, то есть равноправными, отношениями. Но в данном случае нет одного головного УЦ, которому все доверяют. В этой архитектуре все УЦ доверяют рядом стоящим УЦ, а каждый пользователь доверяет только тому УЦ, у которого выписал сертификат. Удостоверяющие центры выпускают сертификаты друг для друга; пара сертификатов описывает двусторонние отношения доверия. В данную архитектуру PKI легко добавляется новый УЦ, для этого ему нужно обменяться сертификатами, по крайней мере, с одним УЦ, который уже входит в сеть. В данной архитектуре наиболее сложное построение цепочки сертификации.
Сетевые PKI обладают большой гибкостью, так как имеют многочисленные пункты доверия. Компрометация одного УЦ не отражается на сетевой PKI в целом: удостоверяющие центры, которые выпустили сертификаты для скомпрометированного УЦ, просто аннулируют их, тем самым удаляя из инфраструктуры ненадежный УЦ. В результате не нарушается работа пользователей, связанных с другими удостоверяющими центрами, — они по-прежнему могут полагаться на надежные пункты доверия и защищенно связываться с остальными пользователями своей PKI. Компрометация сетевой PKI приводит либо к тому, что сворачивается работа одного УЦ вместе с его сообществом пользователей, либо, если стали ненадежными несколько удостоверяющих центров, к тому, что PKI распадается на несколько меньших инфраструктур. Восстановление после компрометации сетевой PKI происходит проще, чем иерархической, прежде всего, потому что компрометация затрагивает меньше пользователей.
Построить путь сертификации в сети достаточно сложно, поскольку этот процесс не детерминирован и имеются многочисленные варианты формирования цепи сертификатов. Одни из них приводят к построению правильного пути, другие — заводят в тупик. По этой причине валидация пути сертификации часто выполняется одновременно с его построением, частью этого процесса является удаление неверных ветвей. Для построения правильного пути используется несколько дополнительных полей сертификатов.
Данный вид архитектуры можно рассматривать как смешанный вид иерархической и сетевой архитектур. Есть несколько фирм, у каждой из которых организована какая-то своя PKI, но они хотят общаться между собой, в результате чего возникает их общая межфирменная PKI.В архитектуре кросс-сертифицированной корпоративной PKI самая сложная система цепочки сертификации.
Архитектура мостового УЦ разрабатывалась для того, чтобы убрать недостатки сложного процесса сертификации в кросс-сертифицированной корпоративной PKI. В данном случае все компании доверяют не какой-то одной или двум фирмам, а одному определённому мостовому УЦ, который является практически их головным УЦ, но он не является основным пунктом доверия, а выступает в роли посредника между другими УЦ.
Внедрение инфраструктуры управления открытыми ключами с учетом снижения затрат и сроков внедрения осуществляется в течение семи этапов.
Сторона А для документа вычисляет хеш-функцию, затем полученное значение шифруется с помощью закрытого ключа (private key), получая ЭП. Сторона Б получает документ, ЭП и сертификат (ссылку на сертификат) стороны А, верифицирует сертификат открытого ключа стороны А в удостоверяющем центре, проверяет полученную ЭП при помощи публичного ключа (public key), вычисляет хеш-функцию документа и проверяет с расшифрованым значением. Если сертификат стороны А действителен и проверка прошла успешно, принимается, что документ был подписан стороной А.
Сторона Б зашифровывает документ открытым ключом стороны А. Чтобы убедиться, что открытый ключ действительно принадлежит стороне А, сторона Б запрашивает сертификат открытого ключа у удостоверяющего центра. Если это так, то только сторона А может расшифровать сообщение, так как владеет соответствующим закрытым ключом.
Сертификаты могут использоваться для подтверждения личности пользователя и задания полномочий, которыми он наделён. В числе полномочий субъекта сертификата может быть, например, право просматривать информацию или разрешение вносить изменения в материал, представленный на web-сервере.
Из всего выше сказанного можно выделить некоторые пункты, а также добавить новые, для того чтобы определить основные термины, используемые в PKI. Итак, в PKI используются термины:
электронный документ удостоверенный электронной подписью удостоверяющего центра, содержащий открытый ключ, информацию о сроке его действия и владельце ключа.
ключ, известный только его владельцу, сгенерированный с помощью асимметричного криптографического алгоритма, использующийся для электронной подписи данных и расшифровки данных зашифрованных на соответствующем этому закрытому ключу открытом ключе.
ключ, создаваемый в паре с закрытым ключом с помощью асимметричного криптографического алгоритма, используется для шифрования данных и проверки электронной подписи.
информация, по которой можно идентифицировать открытый ключ. Отпечаток создаётся путём применения криптографической хеш-функции к значению открытого ключа.
данные, подписанные при помощи закрытого ключа пользователя.
данные, зашифрованные при помощи открытого ключа пользователя.
цепочка документов, которая позволяет удостовериться, что предъявленный сертификат был выдан доверенным центром; последним звеном в этой цепочке является предъявленный сертификат, начальным — сертификат корневого доверенного центра сертификации, а промежуточными — сертификаты, выданные промежуточным центрам сертификации. Особенностью пути доверия является то, что при потере доверия к начальному звену цепочки (корневому центру сертификации) теряется доверие ко всей цепочке, то есть ко всем выданным данным центром сертификатам и к предъявленному в том числе.
сертификаты которые хранятся у пользователя в личном хранилище сертификатов.
центры сертификации, которым доверяют изначально все, либо руководствуясь политикой предприятия, либо из-за предустановленных настроек хранилища сертификатов, и которые могут находиться в начале пути доверия.
список центров сертификации, которым доверяют владельцы сертификатов. Чтобы сделать какой-либо центр доверенным, достаточно получить от него сертификат и внести его в список доверенных центров.