获取KERBEROS认证方式的用户名的方法、装置和系统.pdf

上传人:62****3 文档编号:1107890 上传时间:2018-03-31 格式:PDF 页数:16 大小:523.11KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110000470.4

申请日:

2011.01.04

公开号:

CN102025748A

公开日:

2011.04.20

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):H04L 29/06申请日:20110104|||公开

IPC分类号:

H04L29/06; H04L29/08

主分类号:

H04L29/06

申请人:

深信服网络科技(深圳)有限公司

发明人:

武昆; 陈俊浩

地址:

518000 广东省深圳市南山区麒麟路1号南山科技创业服务中心418、419

优先权:

专利代理机构:

深圳市顺天达专利商标代理有限公司 44217

代理人:

易钊

PDF下载: PDF下载
内容摘要

本发明涉及获取Kerberos认证方式的用户名的方法、装置和系统,包括:设置代理服务器为集成认证方式;接收代理服务器为响应客户端的访问请求所发送的回复数据包;判断回复数据包是否为预设类型数据包且判断其中是否包含预设字符串;依据判断结果配置所述回复数据包中包含的预设字符串的首字符为预设字符;重新计算TCP校验和并予以替换;发送经配置和重新计算后的回复数据包至客户端,使得客户端将其与代理服务器的认证方式设置为NTLM认证方式;接收客户端发送的认证数据包并从中提取用户名。本发明通过配置或修改数据包中的预设字符串中的预设字符,使得客户端的认证方式设置为NTML认证方式,从而获取到客户端对应的用户名。

权利要求书

1: 一种获取 Kerberos 认证方式的用户名的方法,其特征在于,包括 : 设置代理服务器的用户认证方式为集成认证方式 ; 接收所述代理服务器为响应客户端的访问请求所发送的回复数据包 ; 判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预 设字符串 ; 依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符 ; 重新计算经配置后的所述回复数据包的 TCP 校验和并予以替换 ; 发送经配置和重新计算后的所述回复数据包至所述客户端,使得所述客户端将其与 代理服务器的认证方式设置为 NTLM 认证方式 ; 接收所述客户端发送的认证数据包并从中提取所述客户端的用户名。
2: 根据权利要求 1 所述的方法,其特征在于,所述集成认证方式包括 Kerberos 认证方 式、 NTLM 认证方式和 Negotiate 认证方式。
3: 根据权利要求 1 所述的方法,其特征在于,所述预设类型数据包包括应用层的首 12 字节为 “HTTP/1.1 407” 的数据包和应用层的首 12 字节为 “HTTP/1.1 401” 的数据 包; 其中,判断所述回复数据包是否为预设类型数据包具体包括 :判断所述数据包是否 为应用层的首 12 字节为 “HTTP/1.1 407” 或 “HTTP/1.1 401” 的数据包。
4: 根据权利要求 3 所述的方法,其特征在于,所述预设字符串包括 “Kerberos\r\n” 和 “Negotiate\r\n” ; 其中,判断所述回复数据包中是否包含预设字符串具体包括 :判断所述回复数据包 中是否包含 “Kerberos\r\n” 或 “Negotiate\r\n”。
5: 根据权利要求 4 所述的方法,其特征在于,其中,依据判断结果配置所述回复数据 包中包含的所述预设字符串的首字符为预设字符具体包括 : 如果所述回复数据包为应用层的首 12 字节为 “HTTP/1.1 407”或 “HTTP/1.1 401” 的数据包且所述回复数据包中包含 “Kerberos\r\n” 或 “Negotiate\r\n”,则配置所述回复 数据包中包含的 “Kerberos\r\n” 和 “Negotiate\r\n” 的首字符为预设字符。
6: 根据权利要求 1~5 任一项所述的方法,其特征在于,所述预设字符为 “0” 字符。
7: 一种获取 Kerberos 认证方式的用户名的装置,其特征在于,包括 : 设置单元,用于设置代理服务器的用户认证方式为集成认证方式 ; 接收单元,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数据 包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名 ; 判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复数据 包中是否包含预设字符串 ; 配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的首字 符为预设字符 ; 计算和替换单元,用于重新计算经配置后的所述回复数据包的 TCP 校验和并予以替 换; 发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所述客 户端将其与代理服务器的认证方式设置为 NTLM 认证方式。 2
8: 根据权利要求 7 所述的装置,其特征在于,所述预设类型数据包包括应用层的首 12 字节为 “HTTP/1.1 407” 的数据包和应用层的首 12 字节为 “HTTP/1.1 401” 的数据 包。
9: 根据权利要求 8 所述的装置,其特征在于,所述预设字符串包括 “Kerberos\r\n” 和 “Negotiate\r\n”。
10: 一种获取 Kerberos 认证方式的用户名的系统,包括客户端、域控制器、代理服务 器,其特征在于,还包括 : 用户名获取装置,与所述客户端和代理服务器通信连接,用于获取所述客户端的用 户名,所述用户名获取装置包括 : 设置单元,用于设置代理服务器的用户认证方式为集成认证方式 ; 接收单元,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数据 包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名 ; 判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复数据 包中是否包含预设字符串 ; 配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的首字 符为预设字符 ; 计算和替换单元,用于重新计算经配置后的所述回复数据包的 TCP 校验和并予以替 换; 发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所述客 户端将其与代理服务器的认证方式设置为 NTLM 认证方式。

说明书


