20.5. Прямая авторизация
351
данных со списком контроля доступа, который привязывает имена к разре-
шениям. И наконец, третий объект нападения — путаница в именах. Однако
понятие имени, как уже отмечалось, весьма расплывчатое. Как определить,
является ли имя, указанное в списке контроля доступа, тем самым именем,
что фигурирует в сертификате? И как по ошибке не присвоить двум разным
людям одно и то же имя?
Если вы проанализируете эту ситуацию, то поймете, что в данном слу-
чае техническое проектирование следует наивной формулировке требований
пользователей. Эта
проблема рассматривается в терминах идентификации
владельца ключа и предоставления доступа тому или иному человеку — имен-
но так поступают охранники в офисе. Автоматизированные системы могут
использовать гораздо более прямой подход. Дверному замку все равно, кто
именно держит в руках ключ. Он пропустит в помещение любого, у кого этот
ключ есть.
20.5
Прямая авторизация
Намного эффективнее привязать разрешения непосредственно к ключу,
используя для этого инфраструктуру открытого ключа. Сертификат боль-
ше не будет привязывать ключ к имени; вместо этого он связывает ключ
с набором разрешений [27].
Все системы, использующие сертификаты инфраструктуры открытого
ключа, теперь могут непосредственно решать, предоставлять доступ или нет.
Для этого им достаточно взглянуть на сертификат и выяснить, обладает ли
соответствующий ключ необходимыми разрешениями. Это прямой и простой
метод.
Прямая авторизация избавляет от необходимости поддерживать списки
контроля доступа и работать с именами, тем самым устраняя соответствую-
щие объекты нападения. Правда, некоторые из этих
проблем вновь всплывут
на стадии выдачи сертификатов. Кто-то должен определить, какому пользо-
вателю будет разрешено осуществлять какие действия, и гарантировать, что
это соответствие будет правильно закодировано в сертификате. База дан-
ных всех этих соответствий станет эквивалентом списка контроля доступа,
но атаковать ее будет намного сложнее. Во-первых, принятие подобных ре-
шений легко распределить между несколькими людьми, что позволяет изба-
виться от централизованной базы данных и всех уязвимых мест, связанных
с ее наличием. Лица, принимающие решения, могут просто выдать пользо-
вателю соответствующий сертификат, не прибегая к развертыванию какой-
либо дополнительной инфраструктуры и обеспечению ее безопасности. Во-
вторых, это позволяет снизить зависимость процесса выдачи сертификатов