CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

网络安全,安全,网络安全设备,信息安全产品,网络安全新闻,信息安全市场分析,黑客攻防,防黑反黑技巧,黑客,网络安全技术,网络安全方案,病毒播报,最新病毒库,攻防技巧,入侵渗透,新闻,思科,Juniper,天融信,瑞星,金山,江民,卡巴斯基,赛门铁克, 趋势,绿盟科技,联想网御,MCAFEE,安氏,冰峰网络,网络入侵,木马,病毒,病毒分析,木马分析,样本分析,木马样本分析,病毒样本分析,杀毒软件

您现在的位置: IT专家网 > 安全子站 > 安全技巧

常用IM典型登录方式及原理分析

作者: 彭文波,  出处:天极网, 责任编辑: lvye, 
2006-04-12 13:36
  一般来说,用户微机上的程序统称为MSN Messenger“客户端”,它通过Internet连接到一个MSN Messenger“服务器”。也就是说,客户端通过服务器与其他客户端交互信息。

  1、典型剖析:MSN登录实例

  一般来说,用户微机上的程序统称为MSN Messenger“客户端”,它通过Internet连接到一个MSN Messenger“服务器”。也就是说,客户端通过服务器与其他客户端交互信息。在大多数时间里,用户的客户端与服务器会话,然后由服务器来处理这些会话信息并通知其他人。了解之前,我们使用Sniffer NT来截获登录时的数据。如图1所示。


图1

  从截获的登录数据中,我们可以看到,在“数据”一栏中,有很多类似CVR、VER、USR等开头的数据,登录连接时还用到了TCP/1863和TCP/443这两个端口,它们记录了MSN Messenger登录的整个过程。在图中,我们看到了这样一条记录:“VER 145 MSNP11 MSNP10 CVR0”。

  要回答这个问题,我们首先就要谈到MSN Messenger协议了。1999年,Microsoft向IETF(Internet Engineering Steering Group,国际互联网工程任务组,是世界上做互联网方面技术标准的组织)提交了一份“MSN Messenger Service 1.0 Protocol”草案,这是最初版本的MSN Messenger协议,不同的协议经常被写为“MSNP9”、“MSNP10”、“MSNP11”等。近几年中,MSN已经历经数次修订,目前MSN Messenger的协议已经到了第12版,简称MSNP12。现在,我们使用比较广泛的MSN7.0支持的协议是MSNP10和MSNP11,出于规范的需要,MSN Messenger用户必须升级到较高的版本,因为服务器对MSNP8以下的版本已经不再支持。这就是我们在刚才截获的数据中,为什么可以看到“MSNP11 MSNP10”的缘故了。

  那么,CVR、VER、USR这些数据是什么意思呢?客户端与服务器间信息都是以命令格式传递的。命令被描述为三个字符、所有字母大写的命令代号。所有一般命令都有一个事务ID并且以新行结束。客户端发送的命令一般会使服务器响应一个及以上的命令。这些数据是MSN Messenger命令,它们使用了纯ASCII码,同时对非ASCII码字符使用URL编码。命令的语法如下:

XXX [<SP> TrID <SP> PARAM1 <SP> PARAM2…] <CRLF>

  其中,是空白字符,是回车换行,XXX是一个3字符的命令串,TrID是一个流水号,PARAMx是参数,[ ]内是可选项。关于这些命令的含义,可以参考下表(列举部分):

