目前,即时通信软件还没有一个业内公认的协议版本,其通信协议与接口都是厂家自己定义的。IETF成立了专门的工作小组来解决即时通信的标准问题并研究和开发IM相关的协议。
目前几个主要的IM协议介绍如下:
(1)即时消息和存在协议IMPP(Instant Messaging And Presence Protocol),IMPP构建了一个具有空间接收、发布能力的系统,定义了必要的协议和数据格式。目前出版了三个草案RFC。
(2)存在和即时消息协议PRIM(Presence and Instant Messaging Protocol),此协议目前已弃用。
(3)SIP即时消息和存在扩展协议SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions),SIMPLE是目前为止较为完善的一个IM协议。其主要的用途在于语音跟视频,许多主流的即时通讯软件的语音视频协议都是基于SIMPLE的。
(4)可扩展消息与存在协议XMPP(Extensible Messaging and Presence Protocol ),XMPP基于XML并且继承了在XML的灵活发展性。因此XMPP是可扩展的,可以发送扩展的信息来处理用户需求,可以在XMPP的顶端建立类似内容发布系统和基于地址的服务等应用程序。XMPP还包括服务器端的协议,因此扩展性易添加新功能。这也是主流即时通讯软件常用的协议之一。
其实各大厂家也没有完全按照这些协议来开发软件的,都是去开发自己独有的协议,因为协议的部分是整个即时通讯软件的核心,如果协议公开安全性会受到严重的冲击。所以大部分厂家采用的是开放一些安全的接口给其他开发人员来帮助开发相关软件,从网络安全的角度来说,本文分析协议的方法是去分析比较这些即时通讯软件安全性的开端,从破解协议的难度上就可以比较出优劣,从数据包的内容加密程度以及对源代码的保护措施又可以看出厂家在软件开发过程中的许多不足之处。
由于本文主要研究了MSN的协议,在此先看一下之前已知的MSN的一些协议相关的内容。
MSN采用列席式的即时交互方式通讯,“列席式”的意思是无论你是否在线或者有无头像都会出现在好友的列表里。使用的标准是RFC 2778。MSN的每个会话都有一个跟“通知服务器”(NS)的连接,NS用来提供给客户列席服务。等到通知服务器允许客户与“交换服务器”(SB)连接后,就有了即时通讯服务,这个是由SB提供的。下面分别说明一下:
通知服务器(NS)
用来保留在线信息,不仅仅是自己还有他人的,这样用户相互之间就能知道彼此的状态,当然服务器也知道。例如,如果一个用户下线了,其他用户也可以得到他下线的反馈。通知服务器也提供一些其他服务,这里不做过多介绍。
交换板(SB)
交换板是作为回话代理使用的,每有一个新的对话就要建立一个新的交换板。当然,一个交换板也可以有许多人加入。比如多人聊天。
1.2安卓系统
1.2.1 安卓系统的层次
安卓系统是一个基于Linux系统的智能手机系统,其中的许多底层实现依托于Linux,上层兼容C于JAVA,也有一些自己的驱动,是手机系统软件里较为成功的一个。用户量大,兼容性好,厂商支持到位等等优势使得其成为目前市面上最主流的智能手机系统之一。其内部是如下这几层结构:
第一层:C语言写的开源的Linux操作系统和驱动。
Linux内核是Android系统的核心,其安全性、内存管理、、网络协议等等都是基于Linux的。这就注定了安卓上程序的安全性会受到考验,因为Linux的开源,给安卓带来了巨大的好处,这些好处包括众多的开发人员的参与以及变体系统的产生。同样这样给其安全性带来了一定的危害,因此研究其系统就尤为的重要。