劉波平, 孫 丹*, 裘 鋒, 施煒利, 付 康
(1.江西省計算技術(shù)研究所,江西南昌 330003; 2.江西省軟件工程技術(shù)研究中心,江西南昌 330003)
?
基于J2EE的農(nóng)機社會化服務(wù)系統(tǒng)安全問題研究
劉波平1,2, 孫 丹1,2*, 裘 鋒1,2, 施煒利1,2, 付 康1,2
(1.江西省計算技術(shù)研究所,江西南昌 330003; 2.江西省軟件工程技術(shù)研究中心,江西南昌 330003)
研究了基于J2EE的Spring框架的MVC架構(gòu)下農(nóng)機社會化服務(wù)系統(tǒng)的實現(xiàn),及在J2EE模型下,該應(yīng)用系統(tǒng)存在的各種安全問題,如身份認證、訪問控制、數(shù)據(jù)傳輸安全及J2EE部分組件安全問題等。針對這些安全問題,結(jié)合J2EE安全機制,提出了SSL安全代理服務(wù)器、基于EJB方法的訪問控制、使用單點登錄方法等相應(yīng)的解決措施。
J2EE;SSL安全代理服務(wù)器;EJB方法;單點登錄方法
目前農(nóng)機各服務(wù)實體經(jīng)營粗放,缺乏數(shù)據(jù)共享交換,造成農(nóng)機作業(yè)盲目流動,出現(xiàn)生產(chǎn)效率低下、資源浪費嚴重等問題,急需建立一個綜合信息服務(wù)系統(tǒng),匯集農(nóng)機管理部門、農(nóng)機生產(chǎn)企業(yè)、農(nóng)機手等農(nóng)機生產(chǎn)、經(jīng)營相關(guān)信息于一體,實現(xiàn)農(nóng)機信息查詢、購置補貼申報、在線報修、二手在線交易等各類農(nóng)機社會化服務(wù)。筆者研究了基于J2EE結(jié)構(gòu)框架下的農(nóng)機社會化服務(wù)系統(tǒng)的實現(xiàn),及在J2EE模型下,該應(yīng)用系統(tǒng)存在的各種安全問題,并提出了相應(yīng)的解決措施。
1.1農(nóng)機社會化服務(wù)系統(tǒng)設(shè)計與實現(xiàn)針對基于B/S結(jié)構(gòu)的綜合信息服務(wù)系統(tǒng),該研究設(shè)計的農(nóng)機社會化服務(wù)系統(tǒng)采用基于J2EE的Spring框架的MVC架構(gòu)實現(xiàn)[1]。
MVC架構(gòu)是“Model-View-Controller”的縮寫,MVC由“模型-視圖-控制器”3部分構(gòu)成。視圖(View)代表用戶交互界面,對于農(nóng)機社會化服務(wù)Web應(yīng)用系統(tǒng),這里對應(yīng)的是HTML頁面。模型(Model)用于業(yè)務(wù)流程的處理,模型接收視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果,農(nóng)機社會化服務(wù)系統(tǒng)采用目前最流行的EJB模型??刂?Controller)用于接收用戶的請求,并將模型和視圖匹配在一起,共同完成用戶的請求。農(nóng)機社會化服務(wù)系統(tǒng)采用Servlets作為控制器,用于接收用戶HTTP請求, 并且負責請求的數(shù)據(jù)傳送給模型,然后通過JSP腳本解析模型處理的結(jié)果,最終通過html頁面展示給用戶,其模式圖見圖 1 所示。
圖1 MVC架構(gòu)模式 Fig.1 MVC infrastructure Mode
1.2農(nóng)機社會化服務(wù)系統(tǒng)的構(gòu)成該系統(tǒng)服務(wù)器端選用Apache+Tomcat作為J2EE中間件平臺,選用MySQL作為數(shù)據(jù)庫服務(wù)器??蛻舳耸褂煤唵蔚某S脼g覽器訪問即可。在多層結(jié)構(gòu)的應(yīng)用中,Apache+Tomcat可以提供開發(fā)和利用服務(wù)器端業(yè)務(wù)邏輯的基本框架,支持分布式編程模型,提供一定程度的透明性。以下使用相關(guān)的例子都是以Apache+Tomcat+MySQL為例來說明的,其設(shè)計結(jié)構(gòu)見圖2。
圖2 基于J2EE的農(nóng)機社會化服務(wù)系統(tǒng)設(shè)計結(jié)構(gòu) Fig.2 Design structure of agricultural machinery socialization service system based on J2EE
2.1系統(tǒng)中身份認證安全問題用戶在提出訪問請求時,如果該用戶是非法用戶而沒有對其進行任何限制,對于整個應(yīng)用系統(tǒng)的危害非常巨大,因此需要對用戶身份進行驗證。身份認證是一種識別用戶是否具有訪問特定資源的權(quán)限的身份鑒別技術(shù)[2]。該技術(shù)保障了合法用戶訪問和獲取信息的權(quán)限,同時又阻止了非法訪問者的訪問請求,是應(yīng)用系統(tǒng)安全性的關(guān)鍵入口。目前常見的身份認證技術(shù)主要分以下3種:基于密碼的認證、基于數(shù)字證書加密認證、基于指紋特征認證[3]。
2.2系統(tǒng)中訪問控制安全問題身份驗證是系統(tǒng)設(shè)置的第一道安全關(guān)卡,如果用戶已經(jīng)通過身份驗證,且是合法用戶,一旦其不小心進行了其他的錯誤操作,導(dǎo)致應(yīng)用系統(tǒng)敏感數(shù)據(jù)丟失或者受破壞,同樣對應(yīng)用系統(tǒng)危害也是巨大的[4]。因此需對合法用戶進行訪問控制,限制用戶訪問資源的最小權(quán)限。訪問控制指通過一些安全策略的方式,限制用戶對重要資源的訪問范圍,主要為了防止非法用戶盜取受保護的重要數(shù)據(jù)或者防止合法用戶對受保護的資源進行非授權(quán)訪問[5]。
2.3系統(tǒng)中數(shù)據(jù)傳輸安全問題很多時候,Web應(yīng)用系統(tǒng)都是基于HTTP協(xié)議進行通信的,該協(xié)議是明文傳輸?shù)模瑪?shù)據(jù)很容易受到破壞。數(shù)據(jù)完整性指存儲在數(shù)據(jù)庫中的數(shù)據(jù)的精確性和可靠性,它是衡量數(shù)據(jù)質(zhì)量的一種標準;數(shù)據(jù)保密性是指數(shù)據(jù)在傳輸過程中不泄露給非授權(quán)訪問的用戶、實體,或被非法利用[6]。因此,數(shù)據(jù)傳輸時,其保密性和完整性是整個應(yīng)用系統(tǒng)信息傳輸過程中的前提和保障,必須保障數(shù)據(jù)在傳輸中不被監(jiān)聽、篡改和偽造,以保證數(shù)據(jù)的準確性。
2.4系統(tǒng)J2EE中JSP組件安全問題
2.4.1JSP源代碼任意下載問題。JSP源代碼任意下載問題主要指客戶端訪問JSP代碼時,服務(wù)端自動將JSP源代碼返回給客戶端用戶瀏覽器上。通常JSP代碼只是在服務(wù)器端執(zhí)行,執(zhí)行后將解析的結(jié)果通過HTML代碼的形式返回到用戶瀏覽器客戶端[7]。但在實際訪問請求過程中,可能由于如Apache、Tomcat等服務(wù)器內(nèi)部配置不當或者配置錯誤導(dǎo)致未能返回錯誤定制頁面,會引起JSP等服務(wù)端應(yīng)用程序源代碼直接返回給用戶瀏覽器,如在程序文件名后加些特殊的字符就有可能獲得JSP代碼[8]。例如在Tomcat3.1版本下,瀏覽器訪問http://localhost:80/index.jsp,服務(wù)器可以正常執(zhí)行,但如果訪問http://localhost:80/index.JSP,則瀏覽器會提示是否要下載該文件,下載的文件就包含整個文件的源代碼。由于JSP對大小寫敏感,而Tomcat只會將小寫的JSP后綴文件名當作正常的JSP文件來執(zhí)行,如果換成大寫的話,Tomcat未能識別正常的文件名傳給JSP進行解析,導(dǎo)致直接將該文件當成下載的文件直接返回給用戶下載,這樣直接引起JSP文件源代碼任意下載,導(dǎo)致敏感信息泄露。
2.4.2遠程執(zhí)行任意命令問題。如果用戶請求的URL鏈接中含有“/servlet/”字符,則JSP解析執(zhí)行功能被打開,這時只要在URL鏈接后面添加“../”需要訪問的目標文件,則有可能訪問到服務(wù)器其他目錄的文件,特別是系統(tǒng)一些敏感文件,這就嚴重威脅到目標主機系統(tǒng)的安全。
3.1使用單點登錄方法進行身份驗證用戶身份鑒別是農(nóng)機社會化系統(tǒng)中最開始的一道安全防線,當用戶訪問農(nóng)機社會化服務(wù)系統(tǒng)時,首先需要登錄系統(tǒng)驗證自己的身份,然后才能進入系統(tǒng)進行下一步的訪問和操作。在農(nóng)機社會化系統(tǒng)中包括不同的子系統(tǒng),這些應(yīng)用系統(tǒng)都需要用戶輸入賬號密碼進行身份驗證成功后才能訪問。這樣不僅使用戶必須為每個農(nóng)機社會化子系統(tǒng)設(shè)置登錄憑證,而且增加管理員對各個系統(tǒng)用戶信息庫的庫的維護[9]。不但增加了工作量,而且還存在一定的安全風險。因此,在農(nóng)機社會化系統(tǒng)中采用單點登錄方法[10]進行多個子系統(tǒng)的一次性身份驗證。
3.2基于EJB方法的訪問控制農(nóng)機化社會平臺采用的是基于J2EE的Web應(yīng)用架構(gòu)開發(fā)的,EJB是J2EE框架中的服務(wù)器端組件模型。EJB是一個被管理的組件,存在于J2EE容器中,并且為用戶分配不同的角色,服務(wù)器根據(jù)用戶的不同角色分配不同的訪問控制資源[11]。在農(nóng)機社會化平臺中,我們定義了4個角色[12]:company、agriculture、database、admin。在農(nóng)機社會化平臺中安全角色的定義描述如下:
此角色包括允許查看農(nóng)機信息,申報農(nóng)業(yè)產(chǎn)品等農(nóng)產(chǎn)品銷售商
………
上述代碼描述了農(nóng)機社會化平臺中定義的4種安全角色,且每一種角色都定義其可以訪問bean及其方法[13]。多種方法的訪問權(quán)限設(shè)定是通過method-permission元素來確定的,每個method-permission元素包括一個或多個role-name元素,以及一個或多個EJB及其對應(yīng)的每種方法,只有采用正確的語法格式調(diào)用的方法才能實現(xiàn)訪問控制策略。
3.3采用SSL安全代理方式實現(xiàn)加密傳輸在農(nóng)機社會化平臺的Web應(yīng)用系統(tǒng)訪問中,用戶和服務(wù)器之間數(shù)據(jù)傳輸過程中,數(shù)據(jù)安全需得到最大的安全保護,從而實現(xiàn)數(shù)據(jù)保密性及完整性的安全需求。采用SSL安全代理服務(wù)器能夠保證數(shù)據(jù)的安全性。
SSL安全代理服務(wù)器包括3個部分:客戶端代理、服務(wù)器代理、訪問控制[13]。SSL安全代理服務(wù)器是瀏覽器和Web服務(wù)器之間的安全管理者,促使瀏覽器和Web服務(wù)器之間建立安全可靠的數(shù)據(jù)傳輸。SSL安全代理服務(wù)器工作原理:當用戶需與遠程Web服務(wù)器建立連接時,首先向SSL安全代理服務(wù)器發(fā)送HTTP請求,由SSL安全代理服務(wù)器與遠程Web服務(wù)器建立連接;建立連接后,瀏覽器與服務(wù)器之間傳輸?shù)臄?shù)據(jù)都是通過SSL安全代理服務(wù)器采用1 024位非對稱算法RSA[14]進行高強度加密轉(zhuǎn)發(fā)完成的,這樣可以保證通信數(shù)據(jù)的完整性及保密性,其SSL安全代理服務(wù)器工作原理如圖3所示。
圖3 SSL安全代理傳輸過程Fig.3 The SSL secure proxy transmission process
該研究采用J2EE體系結(jié)構(gòu)對農(nóng)機社會化平臺進行開發(fā),使系統(tǒng)能夠支持分布式事務(wù)處理,且可使系統(tǒng)能夠達到良好的可伸縮性、擴展性和重用性,是企業(yè)的首選構(gòu)造平臺。首先介紹了農(nóng)機社會化平臺的結(jié)構(gòu)模型,探討了在J2EE架構(gòu)下該系統(tǒng)開發(fā)中存在的一系列安全問題,如身份認證、訪問控制、數(shù)據(jù)傳輸安全、J2EE組件等安全問題,并針對這些問題采取了相應(yīng)的措施來確保系統(tǒng)的安全性。
[1] 尹漢東,任邵東,周生炳.基于J2EE的Web應(yīng)用的MVC架構(gòu)實現(xiàn)[J].計算機仿真,2004,21(11):133-136.
[2] 劉如太.基于J2EE平臺的益智類游戲開發(fā)中安全問題的研究[D].北京:華北電力大學(xué),2007.
[3] 陳斌.基于J2EE平臺的Web系統(tǒng)安全研究與實現(xiàn)[D].北京:北京郵電大學(xué),2014.
[4] 張云峰.基于J2EE架構(gòu)的電子政務(wù)系統(tǒng)的安全問題研究[D].天津:天津工業(yè)大學(xué),2008.
[5] 梁娜.基于J2EE的Web安全技術(shù)應(yīng)用研究[D].青島:山東科技大學(xué),2003.
[6] 裴德志.基于J2EE的Web安全研究[D].武漢:武漢理工大學(xué),2006.
[7] 張志立,張鵬,齊德昱.基于J2EE的Web應(yīng)用開發(fā)中安全問題的研究[J].武漢理工大學(xué)學(xué)報 (交通科學(xué)與工程版),2005,29(2):300-303.
[8] 洪丹丹.基于J2EE輕量級框架的安全Web架構(gòu)研究與應(yīng)用[D].成都:電子科技大學(xué),2009.
[9] 劉玉,葛忠寶,趙越.基于Web方式單點登錄的幾種實現(xiàn)方式[C]//2006年電力信息化高級論壇論文集.揚州:中國電機工程學(xué)會,國電信息中心,2006.
[10] 王穎.單點登錄技術(shù)在J2EE企業(yè)Web中的研究與應(yīng)用[J].長春大學(xué)學(xué)報,2010,20(8):70-73.
[11] 陳景霞,李萌.基于J2EE的Web信息系統(tǒng)開發(fā)方法的定義[J].制造業(yè)自動化,2012,8(16):31-33.
[12] 武蕾娜,殷兆麟,張麗麗.基于AOP的EJB訪問控制功能的實現(xiàn)[J].計算機應(yīng)用與軟件,2007,24(9):63-65.
[13] 曲波,吳兆芝.面向安全Web服務(wù)的SSL代理服務(wù)器的設(shè)計與實現(xiàn)[J].華中科技大學(xué)學(xué)報(自然科學(xué)版),2003,31(S1):114-116.
[14] 饒興.基于SSL協(xié)議的安全代理設(shè)計[D].武漢:武漢理工大學(xué),2011.
SecurityProblemsResearchonSocializedServiceofAgriculturalMachineryBasedonJ2EE
LIUBo-ping1,2,SUNDan1,2*,QIUFeng1,2etal(1.JiangxiInstituteofComputingTechnology,Nanchang,Jiangxi330003; 2.SoftwareEngineeringandTechnicalResearchCenterofJiangxiProvince,Nanchang,Jiangxi330003)
TherealizationofsocializedserviceofagriculturalmachineryundertheJ2EEframeworkwasresearched,aswellasthesecurityproblemsinapplicationsystemunderJ2EEmodel,includingidentityauthentication,accesscontrol,datatransmissionsecurityandJ2EEcomponentssecurity.Basedonthesesecurityproblems,thecorrespondingsolutiontotheSSLsecureproxyserverundertheEJBaccesscontrolandsinglesign-onoptionwasputforwardbycombiningwiththeJ2EEsecuremechanism.
J2EE;SSLsecureproxyserver;EJBmethod;Singlesign-onoption
國家科技支撐計劃項目(2014BAD10B00,2014BAD10B05)。
劉波平(1963- ),男,江西吉安人,教授級高級工程師,博士,從事農(nóng)業(yè)信息化、圖像處理研究。*通訊作者,助理工程師,碩士,從事信息系統(tǒng)安全研究。
2016-05-31
S126
A
0517-6611(2016)22-233-03