链接:http://www.360doc.com/content/12/0615/14/10216164_218320534.shtml

在允许的环境下,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的用户如果试图访问服务器资源,需要向对方发送一个请求。该请求中包含一个以明文表示的用户名。

步骤二

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

步骤三

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

步骤四

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

步骤五、六

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

[转]NTLM身份验证的更多相关文章

  1. Android 与 IIS服务器身份验证

    1)基础验证: /** * 从服务器取图片 * * @param url * @return */ public void getHttpBitmap(final String url) { new ...

  2. 无法在web服务器上启动调试。调试失败,因为没有启用集成windows身份验证

    ----注意:以管理员身份运行VS C#中ASP.NET Web应用程序编译时的错误:无法在web服务器上启动调试.调试失败,因为没有启用集成windows身份验证. 解决:打开IIS,在IIS里查看 ...

  3. IIS 身份验证

    IIS 支持以下身份验证模式: 匿名.如果不需要对客户端进行身份验证(或者使用自定义身份验证机制,如窗体身份验证),则可将 IIS 配置为允许匿名访问.在该事件中,IIS 创建一个 Windows 令 ...

  4. Windows系统HTTP身份验证方法

    当Windows客户端尝试使用HTTP协议访问基于Web的资源时,会在客户端和服务器之间建立"对话".换句话说,服务器告诉客户端,访问资源之前进行身份验证 ,并且服务器还告诉客户端 ...

  5. [翻译] API测试最佳实践 - 身份验证(Authentication)

    API测试最佳实践 - 身份验证 适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了 ...

  6. API测试最佳实践 - 身份验证

    适用等级:高级 1. 概况 身份验证通常被定义为是对某个资源的身份的确认的活动,这里面资源的身份指代的是API的消费者(或者说是调用者).一旦一个用户的身份验证通过了,他将被授权访问那些期待访问的资源 ...

  7. HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”

    转自:http://www.cnblogs.com/geqinggao/p/3270499.html 近来项目需要Web Service验证授权,一般有两种解决方案: 1.通过通过SOAP Heade ...

  8. 关于WEB Service&WCF&WebApi实现身份验证之WCF篇(1)

    WCF身份验证一般常见的方式有:自定义用户名及密码验证.X509证书验证.ASP.NET成员资格(membership)验证.SOAP Header验证.Windows集成验证.WCF身份验证服务(A ...

  9. Asp.Net_Web身份验证

    百度一下”asp.net身份认证“,你会得到很多相关的资料,这些资料通常上来就会介绍诸如”Form认证“”Windows认证“等内容,而没有给出一个完整的流程.初学者对此往往一头雾水,我也曾经被坑过很 ...

随机推荐

  1. 中文分词系列(一) 双数组Tire树(DART)详解

    1 双数组Tire树简介 双数组Tire树是Tire树的升级版,Tire取自英文Retrieval中的一部分,即检索树,又称作字典树或者键树.下面简单介绍一下Tire树. 1.1 Tire树 Trie ...

  2. mysql在update时,从其他select结果集更新表

    需要使用join,例如 select g.id,g.res_count,count(gr.r_id) cnt from mb_game_res gr left join mb_game g on gr ...

  3. mysql关于列转行的想法,以及列求乘集

    mysql列转行可以通过concat,先分组然后连接. show VARIABLES like '%group%' select @@group_concat_max_len SELECT GROUP ...

  4. swun 1766 我的悲剧不可能那么好数

    解题思路: 一向提交特别慎重的我,这题竟然PE了5发左右,放了几天,再回来写,直接1A, 相当的自豪,而且是最优解题者.这题千万要注意,化繁为简,文章只包括大小   写字母和数字,还有空行. #inc ...

  5. 查一下 excel中某一列是否有重复

    另一列中写入 =IF(COUNTIF(C:C,C1)>1,"有重复","") 其余往下拖拉公式 我在想如果可以有不往下拖的呢? 不过好像筛选中也有类似的选 ...

  6. 被投资人“送”入看守所 z

    http://news.cnblogs.com/n/506969/ 拜读了[[畅言]读<被投资人“送”入看守所>一文有感]一文有感,很想跟作者探讨几句.虽然他的看法很有理性,但站在一个刑案 ...

  7. cocos2dx 2.x 版本+Windows+ADT Bundle 配置

    昨天解决了cocos2dx 3.x版本+Windows+ADT Bundle的配置,今天来解决cocos2dx 2.x版本的配置. 整体来说,2.x的配置相对麻烦一点,不过一旦解决了,就一路畅通无阻了 ...

  8. org.unsaved transient instance - save the transient instance before flushing: bug解决方案

    最近开发和学习过程中,遇到很多零碎的知识点,在此简单地记录下: 1.遇如下bug: org.unsaved transient instance - save the transient instan ...

  9. Windows下安装GTK+

    Step 1:到GTK官方网站上下载安装包.有32位的和64位,64位的有这句: Note that these 64-bit packages are experimental. Binary co ...

  10. 基于vagrant工具在win7下免密登录linux

    一.SSH加密方式 SSH采用的是"非对称密钥系统",即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别. 1. 基于口令的安全验证 这种方式使用用户名密码进行联机登录,一般情 ...