劉波平, 孫 丹*, 裘 鋒, 施煒利, 付 康
(1.江西省計算技術研究所,江西南昌 330003; 2.江西省軟件工程技術研究中心,江西南昌 330003)
?
基于J2EE的農機社會化服務系統安全問題研究
劉波平1,2, 孫 丹1,2*, 裘 鋒1,2, 施煒利1,2, 付 康1,2
(1.江西省計算技術研究所,江西南昌 330003; 2.江西省軟件工程技術研究中心,江西南昌 330003)
研究了基于J2EE的Spring框架的MVC架構下農機社會化服務系統的實現,及在J2EE模型下,該應用系統存在的各種安全問題,如身份認證、訪問控制、數據傳輸安全及J2EE部分組件安全問題等。針對這些安全問題,結合J2EE安全機制,提出了SSL安全代理服務器、基于EJB方法的訪問控制、使用單點登錄方法等相應的解決措施。
J2EE;SSL安全代理服務器;EJB方法;單點登錄方法
目前農機各服務實體經營粗放,缺乏數據共享交換,造成農機作業盲目流動,出現生產效率低下、資源浪費嚴重等問題,急需建立一個綜合信息服務系統,匯集農機管理部門、農機生產企業、農機手等農機生產、經營相關信息于一體,實現農機信息查詢、購置補貼申報、在線報修、二手在線交易等各類農機社會化服務。筆者研究了基于J2EE結構框架下的農機社會化服務系統的實現,及在J2EE模型下,該應用系統存在的各種安全問題,并提出了相應的解決措施。
1.1農機社會化服務系統設計與實現針對基于B/S結構的綜合信息服務系統,該研究設計的農機社會化服務系統采用基于J2EE的Spring框架的MVC架構實現[1]。
MVC架構是“Model-View-Controller”的縮寫,MVC由“模型-視圖-控制器”3部分構成。視圖(View)代表用戶交互界面,對于農機社會化服務Web應用系統,這里對應的是HTML頁面。模型(Model)用于業務流程的處理,模型接收視圖請求的數據,并返回最終的處理結果,農機社會化服務系統采用目前最流行的EJB模型??刂?Controller)用于接收用戶的請求,并將模型和視圖匹配在一起,共同完成用戶的請求。農機社會化服務系統采用Servlets作為控制器,用于接收用戶HTTP請求, 并且負責請求的數據傳送給模型,然后通過JSP腳本解析模型處理的結果,最終通過html頁面展示給用戶,其模式圖見圖 1 所示。

圖1 MVC架構模式 Fig.1 MVC infrastructure Mode
1.2農機社會化服務系統的構成該系統服務器端選用Apache+Tomcat作為J2EE中間件平臺,選用MySQL作為數據庫服務器。客戶端使用簡單的常用瀏覽器訪問即可。在多層結構的應用中,Apache+Tomcat可以提供開發和利用服務器端業務邏輯的基本框架,支持分布式編程模型,提供一定程度的透明性。以下使用相關的例子都是以Apache+Tomcat+MySQL為例來說明的,其設計結構見圖2。

