蔣軍強 ,陳 崗,劉衍斌
(湖南理工學院 網絡中心,湖南 岳陽 414006)
HTTP和WAP共存框架及其安全性研究
蔣軍強 ,陳 崗,劉衍斌
(湖南理工學院 網絡中心,湖南 岳陽 414006)
為了解決HTTP和WAP共存于同一架構的問題,本文提出了一種新的框架——wHTTP框架,它主要涉及到一種新的標記語言和一種新的通用瀏覽器,二者共同作用可使HTTP和WAP內容能共存于同一源文件中.新框架同時也較好的解決了現(xiàn)在移動互聯(lián)網框架中存在的安全鴻溝問題.
WAP;WML;HTTP;HTML;瀏覽器;無線設備
當前Internet已完全融入到人們的日常生活中.超文本傳輸協(xié)議HTTP(Hypertext Transfer Protocol)作為構成Internet的基礎之一,在基于網頁的應用系統(tǒng)中扮演著重要的角色.
隨著科學技術的快速發(fā)展,通信設備也變得越來越小,越來越輕.現(xiàn)在人們都在使用無線的通信設備如手機,掌上計算機和PDA,為了使這些無線設備相互通信,無線應用協(xié)議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電腦瀏覽器瀏覽,這顯然會更好.為了實現(xiàn)這一設想,軟件業(yè)的許多研究小組做了不少嘗試,但是成功率并不高.此外,在當前的 WAP協(xié)議中,仍然存在一些安全隱患.為了解決上述問題,本文提出了一種新的架構——wHTTP架構,它可以有效的克服現(xiàn)有的移動因特網中存在的安全鴻溝問題,同時可使HTTP和WAP使用統(tǒng)一的標記語言和HTML-WML瀏覽器.
超文本傳輸協(xié)議HTTP是目前廣泛使用的分布式應用程序級的有線通信協(xié)議;而無線應用協(xié)議(WAP)則是小型手持設備之間的通信協(xié)議.兼容WAP的的應用程序也是用該協(xié)議來進行無線通信.這兩個現(xiàn)有的訪問控制協(xié)議的描述如下.
HTTP是一種分布式,協(xié)同合作,超媒體信息系統(tǒng)的應用層協(xié)議[1].自1990年以來,HTTP被廣泛的應用在萬維網WWW上,它遵循請求/響應模式,通常運行在TCP/IP(傳輸控制協(xié)議/網際協(xié)議)上,但并不依賴TCP/IP協(xié)議,在客戶端——服務器端的通信鏈路中間媒介上如通道、網關或代理,HTTP同樣可以存在.如圖1所示.
圖1 使用了中間件的HTTP通信模式
超文本傳輸協(xié)議 HTTP支持多種格式的內容,如純文本,超文本標記語言(HTML),圖片(bmp,jpeg,gif等),視頻(mpeg,mov等)等等.
1997年6月,愛立信,摩托羅拉,諾基亞和Openwave聯(lián)合成立了WAP論壇[2],該論壇的主旨就是為了拓展互聯(lián)網在無線環(huán)境下的應用.WAP就是由該論壇維護并更新的,它是一種無線設備訪問信息和服務的協(xié)議.無線環(huán)境下,由于網絡帶寬,手持設備的處理能力,存儲容量,輸入輸出能力均有限,為了解決這些實際問題,無線應用協(xié)議(WAP)就應運而生.
WAP應用于無線設備的微瀏覽器,而 HTTP主要是應用于有線互聯(lián)網下的網頁瀏覽器,在以互聯(lián)網為基礎的客戶端/服務器的應用體系里,它們總是扮演客戶端的角色.無線設備中的微瀏覽器向服務器發(fā)送和接受信息,就像 PC電腦中的網頁瀏覽器向HTTP服務器發(fā)送和接受信息一樣.為了伺服WAP內容,首先要構建WAP服務器.它與HTTP服務器能共存于同一硬件服務器上.WAP設備能直連WAP服務器.如圖2所示.
圖2 WAP服務器與客戶端直接通信
服務器和 WAP客戶端之間有個中間設備不可或缺,它就是WAP網關,如圖3所示.在 WAP客戶端和 WAP網關之間通信使用WAP協(xié)議,在WAP網關和服務器之間通信則使用TCP/IP和HTTP協(xié)議.這里WAP網關的作用就是將來自WAP客戶端的WAP數據翻譯成 WWW 數據,并將請求數據解碼,同時將服務器端發(fā)回來的響應數據編碼成二進制,以使客戶端能夠識別.
圖3 包含中間網關的基本WAP框架
有線互聯(lián)網環(huán)境下,安全問題通常交由傳輸層安全協(xié)議 TLS(Transport Layer Security)負責,無線環(huán)境下,這一項任務便被交給了無線傳輸層安全協(xié)議WTLS[3](Wireless Transport Layer Security).在上一節(jié)中提到,WAP客戶端直接與WAP網關通信.WTLS就是控制它們之間收發(fā)信息安全的協(xié)議.WAP網關然后利用TLS協(xié)議與服務器建立起一個安全會話.由此可以看出,網關在當中扮演了不可或缺的編碼和解碼的角色.
圖4 框架中WAP網關存在安全問題
因此,在之前的場景中,實際上存在著兩個會話,一個位于WAP客戶端和WAP網關之間,另一個位于WAP網關和服務器之間,如圖4所示.這意味著如果在WAP網關這一環(huán)節(jié),數據沒有加密,很有可能成為黑客的攻擊目標,存在安全問題.因此,必須采取一些措施來解決這個安全鴻溝問題.
前面提到,人們使用個人電腦中的網頁瀏覽器(如Microsoft Internet Explorer,Mozilla Firefox,Google Chrome等)來瀏覽站點的HTML內容,但不能使用它來瀏覽WML編寫的內容.為了訪問某個網站,首先必須在瀏覽器地址欄里輸入www.sitename.com,然后通過HTTP協(xié)議來建立連接.WAP站點名通常是wap.sitename.com.
因為個人電腦的網頁瀏覽器只能瀏覽 HTML網頁,而小型無線手持設備的微瀏覽器只能瀏覽 WML網頁,這就帶來了一些問題:
(1)網站管理員必須針對完全相同的內容建立和維護兩個不同的站點,一個供無線手持設備訪問的WAP站點,一個供PC電腦訪問的WWW站點.
(2)程序設計開發(fā)人員必須既兼顧到的PC電腦上的網頁瀏覽器,同時也必須兼顧到無線手持設備上的微瀏覽器.
(3)互聯(lián)網知識領域被人為的劃分為兩個子域:有線互聯(lián)網和無線互聯(lián)網.
為了解決上述問題,信息技術和互聯(lián)網的專家學者進行了大量的嘗試,他們試著打破有線和無線的界限.他們的研究工作都是在開發(fā)一種HTML-WML的轉換器,它能將HTML或XML內容轉換成無線手持設備可以識別的 WML內容,最終的目標是為移動互聯(lián)網用戶提供一個十分有用的工具利于他們訪問互聯(lián)網.
Kapadia提出了三種不同轉換方法.第一種是編寫一個Java程序讀取輸入流,提煉所需數據,添加合適的WML標簽最后輸出一個.wml文件.第二種是利用XSLT、XML解析器Xerces[4]、XSLT處理器Xalan[5]和一個Java文件來實現(xiàn)這種轉換.第三個方法基于Java Servlet,利用Cocoon[5],然后像WEB服務器一樣,只能通過發(fā)布響應文件轉換為指定的URL請求.Kapadia提出的這些方法在實際應用中效果并不顯著,首先以XML文檔作為輸入流就是一個大問題,接下來,轉換軟件還必須重寫新標簽.Html2Wml0.4.1是一個可以實時將HTML轉換成WML的工具,它的前提是所輸入的HTML文件是一個格式良好的文件,但轉換后的文件并不是個有效的WML文件,不能立即在微瀏覽器上表現(xiàn)出來.LazyWAP是另一款可以實時轉換HTML內容成WML兼容格式的工具,這里的輸入源HTML文件應該與XHTML兼容.LazyWAP可以應付比較簡單的轉換,但只要輸入源稍微復雜一點,它就顯得力不從心,尤其在字符串替換等方面,與JAVA,C或PHP比起來,要遜色不少.XML到HTML的轉換可以通過XSLT(eXtensible Stylesheet Language Transformations)來實現(xiàn),但這種轉換也僅僅限于它們之間.Kaasinen等提出了解決復雜HTML轉換的方法,后被檢驗出對格式不規(guī)范的HTML的轉換也存在問題.
盡管為數不少的技術先行者已經嘗試讓HTML和WML共存于同一架構內,但成功率非常低.為了解決這種情況,一個能在WAP內容和傳統(tǒng)的HTML內容之間自由轉換的新框架(我們姑且稱它為wHTTP框架)的建立顯得十分必要.這種框架的設計包含以下三個方面:
(1)HTML和WML之間的轉換;
(2)網頁腳本語言(如Javascript,VBscript等)和WMLScript之間的轉換;
(3)無線應用環(huán)境WAE(Wireless Application Environment)所支持內容格式(如wbmp)和常規(guī)網頁內容格式(如bmp,jpeg等)之間的轉換;
HTML擁有超過 120個標簽,它的規(guī)則通過標準通用標記語言 SGML(Standard Generalized Markup Language)來定義.XML繼承自SGML,而WML則是XML的一個應用(XML定義的語言),WML有35個嚴格的語義標簽,它們雖然在某種邏輯上屬于HTML標簽的子集,但如果使用對應的WML標簽來直接替換某個HTML文件中的HTML標簽卻不一定可行.
WML是XML定義語言,格式良好.但HTML就不同,它的格式沒有XML定義的那么嚴格.HTML規(guī)則使得標簽可以松散嵌套,網頁瀏覽器也能識別.開始轉換之前,這種HTML網頁必須先轉換成格式良好的HTML文件(如XHTML).
HTML標簽既可以大寫也可以小寫,相反,WML標簽必須全部小寫.因此,轉換時所有的HTML標簽必須全部轉換成小寫狀態(tài).另外,在文檔組織格式上,WML和HTML也有很大的不同.一個HTML文件只包含一個HTML頁面,但是一個WML文件可能只包含一個WML卡片組(deck),一個卡片組里包含多個WML卡片(card).瀏覽某個HTML網頁時,實際上看到的就是HTML的內容,而瀏覽WML頁面時,看到的可能是卡片組里的某個卡片,也就是說一個時間內只能有一個卡片呈現(xiàn)在客戶端的微瀏覽器上.因此,針對內容組織格式上的不同,在轉換過程中必須謹慎處理.
WMLScript也是WAP環(huán)境下的一種客戶端腳本語言,與傳統(tǒng)的網頁腳本語言(如Javascript,VBScript等)相比,它最大的不同體現(xiàn)在WMLScript使用字節(jié)碼和字節(jié)碼解釋器.在被發(fā)送到客戶端之前,WAP網關會將WMLScript編譯成字節(jié)碼,客戶端的微瀏覽器利用WAP預先定義的微虛擬機來執(zhí)行WMLScript的字節(jié)碼.在HTML到WML轉換的過程中,腳本語言的轉換也是必須要考慮的.
WAP定義了無線應用環(huán)境WAE下的內容格式,它們都適合運行在存儲容量、計算能力有限的移動設備上.在HTML到WML轉換的過程中,也涉及到它們各自所支持內容格式之間的轉換.
新框架針對WAE定義和WAP框架本身都作出了一些修改,
(1)用同時兼容HTTP和WAP的wHTML替換WML;
(2)WMLScript文件的執(zhí)行允許字節(jié)碼重用;
(3)一個能同時渲染HTTP和WAP內容的瀏覽器;
(4)保證WAP執(zhí)行安全的規(guī)則.
無線超文本標記語言 wHTML(wireless Hypertext Markup Language)是參照 XML定義,能同時兼容HTTP和WAP且格式良好的標記語言,它所編寫的文件的擴展名為.whtml,它包含一個標簽集(由HTML標簽和WML標簽聯(lián)合組成),在此標簽集內部,屬于HTML的標簽將加上前綴‘h’,屬于WML的標簽將加上前綴‘w’.前綴的不同有助于語法解析器區(qū)分HTML和WML標簽.
WMLScript代碼可以寫在獨立的文件中,然后在需要它的WML或wHTML文件中引入它.執(zhí)行過程與Java生成字節(jié)碼過程類似.在服務器部署一個wHTML站點之前,開發(fā)人員必須首先將被源碼文件包含的WMLScript腳本編譯成相應的字節(jié)碼[6],在以后的函數調用過程中,wHTML文檔可以直接從字節(jié)碼中調用.這就避免了WAP網關在每次頁面請求到達時都要生成字節(jié)碼,提高了代碼的重用率.
通常網頁瀏覽器和微瀏覽器使用不同的解析器,不同的解析邏輯.通用瀏覽器使用 wHTML解析器,解析器會根據相關定義檢查wHTML文檔是否格式良好,這種檢查通過棧來實現(xiàn):
(1)解析器遇到開始標簽,將它入棧;
(2)當遇到與開始標簽匹配的結束標簽,則將開始標簽出棧;
(3)解析結束時如果棧為空,則該文檔格式良好;
(4)解析過程棧中只要出現(xiàn)與開始標簽不匹配的結束標簽,那解析器就視該文檔格式不夠良好;
(5)解析結束時,如果棧中尚有開始標簽未出棧,則視該文檔為格式不良好;
(6)解析器根據前綴的不同(‘h’或‘w’)來區(qū)分 HTML 和 WML 標簽.
通常用戶訪問某個網站,直接輸入網址 http://www.sitename.com 即可,為安全起見,他可通過https://www.sitename.com來訪問.在 wHTTP框架下,用戶訪問 WAP站點時,可以輸入wap://www.sitename.com來實現(xiàn),對于安全性較高的交易,可以輸入waps://www.sitename.com.
wHTTP框架在客戶端和服務器之間部署了一個網關,服務器收到客戶端的HTTP或WAP請求時,會向網關發(fā)出 wHTML內容作為響應,網關解析wHTML文檔后,分離出HTTP和WAP內容,然后再將它們發(fā)回給客戶端,瀏覽器收到之后會立即將內容呈現(xiàn)出來.其中網關到服務器、網關到 HTTP客戶端之間的通信安全由 TLS協(xié)議控制,網關到WAP客戶端的通信安全由WTLS協(xié)議控制.如圖5所示.
圖5 wHTTP框架
當服務器接收到HTTPS或WAPS請求時,它將wHTML內容發(fā)送到網關,網關直接將其轉發(fā)給客戶端,整個通信的安全保障交由SSL協(xié)議控制.接收到內容后,瀏覽器解析并檢索出HTTP和WAP內容后,再根據請求的類型來呈現(xiàn)不同的內容.
由此可見,在WAPS的通信模式下,數據在傳輸過程中包括在網關中都是以加密的形式存在著,因此第3節(jié)中提到的安全鴻溝問題在此框架中根本就不存在,所以無需考慮這個問題.
WAP的未來肯定會擺脫內存,帶寬和處理能力的限制,與HTTP的差異也會越來越模糊.文中所提到的wHTTP框架,它涉及到一門新的標記語言,一種通用的瀏覽器,二者促成了HTTP和WAP內容能共存于同一源文件內.新框架的提出有利于互聯(lián)網知識域的整合和統(tǒng)一,同時它也較好的解決了當前移動互聯(lián)網普遍存在的安全鴻溝問題,是對持續(xù)發(fā)展的互聯(lián)網技術的一個較好的補充.
[1]Tanenbaum,A.S.Computer Network[M].2nd Edition.Prentice-Hall,2003
[2]WAP forum.http://www.wapforum.org
[3]代 坤,魯士文.WTLS在WAP網關中的實現(xiàn)策略[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瀏覽器的設計及實現(xiàn)[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? ),男,湖南寧鄉(xiāng)人,碩士,湖南理工學院網絡中心講師.主要研究方向:網絡應用與數據庫