Инфраструктура открытых ключей ( PKI ) представляет собой набор ролей, политик, оборудования, программного обеспечения и процедур, необходимых для создания, управления, распространения, использования, хранения и отзыва цифровых сертификатов , а также управления шифрованием с открытым ключом .
Целью PKI является обеспечение безопасной электронной передачи информации для ряда сетевых видов деятельности, таких как электронная коммерция, интернет-банкинг и конфиденциальная электронная почта. Она необходима для видов деятельности, где простые пароли являются неадекватным методом аутентификации и требуются более строгие доказательства для подтверждения личности сторон, участвующих в коммуникации, и для проверки передаваемой информации.
В криптографии PKI — это соглашение, которое связывает открытые ключи с соответствующими идентификаторами субъектов (например, людей и организаций). [1] [2] Связывание устанавливается посредством процесса регистрации и выдачи сертификатов в центре сертификации (CA). В зависимости от уровня надежности связывания это может осуществляться автоматизированным процессом или под контролем человека. При выполнении по сети это требует использования защищенного протокола регистрации сертификатов или управления сертификатами, такого как CMP .
Роль PKI, которая может быть делегирована CA для обеспечения действительной и правильной регистрации, называется регистрационным органом (RA). RA отвечает за прием запросов на цифровые сертификаты и аутентификацию субъекта, делающего запрос. [3] RFC 3647 Целевой группы по инжинирингу Интернета определяет RA как «субъект, который отвечает за одну или несколько из следующих функций: идентификация и аутентификация заявителей на сертификаты, одобрение или отклонение заявок на сертификаты, инициирование отзыва или приостановки сертификатов при определенных обстоятельствах, обработка запросов подписчиков на отзыв или приостановку их сертификатов и одобрение или отклонение запросов подписчиков на обновление или повторную аутентификацию их сертификатов. Однако RA не подписывают и не выдают сертификаты (т. е. RA делегируются определенные задачи от имени CA)». [4] Хотя Microsoft могла называть подчиненный CA RA, [5] это неверно в соответствии со стандартами X.509 PKI. RA не имеют полномочий подписи CA и управляют только проверкой и предоставлением сертификатов. Таким образом, в случае Microsoft PKI функциональность RA предоставляется либо веб-сайтом Microsoft Certificate Services, либо через Active Directory Certificate Services, которая обеспечивает Microsoft Enterprise CA и политику сертификатов через шаблоны сертификатов и управляет регистрацией сертификатов (ручной или автоматической регистрацией). В случае Microsoft Standalone CA функция RA не существует, поскольку все процедуры, контролирующие CA, основаны на процедуре администрирования и доступа, связанной с системой, в которой размещен CA, и самим CA, а не с Active Directory. Большинство коммерческих решений PKI от сторонних производителей предлагают автономный компонент RA.
Сущность должна быть уникально идентифицируемой в пределах каждого домена CA на основе информации об этой сущности. Сторонний орган проверки (VA) может предоставить эту информацию о сущности от имени CA.
Стандарт X.509 определяет наиболее часто используемый формат сертификатов открытых ключей . [6]
PKI предоставляет «услуги доверия» — простыми словами, доверяя действиям или результатам сущностей, будь то люди или компьютеры. Цели услуг доверия уважают одну или несколько из следующих возможностей: Конфиденциальность, Целостность и Подлинность (CIA).
Конфиденциальность: гарантия того, что ни один субъект не сможет злонамеренно или непреднамеренно просмотреть полезную нагрузку в открытом тексте. Данные шифруются, чтобы сделать их секретными, так что даже если они были прочитаны, они выглядят как бессмыслица. Возможно, наиболее распространенное использование PKI в целях конфиденциальности — это контекст безопасности транспортного уровня ( TLS ). TLS — это возможность, лежащая в основе безопасности данных при передаче, то есть во время передачи. Классический пример TLS для конфиденциальности — это использование интернет-браузера для входа в службу, размещенную на интернет-веб-сайте, путем ввода пароля.
Целостность: Гарантия того, что если бы сущность хоть немного изменила (подделала) передаваемые данные, это было бы очевидно, поскольку ее целостность была бы скомпрометирована. Часто не так уж важно предотвратить подрыв целостности (защита от подделки), однако крайне важно, чтобы в случае подрыва целостности имелись явные доказательства того, что это произошло (очевидность подделки).
Подлинность: гарантия того, что каждый субъект уверен в том, к чему он подключается, или может доказать свою легитимность при подключении к защищенной службе. Первый вариант называется аутентификацией на стороне сервера — обычно используется при аутентификации на веб-сервере с использованием пароля. Последний вариант называется аутентификацией на стороне клиента — иногда используется при аутентификации с использованием смарт-карты (хостинг цифрового сертификата и закрытого ключа).
Криптография с открытым ключом — это криптографический метод, который позволяет субъектам безопасно взаимодействовать в незащищенной публичной сети и надежно проверять личность субъекта с помощью цифровых подписей . [7]
Инфраструктура открытых ключей (PKI) — это система для создания, хранения и распространения цифровых сертификатов , которые используются для проверки принадлежности конкретного открытого ключа определенному субъекту. PKI создает цифровые сертификаты, которые сопоставляют открытые ключи с субъектами, надежно хранит эти сертификаты в центральном репозитории и отзывает их при необходимости. [8] [9] [10]
PKI состоит из: [9] [11] [12]
Основная роль CA заключается в цифровой подписи и публикации открытого ключа, привязанного к данному пользователю. Это делается с использованием собственного закрытого ключа CA, так что доверие к ключу пользователя зависит от доверия к действительности ключа CA. Когда CA является третьей стороной, отдельной от пользователя и системы, то он называется Регистрационным центром (RA), который может быть или не быть отдельным от CA. [13] Привязка ключа к пользователю устанавливается в зависимости от уровня гарантии привязки с помощью программного обеспечения или под контролем человека.
Термин доверенная третья сторона (TTP) может также использоваться для центра сертификации (CA). Более того, PKI сам по себе часто используется как синоним для реализации CA. [14]
Сертификат может быть отозван до истечения срока его действия, что означает, что он больше не действителен. Без отзыва злоумышленник сможет использовать такой скомпрометированный или неправильно выпущенный сертификат до истечения срока его действия. [15] Таким образом, отзыв является важной частью инфраструктуры открытого ключа. [16] Отзыв выполняется выдавшим его центром сертификации , который создает криптографически аутентифицированное заявление об отзыве. [17]
Для распространения информации об отзыве среди клиентов своевременность обнаружения отзыва (и, следовательно, окно для злоумышленника, чтобы использовать скомпрометированный сертификат) идет вразрез с использованием ресурсов при запросе статусов отзыва и проблемами конфиденциальности. [18] Если информация об отзыве недоступна (либо из-за несчастного случая, либо из-за атаки), клиенты должны решить, следует ли использовать отказоустойчивый режим и рассматривать сертификат как отозванный (и таким образом ухудшать доступность ) или отказоустойчивый режим и рассматривать его как неотозванный (и позволить злоумышленникам обойти отзыв). [19]
Из-за стоимости проверок отзыва и влияния на доступность потенциально ненадежных удаленных служб веб-браузеры ограничивают проверки отзыва, которые они будут выполнять, и будут выполнять их с помощью soft-fail. [20] Списки отзыва сертификатов слишком затратны для полосы пропускания для повседневного использования, а протокол статуса сертификата в режиме онлайн создает проблемы с задержкой соединения и конфиденциальностью. Были предложены другие схемы, но пока не были успешно развернуты для включения hard-fail проверки. [16]
В этой модели доверительных отношений центр сертификации является доверенной третьей стороной, которой доверяет как субъект (владелец) сертификата, так и сторона, полагающаяся на сертификат.
Согласно отчету NetCraft за 2015 год [21] , отраслевому стандарту для мониторинга активных сертификатов Transport Layer Security (TLS), говорится, что «хотя глобальная экосистема [TLS] является конкурентной, в ней доминирует несколько основных центров сертификации — три центра сертификации ( Symantec , Sectigo , GoDaddy ) отвечают за три четверти всех выпущенных сертификатов [TLS] на общедоступных веб-серверах. Первое место удерживает Symantec (или VeriSign до того, как он был куплен Symantec) с момента начала [нашего] опроса, и в настоящее время на нее приходится чуть менее трети всех сертификатов. Чтобы проиллюстрировать влияние различных методологий, среди миллиона самых загруженных сайтов Symantec выдала 44% действительных, доверенных используемых сертификатов — значительно больше, чем ее общая доля на рынке».
После серьезных проблем с управлением выдачей сертификатов все основные игроки постепенно перестали доверять сертификатам, выпущенным Symantec, начиная с 2017 года и до 2021 года. [22] [23] [24] [25]
Этот подход включает сервер, который действует как автономный центр сертификации в системе единого входа . Сервер единого входа будет выдавать цифровые сертификаты в клиентскую систему, но никогда не будет их хранить. Пользователи могут запускать программы и т. д. с временным сертификатом. Обычно этот вариант решения можно найти с сертификатами на основе X.509 . [26]
С сентября 2020 года срок действия сертификата TLS сокращен до 13 месяцев.
Альтернативным подходом к проблеме публичной аутентификации информации открытого ключа является схема web-of-trust, которая использует самоподписанные сертификаты и сторонние подтверждения этих сертификатов. Единичный термин «web of trust» не подразумевает существование единой сети доверия или общей точки доверия, а скорее одной из любого количества потенциально непересекающихся «сетей доверия». Примерами реализаций этого подхода являются PGP (Pretty Good Privacy) и GnuPG (реализация OpenPGP , стандартизированной спецификации PGP). Поскольку PGP и реализации позволяют использовать цифровые подписи электронной почты для самостоятельной публикации информации открытого ключа, реализовать собственную сеть доверия относительно просто.
Одним из преимуществ сети доверия, такой как PGP , является то, что она может взаимодействовать с PKI CA, которому полностью доверяют все стороны в домене (например, внутренний CA в компании), который готов гарантировать сертификаты, как доверенный поручитель. Если «сеть доверия» полностью доверяет, то из-за природы сети доверия доверие одному сертификату предоставляет доверие всем сертификатам в этой сети. PKI ценен ровно настолько, насколько ценны стандарты и практики, которые контролируют выдачу сертификатов, и включение PGP или лично учрежденной сети доверия может значительно снизить надежность внедрения PKI этим предприятием или доменом. [27]
Концепция сети доверия была впервые предложена создателем PGP Филом Циммерманном в 1992 году в руководстве к PGP версии 2.0:
Со временем вы накопите ключи от других людей, которых вы, возможно, захотите назначить доверенными поручителями. Все остальные выберут своих собственных доверенных поручителей. И каждый постепенно накопит и распространит вместе со своим ключом коллекцию удостоверяющих подписей от других людей, ожидая, что любой, кто его получит, будет доверять хотя бы одной или двум подписям. Это приведет к появлению децентрализованной отказоустойчивой сети доверия для всех открытых ключей.
Другой альтернативой, которая не имеет дела с публичной аутентификацией информации об открытом ключе, является простая инфраструктура открытого ключа (SPKI), которая возникла из трех независимых усилий по преодолению сложностей X.509 и сети доверия PGP. SPKI не связывает пользователей с лицами, поскольку ключ — это то, чему доверяют, а не лицо. SPKI не использует никакого понятия доверия, поскольку верификатор также является эмитентом. Это называется «циклом авторизации» в терминологии SPKI, где авторизация является неотъемлемой частью его конструкции. [28] Этот тип PKI особенно полезен для создания интеграций PKI, которые не полагаются на третьи стороны для авторизации сертификатов, информации о сертификатах и т. д.; хорошим примером этого является изолированная сеть в офисе.
Децентрализованные идентификаторы (DID) устраняют зависимость от централизованных реестров для идентификаторов, а также централизованных центров сертификации для управления ключами, что является стандартом в иерархической PKI. В случаях, когда реестр DID является распределенным реестром , каждая сущность может служить своим собственным корневым центром. Такая архитектура называется децентрализованной PKI (DPKI). [29] [30]
Разработки в области PKI начались в начале 1970-х годов в британском разведывательном агентстве GCHQ , где Джеймс Эллис , Клиффорд Кокс и другие сделали важные открытия, связанные с алгоритмами шифрования и распределением ключей. [31] Поскольку разработки в GCHQ строго засекречены, результаты этой работы держались в секрете и не признавались публично до середины 1990-х годов.
Публичное раскрытие как безопасного обмена ключами , так и алгоритмов асимметричного ключа в 1976 году Диффи , Хеллманом , Ривестом , Шамиром и Адлеманом полностью изменило безопасные коммуникации. С дальнейшим развитием высокоскоростных цифровых электронных коммуникаций ( Интернет и его предшественники) стала очевидной потребность в способах, с помощью которых пользователи могли бы безопасно общаться друг с другом, и как дальнейшее следствие этого, в способах, с помощью которых пользователи могли бы быть уверены, с кем они на самом деле взаимодействуют.
Были изобретены и проанализированы различные криптографические протоколы, в рамках которых можно было эффективно использовать новые криптографические примитивы . С изобретением Всемирной паутины и ее быстрым распространением потребность в аутентификации и безопасной связи стала еще более острой. Одних коммерческих причин (например, электронная коммерция , онлайн-доступ к собственным базам данных из веб-браузеров ) было достаточно. Тахер Элгамал и другие в Netscape разработали протокол SSL ( https в веб -URL ); он включал установление ключа, аутентификацию сервера (до v3, только одностороннюю) и т. д. [32] Таким образом, была создана структура PKI для веб-пользователей/сайтов, желающих безопасной связи.
Поставщики и предприниматели увидели возможность большого рынка, основали компании (или новые проекты в существующих компаниях) и начали агитировать за юридическое признание и защиту от ответственности. Технологический проект Американской ассоциации юристов опубликовал обширный анализ некоторых предсказуемых правовых аспектов операций PKI (см. Руководство по цифровой подписи ABA ), и вскоре после этого несколько штатов США ( Юта была первой в 1995 году) и другие юрисдикции по всему миру начали принимать законы и правила. Группы потребителей подняли вопросы о конфиденциальности , доступе и ответственности, которые в некоторых юрисдикциях принимались во внимание больше, чем в других. [33]
Принятые законы и нормативные акты различались, возникали технические и эксплуатационные проблемы при преобразовании схем PKI в успешную коммерческую эксплуатацию, а прогресс шел гораздо медленнее, чем предполагали первопроходцы.
К первым нескольким годам XXI века базовую криптографическую инженерию было явно нелегко правильно развернуть. Рабочие процедуры (ручные или автоматические) было нелегко правильно спроектировать (и даже если они были так спроектированы, нелегко было выполнить идеально, что требовалось инженерией). Существовавшие стандарты были недостаточными.
Поставщики PKI нашли рынок, но это не совсем тот рынок, который предполагался в середине 1990-х годов, и он рос и медленнее, и несколько иными способами, чем предполагалось. [34] PKI не решили некоторые из проблем, которые от них ожидались, и несколько крупных поставщиков вышли из бизнеса или были приобретены другими. PKI добилась наибольшего успеха в правительственных реализациях; крупнейшей реализацией PKI на сегодняшний день является инфраструктура PKI Агентства по оборонным информационным системам (DISA) для программы карт общего доступа .
PKI того или иного типа и от любого из нескольких поставщиков имеют множество применений, включая предоставление открытых ключей и привязок к идентификаторам пользователей, которые используются для:
Некоторые утверждают, что покупка сертификатов для защиты веб-сайтов с помощью SSL/TLS и защиты программного обеспечения с помощью подписи кода является дорогостоящим предприятием для малого бизнеса. [41] Однако появление бесплатных альтернатив, таких как Let's Encrypt , изменило это. HTTP/2 , последняя версия протокола HTTP, теоретически допускает незащищенные соединения; на практике основные компании-разработчики браузеров дали понять, что будут поддерживать этот протокол только через защищенное PKI соединение TLS . [42] Реализация HTTP/2 в веб-браузерах, включая Chrome , Firefox , Opera и Edge , поддерживает HTTP/2 только через TLS с помощью расширения ALPN протокола TLS. Это означало бы, что для получения преимуществ скорости HTTP/2 владельцы веб-сайтов были бы вынуждены приобретать сертификаты SSL/TLS, контролируемые корпорациями.
В настоящее время большинство веб-браузеров поставляются с предустановленными промежуточными сертификатами, выпущенными и подписанными центром сертификации, открытыми ключами, сертифицированными так называемыми корневыми сертификатами . Это означает, что браузеры должны иметь большое количество различных поставщиков сертификатов, что увеличивает риск компрометации ключа. [43]
Когда известно, что ключ скомпрометирован, это можно исправить, отозвав сертификат, но такой взлом нелегко обнаружить, и он может стать огромным нарушением безопасности. Браузеры должны выпустить исправление безопасности, чтобы отозвать промежуточные сертификаты, выпущенные скомпрометированным корневым центром сертификации. [44]