圖2 基于J2EE的農機社會化服務系統設計結構 Fig.2 Design structure of agricultural machinery socialization service system based on J2EE
2.1系統中身份認證安全問題用戶在提出訪問請求時,如果該用戶是非法用戶而沒有對其進行任何限制,對于整個應用系統的危害非常巨大,因此需要對用戶身份進行驗證。身份認證是一種識別用戶是否具有訪問特定資源的權限的身份鑒別技術[2]。該技術保障了合法用戶訪問和獲取信息的權限,同時又阻止了非法訪問者的訪問請求,是應用系統安全性的關鍵入口。目前常見的身份認證技術主要分以下3種:基于密碼的認證、基于數字證書加密認證、基于指紋特征認證[3]。
2.2系統中訪問控制安全問題身份驗證是系統設置的第一道安全關卡,如果用戶已經通過身份驗證,且是合法用戶,一旦其不小心進行了其他的錯誤操作,導致應用系統敏感數據丟失或者受破壞,同樣對應用系統危害也是巨大的[4]。因此需對合法用戶進行訪問控制,限制用戶訪問資源的最小權限。訪問控制指通過一些安全策略的方式,限制用戶對重要資源的訪問范圍,主要為了防止非法用戶盜取受保護的重要數據或者防止合法用戶對受保護的資源進行非授權訪問[5]。
2.3系統中數據傳輸安全問題很多時候,Web應用系統都是基于HTTP協議進行通信的,該協議是明文傳輸的,數據很容易受到破壞。數據完整性指存儲在數據庫中的數據的精確性和可靠性,它是衡量數據質量的一種標準;數據保密性是指數據在傳輸過程中不泄露給非授權訪問的用戶、實體,或被非法利用[6]。因此,數據傳輸時,其保密性和完整性是整個應用系統信息傳輸過程中的前提和保障,必須保障數據在傳輸中不被監聽、篡改和偽造,以保證數據的準確性。
2.4系統J2EE中JSP組件安全問題
2.4.1JSP源代碼任意下載問題。JSP源代碼任意下載問題主要指客戶端訪問JSP代碼時,服務端自動將JSP源代碼返回給客戶端用戶瀏覽器上。通常JSP代碼只是在服務器端執行,執行后將解析的結果通過HTML代碼的形式返回到用戶瀏覽器客戶端[7]。但在實際訪問請求過程中,可能由于如Apache、Tomcat等服務器內部配置不當或者配置錯誤導致未能返回錯誤定制頁面,會引起JSP等服務端應用程序源代碼直接返回給用戶瀏覽器,如在程序文件名后加些特殊的字符就有可能獲得JSP代碼[8]。例如在Tomcat3.1版本下,瀏覽器訪問http://localhost:80/index.jsp,服務器可以正常執行,但如果訪問http://localhost:80/index.JSP,則瀏覽器會提示是否要下載該文件,下載的文件就包含整個文件的源代碼。由于JSP對大小寫敏感,而Tomcat只會將小寫的JSP后綴文件名當作正常的JSP文件來執行,如果換成大寫的話,Tomcat未能識別正常的文件名傳給JSP進行解析,導致直接將該文件當成下載的文件直接返回給用戶下載,這樣直接引起JSP文件源代碼任意下載,導致敏感信息泄露。
2.4.2遠程執行任意命令問題。如果用戶請求的URL鏈接中含有“/servlet/”字符,則JSP解析執行功能被打開,這時只要在URL鏈接后面添加“../”需要訪問的目標文件,則有可能訪問到服務器其他目錄的文件,特別是系統一些敏感文件,這就嚴重威脅到目標主機系統的安全。
3.1使用單點登錄方法進行身份驗證用戶身份鑒別是農機社會化系統中最開始的一道安全防線,當用戶訪問農機社會化服務系統時,首先需要登錄系統驗證自己的身份,然后才能進入系統進行下一步的訪問和操作。在農機社會化系統中包括不同的子系統,這些應用系統都需要用戶輸入賬號密碼進行身份驗證成功后才能訪問。這樣不僅使用戶必須為每個農機社會化子系統設置登錄憑證,而且增加管理員對各個系統用戶信息庫的庫的維護[9]。不但增加了工作量,而且還存在一定的安全風險。因此,在農機社會化系統中采用單點登錄方法[10]進行多個子系統的一次性身份驗證。
3.2基于EJB方法的訪問控制農機化社會平臺采用的是基于J2EE的Web應用架構開發的,EJB是J2EE框架中的服務器端組件模型。EJB是一個被管理的組件,存在于J2EE容器中,并且為用戶分配不同的角色,服務器根據用戶的不同角色分配不同的訪問控制資源[11]。在農機社會化平臺中,我們定義了4個角色[12]:company、agriculture、database、admin。在農機社會化平臺中安全角色的定義描述如下:
此角色包括允許查看農機信息,申報農業產品等農產品銷售商
………
上述代碼描述了農機社會化平臺中定義的4種安全角色,且每一種角色都定義其可以訪問bean及其方法[13]。多種方法的訪問權限設定是通過method-permission元素來確定的,每個method-permission元素包括一個或多個role-name元素,以及一個或多個EJB及其對應的每種方法,只有采用正確的語法格式調用的方法才能實現訪問控制策略。
3.3采用SSL安全代理方式實現加密傳輸在農機社會化平臺的Web應用系統訪問中,用戶和服務器之間數據傳輸過程中,數據安全需得到最大的安全保護,從而實現數據保密性及完整性的安全需求。采用SSL安全代理服務器能夠保證數據的安全性。
SSL安全代理服務器包括3個部分:客戶端代理、服務器代理、訪問控制[13]。SSL安全代理服務器是瀏覽器和Web服務器之間的安全管理者,促使瀏覽器和Web服務器之間建立安全可靠的數據傳輸。SSL安全代理服務器工作原理:當用戶需與遠程Web服務器建立連接時,首先向SSL安全代理服務器發送HTTP請求,由SSL安全代理服務器與遠程Web服務器建立連接;建立連接后,瀏覽器與服務器之間傳輸的數據都是通過SSL安全代理服務器采用1 024位非對稱算法RSA[14]進行高強度加密轉發完成的,這樣可以保證通信數據的完整性及保密性,其SSL安全代理服務器工作原理如圖3所示。