命令 来源 去向 说明
CHG Client NS 发出改变状态的请求。
NS Client 返回改变状态的应答。
CHL NS Client 服务器发出验证要求。
SS Client
CVR Client NS 发出客户端的OS、语言、MSN Messenger版本等信息。对于官方客户端来说,服务器会响应建议用户使用的客户端版本信息。
Client SS
NS Client 返回推荐的MSN Messenger版本、升级软件需要的下载地址等信息。
SS Client
INF Client NS 询问服务器所支持的认证方式。
Client SS
NS Client 返回服务器所支持的认证方式。
SS Client
MSG Client SS 发送消息到其他用户(聊天对象)。
NS Client 传递服务器(系统)的消息到客户端。
SS Client 传递其他用户(聊天对象)的消息到客户端。
SYN Client NS 客户端-服务器同步。
NS Client
URL Client NS 发出获取MSN服务URL的请求。
NS Client 返回获取URL请求的应答。
USR All All 声明、传递、鉴别用户身份。
VER Client DS 协商MSN Messenger协议版本。
Client NS
DS Client
NS Client
XFR DS Client 向客户端分配NS(通知客户端转向连接指定的NS)。
Client NS 发出分配SS的请求。
NS Client 返回分配SS请求的应答。
 

  这样,当我们看到“CVR 146 0x0804 winnt 5.0 i386 MSNMSGR 7.0.0777 msmsgs cndes2005@hotmail.com”时,就可以知道,现在客户端正发出OS、语言、MSN Messenger版本等信息。现在,聪明的读者可能会思考:在这些表中,我们看到了DS、NS、SS等代表来源和去向的服务器,他们又有什么特殊的意义呢?简单介绍如下:

  派遣服务器(Dispatch Server,简称DS服务器)。这是客户端最初连接的服务器,负责给客户端分配合适的通知服务器。域名是messenger.hotmail.com,标准服务端口是1863。完成派遣任务后,切断TCP连接。

  通知服务器(Notification Server,简称NS服务器)。通知服务器的目的主要就是保留用户的在线信息,还有其他用户所关心的重要人员的信息。包括登录、改变状态、获取用户列表、修改用户信息、发起聊天、接受呼叫、邮件通知、退出等等。通知服务器同样也提供其他通知服务,如hotmail的新邮件提示和创建或者加入会话等。服务端口由派遣服务器指定,通常也是1863。

  接线服务器(Switchboard Server,简称SS服务器)。这里保存了各人员的即时会话信息,换句话说,每个MSN中的用户对应连接到一个共享交换板的会话中。因此,这里也可以看作客户端之间聊天使用的中转服务器。每开一个聊天窗口,客户端和服务器就建立一个TCP会话。当客户端之间需要进行文件传输或语音聊天时,发送系统消息,建立“点对点”会话通道(可能转为使用UDP),服务端口通常也是1863。“点对点”通信使用的端口由客户端自动协商决定,如文件传输通常使用6891端口。

  整个登录过程可以划分为四个阶段,基本过程如图2所示。


图 2

  知道了这些知识之后,我们开始考虑:登录过程中的顺序是如何规定的呢?过去的MSN Messenger版本(MSNP8以下),简单地使用MD5等Hash算法对用户身份进行认证,其安全性比较差。现在,MSNP10/MSNP11使用了一种TWN(Tweener)认证方式,通过SSL/TLS连接到login.passport.com和loginnet.passport.com等服务器,借助于HTTP协议输入账号和密码,认证通过后,才能取得“进场券”。打开数据记录,如图3所示,查看数据框中的第二行,我们可以看到命令“USR 147 TWN I cndes2005@hotmail.com”,这其中就使用了TWN认证方式,表示声明、传递、鉴别用户cndes2005@hotmail.com的身份。


