6

我必须在http://someserver访问 Web 服务器,它需要一些身份验证。我如何判断它是否使用 NTLM、Kerberos 或其他任何可能的东西?

4

3 回答 3

13

另一种方法是查看标头的前几个字节。

如果它开始于,Negotiate TlR那么您正在通过 NTLM 进行 SPNEGO

如果它开始于,Negotiate YII那么您正在通过 Kerberos 执行 SPNEGO。

授予

于 2010-12-13T23:25:01.390 回答
6

使用Fiddler之类的工具来查看响应标头。服务器将发回一些列出支持的不同安全协议的“WWW-Authenticate”标头。

于 2010-01-27T23:04:20.200 回答
4

扩展格兰特瑟马克的回答:

WWW-Authenticate 标头是 base64 编码的。当它以 TlR 开头时,解码后,我们看到它以 NTLMSSP ( http://msdn.microsoft.com/en-us/library/cc236641.aspx ) 开头,所以我们知道它是 NTLM。

当它以YII开头时,解码后我们看到它以字节0x60,0x82(即Application Constructed Object)开头,那么整个令牌的长度有两个字节,然后是:0x06,0x06,0x2b,0x06,0x01, 0x05、0x05、0x02(即 SPNEGO OID:1.3.6.1.5.5.2)。(http://msdn.microsoft.com/en-us/library/ms995330.aspx)。我们知道这是一个 SPNEGO 代币。

根据 spnego 令牌的长度,WWW-Authenticate 标头可能从 YA 开始到 YP。

卡米尔 & SPL

于 2014-02-04T10:35:48.723 回答