SSPI

安全支持提供者接口(英語:Security Support Provider Interface,缩写SSPI)是Microsoft Windows操作系统中用于执行各种安全相关操作(如身份验证)的一个Win32 API

SSPI的功能是作为众多安全支持提供程序(SSP)的通用接口[1]:安全支持提供者(Security Support Provider)是可以为应用程序提供一种或多种安全功能包的动态链接库(dynamic-link library)。

Windows SSP

下列SSP已经在Windows中预装:

  • NTLM英语NTLMSSP(Windows NT 3.51中引入)(msv1_0.dll) - 为Windows 2000之前的客户端-服务器域和非域身份验证(SMB/CIFS)提供NTLM英语NTLM质询/响应身份验证。[2]
  • Kerberos(Windows 2000中引入,Windows Vista中更新为支持AES[3] (kerberos.dll) - Windows 2000及更高版本中首选的客户端-服务器域相互身份验证。[4]
  • Negotiate英语SPNEGO(Windows 2000中引入)(secur32.dll) - 选择Kerberos,如果不可用则选择NTLM协议。协商SSP提供單一登入能力,有时称为集成Windows身份验证英语Integrated Windows Authentication(尤其是用于IIS时)。[5]在Windows 7及更高版本中,NEGOExts引入了协商使用客户端和服务器上支持的已安装定制SSP进行身份验证。
  • 安全通道(也称SChannel) - Windows 2000中引入,Windows Vista中更新为支持更强的AES加密和ECC[6]该提供者使用SSL/TLS记录来加密数据有效载荷。(Schannel.dll)
  • PCT英语Private Communications Technology(过时)和微软的TLS/SSL - 公开密钥加密 SSP为通过互联网的客户端和服务器进行身份验证,提供加密和安全通信。[7]Windows 7中更新为支持TLS 1.2。
  • 摘要SSPWindows XP中引入)(wdigest.dll) - 在Windows与Kerberos不可用的非Windows系统间提供基于HTTP和SASL身份验证的质询/响应。[8]
  • 凭据 (CredSSP)(Windows Vista中引入,Windows XP SP3上也可用)(credssp.dll) - 为远程桌面连接提供单点登录(SSO)和网络级身份验证[9]
  • 分布式密码验证(DPA) - (Windows 2000中引入)(msapsspc.dll) - 提供使用数字证书完成的互联网身份验证。[10]
  • 用户对用户的公开密钥加密技术(Public Key Cryptography User-to-User,PKU2U)(Windows 7中引入)(pku2u.dll) - 在不隶属域的系统之间提供使用数字证书的对等身份验证。

比较

SSPI是GSSAPI英语Generic Security Services Application Program Interface的一个专有变体,进行了扩展并具有许多特定于Windows的数据类型。最早随Windows NT 3.51Windows 95中的NT LAN管理器英语NTLM安全支持提供程序英语NTLMSSP(NTLMSSP)出现。在Windows 2000中,增加了一个Kerberos 5的实现,使用符合官方协议标准RFC 1964 (Kerberos 5 GSSAPI机制)的令牌格式并提供提供与其他供应商的Kerberos 5实现的线级互操作性。

SSPI生成和接受的令牌大多与GSS-API兼容,因此Windows上的SSPI客户端可能能够根据具体情况与Unix上的GSS-API服务器进行身份验证。SSPI的一个重要缺点是缺乏通道绑定,这使得不可能做到一些GSSAPI的互操作性。

互联网工程任务组(IETF)定义的GSSAPI与微软SSPI的另一个根本区别是“扮演英语Access token#Types of tokens”概念。在这种模式下,一个服务器可以切换成经过身份验证客户端的“完整”特权并进行操作,以便操作系统执行完整的存取控制检查。所持权限高于或低于原始权限全取决于哪个客户端在连接/验证。在传统(GSSAPI)模型中,当服务器运行在服务帐户下时,其不能提升自己的特权,并必须以特定客户端或应用程序的方式执行访问控制。而在Windows Vista中通过将扮演限制在选定的服务帐户,限制了“扮演”概念带来的显著安全隐患。[11]

参考资料

  1. ^ SSP Packages Provided by Microsoft. [2017-11-05]. (原始内容存档于2017-02-18). 
  2. ^ User Authentication - Security (Windows 2000 Resource Kit Documentation) : MSDN. [2017-11-05]. (原始内容存档于2017-11-07). 
  3. ^ Kerberos Enhancements in Windows Vista: MSDN. [2017-11-05]. (原始内容存档于2017-08-26). 
  4. ^ Windows 2000 Kerberos Authentication. [2017-11-05]. (原始内容存档于2017-08-26). 
  5. ^ Windows Authentication. [2017-11-05]. (原始内容存档于2017-11-07). 
  6. ^ TLS/SSL Cryptographic Enhancements in Windows Vista. [2017-11-05]. (原始内容存档于2017-10-10). 
  7. ^ Secure Channel: SSP Packages Provided by Microsoft. [2017-11-05]. (原始内容存档于2012-08-29). 
  8. ^ Microsoft Digest SSP: SSP Packages provided by Microsoft. [2017-11-05]. (原始内容存档于2017-11-07). 
  9. ^ Credential Security Service Provider and SSO for Terminal Services Logon. [2017-11-05]. (原始内容存档于2017-11-07). 
  10. ^ DCOM Technical Overview: Security on the Internet. [2017-11-05]. (原始内容存档于2017-11-11). 
  11. ^ Windows Service Hardening: AskPerf blog. [2017-11-05]. (原始内容存档于2010-04-02). 

外部链接

  • SSPI Reference on MSDN(页面存档备份,存于互联网档案馆
  • SSPI Information and Win32 samples
  • Example of use of SSPI for HTTP authentification
圖形介面
音樂與音效
多媒體
Web
資料存取
網路
通訊
  • 訊息API英语Messaging Application Programming Interface
  • 電話API
  • WCF
管理
元件與模型
函式庫
驱动程序
安全性
.NET
软件工廠
  • EFx Factory英语EFx Factory
  • Enterprise Library英语Microsoft Enterprise Library
  • 複合使用者介面英语Composite UI Application Block
  • CCF英语Microsoft Customer Care Framework
  • CSF英语Microsoft Connected Services Framework
行程間通訊
可協助性
  • Active Accessibility英语Microsoft Active Accessibility
  • 使用者介面自動化英语Microsoft UI Automation
文字與多語系支援
  • DirectWrite
  • 文本服务框架英语Text Services Framework
  • 文本对象模型英语Text Object Model
  • 输入法编辑器
  • 語言介面套件英语Language Interface Pack
  • 多語系使用者介面英语Multilingual User Interface
  • Uniscribe
遊戲開發
协议和技术
公钥基础设施
另见
历史
实现
  • 充气城堡英语Bouncy Castle (cryptography)
  • Botan英语Botan (programming library)
  • cryptlib英语cryptlib
  • GnuTLS
  • JSSE英语Java Secure Socket Extension
  • LibreSSL
  • MatrixSSL
  • NSS
  • OpenSSL
  • mbed TLS
  • RSA BSAFE英语RSA BSAFE
  • SChannel英语Security Support Provider Interface
  • SSLeay
  • Stunnel
  • wolfSSL
公证
漏洞
理论
密码本
  • 受诫礼攻击英语Bar mitzvah attack
协议
  • BEAST英语BEAST (security_exploit)
  • BREACH英语BREACH (security exploit)
  • CRIME
  • DROWN英语DROWN attack
  • Logjam英语Logjam (computer security)
实现