扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:天新网 来源:天新网 2007年12月15日
细化COM权限
COM服务器应用程序有两类权限,启动权限和访问权限。启动权限是在激活COM服务时授权审核的控制,它在注册表中定义为安全描述。访问权限是在访问COM服务时的授权审核的控制,它定义为由COM体系通过CoInitializeSecurity API提供或在注册表中定义的安全描述。COM访问权限的另一个区别是距离。在SP2之前的Windows XP系统中,当用户存取COM 应用程序时,他们有权在本机或远程使用。但COM应用程序无法提供更细化的控制。SP2 细化了COM 权限,让管理员可根据距离的观念,弹性控制计算机的COM权限原则。也就是分为本地和远程。本地的COM消息通过Local Remote Procedure Call(LRPC)协议传输,远程COM消息则通过Remote Procedure Call (RPC)协议,如TCP。因此,当了解了COM访问的来源,有限制的授权远程的访问,可以一定程度上缓和受到网络攻击的风险。
COM激活是指在客户端通过调用CoCreateInstance或其变体得到COM委托界面的行为。激活权限的一个不利方面是,有时为了满足客户端的请求,COM服务必须在启动状态。启动权限声明了被允许启动COM服务器的用户列表,访问权限则声明了被允许激活COM对象或者当COM服务运行时被允许访问的用户列表。
SP2的另一个改变是访问权限和激活权限的分离以反映两个不同的操作,激活权限从以前的访问类权限ACL移到了启动类权限ACL中。当一个COM界面指针同时相关了激活和启动过程,则激活权限和启动权限逻辑上将属于同一个ACL。这样改变的另一个原因是由于我们通常都在程序中队COM对象的访问权限作代码级的控制,而启动类权限可以在管理单元中方便的设置,把激活权限放在启动类权限ACL中将更有利于管理员对COM对象激活的控制。
权限控制入口(Access Control Entry, ACE)中启动类权限分为4种具体的权限:
访问类权限分为2种具体的权限:
这种COM的安全状态定义可以允许管理员进行更详细的配置。比如可以设置一个COM服务允许本地的所有用户访问,但只有管理员才能远程访问,而只需要对这个COM的安全声明进行配置即可。
兼容性
为了向前的兼容,现有的安全声明项定义为同时允许或拒绝本地和远程访问。也就是说ACE将同时允许本地和远程访问或者同时拒绝本地和远程访问。
对于访问和启动权限,不存在向前的兼容性,只是在激活权限上有一个要注意的地方,在COM服务器的现有的安全声明中如果已设定的启动权限比访问权限有更多限制,而且比客户端启用案例所需的最低需求的限制还多,此时必须修改启动权限ACL,使授权客户端得到合适的权限。
对于使用默认的安全设定的COM应用程序,不存在向前的兼容性问题。对使用COM激活来动态启动的COM应用程序,也不存在向前的兼容性问题,因为启动权限ACL中已经包含了可以激活这个对象的所有用户。如果这些权限没有正确的设置,当COM服务器没有运行,没有激活权限的用户在试图激活这个COM对象时可能会激活失败。
面临最多的兼容性问题将是那些已经通过其他机制启动了的COM应用程序,例如使用资源管理器,服务控制管理启动的COM应用程序。可以通过使用缺省的访问和启动权限覆盖来激活并启动COM服务,或者使用比访问权限更多限制的启动权限来激活并启动。使用缺省的安全覆盖覆盖时,必须核对应用程序特定的启动权限ACL是否给了适当的用户激活权限的授权。如果没有,则必须修改应用程序特定的启动权限,以提供给适当的用户所需的激活授权以保证这些应用程序和Windows组件能够正常的使用COM服务。这些应用程序特定的启动权限储存在注册表中。
如果将升级至Windows XP SP2的系统还原到以前的Service Pack,则经过编辑以允许本地访问,远程访问或两者都允许的ACE都将被解译为同时允许本地和远程访问。经过编辑以拒绝本地存取,远程访问或两者都拒绝的ACE将被解译为同时拒绝本地和远程访问。因此,在卸载Service Pack 2时,必须先验证所有的ACE。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者