Удостоверяющие центры
Как было сказано выше, основная задача Удостоверяющего центра – подтверждать подлинность ключей шифрования с помощью сертификатов электронной подписи. Главный принцип работы описывается тезисом «никто не доверяет друг другу, но все доверяют Удостоверяющему центру».
Любое HTTPS-взаимодействие основывается на том, что один участник имеет сертификат, подписанный Удостоверяющим центром, а второй пытается проверить подлинность этого сертификата. Проверка будет успешной, если оба участника доверяют одному и тому же Удостоверяющему центру. Для решения такой проблемы в операционные системы и браузеры предустановлены сертификаты Удостоверяющего центра. Если непосредственно сам Удостоверяющий центр выпустил сертификат, он называется корневым. Если сертификат был выпущен партнёром Удостоверяющего центра, с которым у него есть доверительные отношения, то такой сертификат называется промежуточным. В результате формируется дерево из сертификатов, между которыми есть цепочка доверия.
Установив сертификат Удостоверяющего центра в систему, можно доверять тем сертификатам, которые он подписал. Если сертификат (в частности для HTTPS) выдан, но не подписан каким-нибудь корневым или промежуточным Удостоверяющим центром, то его называют самоподписанным и он считается недоверенным на всех устройствах, где данный сертификат не добавлен в списки корневых/промежуточных.
По уровню распространения сертификатов Удостоверяющий центр может быть международным, региональным и корпоративным. Деятельность инфраструктуры управления открытыми ключами осуществляется на основе регламента соответствующего уровня: публичные директивы, зафиксированные международным сообществом пользователей Интернета, законодательство региона или соответствующие положения организации.
Основные функции удостоверяющего центра:
- проверка личности будущих пользователей сертификатов;
- выдача пользователям сертификатов;
- аннулирование сертификатов;
- ведение и публикация списков отозванных сертификатов (Certificate Revocation List/CRL), которые используются клиентами инфраструктуры открытого ключа, когда они решают вопрос о доверии сертификату.
Дополнительные функции удостоверяющего центра:
- Удостоверяющий центр может производить генерацию пар ключей, один из которых будет включён в сертификат.
- По запросу, при разрешении конфликтов УЦ может производить проверку подлинности электронной подписи владельца сертификата, выданного этим УЦ.
Браузеры и операционные системы устройств фиксируют доверие Удостоверяющему центру, принимая корневой сертификат в своё хранилище – специальную базу данных о корневых сертификатах Удостоверяющих центров. Хранилище размещается на устройстве пользователя после установки ОС или браузера. Например, Windows поддерживает своё хранилище корневых сертификатов в операционных системах, Apple имеет так называемое хранилище доверия, Mozilla (для своего браузера Firefox) создаёт отдельное хранилище сертификатов. Многие операторы мобильной связи также имеют собственное хранилище. Региональные и корпоративные должны быть добавлены или на этапе сертификации ПО в стране, или путём обращения в техническую поддержку организации.
Региональные представители всемирных Удостоверяющих центров имеют полномочия на юридические запросы деятельности организаций, связанной с публикацией веб-ресурсов. Для корпоративных Удостоверяющих центров это необязательно, поскольку обычно они имеют доступ к внутренней информации организации. Исходя из целей безопасности, Удостоверяющие центры не должны выдавать цифровые сертификаты напрямую из корневого сертификата, передаваемого операторам, а только через один или несколько промежуточных центров сертификации (англ. Intermediate Certificate Authority, ICA). Данные промежуточные Центры сертификации обязаны выполнять рекомендации по безопасности чтобы свести к минимуму уязвимость корневого Удостоверяющего центра для хакерских атак, но есть и исключения, так, например, GlobalSign — один из немногих центров сертификации, которые всегда (с 1996 года) использовали ICA.
Сертификаты бывают разных форматов и поддерживают не только SSL, а ещё и аутентификацию людей и устройств, а также заверяют подлинность кода и документов. В рамках российского законодательства подобная деятельность должна быть лицензирована ФСБ, поскольку связана с криптографическими операциями.
Универсальный алгоритм получения сертификата у Удостоверяющего центра:
- Генерация закрытого ключа.
- Создание запроса подписи сертификата (англ. Certificate Signing Request, CSR-запрос).
- Получение сертификата, подписанного корневым сертификатом Удостоверяющего центра после прохождения проверок.
- Конфигурация веб-сервера для вашего ресурса.
Так как браузеры имеют копию корневого сертификата международного Удостоверяющего центра, а также ряда промежуточных из цепочки доверия, браузер может проверить, был ли ваш сертификат подписан доверенным центром сертификации. Когда пользователи или организация создают самоподписанный сертификат, браузер ему не доверяет, поскольку ничего не знает об организации, поэтому корневой сертификат организации должен вручную добавляться ко всем контролируемым устройствам, после чего данные сертификаты станут доверенными.
Корневой сертификат — это файл, который содержит сервисную информацию об Удостоверяющем центре. Специальное ПО или библиотека, которая реализует функции проверки, шифрования и дешифрования информации называется криптопровайдерами (поставщики критографических функций). Криптопровайдер получает доступ к зашифрованной информации, тем самым подтверждая подлинность личной электронной подписи.
На основе корневого сертификата удостоверяющего центра строится цепочка доверия сертификатам. Любая электронная подпись, выпущенная Удостоверяющем центром корректно работает только при наличии корневого сертификата.
В корневом сертификате хранится информация с датами его действия. Также криптопровайдер с помощью корневого сертификата получает доступ к реестру организации.
Исторически и технологически сложилось так, что ряд Удостоверяющих центров получили наибольшее признание среди пользователей SSL, поэтому было принято согласованное решение считать сертификаты, которые они выпускают, корневыми и всегда им доверять. Региональные Удостоверяющие сертификаты в свою очередь могут быть подтверждены корневым Удостоверяющим центром. В свою очередь они могут подтвердить другие сертификаты, образуя цепочку доверия сертификатам. В роли поручителя-удостоверителя выступает Удостоверяющий центр, который выпустил SSL-сертификат по запросу владельца веб-ресурса.
Сертификат и веб-ресурс, для которого он выпущен, удостоверяются электронной цифровой подписью (ЭЦП). Эта подпись указывает на собственную принадлежность сертификата и фиксирует его содержимое, то есть позволяет проверить, не был ли он кем-то изменён после выпуска и подписания.
Перечень сертификатов корневых Удостоверяющих центров и их публичных ключей изначально размещается в программном хранилище операционной системы на рабочей станции пользователей, в браузере, в других приложениях, использующих SSL в своей работе.
Если цепочку последовательно подписанных сертификатов завершает корневой сертификат, все сертификаты, входящие в эту цепочку, считаются подтверждёнными.
Корневые сертификаты, находящиеся в рабочей станции пользователя, хранятся в защищённом средствами операционной системы от случайного доступа контейнере. Однако пользователь может добавлять новые корневые сертификаты самостоятельно, что является источником потенциальных проблем безопасности.
При определённых действиях и наличии доступа к атакуемой рабочей станции злоумышленник может включить в число корневых сертификатов собственный и использовать его для расшифровки получаемых данных.
Корневой Удостоверяющий центр может быть сформирован правительством той или иной страны или руководством организации. В этих случаях корневые Удостоверяющие центры не будут действовать повсеместно, но при этом они могут вполне успешно использоваться в конкретной стране или в рамках конкретного предприятия.
В данный момент перечень корневых центров сертификации в компьютере пользователя может автоматически изменяться при обновлении операционной системы, программных продуктов или вручную системным администратором.
Сертификационные центры могут выдавать множество SSL-сертификатов, связанных по принципу древовидной структуры. Так, корневой сертификат является корнем дерева, секретным ключом которого подписываются другие сертификаты. Все промежуточные сертификаты, находящиеся на уровень ниже, наследуют степень доверия к нему. SSL-сертификаты, находящиеся далее по структуре, таким же образом получают доверие от Удостоверяющих центров, находящихся выше по цепочке. На примере Удостоверяющего центра Comodo структуру SSL сертификатов можно изобразить следующим образом:
- Корневой сертификат Удостоверяющего центра Comodo: AddTrustExternalCARoot
- Промежуточные сертификаты: PositiveSSL CA 2, ComodoUTNSGCCA, UTNAddTrustSGCCA, EssentialSSLCA, Comodo High-Assurance Secure Server CA
- SSL-сертификаты для отдельных доменов.