图3

  了解了这样一个认证过程,现在我们将登录过程中的所有数据归纳如下,通过仔细的分析,来详细了解其登录步骤。整个过程的登录模式十分清晰,可以详细分析如下:

  1) VER 145 MSNP11 MSNP10 CVR0

  这时,客户端连接到DS服务器的TCP 1863端口,这个DS服务器的DNS名为Messenger.hotmail.com,这时,客户端就像一个要进场看电影的人拿出了门票:“我能支持MSNP10和MSNP11”。

  2) CVR 146 0x0804 winnt 5.0 i386 MSNMSGR 7.0.0777 msmsgs cndes2005@hotmail.com

  客户端与DS之间进行MSN协议的版本协商;客户端发送本地操作系统的一些系统信息给DS,客户端报告本机信息:OS=Windows 2000(NT 5.0),语言=简体中文,MSN Messenger版本= 7.0.0777,账号= cndes2005@hotmail.com。

  3) USR 147 TWN I cndes2005@hotmail.com

  使用TWN认证方式连接方式进行身份认证。

  4) CVR 146 1.0.0000 1.0.0000 1.0.0000 http://msgr.dlservice.microsoft.com http://messenger.msn.com/cn

  客户端初始化用户认证请求,但DS并不负责身份认证的相关事宜,于是它返回一个Notification Server(NS)服务器的地址给客户端。

  5) XFR 147 NS 207.46.4.22:1863 0 65.54.239.20:1863

  DS将主动断开与客户端的连接,也就是叫客户端去找NS进行身份认证,这个NS服务器的DNS名通常为*.msgr.hotmail.com的格式。

  6) VER 148 MSNP11 MSNP10 CVR0

  7) VER 148 MSNP11 MSNP10 CVR0

  8) CVR 149 0x0804 winnt 5.0 i386 MSNMSGR 7.0.0777 msmsgs cndes2005@hotmail.com

  9) USR 150 TWN I cndes2005@hotmail.com

  10) VER 148 MSNP11 MSNP10 CVR0

  11) CVR 149 0x0804 winnt 5.0 i386 MSNMSGR 7.0.0777 msmsgs cndes2005@hotmail.com

  12) USR 150 TWN I cndes2005@hotmail.com

  客户端连接到上面得到的NS的TCP 1863端口,由于DS与NS之间没有连接,所以客户端又需要再次向NS提供上面类似的操作。

  13) USR 150 TWN S lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1124521006,kpp=1,kv=7,ver=2.1.6000.1,rn=qp5CBKD1,
tpf=8f62bda812c23d7b255e3771183d0a4c

  客户端向NS服务器初始化认证请求,NS返回一串用于下面Passport认证的字符串。

  14) CVR 149 1.0.0000 1.0.0000 1.0.0000 http://msgr.dlservice.microsoft.com http://messenger.msn.com/cn

  15) USR 150 TWN S lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1124521006,kpp=1,kv=7,ver=2.1.6000.1,rn=qp5CBKD1,
tpf=8f62bda812c23d7b255e3771183d0a4c

  客户端用户向微软的Passport服务进行身份认证,认证成功后客户端将得到一个“凭证”。

  16) USR 151 TWN S t=7r4WmwwzVEcP3KX880SWs6NeTyAbN2YNtf4TZaZlG6nLJXdrc5Q0ENfGta1FIE90rjih!2A6fs8b*65tgxM2it!hpD3tpsFZwwkb2lZRW2hiT2W487uofkzA$$
&p=7aLUOjOhqG1zU7Bps!PPAuw0ZtUQcGepxzctmA9uPJVjybtk1!EBAxE7SARl!*3*uO7E9pmmzjXvgKlWGqCmo5Xk83jhgZdxOtU7aknFGrO3A6l2L07XQOe
RosMCL07AE0KNrM1M! 8xyJVQudc*zhEizgfi8N7Q4SCTpauxJbJOHco77thHX8IIYiWhIjO9*r58ljTNWLiTK0$

  客户端将上面获得的“凭证”给NS看,也就是检查“进场券”。

  17) USR 151 OK cndes2005@hotmail.com 1 0

  检查完毕,身份属实,所以NS服务器就说OK,于是用户成功登录进NS。登录后,我们还可以了解在线用户的一些信息。如图4所示,可以知道有一个MSN用户在线。


图4

共3页。 1 2 3 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


    • 解析如何实现自动化的IT安全合规管理评论
      能够解决企业IT、审计和运作团队共同问题的方法一直是企业IT管理者所迫切希望的,自动化的企业合规管理将会及时的发现并掌控企业实际存在的各种问题。
    • 视频讲解:MS Windows系统安全评论
      本文将由7all为IT专家网用户讲解MS Windows操作系统。
    • 浅谈逆向工程在网络安全研究中的运用评论
      从某种程度上来说,计算机软件的逆向工程技术主要过程为分析计算机程序,在分析计算机程序的过程中,逐渐建立起高于源代码级别的更抽象层次的程序运行过程。
    • 评估Vista内核模式的安全性评论
      Windows Vista与之前的MS Windows版本(包括Windows XP SP2)相比增加了很多的安全性。Vista新安全性的特征可以包括驱动签名、PatchGuard、内核模式代码完整性检查等。

天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i