您的位置:首页 >资讯列表 > 正文
发布时间:2020-04-24 17:16
HTTP代理认证信息获取方法研究

  代理认证信息的获取是穿透代理网络的前提。不同的认证方式,其认证信息的在传输过程中的安全性也不同。


u=1259399287,4156622464&fm=26&gp=0.jpg


  为更直观的了解不同认证方式的区别,我们以ISA2004为基础搭建了网络实验环境,并借助网络嗅探器来辅助研究相应的认证获取方法。


  实验环境设置:


  将ISA Server 2004代理服务器IP地址设置为10.118.89.12/24,客户机IP地址设置为10.118.89.98/24,采用Windows XP操作系统,并配置HTTP代理。采用Ethereal嗅探工具进行网络数据嗅探:。


  首先,在ISA上新建普通用户,用户名:tt/口令:123。然后在新建策略:允许经过身份验证的用户出网,如图2-9 ISA防火墙策略所示:


  图2-9 ISA防火墙策略


  2.4.1基本身份认证信息获取方法


  基本身份验证的优势在于其本身是HTTP协议的一部分,被大多数浏览器支持,具体工作流程如下:


  在客户端运行Ethereal,然后通过IE浏览器打开网址http://www.isacn.org。


  (1)客户向ISA请求资源GET http://www.isacn.org。如图2-10 BASIC认证过程1所示:


  图2-10 BASIC认证过程1


  (2)ISA返回访问拒绝。该消息包含一个WWW-Authenticate头标,后面紧跟着一个Basic值,说明ISA防火墙要求基本身份认证。如图2-11 BASIC认证过程2:


  图2-11 BASIC认证过程2


  此时在客户机上弹出输入网络密码对话框,输入ISA服务器上的用户名tt和密码123。


  (3)客户浏览器重发请求,不过这次带有验证信息。如图2-11 BASIC认证过程3:


  图2-12 BASIC认证过程3


  注意:Proxy-Authorization:Basic dHQ6MTIz,其中dHQ6MTIz就是经过base64编码后的用户名和密码。


  (4)用户顺利通过验证,ISA防火墙向客户返回200 OK消息。如图2-11 BASIC认证过程4:


  图2-13 BASIC认证过程4


  至此,客户和ISA防火墙间的身份验证工作就此结束,接下来是的客户所请求的数据的传输。


  综上所述,基本身份认证提供了一个非常方便的认证机制,但是该认证身份信息特征明显,通过嗅探即可获得。


  2.4.2集成身份认证信息获取方法


  在进行集成身份认证时,用户和密码信息会首先进行一系列的加密处理,然后通过网络发送,并采用了挑战-响应机制,因此是一种比较安全的身份认证方式。


  以下是具体的过程实例:


  (1)客户向ISA请求资源GET http://www.sohu.com,如图2-14集成身份认证过程1:


  图2-14集成身份认证过程1


  (2)ISA返回访问拒绝消息,并向客户端发送协商,让客户端选择采用Kerberos或者NTLM认证方式。


  然后需要客户端从Kerberos和NTLM中挑选取其中一种进行认证。如图2-15集成身份认证过程2:


  图2-15集成身份认证过程2


  (3)客户机和ISA进行认证方式的协商,如图2-16集成身份认证过程3中客户机选择了NTLM方式。


  图2-16集成身份认证过程3


  (4)ISA产生一个随机数发送给客户端,用于客户端加密时使用,如图2-17集成身份认证过程4:


  图2-17集成身份认证过程4


  (5)客户机首先用当前本机登录的用户令牌尝试服务器认证。客户机用当前本机登录用户(之前已新建用户名为admin)的密码,对散列服务器的8字节挑战首先进行3DES加密,然后会产生一个24字节的LM响应。如图2-18集成身份认证过程


  5所示:


  图2-18集成身份认证过程5


  (6)由于ISA服务器中并没有添加admin用户,所以导致认证失败的,结果如图2-12集成身份认证过程6所示:


  图2-12集成身份认证过程6


  (7)客户端第一次认证失败后,系统会弹出输入网络密码对话框,并要求用户手动输入用户名和密码,在此我们输入的用户名和密码分别为tt和123。


  (8)客户端再次和服务器进行认证协商,然后服务器会返回新的挑战,客户机用用户名为tt的用户的密码散列,对服务器发送的8字节挑战先进行3DES加密,然后会产生一个24字节的LM响应。


  (9)服务器从系统sam数据库中取出tt用户的密码散列,并对对发送给客户的挑战用3DES进行加密,然后与客户发来的24字节LM响应进行比对,如果二者完全一样,则认证通过。如图2-20集成身份认证过程7:


  图2-20集成身份认证过程7


  以上过程是客户机和ISA代理服务器进行Windows集成身份验证时选取NTLM认证方式的整个认证过程。由此看出,用户的明文口令不在网络上传输,所以能够抵抗中间人的窃听攻击。但是,如果攻击者在网络中嗅探出8字节的挑战和24字节的LM响应,然后导入口令破解软件(如彩虹链表或者L0phtCrack等)进行字典攻击或暴力破解,是完全可以攻破的。虽然如此,集成身份认证信息通过嗅探进行获取已不现实,但是在浏览器首次访问网络时,其用户名和口令必须进行输入才能进行验证,所以可通过获取用户输入来获得,总体思路就是监视当前用户输入的窗口,如果是该窗口标题是“输入网络密码”,则获取当前键盘输入信息,从而直接获得身份认证信息。


  2.5 HTTP加密隧道技术研究


  2.5.1 HTTP隧道的工作原理


  多数企业因为业务关系都会开放HTTP协议。一般会开放对外部网络80端口的访问,但同时为了防止其它应用软件采用80端口与外部进行通信,通常会在采用具有包过滤功能的代理/防火墙会对访问80端口的数据包进行分析,对于非HTTP协议的数据包进行拦截。


  建立HTTP隧道通信的一般过程是:


  (1)软件采用HTTP协议,在需要通信的两台计算机之间(如计算机A和B)建立一条通信隧道,并通过访问内部计算机的80端口实现。


  (2)HTTP隧道软件将A的HTTP请求的数据(可能为加密数据)封装到HTTP包的有效载荷中,并向计算机B发送HTTP请求。


  (3)当计算机B接收到A发来的HTTP请求后,先去掉HTTP头(可能还需要解密),然后才能获取到HTTP请求中的有效数据。


  (4)计算机B对处理请求,并将处理结果经过同样的封装,反回给计算机A。


  (5)计算机A将数据解包后,取得计算机B的发回的有效数据。


  通过以上步骤内部计算机A能够通过代理/防火墙和外部计算机进行正常通信。本文中没有采用其它通信协议而是采用HTTP协议作为建立隧道的协议的原因主要是因为其它隧道协议虽然有比较成熟的解决方案,但是由于其通信数据包结构比较特别,采用包过滤机制的防火墙能够很容易检测出隧道的存在,而HTTP协议,则具有普遍性和通用性,代理/防火墙很难发现隧道的存在。


  2.5.2 HTTP隧道的安全性


  HTTP协议一般采用明文形式进行报文传送,这种传输方式通过网络嗅探器可很容易捕捉到,而且对通信内容的分析方法也很成熟。所以一般情况下,会采用两种方式来解决通信数据的安全问题。


  (1)对报文中的有效数据在发送前先进行加密处理,在到达目的端时先去掉协议包头然后再进行解密处理,从而得到有效数据。


  采用更安全的HTTPS协议来建立通信隧道。


上一篇 HTTP代理认证协议的研究 下一篇 网络安全与代理ip之间的关系研究