SSPI和SSP

SSPI

SSPI(Security Service Provider Interface或Security Support Provider Interface,安全服务提供接口)是Windows定义的一套接口,该接口定义了与安全有关的功能函数,包含但不限于:

  • 身份验证机制
  • 为其他协议提供Session Security(会话安全)机制。Session Security机制可为通信提供数据的完整性校验以及数据的加密、解密功能

PS:SSPI只是定义了接口函数,并没有去实现具体内容

SSP

SSP(Security Service Provider,安全服务提供者)是SSPI的实现者。懂Java的话很容易就能理解SSP和SSPI的关系。
微软自己实现了很多SSP,下面是其中比较典型的:

  • NTLM SSP:Windows NT3.51中引入(msv1_0.dll),为windows 2000之前的客户端-服务器域和非域身份验证(SMB/CIFS)提供NTLM质询/响应身份验证
  • Kerberos SSP: Windows 2000中引入,Windows Vista中更新为支持AES(kerberos.dII),为Windows 2000及更高版本中首选的客户端-服务器域提供相互身份验证。
  • Digest SSP: Windows XP中引人(wdigest.dI),在Windows系统与非Windows系统间提供基于HTTP和SASL身份验证的质询/响应。
  • Negotiate SSP: Windows 2000中引人(secur32.dII),默认选择Kerberos,如果不可用,则选择NTLM协议。Negotiate SSP提供单点登录功能,有时称为集成Windows身份验证(尤其是用于IIS时)。在Windows 7及更高版本中引入了客户端和服务器上支持的已安装定制SSP进行身份验证。

因为SSPI中定义了与Session Security有关的API,所以上层应用利用任何SSP与远程的服务进行身份验证后,此SSP都会为本次连接生成一个随机Key。这个随机Key被称为Session Key。上层应用经过身份验证后,可以选择性地使用这个Key对之后发往服务端或接收自服务端的数据进行签名或加密。在系统层面,SSP就是一个dII,用来实现身份验证等安全功能。不同的SSP,实现的身份验证机制是不一样的,比如NTLM SSP实现的是一种基于质询/响应的身份验证机制,而Kerberos SSP实现的是基于Ticket(票据)的身份验证机制。我们可以编写自己的SSP,然后注册到操作系统中,让操作系统支持我们自定义的身份验证方法。
image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜未至

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值