COM 安全默认值

可以为应用程序使用 COM 安全默认值,而不是指定自己的安全设置。 在这种情况下,COM 将初始化和管理安全性。 无需配置注册表或调用程序中的任何安全功能。

但是,如果已设置或修改某些注册表命名值,COM 使用的安全默认值将受到影响。 下面的列表描述了 COM 安全默认值,并说明了注册表设置对某些值的影响。

以下是 COM 使用的默认安全值:

  • 默认安全服务提供程序是由 COM 确定为与环境最兼容的提供程序。 COM 选择 Kerberos v5 协议或 NTLMSSP,其中 Kerberos 协议是默认选择。 未将 Schannel 提供的任何协议选择为默认值。
  • 系统通过用户名和密码标识调用方,并自动创建安全系统使用的标识令牌。
  • 如果 LegacyAuthenticationLevel 命名值存在并且已设置其值,则使用该值。 否则,在 connect (RPC_C_AUTHN_LEVEL_CONNECT) 设置身份验证级别。 此级别意味着在客户端对服务器进行首次调用时,COM 会执行身份验证检查。 如果客户端通过检查,则不会进行进一步的身份验证。 还可以在 AppID 项下设置 AuthenticationLevel 值。
  • 如果 LegacyImpersonationLevel 命名值存在并且已设置其值,则使用该值。 否则,将模拟级别设置为 identify (RPC_C_IMP_LEVEL_IDENTIFY)。 客户端向服务器授予模拟权限。 标识级别意味着服务器可以获取客户端的标识。 服务器可以模拟客户端进行访问控制列表 (ACL) 检查,但不能作为客户端访问系统对象。 有关详细信息,请参阅模拟级别掩蔽
  • 如果 AppID 下的 AccessPermission 命名值存在且已设置,则使用该值。 否则,COM 将检查是否有 DefaultAccessPermission 条目。 如果存在,则使用该值。 如果此值不存在,COM 将构造一个 ACL,用于向服务器标识和本地系统授予权限。
  • 如果 AppID 下的 SRPTrustLevel 命名值存在且已设置,则使用该值。 否则,将软件限制策略 (SRP) 信任级别设置为 Disallowed (SAFER_LEVELID_DISALLOWED),这指示应用程序在受约束的环境中运行,并且禁止访问用户的任何安全敏感用户特权。

COM 中的安全性