圖3 SSL安全代理傳輸過程Fig.3 The SSL secure proxy transmission process
該研究采用J2EE體系結構對農機社會化平臺進行開發,使系統能夠支持分布式事務處理,且可使系統能夠達到良好的可伸縮性、擴展性和重用性,是企業的首選構造平臺。首先介紹了農機社會化平臺的結構模型,探討了在J2EE架構下該系統開發中存在的一系列安全問題,如身份認證、訪問控制、數據傳輸安全、J2EE組件等安全問題,并針對這些問題采取了相應的措施來確保系統的安全性。
[1] 尹漢東,任邵東,周生炳.基于J2EE的Web應用的MVC架構實現[J].計算機仿真,2004,21(11):133-136.
[2] 劉如太.基于J2EE平臺的益智類游戲開發中安全問題的研究[D].北京:華北電力大學,2007.
[3] 陳斌.基于J2EE平臺的Web系統安全研究與實現[D].北京:北京郵電大學,2014.
[4] 張云峰.基于J2EE架構的電子政務系統的安全問題研究[D].天津:天津工業大學,2008.
[5] 梁娜.基于J2EE的Web安全技術應用研究[D].青島:山東科技大學,2003.
[6] 裴德志.基于J2EE的Web安全研究[D].武漢:武漢理工大學,2006.
[7] 張志立,張鵬,齊德昱.基于J2EE的Web應用開發中安全問題的研究[J].武漢理工大學學報 (交通科學與工程版),2005,29(2):300-303.
[8] 洪丹丹.基于J2EE輕量級框架的安全Web架構研究與應用[D].成都:電子科技大學,2009.
[9] 劉玉,葛忠寶,趙越.基于Web方式單點登錄的幾種實現方式[C]//2006年電力信息化高級論壇論文集.揚州:中國電機工程學會,國電信息中心,2006.
[10] 王穎.單點登錄技術在J2EE企業Web中的研究與應用[J].長春大學學報,2010,20(8):70-73.
[11] 陳景霞,李萌.基于J2EE的Web信息系統開發方法的定義[J].制造業自動化,2012,8(16):31-33.
[12] 武蕾娜,殷兆麟,張麗麗.基于AOP的EJB訪問控制功能的實現[J].計算機應用與軟件,2007,24(9):63-65.
[13] 曲波,吳兆芝.面向安全Web服務的SSL代理服務器的設計與實現[J].華中科技大學學報(自然科學版),2003,31(S1):114-116.
[14] 饒興.基于SSL協議的安全代理設計[D].武漢:武漢理工大學,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- ),男,江西吉安人,教授級高級工程師,博士,從事農業信息化、圖像處理研究。*通訊作者,助理工程師,碩士,從事信息系統安全研究。
2016-05-31
S126
A
0517-6611(2016)22-233-03