Введение

В области компьютерной безопасности атрибутный сертификат, или сертификат авторизации (AC), – это цифровой документ, содержащий атрибуты, связанные с владельцем издателем. Если связанные атрибуты используются главным образом для целей авторизации, AC называется сертификатом авторизации. AC стандартизован в X.509. RFC 5755 дополнительно определяет использование для целей авторизации в Интернете. Сертификат авторизации функционирует совместно с сертификатом открытого ключа (PKC). В то время как PKC выдается центром сертификации (CA) и используется в качестве доказательства личности его владельца, подобно паспорту, сертификат авторизации выдается органом, выдающим атрибуты (AA), и используется для характеристики или наделения прав владельца, подобно визе. Поскольку информация об идентификации редко меняется и имеет длительный срок действия, а информация об атрибутах часто меняется или имеет короткий срок действия, необходимы отдельные сертификаты с различными требованиями к безопасности, сроками действия и издателями.

Сравнение сертификатов атрибутов и открытых ключей

AC напоминает PKC, но не содержит открытого ключа, поскольку верификатор AC находится под контролем издателя AC и, следовательно, доверяет издателю напрямую, имея предварительно установленный открытый ключ издателя. Это означает, что как только личный ключ издателя AC будет скомпрометирован, издатель должен сгенерировать новую пару ключей и заменить старый открытый ключ во всех верификаторах под своим контролем на новый. Для проверки AC требуется наличие PKC, который в AC называется владельцем PKC. Как и в случае с PKC, AC может быть объединен в цепочку для делегирования полномочий. Например, сертификат авторизации, выданный для Алисы, разрешает ей использовать определенную услугу. Алиса может делегировать это право своему помощнику Бобу, выпустив AC для PKC Боба. Когда Боб хочет использовать услугу, он предъявляет свой PKC и цепочку AC, начиная с его собственного AC, выданного Алисой, а затем AC Алисы, выданного издателем, которому доверяет служба. Таким образом, служба может проверить, что Алиса делегировала свои права Бобу и что Алиса была авторизована использовать услугу издателем, контролирующим службу. Однако RFC 3281 не рекомендует использовать цепочки AC из-за сложности администрирования и обработки цепочки, и использование AC в Интернете ограничено.

Использование

Чтобы использовать услугу или ресурс, контролируемый эмитентом AC, пользователь предъявляет как PKC, так и AC части услуги или ресурса, функционирующей как верификатор AC. Верификатор сначала проверяет личность пользователя, используя PKC, например, попросив пользователя расшифровать сообщение, зашифрованное его публичным ключом в PKC. Если аутентификация прошла успешно, верификатор использует предварительно установленный открытый ключ эмитента AC для проверки действительности представленного AC. Если AC действителен, верификатор проверяет, соответствует ли PKC, указанный в AC, представленному PKC. Если соответствие установлено, верификатор проверяет срок действия AC. Если AC все еще действителен, верификатор может выполнить дополнительные проверки, прежде чем предоставить пользователю определенный уровень обслуживания или использования ресурсов в соответствии с атрибутами, содержащимися в AC. Например, разработчик программного обеспечения, у которого уже есть PKC, хочет развернуть свое программное обеспечение на вычислительном устройстве, использующем DRM, например, iPad, где программное обеспечение может быть запущено только после одобрения производителем устройства. Разработчик программного обеспечения подписывает программное обеспечение своим приватным ключом PKC и отправляет подписанное программное обеспечение производителю устройства для утверждения. После аутентификации разработчика с использованием PKC и проверки программного обеспечения, производитель может принять решение о выдаче AC, предоставляющего программному обеспечению базовую возможность установки и выполнения, а также дополнительную возможность использования Wi-Fi устройства в соответствии с принципом наименьших привилегий. В этом примере AC относится не к PKC разработчика как к владельцу, а к программному обеспечению, например, путем хранения подписи разработчика программного обеспечения в поле владельца AC. Когда программное обеспечение помещается в вычислительное устройство, устройство проверяет целостность программного обеспечения с использованием PKC разработчика, прежде чем проверять действительность AC и предоставлять программному обеспечению доступ к функциональным возможностям устройства. Пользователю также может потребоваться получить несколько AC от разных эмитентов для использования определенной услуги. Например, компания выдает одному из своих сотрудников корпоративный AC, определяющий инженерный отдел как рабочую область. Однако для доступа к инженерным данным сотруднику также требуется AC, подтверждающий разрешение на доступ, от руководителя инженерного отдела. В этом примере ресурс инженерных данных должен быть предварительно оснащен открытыми ключами эмитентов как корпоративного, так и AC инженерного отдела.

Содержание сертификата типового атрибута

Версия: версия сертификата. Владелец: владелец сертификата. Эмитент: издатель сертификата. Алгоритм подписи: алгоритм, используемый для подписи сертификата. Серийный номер: уникальный номер, присвоенный эмитентом при выдаче. Срок действия: период действия сертификата. Атрибуты: атрибуты, связанные с владельцем сертификата. Значение подписи: подпись эмитента от всех вышеуказанных данных.

Преимущества

Используя атрибутный сертификат, хосту службы или ресурса не требуется поддерживать список контроля доступа, который может быть значительным, или постоянно находиться в сети для доступа к центральному серверу, как это происходит при использовании Kerberos. Это аналогично концепции возможностей, где право (или права) на использование службы или ресурса хранится не в самой службе или ресурсе, а у пользователей с использованием механизма защиты от подделки.