劉瑋瑋
一種基于J2EE平臺(tái)的Web應(yīng)用安全機(jī)制
劉瑋瑋
通過一個(gè)網(wǎng)上銀行應(yīng)用研究了基于J2EE平臺(tái)Web應(yīng)用安全機(jī)制的實(shí)現(xiàn)。使用文件配臵實(shí)現(xiàn)EJB組件開發(fā)的業(yè)務(wù)邏輯層安全,SOAP協(xié)議保證系統(tǒng)信息交換安全,RSA算法的變形實(shí)現(xiàn)網(wǎng)上傳輸信息加密。在不借助Web應(yīng)用專用防火墻時(shí)也能較好實(shí)現(xiàn)Web應(yīng)用安全,具有一定的可借鑒性。
Web應(yīng)用;安全機(jī)制;EJB;SOAP;RSA
隨著Web應(yīng)用越來越廣泛,它的開放性、易開發(fā)性和易用性使得解決其安全問題變得非常重要,尤其在一些安全性要求較高的情況下。本文通過一個(gè)網(wǎng)上銀行系統(tǒng),研究了一種基于J2EE平臺(tái)Web應(yīng)用安全機(jī)制的實(shí)現(xiàn)方法。
根據(jù)Web 程序的工作原理,Web程序多是B/S 模式,通過瀏覽器運(yùn)行客戶端,瀏覽器首先向Web服務(wù)器發(fā)出請(qǐng)求,Web服務(wù)器對(duì)請(qǐng)求做出響應(yīng),將響應(yīng)數(shù)據(jù)發(fā)送給客戶端瀏覽器,通常是一個(gè)HTML文件,然后通過瀏覽器把HTML文件信息顯示在屏幕上。Web應(yīng)用可能會(huì)涉及的安全問題包括[1]:Web 平臺(tái)軟件的不安全性,拒絕服務(wù)攻擊,SQL注入,跨站腳本攻擊。
本文的網(wǎng)上銀行基于 J2EE平臺(tái),涉及管理員操作界面和一般用戶的網(wǎng)頁客戶端,涉及用戶、銀行事務(wù)和銀行帳戶3個(gè)實(shí)體,為了使用戶能夠?qū)崿F(xiàn)安全的網(wǎng)上銀行操作,安全性設(shè)計(jì)必須滿足以下要求:用戶創(chuàng)建及權(quán)限分配由管理員登錄后臺(tái)進(jìn)行,普通用戶通過身份驗(yàn)證后登錄系統(tǒng)進(jìn)行權(quán)限內(nèi)查詢、轉(zhuǎn)賬操作。系統(tǒng)采用4層結(jié)構(gòu):Web表示層對(duì)應(yīng)網(wǎng)頁客戶端、數(shù)據(jù)存儲(chǔ)層對(duì)應(yīng)數(shù)據(jù)庫、業(yè)務(wù)邏輯層用EJB實(shí)現(xiàn)、數(shù)據(jù)持久層用實(shí)體Bean實(shí)現(xiàn)。
2.1 EJB安全的實(shí)現(xiàn)
J2EE平臺(tái)中通過具體化訪問不同方法的角色來保證EJB的安全[2]。系統(tǒng)中定義了兩個(gè)角色:銀行管理員、普通用戶,定義了兩類操作:銀行管理員操作、普通用戶操作,這兩種操作沒有重復(fù)部分。
系統(tǒng)通過為用戶管理會(huì)話Bean、帳戶管理會(huì)話Bean、事務(wù)管理會(huì)話 Bean的方法設(shè)定權(quán)限來使不同用戶根據(jù)權(quán)限調(diào)用相應(yīng)方法。如只允許銀行管理員調(diào)用帳戶管理會(huì)話Bean中的創(chuàng)建帳戶方法,不允許普通用戶或其他任何類型的用戶創(chuàng)建銀行帳戶,不同角色的使用及對(duì)角色的分組確保了客戶端被授權(quán),又不增加額外的授權(quán)功能[3]。
EJB的安全性通常都從組件代碼中分離出來,通過配置的形式實(shí)現(xiàn)。有兩種方法:聲明式和編程式,一般情況下使用聲明式安全性,可以實(shí)現(xiàn)業(yè)務(wù)邏輯與具體安全策略的松耦合,使得用戶在修改安全性規(guī)則后,也不用修改EJB組件代碼,此時(shí)安全性角色并沒有硬編碼在EJB組件邏輯中,從而保證了代碼的簡潔性。由于 EJB規(guī)范提供的聲明式安全性設(shè)施還不夠完善,它并不支持實(shí)例級(jí)授權(quán)、基于條件的授權(quán),因此當(dāng)在Bean類需要為不同的角色提供相應(yīng)的業(yè)務(wù)方法,為各個(gè)安全性角色創(chuàng)建單獨(dú)方法等安全性要求較為復(fù)雜的場合時(shí),最好使用編程式來實(shí)現(xiàn)EJB安全[4]。本文采用聲明式實(shí)現(xiàn)EJB組件安全,具體步驟為:
首先聲明方法許可。在待保護(hù)的EJB業(yè)務(wù)方法聲明許可信息,EJB容器會(huì)根據(jù)這些方法許可信息,為 EJB組件生成安全檢查。以帳戶管理會(huì)話Bean為例,注釋聲明了EJB的安全策略,相關(guān)代碼如下:
接下來聲明安全性角色。即在部署描述中聲明 EJB組件使用的所有安全性角色,完成抽象安全性角色的定義,可借助部署描述符也可借助注釋來聲明。相關(guān)代碼如下:
由于 EJB組件開發(fā)部署時(shí)需要實(shí)際安全角色,因此最后需要將聲明的抽象安全角色映射到實(shí)際角色。相關(guān)代碼如下:
2.2 系統(tǒng)信息交換安全協(xié)議和傳輸加密
Web應(yīng)用的信息通過網(wǎng)絡(luò)在服務(wù)器與客戶端之間交互,需要采用一個(gè)共同遵循的信息交換安全協(xié)議來保證系統(tǒng)信息傳輸?shù)目煽啃浴⒎€(wěn)定性、不可否認(rèn)性,同時(shí)由于用戶通過瀏覽器登錄系統(tǒng)時(shí)密碼等信息以明文的方式在網(wǎng)絡(luò)上傳輸,很容易被攻擊者截獲,進(jìn)而可以假冒用戶身份,身份認(rèn)證機(jī)制就會(huì)被攻破,因此還要對(duì)在網(wǎng)絡(luò)上傳輸?shù)目蛻?ID和用戶密碼等信息的明文形式進(jìn)行加密。本文采用 SOAP協(xié)議實(shí)現(xiàn)信息交換安全[5],SOAP簡單對(duì)象訪問協(xié)議是在分散或分布式的環(huán)境中交換信息的簡單協(xié)議,是一個(gè)基于XML的協(xié)議;采用了RSA加密算法的一種變形 RSA_v1dot5來實(shí)現(xiàn)網(wǎng)上傳輸信息的加密[6],將明文信息傳送到網(wǎng)絡(luò)前先對(duì)其進(jìn)行加密,經(jīng)網(wǎng)絡(luò)傳輸?shù)竭_(dá)目的地之后再對(duì)加密信息進(jìn)行解密,將其轉(zhuǎn)換為可以識(shí)別的明文。信息交換安全協(xié)議和傳輸加密均采用XML部署描述文件實(shí)現(xiàn)。
使用SOAP協(xié)議實(shí)現(xiàn)信息交換安全的XML文檔關(guān)鍵代碼如下,其中指明了提供該協(xié)議的類、請(qǐng)求策略和響應(yīng)策略等參數(shù):
程序?qū)φ?qǐng)求和響應(yīng)使用安全策略的身份驗(yàn)證模塊。安全策略基于一組配置數(shù)據(jù):策略元數(shù)據(jù)和 DD,策略元數(shù)據(jù)指定在加密、簽名算法中所使用的密鑰相關(guān)信息,DD是基于Sun指定的部署描述配置數(shù)據(jù)。
配置 RSA加密算法的變形實(shí)現(xiàn)網(wǎng)上傳輸信息加密時(shí),XML文檔中還包含了證書別名等一些參數(shù),涉及到兩種安全性需求:客戶希望傳入的消息以 X509令牌簽名;客戶簽名輸出請(qǐng)求,并要求添加經(jīng)過身份驗(yàn)證的用戶Username令牌。該文檔基于XWSSSecurityConfigura-tion模式,關(guān)鍵代碼如下:
當(dāng)前Web應(yīng)用商務(wù)邏輯變化加快,業(yè)務(wù)邏輯要求更加多元化,安全性要求越來越高,對(duì)Web應(yīng)用的開發(fā)提出了許多更高的要求。本文提出的Web應(yīng)用安全機(jī)制實(shí)現(xiàn)方法:通過聲明式安全性實(shí)現(xiàn) EJB組件安全、通過SOAP協(xié)議實(shí)現(xiàn)信息交換安全、通過RSA加密算法的變形實(shí)現(xiàn)網(wǎng)上傳輸信息加密,在不借助第三方組件,如專用Web應(yīng)用防火墻時(shí)也能較好地應(yīng)對(duì)可能涉及的安全問題,降低了軟件的開發(fā)成本,可用于如金融系統(tǒng)等一些對(duì)安全性要求較高的場合,是一種高效、簡潔、易行的方法。
[1] 黃希. 淺談 WEB應(yīng)用安全問題及防范[J]. 信息技術(shù), 2015:277.
[2] 劉恒. EJB 性能改進(jìn)與實(shí)踐[J]. 微計(jì)算機(jī)信息, 2006(09X).
[3] 全立新. 一種基于加密技術(shù)的 Web服務(wù)安全方法[J].制造業(yè)自動(dòng)化, 2011(2):82-84.
[4] Rima Patel Sriganesh,Gerald Brose, Micah Silverman著,精通 EJB3.0[M].羅時(shí)飛,譯. 北京: 電子工業(yè)出版社,2006:274-284.
[5] 顏瑞江. 淺談Web Services技術(shù)的安全應(yīng)用[J]. 信息科技, 2011(2):228.
[6] 符浩,陳靈科,郭鑫. 基于Web網(wǎng)絡(luò)安全和統(tǒng)一身份認(rèn)證中的數(shù)據(jù)加密技術(shù)[J]. 軟件導(dǎo)刊.
圖5 包投遞率比較
從圖5可以看出,隨著節(jié)點(diǎn)運(yùn)動(dòng)速度的增加,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化加快,算法的包投遞率都降低,而BD-ZRP算法在確定區(qū)域半徑時(shí)考慮了帶寬,減少了向不可用鏈路發(fā)送數(shù)據(jù)包的概率,提高了包投遞成功率。
本文在分析移動(dòng)網(wǎng)絡(luò)特點(diǎn)的基礎(chǔ)上,依據(jù)帶寬和時(shí)延,動(dòng)態(tài)調(diào)整ZRP半徑,適時(shí)改變路由結(jié)構(gòu),增強(qiáng)路由利用率,增加了節(jié)點(diǎn)的穩(wěn)定性,提高了包投遞成功率,盡可能減小時(shí)延,優(yōu)化了ZRP協(xié)議。但是節(jié)點(diǎn)周期查詢鄰節(jié)點(diǎn)的時(shí)間以及經(jīng)過多少個(gè)周期重新構(gòu)置生成樹等細(xì)節(jié)信息仍需進(jìn)一步的研究。
參考文獻(xiàn)
[1] Schulzrinne H, Casner S, Frederick R, et al. RTP: A Transport Protocol for Real-Time Applications[S]. RFC 3550, July 2003.
[2] 王力軍,田靜,洪濤,李健.智能建筑與無線網(wǎng)絡(luò)設(shè)計(jì)[J].價(jià)值工程,2012,5:151-152.
[3] 鄭四海.無線移動(dòng)自組織網(wǎng)絡(luò)QoS路由協(xié)議研究[D].武漢:武漢理工大學(xué),2012.
[4] A bolhasan M. A review of routing protocols formobile ad Hoc network s[C]. Ad Hoc Networks, 2004 (2) :1222.
[5] Ververidis C N,Polyzos G C.Service discovery for mobile adhoc networks:A survey of issues and techniques EJ[J].Communications Surveys & Tutorials,2008,10 (3):30—45.
[6] 李琳武穆清.ZRP區(qū)域路由協(xié)議分析[J].數(shù)字通信世界,2007(11):52-55.
[7] Haas Z J , Pearlman M R , Samar P. The Zone Routing Protocol(ZRP) for Ad Hoc Networks [EB/OL] . 2002. Draft-ietf-manet-zone-zrp-04. txt .
[8] Marw aha S, Tham C K, Srinivasan D. A novel routing protocol using mobile agents and reactive route discovery for ad Hoc wireless networks. Networks[C], 10th IEEE International Conference on ICON 2002, 2002: 311-316.
[9] 沈亮光,汪學(xué)明.移動(dòng)Ad hoc 網(wǎng)絡(luò)ZRP路由協(xié)議的仿真分析[J].通信技術(shù),2013,46(8):71-73.
[10] 王研.Ad-Hoc網(wǎng)絡(luò)中的路由協(xié)議研究[D].南京:南京大學(xué),2013:26-28.
(收稿日期:2016.02.02)
Approach of Web Applications Security Based on J2EE Platform
Liu Weiwei
(Faculty of Informatics, Fujian Vocational College of Agriculture, Fuzhou 350001, China)
This paper used a E-bank application to research the security mechanism implementation of Web application based on the J2EE platform. It used file configuration to implement the security of business logic layer which developed by EJB elements, used SOAP protocol to ensure the security of system information interchange, and used the transformation of RSA algorithm to implement the encryption of the online information. This method could realize the Web application security better without the specific Web firewall, and could be used for reference.
Web Application; Security Mechanism; EJB; SOAP; RSA
TP183
A
1007-757X(2016)09-0077-03
2016.02.23)
劉瑋瑋(1982-),女,福安人,福建農(nóng)業(yè)職業(yè)技術(shù)學(xué)院,信息技術(shù)系,碩士研究生,講師,研究方向:網(wǎng)絡(luò)技術(shù)及應(yīng)用研究,福州 350001