欢迎光临
我们一直在努力

Internet开发人员的验证和安全技术(8570)(转自microsoft)(三)

建站超值云服务器,限时71元/月

windows nt挑战/响应(challenge/response)

windows nt挑战/响应是确定发送请求的人员的最安全的方式。挑战/响应的处理流程是所有使用iis的人员必须掌握的。(我们实际是围绕着windows nt委托(delegation)过程进行,但在挑战/响应后有委托的最好说明。)

现在说明一个完全不同的技术: "散列(hash)"

windows nt挑战/响应验证过程中并不通过网络发送密码,因为密码可能会被截获和破译。windows nt使用的是一个类似于绞肉机的不可逆算法。输入内容后得到一个散列内容。windows nt使用internet标准md4散列算法生成16字节(128位)的散列值。(理论上)不可能使用散列值和算法在数学上逆转加密过程而得到原密码。也就是说,密码作为了一个“私人密钥(private key)”。只有拥有该密钥的人才能产生一个特定的散列值。windows nt域控制器有一个数据库存储了由用户密码产生的用户散列值,但并未存储用户密码。 (注意密码和散列值的分离不会使域控制器减少受到黑客攻击的可能,因为有时散列值也可以用作密码的等效物。)

iis与挑战/响应验证过程

如果下面条件满足时,iis将使用挑战/响应验证:

如果internet服务管理器的www属性对话框的“允许匿名”选项没有被选中,iusr帐户没有足够的许可权访问所请求的资源,或者执行代码禁止访问。
在internet服务管理器的www属性对话框中选择windows nt challenge/response
浏览器在挑战/响应验证方式下发送请求 (当前浏览器中只有internet explorer支持挑战/响应验证)
当我们说iis尝试验证用户时,iis所做的工作非常简单。它向浏览器发回一个"http 401 access denied"消息,以及它接受的验证方法列表。与一个高级俱乐部的保镖非常相似, iis这时会说:"you cant get what you want without identifying yourself. by the way, i accept the following methods of identification.(没有确认您的身份,您不能获得所需要的内容。另外,我支持下列验证方法)"。iis接受的两种验证方法是挑战/响应验证和基本验证。具体使用哪种方法取决于在iis的internet服务管理器www属性对话框中的选择。如果两种验证方法都被启用,对于internet explorer将一定会使用挑战/响应验证,而对其它浏览器则会使用基本验证。

图1从包的角度显示了如何在没有看到用户密码的情况下对他(她)进行windows 挑战/响应验证。

图1. windows nt 挑战/响应验证过程

使用随机散列的挑战信息的原因

增加使用密码散列值加密挑战信息的额外步骤,而不是将简单的散列值传送到域,可以使散列值更难以被截获破译而作为密码使用。因为挑战需要用户密码散列值来产生新的散列值,它证实了用户至少拥有用户散列值 (而且可能还有用户密码)。所有的这些不用通过电线传送密码。实质上,密码成为了私人密钥而随机值成为了不断变化的公共密钥。

委托(delegation)!

委托是大多数实现windows nt安全和iis验证的人员所遗漏的内容,甚至当委托对于其考虑的安全web服务器环境十分关键的人员,或是简单希望web服务器能够运行的人员也是如此。当iis web服务器扮演一个使用挑战/响应验证的用户时,iis服务器并没有用户的密码或密码散列值。iis只看到了传送到域控制器的加密的挑战。当使用asp页访问另一台windows nt计算机(比如远程数据库服务器)的资源时很可能遇到这种情况。远程服务器向iis发送挑战信息以验证自己所扮演的用户,而iis由于无法使用用户散列值加密任何发送给它的挑战信息,所以无法进行验证。因而远程服务器被禁止访问,而你的数据库驱动的web页将运行失败。这是windows nt 4.0 (和以前版本)安全模型的一个限制,不是iis的原因。使用windows nt挑战/响应验证,一个依靠扮演的进程将无法像一个文本文件一样访问另一台windows nt计算机上的太多内容。

如果你希望确定何时需要考虑委托,而如果web服务器拥有用户密码或散列值,请询问自己。在政策上,你应“根据财力(follow the money)”。在委托上,你应“根据密码(follow the password)”!

对此可以有一个类比,行政主管委托一个秘书代其签名并在其它方面替其行使职责。当用户使用挑战/响应验证时,用户无法委托iis完全按照其利益工作。这个特别的限制可能在windows nt 5.0发布后会得到完美解决,因为那时windows nt集成了kerberos 验证系统 (该系统为mit的athena 项目(project athena)开发)。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Internet开发人员的验证和安全技术(8570)(转自microsoft)(三)
分享到: 更多 (0)