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