`
ruilin215
  • 浏览: 1148350 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

了解一下NTLM

 
阅读更多

NTLM 在客户机与服务器之间提供身份认证的安全包。

NTLM 身份验证协议 是 质询/应答身份验证协议,是Windows NT 4.0 及其早期版本中用于网络身份验证的默认协议。Windows 2000 中仍然支持该协议,但它不再是默认的。

NTLM身份验证过程:

ntlm 是用于 Windows NT 和 Windows 2000 Server 工作组环境的身份验证协议。它还用在必须对 Windows NT 系统进行身份验证的混合 Windows 2000 Active Directory 域环境中。当 Windows 2000 Server 转换为不存在下层 Windows NT 域控制器的本机模式时,禁用 NTLM.然后 Kerberos v5 变成企业级的默认身份验证协议。

ntlm 身份验证机制:



http://dotnet.chinaitlab.com/UploadFiles_6597/200608/20060808164125589.gif


NTLM 质询/应答机制


下面概述质询/应答机制:

· 用户请求访问。用户尝试通过提供用户凭据登录到客户端。登录前,客户端计算机缓存密码的哈希值并放弃密码。客户端向服务器发送一个请求,该请求包括用户名以及纯文本格式的请求。

· 服务器发送质询消息。服务器生成一个称为质询的 16 字节随机数(即 NONCE),并将它发送到客户端。

· 客户端发送应答消息。客户端使用由用户的密码生成的一个密码哈希值来加密服务器发送的质询。它以应答的形式将这个加密的质询发回到服务器。

· 服务器将质询和应答发送到域控制器。服务器将用户名、原始质询以及应答从客户端计算机发送到域控制器。

· 域控制器比较质询和应答以对用户进行身份验证。域控制器获取该用户的密码哈希值,然后使用该哈希值对原始质询进行加密。接下来,域控制器将加密的质询与客户端计算机的应答进行比较。如果匹配,域控制器则发送该用户已经过身份验证的服务器确认。

· 服务器向客户端发送应答。假定凭据有效,服务器授予对所请求的服务或资源的客户端访问权。


Kerberos 身份验证的优势:

与 NTLM 身份验证相比,Kerberos 身份验证具有以下优势:

· 相互身份验证。当客户端使用 Kerberos v5 协议对特定服务器上的特定服务进行身份验证,Kerberos 为客户端提供网络上恶意代码不会模拟该服务的保证。

· 委托支持。使用 Kerberos 身份验证对客户端进行身份验证的服务器可以模拟这些客户端,并使用该客户端的安全上下文访问网络资源。

· 性能。Kerberos 身份验证提供优于 NTLM 身份验证的改进的性能。

· 简化的信任管理。具有多个域的网络不再需要一组复杂的显式、点对点信任关系。

· 互操作性。Microsoft 实现的 Kerberos 协议基于向 Internet 工程任务组 (IETF) 推荐的标准跟踪规范。因此,Windows 2000 中协议的实现为与其他网络的互操作奠定了基础(其中 Kerberos 版本 5 用于身份验证)。

kerberos 身份验证机制

Kerberos 身份验证协议的简化视图:

http://dotnet.chinaitlab.com/UploadFiles_6597/200608/20060808164126557.gif


Kerberos 身份验证


当客户端对网络服务进行身份验证之后,kerberos v5 协议遵循以下步骤:

· 客户端从 KDC 请求 TGT.用户试图通过提供用户凭据登录到客户端。客户端计算机上的 Kerberos 服务向密钥发行中心 (KDC) 发送一个 Kerberos 身份验证服务请求。该请求包含用户名、请求票证授予票证(ticket-granting ticket,TGT)所获取的服务信息,以及使用用户的长期密钥(即密码)加密的时间戳。

注 在 Windows 2000 Server 或 Windows Server 2003 操作系统上,域控制器充当 KDC,而 Active Directory 宿主安全帐户数据库。

· 身份验证服务发送加密的 TGT 和会话密钥。KDC 为来自 Active Directory 的用户获取长期密钥(即密码),然后解密随请求一起传送的时间戳。如果该时间戳有效,则用户是真正的用户。KDC 身份验证服务创建一个登录会话密钥,并使用用户的长期密钥对该副本进行加密。然后,该身份验证服务创建一个 TGT,它包括用户信息和登录会话密钥。最后,该身份验证服务使用自己的密钥加密 TGT,并将加密的会话密钥和加密的 TGT 传递给客户端。

· 客户端从 TGT 请求服务器访问。客户端使用其长期密钥(即密码)解密登录会话密钥,并在本地缓存它。此外,客户端还将加密的 TGT 存储在它的缓存中。访问网络服务时,客户端向 KDC 票证授予服务(ticket-granting service,TGS)发送一个包含信息的请求,这些信息包括用户名、使用用户登录会话密钥加密的验证者消息、TGT,以及用户想访问的服务(和服务器)名称。

· TGS 发送加密的会话密钥和票证。KDC 上的 TGS 使用自己的密钥解密 KDC 并提取登录会话密钥。它使用该登录会话密钥解密验证者消息(通常是时间戳)。如果验证者消息成功解密,TGS 从 TGT 提取用户信息,并使用用户信息创建一个用于访问该服务的服务会话密钥。它使用该用户的登录会话密钥对该服务会话密钥的一个副本进行加密,创建一个具有服务会话密钥和用户信息的服务票证,然后使用该服务的长期密钥(密码)对该服务票证进行加密。然后,TGS 将加密的服务会话密钥和服务票证添加到客户端。

· 客户端发送服务票证。客户端访问服务时,向服务器发送一个请求。该请求包含验证者消息(时间戳),该消息使用服务会话密钥和服务票证进行加密。

· 服务器发送加密的时间戳以进行客户端验证。服务器解密服务票证并提取服务会话密钥。通过使用服务会话密钥,服务器解密验证者消息(时间戳)并计算它。如果验证者通过测试,则服务器使用服务会话密钥对验证者(时间戳)进行加密,然后将验证者传回到客户端。客户端解密时间戳,如果该时间戳与原始时间戳相同,则该服务是真正的,客户端继续连接。

服务的主要名称

kerberos v5 身份验证协议之所以使用服务的主要名称 (SPN),原因如下:

· 支持相互身份验证。

· 允许一个客户端请求票证,进而允许该客户端与特定服务通讯。

例如,如果某个客户端需要获得一个票证,并对在侦听端口 4766 运行的计算机 (myserver) 上的特定服务 (myservice) 进行身份验证,则该客户端使用根据该信息构造的名称从 KDC 请求一个票证,如下所示:

MyService/MyServer:4766在 Active Directory 中注册的 SPN 在该名称和运行所请求的服务的域帐户之间维护一个映射。通过使用该机制,恶意用户难以在网络上模拟服务。恶意用户必须禁用实际服务并从该网络移除实际服务器。然后,恶意用户必须向网络中添加一台同名的新计算机并公开重复的服务。由于客户端使用具有相互身份验证的 Kerberos v5 协议,因此该客户端将无法使用重复的服务,除非它可以提供配置实际服务进行运行的域帐户的密码。

分享到:
评论

相关推荐

    PyPI 官网下载 | requests_ntlm2-6.2.4.tar.gz

    requests_ntlm2库正是实现了这些步骤,使得Python开发者无需深入了解NTLM的复杂性,也能轻松处理相关的认证需求。 requests_ntlm2库的核心功能在于其集成到requests库中,提供了简单易用的接口。例如,通过设置...

    ntlm验证Java代码

    NTLM(NT LAN Manager)是一种身份验证协议,广泛用于Windows网络环境,特别是在与Microsoft Active Directory集成的环境中。...了解并掌握NTLM认证对于在Java环境中访问Windows域服务或资源至关重要。

    AD域单点登陆NTLM

    下面我们将详细探讨如何在Java环境中利用NTLM协议集成AD域进行登录,并了解相关文件的作用。 首先,让我们理解NTLM协议。NTLM是基于挑战-响应机制的身份验证协议,它不依赖于开放的密钥基础设施,而是依靠服务器和...

    NTLM认证基本原理及编程简介

    NTLM 认证基本原理及编程简介 NTLM 认证是一种广泛使用的身份验证机制,它在 Windows NT 系统中广泛应用。NTLM 认证机制是基于挑战/响应模式的...了解 NTLM 认证的基本原理和编程简介对于开发者和系统管理员非常重要。

    绕过NTLM认证方式的另一种方法.doc

    ### 绕过NTLM认证方式的另一种方法 #### 背景与意义 NTLM (NT LAN Manager) 是一种由...对于网络安全研究人员而言,了解这种方法可以帮助更好地评估系统的安全性,同时也能启发更多关于如何提高系统安全性的思考。

    信息安全_数据安全_NTLM_Relay_Is_Dead_Long_Live_NTL.pdf

    信息安全和数据安全是信息技术领域中的核心议题,它们在保障个人、企业乃至国家安全方面发挥着至关...通过对NTLM中继攻击的了解和防御,我们可以更好地理解和应对基于NTLM协议的安全威胁,从而提高整体的信息安全性。

    利用ActiveX通过NTLM认证的实例+讲解

    首先,让我们了解ActiveX。ActiveX是微软推出的一种技术,用于构建富客户端应用程序,尤其是Web应用程序。它允许网页嵌入控件,这些控件可以执行各种功能,如播放视频、运行小游戏或进行复杂的用户交互。然而,由于...

    windows登录口令存储所使用的LM和NTLM散列函数

    在Windows操作系统中,为了保护用户的登录口令不以明文形式存储,系统采用了散列函数进行加密处理。...在源程序分析中,我们不仅可以了解这些算法的实现,还可以探索如何优化和改进现有的认证机制。

    Python库 | ntlm_info-0.0.1-py3-none-any.whl

    在深入探讨这个库之前,我们需要了解NTLM的基本概念。 NTLM是一种身份验证协议,主要用于Windows网络环境,尤其是在不支持或禁用Kerberos的情况下。它通过三个消息交换过程来确认用户的身份,这些消息被称为类型1、...

    Python库 | requests_ntlm2-0.0.1-py2.py3-none-any.whl

    在开发过程中,了解如何处理不同类型的认证协议是非常重要的,特别是对于那些需要与企业内部系统交互的应用程序,这些系统往往使用NTLM来保护其资源。`requests_ntlm2`库为Python开发者提供了一种简洁、易于集成的...

    NTLM auth module for Apache/Unix-开源

    在部署和使用`mod_ntlm2-0.1`时,开发者和系统管理员需要了解如何正确配置Apache服务器,包括安装模块、编辑配置文件(如httpd.conf),以及可能需要的SSL/TLS设置,以确保数据传输的安全性。同时,他们还需要熟悉...

    cypress-ntlm-auth:赛普拉斯的Windows身份验证插件

    在阅读介绍,了解它是否适​​合您。 (剧透-是的! ) 是否要对其他内容使用NTLM或协商身份验证? 该库的某些部分应易于重用,ntlm-proxy与应用程序无关,并且应与Selenium或其他解决方案一起使用-但是您必须...

    px:HTTP代理服务器以通过NTLM代理自动进行身份验证

    Px 什么是Px?... Microsoft提供了一个很好的起点来了解NTLM工作原理。 对于同样如此(警告:太长了!) 安装 Px可以通过多种方式获得: 从页面下载最新的二进制ZIP。 下载后,解压缩到所选的文件夹

    WinPcap操作.rar

    通过学习和理解这些源码,开发者不仅可以掌握WinPcap的基本用法,还能了解到如何在易语言环境下进行网络编程,对于提升网络开发技能和深入理解网络底层原理具有很大帮助。同时,这也为自定义网络工具的开发提供了...

    拒绝超长函数,从两个curl远程漏洞说起.pdf

    理解这些漏洞的工作原理,需要了解NTLM认证的背景。NTLM是一种常见于Windows环境的身份验证协议,用于本地网络和代理服务器的认证。尽管需要身份验证信息,但在这些漏洞中,黑客并不关心客户端提供的具体认证信息,...

    解决IE7、IE8、火狐浏览器需要用户名密码进行本地测试的问题

    解决IE7、IE8、火狐浏览器需要用户名密码进行本地测试的问题需要我们对IIS 5.1、NTLM身份验证机制和浏览器设置有深入的了解。通过对这些技术的理解,我们可以更好地解决这个问题,并提高我们的工作效率。

    突破企业网络新边界-身份认证协议攻防.pdf

    首先,让我们了解身份认证协议的相关概念。身份认证协议是为了验证用户身份、权限、所属网络组、可访问的资产等信息的安全机制。常见的身份认证协议包括Kerberos、OIDC、SAML等。这些协议的攻击面巨大且影响范围极广...

    基于telnet认证攻击的教程

    【基于telnet认证攻击的教程】 本文将详细阐述如何利用telnet进行认证攻击,特别是针对Windows 2000和XP系统的NTLM(Windows NT挑战/响应验证机制)认证...了解这些技术有助于提高网络安全意识,防止未经授权的访问。

    QT测试tcp通讯SOCKET实例程序

    通过这个实例,开发者可以了解如何在QT环境下创建TCP客户端和服务器,理解TCP连接的建立过程,以及如何通过SOCKETS发送和接收数据。同时,这也为更复杂的网络应用,如HTTP、FTP等协议的实现奠定了基础。在实际开发中...

    win7访问xp的共享,帐号和密码都正确,却总是出现让重输入密码的对话框[文].pdf

    因此,在进行这些修改之前,确保了解可能的风险并考虑系统的整体安全策略。 总之,当Windows 7系统遇到访问Windows XP共享资源时的密码验证问题,通常可以通过调整身份验证策略或关闭密码保护共享来解决。同时,...

Global site tag (gtag.js) - Google Analytics