使用安全包

安全支持提供程序接口 (SSPI) 可用于以下安全包

Kerberos 和 NTLM 协议作为Secur32.dll安全支持提供程序的安全包实现, (SSP) 随操作系统一起提供。 默认情况下,当系统启动时, 本地安全机构 会加载对 Kerberos 和 NTLM 身份验证的支持 (LSA) 。 在Windows服务器或Windows域中,可以使用包对网络登录和客户端/服务器连接进行身份验证。 使用哪一个取决于连接的另一端的计算机的功能。 如果可用,则始终首选 Kerberos 协议。

建立交互式用户的安全上下文后,用户的安全上下文中运行的进程可以加载 Kerberos 或 NTLM 包的另一个实例,以支持交换、签名、验证、加密和解密消息。 但是,除了 LSA 之外,任何进程都不允许访问凭据缓存中的 会话密钥 或票证。

系统服务和传输级别应用程序通过 SSPI 访问 SSP,它提供用于枚举系统上可用的安全包、选择包和使用该包获取经过身份验证的连接的功能。

SSPI 中的方法是开发人员无需知道特定 安全协议的详细信息即可使用的通用例程。 例如,当客户端/服务器连接经过身份验证时:

  1. 连接客户端上的应用程序使用 SSPI 函数 InitializeSecurityContext (General) 凭据发送到服务器。
  2. 连接服务器端的应用程序使用 SSPI 函数 AcceptSecurityContext (General) 进行响应。
  3. 对连接进行身份验证后,服务器上的 LSA 使用来自客户端的信息来生成 访问令牌
  4. 然后,服务器可以调用 SSPI 函数 ImpersonateSecurityContext ,将访问令牌附加到服务的模拟线程。

Kerberos 安全包

Kerberos 安全包 基于 Kerberos 身份验证协议

如果 Kerberos 协议用于对客户端/服务器连接进行身份验证, 则 InitializeSecurityContext (Kerberos) 会生成包含来自客户端KRB_AP_REQ消息的 GSSAPI 消息。 AcceptSecurityContext (Kerberos) 然后生成包含来自服务器的KRB_AP_REP消息的 GSSAPI 消息。

有关在实现 Kerberos 协议的幕后执行的步骤的背景信息,请参阅 Microsoft Kerberos

所有分布式服务都使用 SSPI 访问 Kerberos 协议。 Kerberos 协议用于身份验证的方式的部分列表包括:

  • 打印后台处理程序服务
  • CIFS/SMB 远程文件访问
  • Active Directory 的 LDAP 查询
  • 分布式文件系统管理和引荐
  • IPsec 主机到主机安全机构身份验证
  • 网络服务质量的预留请求
  • 用于Internet Information Services的 Intranet 身份验证
  • 使用经过身份验证的 RPC 进行远程服务器或工作站管理
  • 针对域用户和计算机的证书服务证书请求

NTLM 安全包

NTLM 安全包基于 NTLM 身份验证协议。