我们最近受到网络团队对AD域控制器捕获的失败的NTLM身份验证的质疑。这些请求是从已加入域的Windows 2008 Server上托管的服务之一触发的。 该服务使用本地系统帐户登录。这是为什么捕获失败的NTLM登录的原因,因为使用域用户登录没有捕获失败的登录。但公司政策不允许域用户登录。
使用Wireshark工具,我们发现请求来自X509Chain对象的Build函数。这是.NET框架提供的默认功能,我们找不到任何有用的支持文档:
部分代码(VB.NET):
Dim chnCerts As X509Chain = New X509Chain()
chnCerts.ChainPolicy.RevocationFlag = X509RevocationFlag.EndCertificateOnly
chnCerts.ChainPolicy.RevocationMode = X509RevocationMode.Online
chnCerts.ChainPolicy.UrlRetrievalTimeout = New TimeSpan(0, 0, 120)
chnCerts.ChainPolicy.VerificationFlags = X509VerificationFlags.NoFlag
If certType = Crypto.CertType.PrivateKeyCert Then
certPrivateValidationStatus = Nothing
chnCerts.Build(certPrivate)
答案 0 :(得分:0)
作为AD和PKI的家伙,我觉得结论很可疑。链验证与NTLM无关。 Certs和CRL(AIA和CDP)应该通过HTTP并使用匿名身份验证。可能是您的本地PKI配置错误,AIA或CDP正在请求身份验证。我很想看到wireshark捕捉......
答案 1 :(得分:0)
检查您的证书属性。它可能已经注册了基于ldap://
的授权信息访问或CRL分发点端点,这些端点由Windows证书服务在证书属性中注册(默认情况下......当它是CA及其'域名附加)。
LDAP端点表示(对于Windows)"在Active Directory"中,因此它尝试访问AD以下载数据。当失败时,它会移动到第二个条目,可能是http://
。 (即使它没有首先列出,Windows可能会更喜欢LDAP到HTTP)
[1]CRL Distribution Point
Distribution Point Name:
Full Name:
URL=ldap:///CN=Our%20Corp%20CA,CN=CRL,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=corp,DC=ourcorp,DC=com?certificateRevocationList?base?objectClass=cRLDistributionPoint
URL=http://corppki/crl/Our%20Corp%20CA.crl
URL=http://crl.ourcorp.com/crl/Our%20Corp%20CA.crl