获取 Kerberos 认证方式的用户名的方法、 装置和系统

    技术领域 本发明涉及代理环境下的身份认证协议,更具体地说,涉及一种获取 Kerberos 认证方式的用户名的方法、装置和系统。
     背景技术 在网络环境中,主要包括两种认证协议 :Kerberos 协议、和 NTLM(WindowsNT LAN Manager Challenge/Response) 协议。 NTLM 协议是用在包括 Windows 操作系统的网 络中的一种认证协议。 下面详细描述 NTLM 非交互式的认证过程 :
     1、客户端首先在本地加密当前用户的密码成为密码散列 ;
     2、客户端向代理服务器发送自己的用户名,这个用户名是没有经过加密的,明 文直接传输 ;
     3、代理服务器产生一个 16 位的随机数字发送给客户端,作为一个 challenge( 挑 战);
     4、客户端再用加密后的密码散列来加密该 challenge,然后把这个返回给代理服 务器。 作为 response( 响应 ) ;
     5、代理服务器把用户名、给客户端的 challenge、客户端返回的 response 这三项 数据发送给域控制器 ;
     6、域控制器使用用户名在 SAM(Security Account Manager) 数据库中找到这个用 户的密码散列,然后使用这个密码散列来加密 challenge ;
     7、域控制器比较两次加密的 challenge,如果一样,那么认证成功。
     Kerberos 协议基于私钥加密算法,需要可信任的第三方作为认证服务器,主要 用于计算机网络的身份鉴别,用户只需输入一次身份验证信息就可以凭借此验证获得的 票据访问多个服务,即 SSO(Single Sign On)。 由于在每个客户端和服务器之间建立了共 享密钥,使得该协议具有相当的安全性。
     Kerberos 协议流程如图 1 所示,详细描述如下 :
     (1) 客户端从 KDC 请求 TGT
     在用户试图通过提供用户凭据登录到客户端时,如果已启用了 Kerberos 身份认 证协议,则客户端计算机上的 Kerberos 服务向 KDC(Key DistributionCenter,密钥分发中 心 ) 发送一个 Kerberos 身份认证服务请求,以期获得 TGT(Ticket-Granting Ticket,票证许 可票证 )。
     (2)KDC 发送加密的 TGT 和登录会话密钥
     KDC 为用户获取长效密钥 ( 即密码 ),然后解密随 Kerberos 身份认证请求一起传 送的时间戳。 如果该时间戳有效,则用户是有效用户。 KDC 身份认证服务创建一个登 录会话密钥,并使用用户的长效密钥对该登录会话密钥进行加密。 然后,KDC 身份认证 服务再创建一个 TGT,它包括用户信息和登录会话密钥。 最后,KDC 身份认证服务使用 长效密钥加密 TGT,并将加密的登录会话密钥和加密的 TGT 传递给客户端。
     (3) 客户端向 KDC TGS 请求 ST
     客户端使用其长效密钥 ( 即密码 ) 解密登录会话密钥,并在本地缓存。 同时, 客户端还将加密的 TGT 存储在缓存中。 这时还不能访问网络服务,因为它仅获得了 TGT 和登录会话密钥,仅完成了网络登录的过程,还没有获得访问相应网络服务器所需的服 务票证 (Service Ticket, ST)。 客户端向 KDC 票证许可服务 (Ticket-Granting Service, TGS) 发送一个服务票证请求 (ST 是由 TGS 颁发的 )。
     (4)TGS 发送加密的服务会话密钥和 ST
     KDC 使用自己创建的登录会话密钥解密认证符 ( 通常是时间戳 )。 如果验证者 消息成功解密,则 TGS 从 TGT 提取用户信息,并使用用户信息创建一个用于访问对应 服务的服务会话密钥。 使用该用户的登录会话密钥对该服务会话密钥的一个副本进行加 密,创建一个具有服务会话密钥和用户信息的服务票证 (ST),然后使用该服务的长效密 钥 ( 密码 ) 对该服务票证进行加密。 并将加密的服务会话密钥和服务票证返回给客户端。
     (5) 客户端发送访问网络服务请求
     客户端访问服务时,向代理服务器发送一个请求。 该请求包含身份认证消息 ( 时间戳 ),并用服务会话密钥和服务票证进行加密。
     (6) 服务器与客户端进行相互验证
     Kerberos 服务器使用服务会话密钥和服务票证解密认证符,并计算时间戳。 然 后与认证符中的时间戳进行比较,如果误差在允许的范围内 ( 通常为 5 分钟 ),则通过测 试,服务器使用服务会话密钥对认证符 ( 时间戳 ) 进行加密,然后将认证符传回到客户 端。 客户端用服务会话密钥解密时间戳,如果该时间戳与原始时间戳相同,则该服务是 真正的,客户端继续连接。 这是一个双向、相互的身份认证过程。
     在常见的网络应用场景中,通常需要在核心交换机与代理服务器之间部署流量 分析或审计设备,来获取和分析网络流量的用户信息。 然而当代理服务器的用户采用了 Kerberos 认证方式的情况下,传送的数据包中不存在用户名信息,也就无法获取用户名 以便对用户进行实名制分析。 发明内容 本发明要解决的技术问题在于,针对现有技术的上述无法获取用户名以便对用 户进行实名制分析的缺陷,提供一种获取 Kerberos 认证方式的用户名的方法。
     针对上述缺陷,还提供一种获取 Kerberos 认证方式的用户名的装置。
     针对上述缺陷,还提供一种获取 Kerberos 认证方式的用户名的系统。
     本发明解决其技术问题所采用的技术方案是 :构造一种获取 Kerberos 认证方式 的用户名的方法,包括 :
     设置代理服务器的用户认证方式为集成认证方式 ;
     接收所述代理服务器为响应客户端的访问请求所发送的回复数据包 ;
     判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包 含预设字符串 ;
     依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字 符;
     重新计算经配置后的所述回复数据包的 TCP 校验和并予以替换 ;
     发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户端将其与 代理服务器的认证方式设置为 NTLM 认证方式 ;
     接收所述客户端发送的认证数据包并从中提取所述客户端的用户名。
     在本发明所述的获取 Kerberos 认证方式的用户名的方法中,所述集成认证方式 包括 Kerberos 认证方式、 NTLM 认证方式和 Negotiate 认证方式。
     在本发明所述的获取 Kerberos 认证方式的用户名的方法中,所述预设类型数 据包包括应用层的首 12 字节为 “HTTP/1.1 407” 的数据包和应用层的首 12 字节为 “HTTP/1.1 401” 的数据包 ;
     其中,判断所述回复数据包是否为预设类型数据包具体包括 :判断所述数据包 是否为应用层的首 12 字节为 “HTTP/1.1 407” 或 “HTTP/1.1 401” 的数据包。
     在本发明所述的获取 Kerberos 认证方式的用户名的方法中,所述预设字符串包 括 “Kerberos\r\n” 和 “Negotiate\r\n” ;
     其中,判断所述回复数据包中是否包含预设字符串具体包括 :判断所述回复数 据包中是否包含 “Kerberos\r\n” 或 “Negotiate\r\n”。 在本发明所述的获取 Kerberos 认证方式的用户名的方法中,其中,依据判断结 果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符具体包括 :
     如果所述回复数据包为应用层的首 12 字节为 “HTTP/1.1 407” 或 “HTTP/1.1 401” 的数据包且所述回复数据包中包含 “Kerberos\r\n” 或 “Negotiate\r\n”,则配置所 述回复数据包中包含的 “Kerberos\r\n” 和 “Negotiate\r\n” 的首字符为预设字符。
     在本发明所述的获取 Kerberos 认证方式的用户名的方法中,所述预设字符为 “0” 字符。
     本发明还提供一种获取 Kerberos 认证方式的用户名的装置,包括 :
     设置单元,用于设置代理服务器的用户认证方式为集成认证方式 ;
     接收单元,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数 据包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名 ;
     判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复 数据包中是否包含预设字符串 ;
     配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的 首字符为预设字符 ;
     计算和替换单元,用于重新计算经配置后的所述回复数据包的 TCP 校验和并予 以替换 ;
     发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所 述客户端将其与代理服务器的认证方式设置为 NTLM 认证方式。
     在本发明所述的获取 Kerberos 认证方式的用户名的装置中,所述预设类型数 据包包括应用层的首 12 字节为 “HTTP/1.1 407” 的数据包和应用层的首 12 字节为 “HTTP/1.1 401” 的数据包。
     在本发明所述的获取 Kerberos 认证方式的用户名的装置中,所述预设字符串包 括 “Kerberos\r\n” 和 “Negotiate\r\n”。
     本发明还提供一种获取 Kerberos 认证方式的用户名的系统,包括客户端、域控 制器、代理服务器,还包括 :
     用户名获取装置,与所述客户端和代理服务器通信连接,用于获取所述客户端 的用户名,所述用户名获取装置包括 :
     设置单元,用于设置代理服务器的用户认证方式为集成认证方式 ;
     接收单元,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数 据包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名 ;
     判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复 数据包中是否包含预设字符串 ;
     配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的 首字符为预设字符 ;
     计算和替换单元,用于重新计算经配置后的所述回复数据包的 TCP 校验和并予 以替换 ;
     发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所 述客户端将其与代理服务器的认证方式设置为 NTLM 认证方式。 本发明的有益效果是,在使用代理服务器且支持集成认证方式的环境下,通过 配置或修改数据包中的预设字符串中的预设字符,从而使得客户端的认证方式设置为 NTML 认证方式,在客户端发送认证数据包时就可以从中获取到客户端对应的用户名, 通过分析网络上传送的该用户名对应的数据流来决定是否对该用户进行相应的控制措 施。
     附图说明
     下面将结合附图及实施例对本发明作进一步说明,附图中 : 图 1 是 Kerberos 协议的认证方式流程图 ; 图 2 是依据本发明一实施例的获取 Kerberos 认证方式的用户名的方法流程图 ; 图 3 是图 1 中步骤 103 的详细流程图 ; 图 4 是依据本发明一实施例的获取 Kerberos 认证方式的用户名的装置结构示意 图 5 是依据本发明一实施例的获取 Kerberos 认证方式的用户名的系统结构示意 图 6 是在代理环境下使用图 1 所示的获取用户名方法之后的数据通信示意图。图;
     图;
     具体实施方式
     图 2 是依据本发明一实施例的获取 Kerberos 认证方式的用户名的方法 100 流程 图,图 2 所示的获取用户名的方法可由部署在客户端和代理服务器之间的审计或流控设 备来完成。 由于 Kerberos 认证方式环境下,传送的数据包中未包含用户名等信息,因此 审计或流控设备若想获取 Kerberos 认证方式环境下的用户名等信息是不可能的。 若想获 取用户名,需要将客户端和代理服务器之间的认证方式修改为 NTLM,具体实现步骤如 下:步骤 201,设置代理服务器的用户认证方式为集成认证方式 ; 步骤 202,接收所述代理服务器为响应客户端的访问请求所发送的回复数据包; 步骤 203,判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包 中是否包含预设字符串 ;
     步骤 204,依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符 为预设字符 ;首字符即首字节。
     步骤 205,重新计算经配置后的所述回复数据包的 TCP 校验和并予以替换 ; 即,重新计算 TCP 校验和,并将新的 TCP 校验和写入回复数据包中的 TCP 校验和位置, 替换之前的 TCP 校验和。
     步骤 206,发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户 端将其与代理服务器的认证方式设置为 NTLM 认证方式 ;
     步骤 207,接收所述客户端发送的认证数据包并从中提取所述客户端的用户名。
     其中,集成认证方式包括 Kerberos 认证方式、 NTLM 认证方式和 Negotiate 认 证方式。 设置为集成认证方式后,代理服务器会回发一个包含 NTLM、 Kerberos 以及 Negotiate 代理认证方式字段的恢复包,客户端可根据代理服务器返回的回复数据包进行 协商,如果客户端支持 Kerberos 则使用 Kerberos,否则使用 NTLM(win 2003 以上系统默 认是 Kerberos)。 为了获取客户端的用户名信息,则必需使得认证方式的选择权不由客户 端决定,因此将代理服务器返回的回复数据包的代理认证方式字段进行修改,使得客户 端将其与代理服务器的认证方式强制设置为 NTLM 认证方式。 而在 NTLM 认证方式中, 由于客户端发送的数据包 ( 通常使用 Base64 编码的 ) 中包含用户名信息,通过解码该数 据包就可以获取到用户名,并据此分析网络上传送的该用户名对应的数据流来决定是否
     对该用户进行相应的控制措施。
     图 3 是图 2 中步骤 203 的详细流程图。 在本发明中,预设类型数据包包括应用 层的首 12 字节为 “HTTP/1.1 407” 的数据包 ( 或称为 407 回包 ) 和应用层的首 12 字节 为 “HTTP/1.1 401” 的数据包 ( 或称为 401 回包 )。 预设字符串包括 “Kerberos\r\n” 和 “Negotiate\r\n”。
     其中,图 2 中的步骤 203 包括图 3 所示的步骤 2031 和步骤 2032。
     在步骤 2031 中,判断数据包是否为应用层的首 12 字节为 407 回包或 401 回包。 若是,则进入步骤 2032,进一步判断所述回复数据包中是否包含预设字符串,若否,则 结束。
     在步骤 2032 中,判断回复数据包中是否包含 “Kerberos\r\n” 或 “Negotiate\ r\n”, 若 包 含 “Kerberos\r\n” 或 “Negotiate\r\n” 中 任 一 个, 则 进 入 步 骤 104 ;若 “Kerberos\r\n” 和 “Negotiate\r\n” 中任一个都不包含,则结束。 其中在判断数据包中 是否包含 “Kerberos\r\n” 或 “Negotiate\r\n”,主要是判断数据包的应用层中是否包含 “Kerberos\r\n” 或 “Negotiate\r\n”。 在判断是否包含 “Kerberos\r\n” 或 “Negotiate\ r\n” 之 前, 还 需 判 断 数 据 包 的 应 用 层 中 是 否 包 含 “Proxy-Authenticate : ” ( 冒 号 后 面 有 一 个 空 格 )。 不 过 一 般 情 况 下, 代 理 服 务 器 发 送 的 数 据 包 中 都 会 包 含 “Proxy-Authenticate : ”,因此可以根据需要决定是否做此判断。在步骤 204 中,如果所述回复数据包为应用层的首 12 字节为 “HTTP/1.1407” 或 “HTTP/1.1 401” 的数据包且所述回复数据包中包含 “Kerberos\r\n” 或 “Negotiate\ r\n”,则配置回复数据包中包含的 “Kerberos\r\n” 和 “Negotiate\r\n” 的首字符为预设字 符。 在本发明中,预设字符可以任意设置,只要保证将 “Kerberos\r\n” 的首字符 “K” 更改为非 K 字符,将 “Negotiate\r\n” 的首字符 “N” 更改为非 N 字符即可。 例如但 不限于将 “K” 和 “N” 都更改为 “0”,即 “Kerberos\r\n” 更改为 “0erberos\r\n”, “Negotiate\r\n” 更改为 “0egotiate\r\n”。 “Kerberos\r\n” 和 “Negotiate\r\n” 的首字 符更改的唯一原则就是使得回复数据包中不再包含字符串 “Kerberos\r\n” 和 “Negotiate\ r\n”。
     由于对数据包中的 “Kerberos\r\n” 和 “Negotiate\r\n” 的首字符进行了更改,数 据包中的原来的 TCP 校验和已错误,为了使得数据包能够正常发送和识别,需要对 TCP 校验和进行重新计算和替换。 这样,客户端收到该数据包后,就会将其与代理服务器的 认证方式设置为 NTLM 认证方式。
     关于图 2 和图 3 所示流程图的处理过程总结如下 :
     1) 判断首 12 字节是否为 “HTTP/1.1 407” 回包或 “HTTP/1.1 401” 回包 ;
     2) 如 果 为 “HTTP/1.1 407” 回 包 或 “HTTP/1.1 401” 回 包, 判 断 随 后 的 数 据 是 否 包 含 “Proxy-Authenticate : ” ( 冒 号 后 面 有 一 个 空 格 ) ;以 及 判 断 “Proxy-Authenticate : ” 字段后面紧跟的数据是否为 “Kerberos\r\n” 或 “Negotiate\ r\n”,如果是则修改这两种字符串的第一个字节并继续步骤 (3) ;
     3) 然后继续回到步骤 1) 进行判断,直到数据包末尾。
     因此,以 407 回包为例,我们关注的数据包内容大致如下 :
     HTTP/1.1 407
     ...( 忽略中间内容 )
     Proxy-Authenticate :Negotiate\r\n
     Proxy-Authenticate :Kerberos\r\n
     ...( 忽略后面内容 )
     图 4 是依据本发明一实施例的获取 Kerberos 认证方式的用户名的装置 400 结构示 意图。 装置 400 即前文所述的审计或流控设备或者审计或流控设备中的一个部件,获取 客户端的用户名。
     装置 400 包括设置单元 401、接收单元 402、判断单元 403、配置单元 404、计算 和替换单元 405、发送单元 406。
     设置单元 401,用于设置代理服务器的用户认证方式为集成认证方式 ;
     接收单元 402,用于接收所述代理服务器为响应客户端的访问请求所发送的回复 数据包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名 ;
     判断单元 403,用于判断所述回复数据包是否为预设类型数据包,且判断所述回 复数据包中是否包含预设字符串 ;
     配置单元 404,用于依据判断结果配置所述回复数据包中包含的所述预设字符串 的首字符为预设字符 ;
     计算和替换单元 405,用于重新计算经配置后的所述回复数据包的 TCP 校验和并予以替换 ;
     发送单元 406,用于发送经配置和重新计算后的所述回复数据包至客户端,使得 所述客户端将其与代理服务器的认证方式设置为 NTLM 认证方式。
     其中,预设类型数据包包括应用层的首 12 字节为 “HTTP/1.1 407” 的数据包和 应用层的首 12 字节为 “HTTP/1.1 401” 的数据包。 预设字符串包括 “Kerberos\r\n” 和 “Negotiate\r\n”。
     图 2-3 中关于获取 Kerberos 认证方式的用户名的方法的详细描述适用于图 4,此 处不再赘述。
     关于图 4 中的设置单元 401 可以单独设置,或者独立于装置 400 外设置,图 4 中 示出了设置单元 401 包含在装置 400 中仅为示例,并不作为对本发明的限制。 图 4 中可 以不包含设置单元,由其它方式或装置来执行认证方式的设置操作,也就是说,装置 400 工作的前提是代理服务器的用户认证方式为集成认证方式。 装置 400 可以单独设置,也 可以设置于网桥设备中。 包含装置 400 的网桥设备既可以完成路由和数据交换功能又可 以获取用户名,实现对客户端用户的数据分析和监控。
     图 5 是依据本发明一实施例的获取 Kerberos 认证方式的用户名的系统 500 结构示 意图。 系统 500 包括客户端 501、域控制器 502、代理服务器 503,用户名获取装置 504。 用户名获取装置 504,与客户端 501 和代理服务器 503 通信连接,用于获取客户 端 501 的用户名,用户名获取装置 504 的具体结构与图 4 所示的装置 400 相同,图 4 中关 于装置 400 的描述适用于图 5 中的用户名获取装置 504,此处不再赘述。 客户端 501 与用 户名获取装置 504 和域控制器 502 的数据通信还需要核心交换机来实现,图中未示出。
     图 6 是在代理环境下使用图 1 所示的获取用户名方法之后的数据通信示意图。 在 此实施例中,以 407 回包为例进行阐述。 用户名获取装置为图 4 中的装置 400 或图 5 中 的用户名获取装置 504,图 6 中的用户名获取装置也可以是包含装置 400 或用户名获取装 置 504 的网桥设备。
     用户名获取装置获取到来自代理服务器的回复数据包 ( 这里示出的是 407 回包, 还可以是 401 回包 ) 后,判断该回复数据包为 407 回包后,将 407 回包中的 “Negotiate” 和 “Kerberos” 中的首字母 “N”、 “K” 更改为 “0”。 此处的更改方式仅为示例, 只要保证将 “Kerberos\r\n” 的首字符 “K” 更改为非 K 字符,将 “Negotiate\r\n” 的首 字符 “N” 更改为非 N 字符即可,如前文所述。
     经过处理后的回复数据包传送到客户端,客户端将用户认证方式设置成 NTLM 认证方式,客户端随后发送的数据包中就会包含用户名,用户名获取装置通过截获传送 路径上的数据包就能得知用户名,并能获取用户名对应的数据流,从而对该用户的操作 行为进行分析和控制。
     图 6 中,代理服务器以及客户端均加入域 ( 例如公司或企业局域网的域 ) 中,并 设置好域上的用户名以及密码。 图中,代理服务器通过核心路由器与 web 服务器进行交 互。 下面对采用本发明获取用户名的方法后的处理过程和显示结果进行阐述 :
     1) 将代理服务器用户身份认证方式设置为集成方式。
     2) 用户名获取装置 ( 例如流量分析或审计设备 ) 开启篡改数据包以及获取 NTLM 用户名的功能。
     3) 客户端 PC 的浏览器设置 web 代理上网,指向代理服务器。
     4) 在 PC 上使用 wireshark( 一种网络封包分析软件 ) 进行抓包,当然还可以使用 其它抓包工具。
     5) 通过浏览器上网,弹出认证框后,输入客户端在域上设置好的用户名与密 码。
     可以发现, wireshark 抓包的 http 407 回包中的 “Kerberos” 以及 “Negotiate” 字段已经被改为 “0erberos” 和 “0egotiate”,后续认证方式也自动转换成 NTLM,且浏 览器正常上网,用户名获取装置 ( 例如流量分析或审计设备 ) 上也正确地提取了用户名。
     本发明通常可应用在对企业或集团的局域网或其它区域网络中的用户的数据交 互行为进行管理和监控。 便于公司或企业管理其员工,保证公司的机密信息不对外公 开,同时也能及时地制止不正常或非法的数据传递活动。 一旦发现问题,所接收的数据 包不再继续发送给代理服务器。
     本发明在使用代理服务器且同时支持 NTLM 和 Kerberos 认证方式的环境下,通 过篡改数据包的方式,令代理服务器的协商的身份认证方式由 Kerberos 变为 NTLM,从 而能够从中提取用户名,解决了在这种网络场景中,流量分析或审计设备无法进行用户 实名制分析的问题。

