时间:2024-08-31
蒋军强 ,陈 岗,刘衍斌
(湖南理工学院 网络中心,湖南 岳阳 414006)
HTTP和WAP共存框架及其安全性研究
蒋军强 ,陈 岗,刘衍斌
(湖南理工学院 网络中心,湖南 岳阳 414006)
为了解决HTTP和WAP共存于同一架构的问题,本文提出了一种新的框架——wHTTP框架,它主要涉及到一种新的标记语言和一种新的通用浏览器,二者共同作用可使HTTP和WAP内容能共存于同一源文件中.新框架同时也较好的解决了现在移动互联网框架中存在的安全鸿沟问题.
WAP;WML;HTTP;HTML;浏览器;无线设备
当前Internet已完全融入到人们的日常生活中.超文本传输协议HTTP(Hypertext Transfer Protocol)作为构成Internet的基础之一,在基于网页的应用系统中扮演着重要的角色.
随着科学技术的快速发展,通信设备也变得越来越小,越来越轻.现在人们都在使用无线的通信设备如手机,掌上计算机和PDA,为了使这些无线设备相互通信,无线应用协议WAP[1](Wireless Application Protocol)便应运而生.
人们通过使用个人电脑里的 HTML浏览器(如 Microsoft Internet Explorer,Mozilla Firefox,Google Chrome等)在Internet上浏览HTML网页,而小型无线设备则使用WML浏览器(如各手机自带浏览器)来浏览WML网页,HTML浏览器不能浏览WML网页,WML浏览器同样不能浏览HTML网页.
从上可知,万维网WWW可分成两个独立的部分:有线的和无线的.如果HTML网页可以使用小型手持设备浏览,而WML网页也可以用PC电脑浏览器浏览,这显然会更好.为了实现这一设想,软件业的许多研究小组做了不少尝试,但是成功率并不高.此外,在当前的 WAP协议中,仍然存在一些安全隐患.为了解决上述问题,本文提出了一种新的架构——wHTTP架构,它可以有效的克服现有的移动因特网中存在的安全鸿沟问题,同时可使HTTP和WAP使用统一的标记语言和HTML-WML浏览器.
超文本传输协议HTTP是目前广泛使用的分布式应用程序级的有线通信协议;而无线应用协议(WAP)则是小型手持设备之间的通信协议.兼容WAP的的应用程序也是用该协议来进行无线通信.这两个现有的访问控制协议的描述如下.
HTTP是一种分布式,协同合作,超媒体信息系统的应用层协议[1].自1990年以来,HTTP被广泛的应用在万维网WWW上,它遵循请求/响应模式,通常运行在TCP/IP(传输控制协议/网际协议)上,但并不依赖TCP/IP协议,在客户端——服务器端的通信链路中间媒介上如通道、网关或代理,HTTP同样可以存在.如图1所示.
图1 使用了中间件的HTTP通信模式
超文本传输协议 HTTP支持多种格式的内容,如纯文本,超文本标记语言(HTML),图片(bmp,jpeg,gif等),视频(mpeg,mov等)等等.
1997年6月,爱立信,摩托罗拉,诺基亚和Openwave联合成立了WAP论坛[2],该论坛的主旨就是为了拓展互联网在无线环境下的应用.WAP就是由该论坛维护并更新的,它是一种无线设备访问信息和服务的协议.无线环境下,由于网络带宽,手持设备的处理能力,存储容量,输入输出能力均有限,为了解决这些实际问题,无线应用协议(WAP)就应运而生.
WAP应用于无线设备的微浏览器,而 HTTP主要是应用于有线互联网下的网页浏览器,在以互联网为基础的客户端/服务器的应用体系里,它们总是扮演客户端的角色.无线设备中的微浏览器向服务器发送和接受信息,就像 PC电脑中的网页浏览器向HTTP服务器发送和接受信息一样.为了伺服WAP内容,首先要构建WAP服务器.它与HTTP服务器能共存于同一硬件服务器上.WAP设备能直连WAP服务器.如图2所示.
图2 WAP服务器与客户端直接通信
服务器和 WAP客户端之间有个中间设备不可或缺,它就是WAP网关,如图3所示.在 WAP客户端和 WAP网关之间通信使用WAP协议,在WAP网关和服务器之间通信则使用TCP/IP和HTTP协议.这里WAP网关的作用就是将来自WAP客户端的WAP数据翻译成 WWW 数据,并将请求数据解码,同时将服务器端发回来的响应数据编码成二进制,以使客户端能够识别.
图3 包含中间网关的基本WAP框架
有线互联网环境下,安全问题通常交由传输层安全协议 TLS(Transport Layer Security)负责,无线环境下,这一项任务便被交给了无线传输层安全协议WTLS[3](Wireless Transport Layer Security).在上一节中提到,WAP客户端直接与WAP网关通信.WTLS就是控制它们之间收发信息安全的协议.WAP网关然后利用TLS协议与服务器建立起一个安全会话.由此可以看出,网关在当中扮演了不可或缺的编码和解码的角色.
图4 框架中WAP网关存在安全问题
因此,在之前的场景中,实际上存在着两个会话,一个位于WAP客户端和WAP网关之间,另一个位于WAP网关和服务器之间,如图4所示.这意味着如果在WAP网关这一环节,数据没有加密,很有可能成为黑客的攻击目标,存在安全问题.因此,必须采取一些措施来解决这个安全鸿沟问题.
前面提到,人们使用个人电脑中的网页浏览器(如Microsoft Internet Explorer,Mozilla Firefox,Google Chrome等)来浏览站点的HTML内容,但不能使用它来浏览WML编写的内容.为了访问某个网站,首先必须在浏览器地址栏里输入www.sitename.com,然后通过HTTP协议来建立连接.WAP站点名通常是wap.sitename.com.
因为个人电脑的网页浏览器只能浏览 HTML网页,而小型无线手持设备的微浏览器只能浏览 WML网页,这就带来了一些问题:
(1)网站管理员必须针对完全相同的内容建立和维护两个不同的站点,一个供无线手持设备访问的WAP站点,一个供PC电脑访问的WWW站点.
(2)程序设计开发人员必须既兼顾到的PC电脑上的网页浏览器,同时也必须兼顾到无线手持设备上的微浏览器.
(3)互联网知识领域被人为的划分为两个子域:有线互联网和无线互联网.
为了解决上述问题,信息技术和互联网的专家学者进行了大量的尝试,他们试着打破有线和无线的界限.他们的研究工作都是在开发一种HTML-WML的转换器,它能将HTML或XML内容转换成无线手持设备可以识别的 WML内容,最终的目标是为移动互联网用户提供一个十分有用的工具利于他们访问互联网.
Kapadia提出了三种不同转换方法.第一种是编写一个Java程序读取输入流,提炼所需数据,添加合适的WML标签最后输出一个.wml文件.第二种是利用XSLT、XML解析器Xerces[4]、XSLT处理器Xalan[5]和一个Java文件来实现这种转换.第三个方法基于Java Servlet,利用Cocoon[5],然后像WEB服务器一样,只能通过发布响应文件转换为指定的URL请求.Kapadia提出的这些方法在实际应用中效果并不显著,首先以XML文档作为输入流就是一个大问题,接下来,转换软件还必须重写新标签.Html2Wml0.4.1是一个可以实时将HTML转换成WML的工具,它的前提是所输入的HTML文件是一个格式良好的文件,但转换后的文件并不是个有效的WML文件,不能立即在微浏览器上表现出来.LazyWAP是另一款可以实时转换HTML内容成WML兼容格式的工具,这里的输入源HTML文件应该与XHTML兼容.LazyWAP可以应付比较简单的转换,但只要输入源稍微复杂一点,它就显得力不从心,尤其在字符串替换等方面,与JAVA,C或PHP比起来,要逊色不少.XML到HTML的转换可以通过XSLT(eXtensible Stylesheet Language Transformations)来实现,但这种转换也仅仅限于它们之间.Kaasinen等提出了解决复杂HTML转换的方法,后被检验出对格式不规范的HTML的转换也存在问题.
尽管为数不少的技术先行者已经尝试让HTML和WML共存于同一架构内,但成功率非常低.为了解决这种情况,一个能在WAP内容和传统的HTML内容之间自由转换的新框架(我们姑且称它为wHTTP框架)的建立显得十分必要.这种框架的设计包含以下三个方面:
(1)HTML和WML之间的转换;
(2)网页脚本语言(如Javascript,VBscript等)和WMLScript之间的转换;
(3)无线应用环境WAE(Wireless Application Environment)所支持内容格式(如wbmp)和常规网页内容格式(如bmp,jpeg等)之间的转换;
HTML拥有超过 120个标签,它的规则通过标准通用标记语言 SGML(Standard Generalized Markup Language)来定义.XML继承自SGML,而WML则是XML的一个应用(XML定义的语言),WML有35个严格的语义标签,它们虽然在某种逻辑上属于HTML标签的子集,但如果使用对应的WML标签来直接替换某个HTML文件中的HTML标签却不一定可行.
WML是XML定义语言,格式良好.但HTML就不同,它的格式没有XML定义的那么严格.HTML规则使得标签可以松散嵌套,网页浏览器也能识别.开始转换之前,这种HTML网页必须先转换成格式良好的HTML文件(如XHTML).
HTML标签既可以大写也可以小写,相反,WML标签必须全部小写.因此,转换时所有的HTML标签必须全部转换成小写状态.另外,在文档组织格式上,WML和HTML也有很大的不同.一个HTML文件只包含一个HTML页面,但是一个WML文件可能只包含一个WML卡片组(deck),一个卡片组里包含多个WML卡片(card).浏览某个HTML网页时,实际上看到的就是HTML的内容,而浏览WML页面时,看到的可能是卡片组里的某个卡片,也就是说一个时间内只能有一个卡片呈现在客户端的微浏览器上.因此,针对内容组织格式上的不同,在转换过程中必须谨慎处理.
WMLScript也是WAP环境下的一种客户端脚本语言,与传统的网页脚本语言(如Javascript,VBScript等)相比,它最大的不同体现在WMLScript使用字节码和字节码解释器.在被发送到客户端之前,WAP网关会将WMLScript编译成字节码,客户端的微浏览器利用WAP预先定义的微虚拟机来执行WMLScript的字节码.在HTML到WML转换的过程中,脚本语言的转换也是必须要考虑的.
WAP定义了无线应用环境WAE下的内容格式,它们都适合运行在存储容量、计算能力有限的移动设备上.在HTML到WML转换的过程中,也涉及到它们各自所支持内容格式之间的转换.
新框架针对WAE定义和WAP框架本身都作出了一些修改,
(1)用同时兼容HTTP和WAP的wHTML替换WML;
(2)WMLScript文件的执行允许字节码重用;
(3)一个能同时渲染HTTP和WAP内容的浏览器;
(4)保证WAP执行安全的规则.
无线超文本标记语言 wHTML(wireless Hypertext Markup Language)是参照 XML定义,能同时兼容HTTP和WAP且格式良好的标记语言,它所编写的文件的扩展名为.whtml,它包含一个标签集(由HTML标签和WML标签联合组成),在此标签集内部,属于HTML的标签将加上前缀‘h’,属于WML的标签将加上前缀‘w’.前缀的不同有助于语法解析器区分HTML和WML标签.
WMLScript代码可以写在独立的文件中,然后在需要它的WML或wHTML文件中引入它.执行过程与Java生成字节码过程类似.在服务器部署一个wHTML站点之前,开发人员必须首先将被源码文件包含的WMLScript脚本编译成相应的字节码[6],在以后的函数调用过程中,wHTML文档可以直接从字节码中调用.这就避免了WAP网关在每次页面请求到达时都要生成字节码,提高了代码的重用率.
通常网页浏览器和微浏览器使用不同的解析器,不同的解析逻辑.通用浏览器使用 wHTML解析器,解析器会根据相关定义检查wHTML文档是否格式良好,这种检查通过栈来实现:
(1)解析器遇到开始标签,将它入栈;
(2)当遇到与开始标签匹配的结束标签,则将开始标签出栈;
(3)解析结束时如果栈为空,则该文档格式良好;
(4)解析过程栈中只要出现与开始标签不匹配的结束标签,那解析器就视该文档格式不够良好;
(5)解析结束时,如果栈中尚有开始标签未出栈,则视该文档为格式不良好;
(6)解析器根据前缀的不同(‘h’或‘w’)来区分 HTML 和 WML 标签.
通常用户访问某个网站,直接输入网址 http://www.sitename.com 即可,为安全起见,他可通过https://www.sitename.com来访问.在 wHTTP框架下,用户访问 WAP站点时,可以输入wap://www.sitename.com来实现,对于安全性较高的交易,可以输入waps://www.sitename.com.
wHTTP框架在客户端和服务器之间部署了一个网关,服务器收到客户端的HTTP或WAP请求时,会向网关发出 wHTML内容作为响应,网关解析wHTML文档后,分离出HTTP和WAP内容,然后再将它们发回给客户端,浏览器收到之后会立即将内容呈现出来.其中网关到服务器、网关到 HTTP客户端之间的通信安全由 TLS协议控制,网关到WAP客户端的通信安全由WTLS协议控制.如图5所示.
图5 wHTTP框架
当服务器接收到HTTPS或WAPS请求时,它将wHTML内容发送到网关,网关直接将其转发给客户端,整个通信的安全保障交由SSL协议控制.接收到内容后,浏览器解析并检索出HTTP和WAP内容后,再根据请求的类型来呈现不同的内容.
由此可见,在WAPS的通信模式下,数据在传输过程中包括在网关中都是以加密的形式存在着,因此第3节中提到的安全鸿沟问题在此框架中根本就不存在,所以无需考虑这个问题.
WAP的未来肯定会摆脱内存,带宽和处理能力的限制,与HTTP的差异也会越来越模糊.文中所提到的wHTTP框架,它涉及到一门新的标记语言,一种通用的浏览器,二者促成了HTTP和WAP内容能共存于同一源文件内.新框架的提出有利于互联网知识域的整合和统一,同时它也较好的解决了当前移动互联网普遍存在的安全鸿沟问题,是对持续发展的互联网技术的一个较好的补充.
[1]Tanenbaum,A.S.Computer Network[M].2nd Edition.Prentice-Hall,2003
[2]WAP forum.http://www.wapforum.org
[3]代 坤,鲁士文.WTLS在WAP网关中的实现策略[J].计算机应用与软件,2005,22(2):106,129
[4]The Apache Software Foundation,TheAPACHE XMLProject,2010.http://www.xml.Apache.org
[5]The Apache Software Foundation,The Apache Cocoon Project,2010.http://www.cocoon.Apache.org
[6]陈华良,孔令海,陈增强,等.一种基于Java的WAP浏览器的设计及实现[J].计算机工程,2005,31(13):208
The Coexist Framework of HTTP and WAP and Its Safety Study
JIANG Jun-qiang,CHEN Gang,LIU Yan-bin
(Management Center of Campus Network,Hunan Institute of Science and Technology,Yueyang 414006,China )
To solve the problem of HTTP and WAP coexisting in a same framework,a new framework——wHTTP,which refers to a new markup language and a new Generic Browser,is proposed.Under the co-action of two,the contents in HTTP and WAP could be co-restored in a same source file.Meanwhile,the new framework is better for solving the safety problem in the mobile Internet.
WAP;WML;HTTP;HTML;browser;wireless devices
TP393.092
A
1672-5298(2010)04-0027-05
2010-09-02
湖南理工学院资助项目(2010Y59)
蒋军强(1980− ),男,湖南宁乡人,硕士,湖南理工学院网络中心讲师.主要研究方向:网络应用与数据库
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!