Защита приложений через COM-интерфейсы основана на безопасности, предоставляемой Windows и базовыми механизмами безопасности RPC. 3 Она включает проверку подлинности (удостоверения вызывающего абонента) и авторизацию (разрешён ли вызывающий объект выполнять действия). 3
В COM есть два основных типа безопасности: 3
- Безопасность активации. 3 Определяет, может ли клиент запускать сервер вообще. 3
- Безопасность вызовов. 3 Используется после запуска сервера для управления доступом к его объектам. 3
Процесс защиты происходит так: 1
- В клиентском процессе выполняется код под учётной записью с ограниченными правами. 1
- Когда нужно вызвать метод удалённого COM-объекта, управление передаётся в proxy. 1
- Proxy сериализует переданные ему параметры, записывает информацию об учётной записи клиента, устанавливает необходимые параметры защиты и передаёт управление DCOM. 1
- DCOM делает сетевой вызов и передаёт управление Stub-коду, который восстанавливает полученные данные и вызывает метод COM-объекта. 1
- Код COM-объекта выполняется в контексте защиты сервера, что даёт ему больше свободы. 1
- Сервер выполняет некоторые действия и возвращает управление клиенту. 1
- После этого клиент продолжает выполнять свой код в своём контексте защиты. 1
По сути, на время клиент получает права более привилегированной учётной записи, но эта мощь ограничена сервисом, предоставляемым сервером. 1 Это не позволяет клиенту вмешаться в поведение системы и сделать что-либо нежелательное. 1