zoukankan      html  css  js  c++  java
  • Windows安全认证是如何进行的?[NTLM篇](转发)

     原文:https://www.cnblogs.com/artech/archive/2011/01/25/NTLM.html

    image

    上篇》中我们介绍Kerberos认证的整个流程。

    在允许的环境下,Kerberos是首选的认证方式。在这之前,Windows主要采用另一种认证协议——NTLM(NT Lan Manager)。NTLM使用在Windows NT和Windows 2000 Server(or later)工作组环境中(Kerberos用在域模式下)。

    在AD域环境中,如果需要认证Windows NT系统,也必须采用NTLM。

    较之Kerberos,基于NTLM的认证过程要简单很多。

    NTLM采用一种质询/应答(Challenge/Response)消息交换模式,右图反映了Windows2000下整个NTLM认证流程。

    步骤一

    用户通过输入Windows帐号和密码登录客户端主机。在登录之前,客户端会缓存输入密码的哈希值,原始密码会被丢弃(“原始密码在任何情况下都不能被缓存”,这是一条基本的安全准则)。

    成功登录客户端Windows的用户如果试图访问服务器资源,需要向对方发送一个请求。该请求中包含一个以明文表示的用户名。

    image

    步骤二

    服务器接收到请求后,生成一个16位的随机数。这个随机数被称为Challenge或者Nonce。服务器在将该Challenge发送给客户端之前,该Challenge会先被保存起来。Challenge是以明文的形式发送的。

    image

    步骤三

    客户端在接收到服务器发回的Challenge后,用在步骤一中保存的密码哈希值对其加密,然后再将加密后的Challenge发送给服务器。

    image

    步骤四

    服务器接收到客户端发送回来的加密后的Challenge后,会向DC(Domain)发送针对客户端的验证请求。该请求主要包含以下三方面的内容:客户端用户名;客户端密码哈希值加密的Challenge和原始的Challenge。

    image

    步骤五、六

    DC根据用户名获取该帐号的密码哈希值,对原始的Challenge进行加密。如果加密后的Challenge和服务器发送的一致,则意味着用户拥有正确的密码,验证通过,否则验证失败。DC将验证结果发给服务器,并最终反馈给客户端。

    Windows安全认证是如何进行的?[Kerberos篇]

    Windows安全认证是如何进行的?[NTLM篇]

  • 相关阅读:
    SQL SERVER 2008的元数据视图
    SQL Server 2008 中的 XML 功能
    SQL SERVER 2008的层次结构支持
    C#打包程序
    SQL SERVER 2008的top增强
    SQL SERVER导出数据字典
    SQL SERVER 2008的转置函数PIVOT
    SQL SERVER 2008的SQLCMD模式
    SQL SERVER 2008传递表值参数
    SQL Server 2005导出表中数据的SQL脚本形式(即INSERT语句)
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/13612562.html
Copyright © 2011-2022 走看看