获取KERBEROS认证方式的用户名的方法、装置和系统.pdf_第1页
第1页 / 共16页
获取KERBEROS认证方式的用户名的方法、装置和系统.pdf_第2页
第2页 / 共16页
获取KERBEROS认证方式的用户名的方法、装置和系统.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《获取KERBEROS认证方式的用户名的方法、装置和系统.pdf》由会员分享,可在线阅读,更多相关《获取KERBEROS认证方式的用户名的方法、装置和系统.pdf(16页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102025748A43申请公布日20110420CN102025748ACN102025748A21申请号201110000470422申请日20110104H04L29/06200601H04L29/0820060171申请人深信服网络科技(深圳)有限公司地址518000广东省深圳市南山区麒麟路1号南山科技创业服务中心418、41972发明人武昆陈俊浩74专利代理机构深圳市顺天达专利商标代理有限公司44217代理人易钊54发明名称获取KERBEROS认证方式的用户名的方法、装置和系统57摘要本发明涉及获取KERBEROS认证方式的用户名的方法、装置和系统,包括设置代理服务。

2、器为集成认证方式;接收代理服务器为响应客户端的访问请求所发送的回复数据包;判断回复数据包是否为预设类型数据包且判断其中是否包含预设字符串;依据判断结果配置所述回复数据包中包含的预设字符串的首字符为预设字符;重新计算TCP校验和并予以替换;发送经配置和重新计算后的回复数据包至客户端,使得客户端将其与代理服务器的认证方式设置为NTLM认证方式;接收客户端发送的认证数据包并从中提取用户名。本发明通过配置或修改数据包中的预设字符串中的预设字符,使得客户端的认证方式设置为NTML认证方式,从而获取到客户端对应的用户名。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书8页。

3、附图5页CN102025762A1/2页21一种获取KERBEROS认证方式的用户名的方法,其特征在于,包括设置代理服务器的用户认证方式为集成认证方式;接收所述代理服务器为响应客户端的访问请求所发送的回复数据包;判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符;重新计算经配置后的所述回复数据包的TCP校验和并予以替换;发送经配置和重新计算后的所述回复数据包至所述客户端,使得所述客户端将其与代理服务器的认证方式设置为NTLM认证方式;接收所述客户端发送的认证数据包并从中提取所述客户端的用户名。。

4、2根据权利要求1所述的方法,其特征在于,所述集成认证方式包括KERBEROS认证方式、NTLM认证方式和NEGOTIATE认证方式。3根据权利要求1所述的方法,其特征在于,所述预设类型数据包包括应用层的首12字节为“HTTP/11407”的数据包和应用层的首12字节为“HTTP/11401”的数据包;其中,判断所述回复数据包是否为预设类型数据包具体包括判断所述数据包是否为应用层的首12字节为“HTTP/11407”或“HTTP/11401”的数据包。4根据权利要求3所述的方法,其特征在于,所述预设字符串包括“KERBEROSRN”和“NEGOTIATERN”;其中,判断所述回复数据包中是否包含。

5、预设字符串具体包括判断所述回复数据包中是否包含“KERBEROSRN”或“NEGOTIATERN”。5根据权利要求4所述的方法,其特征在于,其中,依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符具体包括如果所述回复数据包为应用层的首12字节为“HTTP/11407”或“HTTP/11401”的数据包且所述回复数据包中包含“KERBEROSRN”或“NEGOTIATERN”,则配置所述回复数据包中包含的“KERBEROSRN”和“NEGOTIATERN”的首字符为预设字符。6根据权利要求15任一项所述的方法,其特征在于,所述预设字符为“0”字符。7一种获取KERBEROS认。

6、证方式的用户名的装置,其特征在于,包括设置单元,用于设置代理服务器的用户认证方式为集成认证方式;接收单元,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数据包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名;判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符;计算和替换单元,用于重新计算经配置后的所述回复数据包的TCP校验和并予以替换;发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户端将其与代理服务器的认证方式设置。

7、为NTLM认证方式。权利要求书CN102025748ACN102025762A2/2页38根据权利要求7所述的装置,其特征在于,所述预设类型数据包包括应用层的首12字节为“HTTP/11407”的数据包和应用层的首12字节为“HTTP/11401”的数据包。9根据权利要求8所述的装置,其特征在于,所述预设字符串包括“KERBEROSRN”和“NEGOTIATERN”。10一种获取KERBEROS认证方式的用户名的系统,包括客户端、域控制器、代理服务器,其特征在于,还包括用户名获取装置,与所述客户端和代理服务器通信连接,用于获取所述客户端的用户名,所述用户名获取装置包括设置单元,用于设置代理服务。

8、器的用户认证方式为集成认证方式;接收单元,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数据包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名;判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符;计算和替换单元,用于重新计算经配置后的所述回复数据包的TCP校验和并予以替换;发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户端将其与代理服务器的认证方式设置为NTLM认证方式。权利要求书CN102025748ACN102。

9、025762A1/8页4获取KERBEROS认证方式的用户名的方法、装置和系统技术领域0001本发明涉及代理环境下的身份认证协议,更具体地说,涉及一种获取KERBEROS认证方式的用户名的方法、装置和系统。背景技术0002在网络环境中,主要包括两种认证协议KERBEROS协议、和NTLMWINDOWSNTLANMANAGERCHALLENGE/RESPONSE协议。NTLM协议是用在包括WINDOWS操作系统的网络中的一种认证协议。下面详细描述NTLM非交互式的认证过程00031、客户端首先在本地加密当前用户的密码成为密码散列;00042、客户端向代理服务器发送自己的用户名,这个用户名是没有经。

10、过加密的,明文直接传输;00053、代理服务器产生一个16位的随机数字发送给客户端,作为一个CHALLENGE挑战;00064、客户端再用加密后的密码散列来加密该CHALLENGE,然后把这个返回给代理服务器。作为RESPONSE响应;00075、代理服务器把用户名、给客户端的CHALLENGE、客户端返回的RESPONSE这三项数据发送给域控制器;00086、域控制器使用用户名在SAMSECURITYACCOUNTMANAGER数据库中找到这个用户的密码散列,然后使用这个密码散列来加密CHALLENGE;00097、域控制器比较两次加密的CHALLENGE,如果一样,那么认证成功。0010K。

11、ERBEROS协议基于私钥加密算法,需要可信任的第三方作为认证服务器,主要用于计算机网络的身份鉴别,用户只需输入一次身份验证信息就可以凭借此验证获得的票据访问多个服务,即SSOSINGLESIGNON。由于在每个客户端和服务器之间建立了共享密钥,使得该协议具有相当的安全性。0011KERBEROS协议流程如图1所示,详细描述如下00121客户端从KDC请求TGT0013在用户试图通过提供用户凭据登录到客户端时,如果已启用了KERBEROS身份认证协议,则客户端计算机上的KERBEROS服务向KDCKEYDISTRIBUTIONCENTER,密钥分发中心发送一个KERBEROS身份认证服务请求,。

12、以期获得TGTTICKETGRANTINGTICKET,票证许可票证。00142KDC发送加密的TGT和登录会话密钥0015KDC为用户获取长效密钥即密码,然后解密随KERBEROS身份认证请求一起传送的时间戳。如果该时间戳有效,则用户是有效用户。KDC身份认证服务创建一个登录会话密钥,并使用用户的长效密钥对该登录会话密钥进行加密。然后,KDC身份认证服务再创建一个TGT,它包括用户信息和登录会话密钥。最后,KDC身份认证服务使用长效密钥加密TGT,并将加密的登录会话密钥和加密的TGT传递给客户端。说明书CN102025748ACN102025762A2/8页500163客户端向KDCTGS请。

13、求ST0017客户端使用其长效密钥即密码解密登录会话密钥,并在本地缓存。同时,客户端还将加密的TGT存储在缓存中。这时还不能访问网络服务,因为它仅获得了TGT和登录会话密钥,仅完成了网络登录的过程,还没有获得访问相应网络服务器所需的服务票证SERVICETICKET,ST。客户端向KDC票证许可服务TICKETGRANTINGSERVICE,TGS发送一个服务票证请求ST是由TGS颁发的。00184TGS发送加密的服务会话密钥和ST0019KDC使用自己创建的登录会话密钥解密认证符通常是时间戳。如果验证者消息成功解密,则TGS从TGT提取用户信息,并使用用户信息创建一个用于访问对应服务的服务会。

14、话密钥。使用该用户的登录会话密钥对该服务会话密钥的一个副本进行加密,创建一个具有服务会话密钥和用户信息的服务票证ST,然后使用该服务的长效密钥密码对该服务票证进行加密。并将加密的服务会话密钥和服务票证返回给客户端。00205客户端发送访问网络服务请求0021客户端访问服务时,向代理服务器发送一个请求。该请求包含身份认证消息时间戳,并用服务会话密钥和服务票证进行加密。00226服务器与客户端进行相互验证0023KERBEROS服务器使用服务会话密钥和服务票证解密认证符,并计算时间戳。然后与认证符中的时间戳进行比较,如果误差在允许的范围内通常为5分钟,则通过测试,服务器使用服务会话密钥对认证符时间。

15、戳进行加密,然后将认证符传回到客户端。客户端用服务会话密钥解密时间戳,如果该时间戳与原始时间戳相同,则该服务是真正的,客户端继续连接。这是一个双向、相互的身份认证过程。0024在常见的网络应用场景中,通常需要在核心交换机与代理服务器之间部署流量分析或审计设备,来获取和分析网络流量的用户信息。然而当代理服务器的用户采用了KERBEROS认证方式的情况下,传送的数据包中不存在用户名信息,也就无法获取用户名以便对用户进行实名制分析。发明内容0025本发明要解决的技术问题在于,针对现有技术的上述无法获取用户名以便对用户进行实名制分析的缺陷,提供一种获取KERBEROS认证方式的用户名的方法。0026针。

16、对上述缺陷,还提供一种获取KERBEROS认证方式的用户名的装置。0027针对上述缺陷,还提供一种获取KERBEROS认证方式的用户名的系统。0028本发明解决其技术问题所采用的技术方案是构造一种获取KERBEROS认证方式的用户名的方法,包括0029设置代理服务器的用户认证方式为集成认证方式;0030接收所述代理服务器为响应客户端的访问请求所发送的回复数据包;0031判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;0032依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符;说明书CN102025748ACN102025762A3/8页60。

17、033重新计算经配置后的所述回复数据包的TCP校验和并予以替换;0034发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户端将其与代理服务器的认证方式设置为NTLM认证方式;0035接收所述客户端发送的认证数据包并从中提取所述客户端的用户名。0036在本发明所述的获取KERBEROS认证方式的用户名的方法中,所述集成认证方式包括KERBEROS认证方式、NTLM认证方式和NEGOTIATE认证方式。0037在本发明所述的获取KERBEROS认证方式的用户名的方法中,所述预设类型数据包包括应用层的首12字节为“HTTP/11407”的数据包和应用层的首12字节为“HTTP/11401”。

18、的数据包;0038其中,判断所述回复数据包是否为预设类型数据包具体包括判断所述数据包是否为应用层的首12字节为“HTTP/11407”或“HTTP/11401”的数据包。0039在本发明所述的获取KERBEROS认证方式的用户名的方法中,所述预设字符串包括“KERBEROSRN”和“NEGOTIATERN”;0040其中,判断所述回复数据包中是否包含预设字符串具体包括判断所述回复数据包中是否包含“KERBEROSRN”或“NEGOTIATERN”。0041在本发明所述的获取KERBEROS认证方式的用户名的方法中,其中,依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符具体。

19、包括0042如果所述回复数据包为应用层的首12字节为“HTTP/11407”或“HTTP/11401”的数据包且所述回复数据包中包含“KERBEROSRN”或“NEGOTIATERN”,则配置所述回复数据包中包含的“KERBEROSRN”和“NEGOTIATERN”的首字符为预设字符。0043在本发明所述的获取KERBEROS认证方式的用户名的方法中,所述预设字符为“0”字符。0044本发明还提供一种获取KERBEROS认证方式的用户名的装置,包括0045设置单元,用于设置代理服务器的用户认证方式为集成认证方式;0046接收单元,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数据包,。

20、以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名;0047判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;0048配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符;0049计算和替换单元,用于重新计算经配置后的所述回复数据包的TCP校验和并予以替换;0050发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户端将其与代理服务器的认证方式设置为NTLM认证方式。0051在本发明所述的获取KERBEROS认证方式的用户名的装置中,所述预设类型数据包包括应用层的首12字节为“HTT。

21、P/11407”的数据包和应用层的首12字节为“HTTP/11401”的数据包。0052在本发明所述的获取KERBEROS认证方式的用户名的装置中,所述预设字符串包括“KERBEROSRN”和“NEGOTIATERN”。说明书CN102025748ACN102025762A4/8页70053本发明还提供一种获取KERBEROS认证方式的用户名的系统,包括客户端、域控制器、代理服务器,还包括0054用户名获取装置,与所述客户端和代理服务器通信连接,用于获取所述客户端的用户名,所述用户名获取装置包括0055设置单元,用于设置代理服务器的用户认证方式为集成认证方式;0056接收单元,用于接收所述代理。

22、服务器为响应客户端的访问请求所发送的回复数据包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名;0057判断单元,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;0058配置单元,用于依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符;0059计算和替换单元,用于重新计算经配置后的所述回复数据包的TCP校验和并予以替换;0060发送单元,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户端将其与代理服务器的认证方式设置为NTLM认证方式。0061本发明的有益效果是,在使用代理服务器且支持集成认证方式的环境下。

23、,通过配置或修改数据包中的预设字符串中的预设字符,从而使得客户端的认证方式设置为NTML认证方式,在客户端发送认证数据包时就可以从中获取到客户端对应的用户名,通过分析网络上传送的该用户名对应的数据流来决定是否对该用户进行相应的控制措施。附图说明0062下面将结合附图及实施例对本发明作进一步说明,附图中0063图1是KERBEROS协议的认证方式流程图;0064图2是依据本发明一实施例的获取KERBEROS认证方式的用户名的方法流程图;0065图3是图1中步骤103的详细流程图;0066图4是依据本发明一实施例的获取KERBEROS认证方式的用户名的装置结构示意图;0067图5是依据本发明一实施。

24、例的获取KERBEROS认证方式的用户名的系统结构示意图;0068图6是在代理环境下使用图1所示的获取用户名方法之后的数据通信示意图。具体实施方式0069图2是依据本发明一实施例的获取KERBEROS认证方式的用户名的方法100流程图,图2所示的获取用户名的方法可由部署在客户端和代理服务器之间的审计或流控设备来完成。由于KERBEROS认证方式环境下,传送的数据包中未包含用户名等信息,因此审计或流控设备若想获取KERBEROS认证方式环境下的用户名等信息是不可能的。若想获取用户名,需要将客户端和代理服务器之间的认证方式修改为NTLM,具体实现步骤如下说明书CN102025748ACN10202。

25、5762A5/8页80070步骤201,设置代理服务器的用户认证方式为集成认证方式;0071步骤202,接收所述代理服务器为响应客户端的访问请求所发送的回复数据包;0072步骤203,判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;0073步骤204,依据判断结果配置所述回复数据包中包含的所述预设字符串的首字符为预设字符;首字符即首字节。0074步骤205,重新计算经配置后的所述回复数据包的TCP校验和并予以替换;即,重新计算TCP校验和,并将新的TCP校验和写入回复数据包中的TCP校验和位置,替换之前的TCP校验和。0075步骤206,发送经配置和重新计算后。

26、的所述回复数据包至客户端,使得所述客户端将其与代理服务器的认证方式设置为NTLM认证方式;0076步骤207,接收所述客户端发送的认证数据包并从中提取所述客户端的用户名。0077其中,集成认证方式包括KERBEROS认证方式、NTLM认证方式和NEGOTIATE认证方式。设置为集成认证方式后,代理服务器会回发一个包含NTLM、KERBEROS以及NEGOTIATE代理认证方式字段的恢复包,客户端可根据代理服务器返回的回复数据包进行协商,如果客户端支持KERBEROS则使用KERBEROS,否则使用NTLMWIN2003以上系统默认是KERBEROS。为了获取客户端的用户名信息,则必需使得认证方。

27、式的选择权不由客户端决定,因此将代理服务器返回的回复数据包的代理认证方式字段进行修改,使得客户端将其与代理服务器的认证方式强制设置为NTLM认证方式。而在NTLM认证方式中,由于客户端发送的数据包通常使用BASE64编码的中包含用户名信息,通过解码该数据包就可以获取到用户名,并据此分析网络上传送的该用户名对应的数据流来决定是否对该用户进行相应的控制措施。0078图3是图2中步骤203的详细流程图。在本发明中,预设类型数据包包括应用层的首12字节为“HTTP/11407”的数据包或称为407回包和应用层的首12字节为“HTTP/11401”的数据包或称为401回包。预设字符串包括“KERBERO。

28、SRN”和“NEGOTIATERN”。0079其中,图2中的步骤203包括图3所示的步骤2031和步骤2032。0080在步骤2031中,判断数据包是否为应用层的首12字节为407回包或401回包。若是,则进入步骤2032,进一步判断所述回复数据包中是否包含预设字符串,若否,则结束。0081在步骤2032中,判断回复数据包中是否包含“KERBEROSRN”或“NEGOTIATERN”,若包含“KERBEROSRN”或“NEGOTIATERN”中任一个,则进入步骤104;若“KERBEROSRN”和“NEGOTIATERN”中任一个都不包含,则结束。其中在判断数据包中是否包含“KERBEROSR。

29、N”或“NEGOTIATERN”,主要是判断数据包的应用层中是否包含“KERBEROSRN”或“NEGOTIATERN”。在判断是否包含“KERBEROSRN”或“NEGOTIATERN”之前,还需判断数据包的应用层中是否包含“PROXYAUTHENTICATE”冒号后面有一个空格。不过一般情况下,代理服务器发送的数据包中都会包含“PROXYAUTHENTICATE”,因此可以根据需要决定是否做此判断。说明书CN102025748ACN102025762A6/8页90082在步骤204中,如果所述回复数据包为应用层的首12字节为“HTTP/11407”或“HTTP/11401”的数据包且所述回。

30、复数据包中包含“KERBEROSRN”或“NEGOTIATERN”,则配置回复数据包中包含的“KERBEROSRN”和“NEGOTIATERN”的首字符为预设字符。在本发明中,预设字符可以任意设置,只要保证将“KERBEROSRN”的首字符“K”更改为非K字符,将“NEGOTIATERN”的首字符“N”更改为非N字符即可。例如但不限于将“K”和“N”都更改为“0”,即“KERBEROSRN”更改为“0ERBEROSRN”,“NEGOTIATERN”更改为“0EGOTIATERN”。“KERBEROSRN”和“NEGOTIATERN”的首字符更改的唯一原则就是使得回复数据包中不再包含字符串“KE。

31、RBEROSRN”和“NEGOTIATERN”。0083由于对数据包中的“KERBEROSRN”和“NEGOTIATERN”的首字符进行了更改,数据包中的原来的TCP校验和已错误,为了使得数据包能够正常发送和识别,需要对TCP校验和进行重新计算和替换。这样,客户端收到该数据包后,就会将其与代理服务器的认证方式设置为NTLM认证方式。0084关于图2和图3所示流程图的处理过程总结如下00851判断首12字节是否为“HTTP/11407”回包或“HTTP/11401”回包;00862如果为“HTTP/11407”回包或“HTTP/11401”回包,判断随后的数据是否包含“PROXYAUTHENTI。

32、CATE”冒号后面有一个空格;以及判断“PROXYAUTHENTICATE”字段后面紧跟的数据是否为“KERBEROSRN”或“NEGOTIATERN”,如果是则修改这两种字符串的第一个字节并继续步骤3;00873然后继续回到步骤1进行判断,直到数据包末尾。0088因此,以407回包为例,我们关注的数据包内容大致如下0089HTTP/114070090忽略中间内容0091PROXYAUTHENTICATENEGOTIATERN0092PROXYAUTHENTICATEKERBEROSRN0093忽略后面内容0094图4是依据本发明一实施例的获取KERBEROS认证方式的用户名的装置400结构示。

33、意图。装置400即前文所述的审计或流控设备或者审计或流控设备中的一个部件,获取客户端的用户名。0095装置400包括设置单元401、接收单元402、判断单元403、配置单元404、计算和替换单元405、发送单元406。0096设置单元401,用于设置代理服务器的用户认证方式为集成认证方式;0097接收单元402,用于接收所述代理服务器为响应客户端的访问请求所发送的回复数据包,以及接收所述客户端发送的认证数据包并从中提取所述客户端的用户名;0098判断单元403,用于判断所述回复数据包是否为预设类型数据包,且判断所述回复数据包中是否包含预设字符串;0099配置单元404,用于依据判断结果配置所述。

34、回复数据包中包含的所述预设字符串的首字符为预设字符;0100计算和替换单元405,用于重新计算经配置后的所述回复数据包的TCP校验和并说明书CN102025748ACN102025762A7/8页10予以替换;0101发送单元406,用于发送经配置和重新计算后的所述回复数据包至客户端,使得所述客户端将其与代理服务器的认证方式设置为NTLM认证方式。0102其中,预设类型数据包包括应用层的首12字节为“HTTP/11407”的数据包和应用层的首12字节为“HTTP/11401”的数据包。预设字符串包括“KERBEROSRN”和“NEGOTIATERN”。0103图23中关于获取KERBEROS认。

35、证方式的用户名的方法的详细描述适用于图4,此处不再赘述。0104关于图4中的设置单元401可以单独设置,或者独立于装置400外设置,图4中示出了设置单元401包含在装置400中仅为示例,并不作为对本发明的限制。图4中可以不包含设置单元,由其它方式或装置来执行认证方式的设置操作,也就是说,装置400工作的前提是代理服务器的用户认证方式为集成认证方式。装置400可以单独设置,也可以设置于网桥设备中。包含装置400的网桥设备既可以完成路由和数据交换功能又可以获取用户名,实现对客户端用户的数据分析和监控。0105图5是依据本发明一实施例的获取KERBEROS认证方式的用户名的系统500结构示意图。系统。

36、500包括客户端501、域控制器502、代理服务器503,用户名获取装置504。0106用户名获取装置504,与客户端501和代理服务器503通信连接,用于获取客户端501的用户名,用户名获取装置504的具体结构与图4所示的装置400相同,图4中关于装置400的描述适用于图5中的用户名获取装置504,此处不再赘述。客户端501与用户名获取装置504和域控制器502的数据通信还需要核心交换机来实现,图中未示出。0107图6是在代理环境下使用图1所示的获取用户名方法之后的数据通信示意图。在此实施例中,以407回包为例进行阐述。用户名获取装置为图4中的装置400或图5中的用户名获取装置504,图6中。

37、的用户名获取装置也可以是包含装置400或用户名获取装置504的网桥设备。0108用户名获取装置获取到来自代理服务器的回复数据包这里示出的是407回包,还可以是401回包后,判断该回复数据包为407回包后,将407回包中的“NEGOTIATE”和“KERBEROS”中的首字母“N”、“K”更改为“0”。此处的更改方式仅为示例,只要保证将“KERBEROSRN”的首字符“K”更改为非K字符,将“NEGOTIATERN”的首字符“N”更改为非N字符即可,如前文所述。0109经过处理后的回复数据包传送到客户端,客户端将用户认证方式设置成NTLM认证方式,客户端随后发送的数据包中就会包含用户名,用户名获。

38、取装置通过截获传送路径上的数据包就能得知用户名,并能获取用户名对应的数据流,从而对该用户的操作行为进行分析和控制。0110图6中,代理服务器以及客户端均加入域例如公司或企业局域网的域中,并设置好域上的用户名以及密码。图中,代理服务器通过核心路由器与WEB服务器进行交互。下面对采用本发明获取用户名的方法后的处理过程和显示结果进行阐述01111将代理服务器用户身份认证方式设置为集成方式。01122用户名获取装置例如流量分析或审计设备开启篡改数据包以及获取NTLM用户名的功能。说明书CN102025748ACN102025762A8/8页1101133客户端PC的浏览器设置WEB代理上网,指向代理服。

39、务器。01144在PC上使用WIRESHARK一种网络封包分析软件进行抓包,当然还可以使用其它抓包工具。01155通过浏览器上网,弹出认证框后,输入客户端在域上设置好的用户名与密码。0116可以发现,WIRESHARK抓包的HTTP407回包中的“KERBEROS”以及“NEGOTIATE”字段已经被改为“0ERBEROS”和“0EGOTIATE”,后续认证方式也自动转换成NTLM,且浏览器正常上网,用户名获取装置例如流量分析或审计设备上也正确地提取了用户名。0117本发明通常可应用在对企业或集团的局域网或其它区域网络中的用户的数据交互行为进行管理和监控。便于公司或企业管理其员工,保证公司的机。

40、密信息不对外公开,同时也能及时地制止不正常或非法的数据传递活动。一旦发现问题,所接收的数据包不再继续发送给代理服务器。0118本发明在使用代理服务器且同时支持NTLM和KERBEROS认证方式的环境下,通过篡改数据包的方式,令代理服务器的协商的身份认证方式由KERBEROS变为NTLM,从而能够从中提取用户名,解决了在这种网络场景中,流量分析或审计设备无法进行用户实名制分析的问题。说明书CN102025748ACN102025762A1/5页12图1说明书附图CN102025748ACN102025762A2/5页13图2说明书附图CN102025748ACN102025762A3/5页14图3图4说明书附图CN102025748ACN102025762A4/5页15图5说明书附图CN102025748ACN102025762A5/5页16图6说明书附图CN102025748A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1