Введение
Субъект, выдающий цифровые сертификаты. В криптографии центр сертификации (ЦС) или удостоверяющий центр (УЦ) — это субъект, который хранит, подписывает и выдает цифровые сертификаты. Цифровой сертификат удостоверяет принадлежность открытого ключа указанному субъекту сертификата. Это позволяет другим сторонам (доверителям) полагаться на подписи или на заявления, касающиеся закрытого ключа, соответствующего сертифицированному открытому ключу. Центр сертификации выступает в качестве доверенной третьей стороны, которой доверяют как владелец сертификата, так и сторона, полагающаяся на сертификат. Формат этих сертификатов определяется стандартом X.509 или EMV. Одним из наиболее распространенных применений центров сертификации является подписание сертификатов, используемых в HTTPS — протоколе безопасного просмотра веб-страниц. Другое распространенное применение — выдача удостоверений личности национальными правительствами для использования при электронной подписи документов.
In cryptography, a certificate authority or certification authority (CA) is an entity that stores, signs, and issues digital certificates. A digital certificate certifies the ownership of a public key by the named subject of the certificate. This allows others (relying parties) to rely upon signatures or on assertions made about the private key that corresponds to the certified public key. A CA acts as a trusted third party—trusted both by the subject (owner) of the certificate and by the party relying upon the certificate. The format of these certificates is specified by the X.509 or EMV standard. One particularly common use for certificate authorities is to sign certificates used in HTTPS, the secure browsing protocol for the World Wide Web. Another common use is in issuing identity cards by national governments for use in electronically signing documents.
Обзор
Доверенные сертификаты могут использоваться для создания защищенных соединений с сервером через Интернет. Сертификат необходим для обхода злоумышленника, который случайно оказался на пути к целевому серверу и выдает себя за него. Такой сценарий обычно называют атакой типа «человек посередине». Клиент использует сертификат удостоверяющего центра (УЦ) для проверки подписи УЦ на сертификате сервера как часть авторизации перед установлением защищенного соединения. Обычно клиентское программное обеспечение, например, веб-браузеры, включает в себя набор доверенных сертификатов УЦ. Это логично, поскольку многие пользователи должны доверять своему клиентскому программному обеспечению. Вредоносный или скомпрометированный клиент может пропустить любую проверку безопасности и обмануть пользователей, заставив их поверить в обратное. Клиенты УЦ – это администраторы серверов, которые запрашивают сертификаты, которые их серверы будут предоставлять пользователям. Коммерческие УЦ взимают плату за выдачу сертификатов, и их клиенты ожидают, что сертификат УЦ будет включен в большинство веб-браузеров, чтобы безопасные соединения с сертифицированными серверами работали эффективно сразу после установки. Количество веб-браузеров, устройств и приложений, доверяющих конкретному УЦ, называется распространенностью. Mozilla, некоммерческая организация, выпускает несколько коммерческих сертификатов УЦ вместе со своими продуктами. В то время как Mozilla разработала собственную политику, CA/Browser Forum разработал аналогичные рекомендации по доверию к УЦ. Один сертификат УЦ может использоваться несколькими УЦ или их реселлерами. Корневой сертификат УЦ может служить основой для выпуска нескольких промежуточных сертификатов УЦ с различными требованиями к проверке. Помимо коммерческих УЦ, некоторые некоммерческие организации выпускают общедоступные цифровые сертификаты бесплатно, например, Let's Encrypt. Некоторые крупные компании, предоставляющие облачные вычисления и веб-хостинг, также являются общедоступными доверенными УЦ и выпускают сертификаты для сервисов, размещенных на их инфраструктуре, например, IBM Cloud, Amazon Web Services, Cloudflare и Google Cloud Platform. Крупные организации или государственные органы могут иметь собственные инфраструктуры открытых ключей (PKI), каждая из которых содержит свои собственные УЦ. Любой сайт, использующий самоподписанные сертификаты, выступает в качестве собственного УЦ. Коммерческие банки, выпускающие платежные карты EMV, регулируются УЦ EMV, платежными системами, которые направляют платежные транзакции, инициированные в POS-терминалах, в банк-эмитент карты для перевода средств с банковского счета держателя карты на банковский счет получателя платежа. Каждая платежная карта вместе со своими данными также предоставляет POS-терминалу сертификат эмитента карты. Сертификат эмитента подписан сертификатом EMV CA. POS-терминал извлекает открытый ключ EMV CA из своего хранилища, проверяет сертификат эмитента и подлинность платежной карты перед отправкой запроса на оплату в платежную систему. Браузеры и другие клиенты обычно позволяют пользователям добавлять или удалять сертификаты УЦ по своему усмотрению. Сертификаты сервера обычно действуют в течение относительно короткого периода времени, а сертификаты УЦ продлеваются, поэтому для часто посещаемых серверов безопаснее импортировать и доверять выданному УЦ, чем подтверждать исключение безопасности каждый раз при обновлении сертификата сервера. Реже доверенные сертификаты используются для шифрования или подписи сообщений. УЦ также выдают сертификаты конечных пользователей, которые можно использовать с S/MIME. Однако шифрование требует открытого ключа получателя, и поскольку авторы и получатели зашифрованных сообщений, очевидно, знают друг друга, полезность доверенной третьей стороны ограничивается проверкой подписи сообщений, отправленных в открытые списки рассылки.
Поставщики
В мире бизнес центров сертификации является фрагментированным, национальные или региональные поставщики доминируют на своих внутренних рынках. Это связано с тем, что многие области применения цифровых сертификатов, такие как юридически значимые цифровые подписи, привязаны к местному законодательству, нормативным актам и схемам аккредитации для центров сертификации. Однако рынок глобально доверенных серверных сертификатов TLS/SSL в значительной степени контролируется небольшим числом транснациональных компаний. Этот рынок характеризуется значительными барьерами для входа из-за технических требований. Хотя это и не является юридическим требованием, новые поставщики могут выбрать прохождение ежегодных аудитов безопасности (например, WebTrust для центров сертификации в Северной Америке и ETSI в Европе), чтобы быть включенными в список доверенных корневых центров веб-браузером или операционной системой. По состоянию на 2020 год, 147 корневых сертификатов, представляющих 52 организации, доверяются веб-браузеру Mozilla Firefox, 168 корневых сертификатов, представляющих 60 организаций, доверяются macOS, а 255 корневых сертификатов, представляющих 101 организацию, доверяются Microsoft Windows. По состоянию на Android 4.2 (Jelly Bean), Android в настоящее время содержит более 100 ЦС, которые обновляются с каждой версией. 18 ноября 2014 года группа компаний и некоммерческих организаций, включая Electronic Frontier Foundation, Mozilla, Cisco и Akamai, объявила о создании Let's Encrypt, некоммерческого центра сертификации, предоставляющего бесплатные доменно-валидированные сертификаты X.509, а также программное обеспечение для установки и обслуживания сертификатов. Let's Encrypt управляется недавно созданной Internet Security Research Group, некоммерческой организацией в Калифорнии, признанной федеральным налоговым освобождением. Согласно Netcraft в мае 2015 года, отраслевому стандарту для мониторинга активных сертификатов TLS, "Хотя глобальная экосистема [TLS] является конкурентной, она доминирует горстка крупных ЦС — три центра сертификации (Symantec, Comodo, GoDaddy) обеспечивают три четверти всех выданных [TLS] сертификатов на общедоступных веб-серверах. Лидирующую позицию удерживает Symantec (или VeriSign до приобретения компанией Symantec) с момента начала [нашего] исследования, и в настоящее время на ее долю приходится чуть менее трети всех сертификатов. Чтобы проиллюстрировать влияние различных методологий, среди миллиона наиболее посещаемых сайтов Symantec выпустила 44% действительных, доверенных сертификатов, находящихся в использовании, — значительно больше, чем ее общая доля рынка". В 2020 году, согласно независимой исследовательской компании Netcraft, "DigiCert является крупнейшим в мире центром сертификации с высокой степенью надежности, контролирующим 60% рынка сертификатов расширенной проверки и 96% глобального рынка сертификатов, подтвержденных организациями. По состоянию на 2023 год исследовательская компания W3Techs, собирающая статистику об использовании центров сертификации среди 10 миллионов лучших веб-сайтов Alexa и 1 миллиона лучших веб-сайтов Tranco, перечисляет шесть крупнейших центров сертификации по абсолютной доле использования следующим образом: Rank Issuer Usage Market Share1 IdenTrust 38,5% 43,6%2 DigiCert Group 13,1% 14,5%3 Sectigo (Comodo Cybersecurity) 12,1% 13,4%4 GlobalSign 16,1% 16,7%5 Let's Encrypt 5,8% 6,4%6 GoDaddy Group 4,8% 5,3%
Стандарты валидации
Коммерческие удостоверяющие центры, выдающие основную часть сертификатов для HTTPS-серверов, обычно используют метод, называемый "валидацией домена", для аутентификации получателя сертификата. Методы, используемые для валидации домена, различаются между удостоверяющими центрами, но в целом они предназначены для подтверждения контроля заявителя над конкретным доменным именем, а не для проверки информации о личности заявителя. Многие удостоверяющие центры также предлагают сертификаты расширенной проверки (EV) как более строгую альтернативу сертификатам с валидацией домена. Расширенная проверка призвана подтвердить не только контроль над доменным именем, но и дополнительную информацию о личности, которая включается в сертификат. Некоторые браузеры отображают эту дополнительную информацию о личности в зеленом поле в адресной строке. Ограничением EV как решения проблем валидации домена является то, что злоумышленники все еще могут получить сертификат с валидацией домена для домена жертвы и использовать его во время атаки. В этом случае единственным заметным для пользователя-жертвы отличием будет отсутствие зеленой строки с названием компании. Существуют сомнения в том, заметит ли пользователь это отсутствие и воспримет ли его как признак атаки: тест, проведенный с Internet Explorer 7 в 2009 году, показал, что пользователи не замечали отсутствия предупреждений EV в IE7. Однако текущий браузер Microsoft, Edge, демонстрирует значительно большее различие между сертификатами EV и с валидацией домена, причем сертификаты с валидацией домена отображаются серым замком без заливки.
Слабые места в валидации
Валидация домена имеет определенные структурные ограничения безопасности. В частности, она всегда уязвима для атак, позволяющих злоумышленнику перехватывать зондирующие запросы валидации домена, отправляемые удостоверяющими центрами (CA). Эти атаки могут быть направлены на протоколы DNS, TCP или BGP (в которых отсутствуют криптографические защиты TLS/SSL), либо на компрометацию маршрутизаторов. Такие атаки возможны как в сети рядом с CA, так и вблизи самого домена-жертвы. Один из наиболее распространенных методов валидации домена заключается в отправке электронного письма, содержащего токен аутентификации или ссылку, на адрес электронной почты, который, вероятно, административно отвечает за домен. Это может быть адрес электронной почты технического контакта, указанный в записи WHOIS домена, или административный адрес электронной почты, например, , , или в домене. Некоторые удостоверяющие центры могут принимать подтверждение с использованием , , или в домене. Теоретически, только законный владелец домена сможет прочитать электронные письма, отправленные на эти административные адреса. Реализации валидации домена иногда становились источником уязвимостей безопасности. В одном случае исследователи в области безопасности показали, что злоумышленники могли получить сертификаты для веб-почтовых сервисов, поскольку CA был готов использовать адрес электронной почты, как для домена. com, но не все веб-почтовые системы зарезервировали имя пользователя "ssladmin", чтобы предотвратить его регистрацию. До 2011 года не существовало стандартного списка адресов электронной почты, которые можно было бы использовать для валидации домена, поэтому администраторам электронной почты было неясно, какие адреса необходимо зарезервировать. Первая версия базовых требований CA/Browser Forum, принятая в ноябре 2011 года, определила список таких адресов. Это позволило почтовым хостинг-провайдерам зарезервировать эти адреса для административного использования, хотя такие меры предосторожности до сих пор не являются повсеместными. В январе 2015 года житель Финляндии зарегистрировал имя пользователя "hostmaster" в финской версии Microsoft Live и смог получить сертификат с валидацией домена для live.fi, несмотря на то, что он не являлся владельцем доменного имени.
Выдача сертификата
CA выдает цифровые сертификаты, содержащие открытый ключ и идентификационные данные владельца. Соответствующий закрытый ключ не публикуется, а хранится в секрете у конечного пользователя, сгенерировавшего пару ключей. Сертификат также служит подтверждением или удостоверением со стороны CA того, что открытый ключ, содержащийся в сертификате, принадлежит лицу, организации, серверу или другому объекту, указанному в сертификате. Обязанность CA в подобных схемах заключается в проверке подлинности заявителя, чтобы пользователи и доверенные стороны могли доверять информации, содержащейся в выданном сертификате. Для этого CA используют различные стандарты и процедуры проверки. По сути, центр сертификации берет на себя ответственность за подтверждение: "да, этот человек является тем, кем он себя называет, и мы, CA, это удостоверяем". Если пользователь доверяет CA и может проверить его подпись, он может быть уверен, что определенный открытый ключ действительно принадлежит лицу, указанному в сертификате.
Пример
Криптография с открытым ключом может использоваться для шифрования данных, передаваемых между двумя сторонами. Это обычно происходит, когда пользователь входит на сайт, использующий протокол HTTP Secure. В этом примере предположим, что пользователь входит в личный кабинет своего банка по адресу www.bank.example для осуществления онлайн-банкинга. Когда пользователь открывает главную страницу www.bank.example, он получает открытый ключ вместе со всеми данными, отображаемыми в его веб-браузере. Этот открытый ключ можно использовать для шифрования данных от клиента к серверу, но более безопасным способом является его использование в протоколе, определяющем временный общий симметричный ключ шифрования. Сообщения в таком протоколе обмена ключами могут быть зашифрованы с использованием открытого ключа банка таким образом, что только сервер банка обладает соответствующим закрытым ключом для их расшифровки. Дальнейшая коммуникация происходит с использованием нового (одноразового) симметричного ключа. Таким образом, когда пользователь вводит информацию на страницу банка и отправляет её (передает данные обратно в банк), введенные данные будут зашифрованы его веб-браузером. Следовательно, даже если кто-то получит доступ к (зашифрованным) данным, переданным пользователем на www.bank.example, этот перехватчик не сможет их прочитать или расшифровать. Этот механизм безопасен только в том случае, если пользователь уверен, что в его веб-браузере отображается именно страница банка. Если пользователь вводит www.bank.example, но соединение перехвачено, и поддельный веб-сайт (маскирующийся под банковский) отправляет информацию о странице в браузер пользователя, то поддельная веб-страница может отправить пользователю поддельный открытый ключ (для которого поддельный сайт владеет соответствующим закрытым ключом). Пользователь заполнит форму своими личными данными и отправит её. Поддельная веб-страница получит доступ к данным пользователя. Механизм удостоверяющего центра (УЦ) предназначен для предотвращения этого. Удостоверяющий центр (УЦ) – это организация, которая хранит открытые ключи и информацию об их владельцах, и все стороны в коммуникации доверяют этой организации (и знают её открытый ключ). Когда веб-браузер пользователя получает открытый ключ от www.bank.example, он также получает цифровую подпись этого ключа (вместе с дополнительной информацией, в так называемом сертификате X.509). Браузер уже обладает открытым ключом УЦ и, следовательно, может проверить подпись, доверять сертификату и открытому ключу в нем: поскольку www.bank.example использует открытый ключ, сертифицированный удостоверяющим центром, поддельный www.bank.example может использовать только тот же самый открытый ключ. Поскольку поддельный www.bank.example не знает соответствующий закрытый ключ, он не может создать подпись, необходимую для подтверждения своей подлинности.
Отзыв сертификата
Сертификат может быть отозван до истечения срока его действия, что означает, что он более не является действительным. Без отзыва злоумышленник сможет использовать скомпрометированный или ошибочно выданный сертификат до истечения срока его действия. Следовательно, отзыва является важной частью инфраструктуры открытых ключей. Отзыв выполняется выдавшим сертификат центром сертификации (ЦС), который формирует криптографически аутентифицированное заявление об отзыве. При распространении информации об отзыве клиентам существует компромисс между своевременностью обнаружения отзыва (и, следовательно, временем, в течение которого злоумышленник может использовать скомпрометированный сертификат) и затратами ресурсов на проверку статуса отзыва, а также вопросами конфиденциальности. Если информация об отзыве недоступна (по причине случайности или атаки), клиенты должны решить, отклонять соединение и считать сертификат отозванным (снижая доступность), или продолжать работу, считая сертификат действительным (и позволяя злоумышленникам игнорировать отзыв). Из-за стоимости проверок отзыва и влияния на доступность, связанного с потенциально ненадежными удаленными службами, веб-браузеры ограничивают количество выполняемых проверок отзыва и в случае невозможности проверки предпочитают продолжать работу. Списки отозванных сертификатов требуют слишком большой пропускной способности для регулярного использования, а протокол онлайн-статуса сертификатов создает проблемы с задержкой соединения и конфиденциальностью. Были предложены и другие схемы, но ни одна из них пока не была успешно внедрена для обеспечения строгой проверки отзыва.
Промышленные организации
Совет по безопасности центров сертификации (CASC) – В феврале 2013 года CASC был основан как отраслевая организация, занимающаяся защитой интересов отрасли, решением отраслевых проблем и повышением осведомленности общественности о безопасности в интернете. Основателями являются семь крупнейших центров сертификации. Форум общих стандартов компьютерной безопасности (CCSF) – В 2009 году CCSF был основан для продвижения отраслевых стандартов, обеспечивающих защиту конечных пользователей. Генеральный директор Comodo Group Мелих Абдулхайоглу считается основателем CCSF. CA/Browser Forum – В 2005 году был сформирован новый консорциум центров сертификации и разработчиков веб-браузеров для продвижения отраслевых стандартов и базовых требований к безопасности в интернете. Генеральный директор Comodo Group Мелих Абдулхайоглу организовал первую встречу и считается основателем CA/Browser Forum.
Базовые требования
Форум CA/Browser публикует Базовые требования – перечень политик и технических требований, которым центры сертификации (CA) должны соответствовать. Соблюдение этих требований необходимо для включения сертификатов в доверенные хранилища Firefox и Safari.
Компромисс КА
Если центр сертификации (CA) может быть скомпрометирован, то безопасность всей системы будет подорвана, что потенциально поставит под угрозу все организации, доверяющие этому скомпрометированному CA. Например, предположим, что злоумышленница Ева сумеет заставить CA выдать ей сертификат, который утверждает, что представляет Алису. То есть, сертификат будет публично указывать, что он представляет Алису, и может содержать другую информацию об Алисе. Некоторые сведения об Алисе, например, название ее работодателя, могут быть правдивыми, что повысит доверие к сертификату. Однако у Евы будет крайне важный закрытый ключ, связанный с этим сертификатом. Затем Ева сможет использовать сертификат для отправки Бобу цифровой подписи электронного письма, обманув его и заставив поверить, что письмо отправлено Алисой. Боб может даже ответить зашифрованным письмом, полагая, что его сможет прочитать только Алиса, в то время как Ева на самом деле сможет расшифровать его, используя закрытый ключ. Заметный случай компрометации CA произошел в 2001 году, когда центр сертификации VeriSign выдал два сертификата лицу, утверждавшему, что представляет Microsoft. Сертификаты содержали название "Microsoft Corporation", поэтому их можно было использовать для обмана, заставляя поверить, что обновления программного обеспечения Microsoft исходят от Microsoft, хотя это и не так. Мошенничество было обнаружено в начале 2001 года. Microsoft и VeriSign предприняли шаги для минимизации последствий. В 2008 году реселлер Comodo, Certstar, продал сертификат для mozilla.com Эдди Ниггу, который не имел полномочий представлять Mozilla. В 2011 году мошеннические сертификаты были получены от Comodo и DigiNotar, предположительно иранскими хакерами. Есть свидетельства того, что мошеннические сертификаты DigiNotar были использованы в атаке типа "человек посередине" в Иране. В 2012 году стало известно, что Trustwave выпустил подчиненный корневой сертификат, который использовался для прозрачного управления трафиком (атака "человек посередине"), что фактически позволяло организации перехватывать SSL-трафик внутренней сети с использованием этого подчиненного сертификата. В 2012 году вредоносное ПО Flame (также известное как SkyWiper) содержало модули, которые имели коллизию MD5 с действительным сертификатом, выданным лицензионным сертификатом Microsoft Terminal Server, использовавшим устаревший хэш-алгоритм MD5. Авторам таким образом удалось провести атаку на основе коллизии хэша, указанного в сертификате. В 2015 году китайский центр сертификации MCS Holdings, связанный с центральным реестром доменов Китая, выдал несанкционированные сертификаты для доменов Google. Google удалил как MCS, так и корневой центр сертификации из Chrome и отозвал эти сертификаты.
Хранение ключей
Злоумышленник, похитивший закрытые ключи центра сертификации, может подделывать сертификаты, выдавая их за сертификаты ЦС, без необходимости постоянного доступа к системам ЦС. Поэтому кража ключей является одним из основных рисков, против которых центры сертификации принимают меры защиты. Общедоступные доверенные ЦС почти всегда хранят свои ключи в аппаратном модуле безопасности (HSM), что позволяет им подписывать сертификаты с использованием ключа, но обычно предотвращает извлечение этого ключа как физическими, так и программными средствами контроля. ЦС обычно предпринимают дополнительную предосторожность, храня ключи для своих долгосрочных корневых сертификатов в HSM, который находится в автономном режиме, за исключением случаев, когда он необходим для подписания промежуточных сертификатов с более коротким сроком действия. Промежуточные сертификаты, хранящиеся в онлайн HSM, могут выполнять повседневную работу по подписанию сертификатов конечных сущностей и поддержанию актуальности информации об отзыве. Иногда ЦС используют церемонию генерации ключей, чтобы гарантировать, что ключи не были подделаны или скопированы.
Слабость внедрения системы доверенных третьих лиц
Критическая слабость текущей реализации схемы X.509 заключается в том, что любой удостоверяющий центр (УЦ), которому доверяет определенная сторона, может выдавать сертификаты для любого домена по своему выбору. Такие сертификаты будут приниматься доверившей стороной как действительные, независимо от их легитимности и авторизации. Это серьезный недостаток, особенно учитывая, что наиболее распространенной технологией, использующей X.509 и доверенных третьих лиц, является протокол HTTPS. Поскольку все основные веб-браузеры поставляются пользователям с предустановленным списком доверенных УЦ, насчитывающим десятки наименований, любой из этих предварительно одобренных УЦ может выдать действительный сертификат для любого домена. Реакция отрасли на это была сдержанной. Поскольку состав предустановленного списка доверенных УЦ в браузере определяется независимо стороной, распространяющей или обеспечивающей установку браузера, сами УЦ практически ничего не могут сделать. Эта проблема является основной причиной разработки протокола DANE (Authentication of Named Entities based on DNS) – аутентификации именованных сущностей на основе DNS. При внедрении совместно с расширениями безопасности DNS (DNSSEC) DANE значительно снизит, если не устранит, роль доверенных третьих лиц в инфраструктуре открытых ключей (PKI) домена.