?

基于J2EE的醫師協會管理系統安全性研究

2008-07-14 10:05金嬋鳴徐東平
電腦知識與技術 2008年18期

金嬋鳴 徐東平

摘要:介紹了Java平臺安全、J2EE安全體系結構。以一個登錄請求為例,重點研究了J2EE架構在醫師協會管理系統中的應用,以及使用J2EE安全體系結構構建醫師協會管理系統。

關鍵詞:J2EE;安全體系結構;醫師協會管理系統

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)18-2pppp-0c

Security Research on Medical Doctors Association MIS based on J2EE

JIN Chan-ming

(Wuhan University of Technology,College Of Computer Science and Technology,Wuhan 430063,China)

Abstract:In this paper,we research on Java platform security and J2EE security system architecture.Take the request of login for instance,focus on how J2EE works in a college of doctors management system,and how to use J2EE security system architecture to build it.

Key words:J2EE; security system architecture; a college of doctors management system

1 引言

隨著社會主義市場經濟的發展,醫療服務的規范化管理日益受到關注,相關的人事制度改革研究也日漸興盛。為了更好的實現醫療服務規范化管理,嚴格規范全國各地醫師執業資格,更好地協調醫師之間的交流合作,建立一套針對全國醫師協會的管理系統是勢在必行,近年來互聯網絡的發展和Internet技術的普及,擁有眾多優勢的B/S結構在Web應用程序開發中得到迅速的推廣。但是綜合運用JSP、Java、互聯網絡和數據庫等多種技術開發的醫師協會管理系統,會存在不少安全性隱患。比如,由于互聯網絡的開放性、通信協議的安全缺陷、處理分布性等,在網絡環境中存儲、訪問和傳輸數據信息,很有可能被泄露或破壞,所以加強網絡安全非常迫切。

2 醫師協會管理系統概述

綜合分析醫師協會管理系統的需求說明,得到系統功能模塊圖和頂層數據流圖。

圖1系統主要功能模塊

圖2 頂層數據流圖

系統用戶分為管理員用戶和普通用戶,不同的用戶類型使用權限不同。對于用戶管理模塊,管理員有增加、修改、刪除普通用戶信息的權限,而普通用戶就只有修改用戶信息的權限。對于其他功能模塊,管理員可以進行增加、刪除、修改操作,普通用戶只能瀏覽。

3 系統的安全性考慮

3.1 物理安全性

保證安裝了醫師協會管理系統的計算機設備的物理安全是前提。物理安全是指保護計算機設備免遭雷擊、火災等環境事故以及因人為操作失誤導致的破壞過程。主要通過安裝消防、避雷系統,設備冗余備份,嚴格管理及提高員工的整體安全意識等措施予以保障。

3.2 Java平臺的安全性

J2EE安全體系結構建立在J2SE的基本特征之上,而J2SE又是以Java平臺為基礎,在研究基于J2EE架構的醫師協會管理系統之前,有必要了解Java平臺安全機制和J2EE的安全體系結構。

Java語言是一種與操作系統平臺無關的語言,本身有著較為完善的安全機制,用Java開發應用程序,可以安全的在Internet上運行。最初的Java平臺(JDK1.1)采用沙箱(sandbox)安全模型,核心主要由3個支柱承擔,分別是Java運行環境的3個重要安全組件:類加載器、類文件驗證器和安全管理器[1]。

圖3 Java2安全模型

3.3 用戶身份劃分

J2EE中的安全是基于角色的,也就是說資源訪問權限賦予角色,通過角色把權限賦予用戶。要檢查用戶是否有訪問權限,服務器就檢查用戶所屬的角色以及角色所具有的權限,服務器用特定的工具實現用戶和角色之間的映射。不同的J2EE服務器供應商用自己特定的方法告訴服務器哪個用戶屬于哪個角色,有的使用操作系統的安全機制,有的把用戶和角色信息保存在數據庫或者文件系統中[2]。通過聲明性安全和編程性安全這兩種方式可以指出特定角色可以訪問的特定資源。

3.3.1 聲明性的安全

聲明性的安全通過安全聲明的方式來表示應用程序的安全需求,一般包括安全角色、訪問控制和驗證要求等。在J2EE平臺中的部署描述符充當了聲明性安全的主要工具。部署描述符是組件開發者、應用程序部署者和應用程序組裝者之間的交流工具。應用程序的開發者用它來表示應用中的安全需求,應用程序部署者或應用程序組裝者將安全角色與部署環境中的用戶和組件映射起來,在程序運行時容器從部署描述符中提取出相應的安全策略,然后容器根據安全策略執行安全驗證。聲明性的安全不需要開發人員編寫任何相關的代碼,一切都是通過配置部署描述符來完成的。

3.3.2 可編程的安全

有時候一些聲明性安全無法滿足特殊安全的要求。假定開發人員定義了兩個角色User和Admin,要求User角色的用戶只能訪問他自己的賬戶信息,而Admin角色的用戶能查看所有賬戶的信息。這時候利用聲明性安全就無能為力了,因為聲明性安全通過部署描述符定義的安全需求是基于類,而不是基于實例的。所以這個問題應該利用J2EE的可編程性安全來解決。

根據實際需要,整個系統面向的用戶可分為3類角色:系統管理員、注冊用戶和游客。每種角色的活動分別沿一條路線前進,對于每一種角色都有相應的機制,控制它只能在允許的活動范圍內行使自己的權力,這樣就為各種角色構成了自己的活動空間,并且各種角色的活動空間互不干擾,使用這種方法系統的安全性得到了很大程度的加強。在具體的實現上,在數據庫中為每種角色都增加了一個表,如administrator表 (系統管理員),user表(注冊用戶),tourist表(游客用戶)。驗證用戶身份時,使用從用戶的證書中獲取的信息(用戶的證書編號)來驗證該信息是否是表中記錄的子集,如果是,則說明該用戶是該表所表征的角色,可以進行角色允許的操作;否則,將提示為非法用戶。為了將角色的活動范圍控制在合法的區域內,只對用戶有權力訪問的頁面建立鏈接,對高安全級的鏈接增加身份驗證[3]。

3.4 系統登錄的安全性考慮

醫師協會管理系統的登錄過程如下:

(1)客戶從瀏覽器客戶端向Web服務器發出請求,服務器將請求轉發到Web容器,根據請求路徑URL找到ActionServlet,Web容器調用Servlet的service()方法,根據請求參數的不同調用doGet()或者doPost()方法。

(2)ActionServlet的doGet()或者doPost()方法調用process()方法處理請求和響應,生成RequestProcess對象處理配置文件struts-config.xml中的配置信息,依次調用processMapping()查找處理此次請求的Action信息并返回ActionMapping對象;processActionForm()創建此次請求的ActionForm對象;processActionCreate()創建處理此次請求的Action實例(LoginAction對象);processActionPerform()執行Action實例的execute()方法。

(3)通過調用execute()方法獲取LoginForm存儲的用戶和密碼等數據信息,其中將ActionForm Bean、ActionMapping、request、response對象傳遞給LoginAction對象(Action實例);執行完必要的邏輯處理比如查詢數據庫后,返回一個ActionForward對象,由該對象調用RequestProcess對象中的processForwardConfig()方法解析配置文件中跳轉參數,轉發到相應的View頁面success.jsp或者failure.jsp。

醫師協會管理系統的登錄方式是用表單登錄,用戶在表單輸入用戶名及口令以后,提交給服務器,由服務器來查詢數據庫實現對客戶端的認證及授權。但是這并不安全,其主要的漏洞分為一下幾種:

用戶的敏感信息在不安全的信道中以明文的形式存在,有時連用戶名和密碼都沒有進行至少的編碼,這種方式簡單,但只能提供低級的安全。

沒有對服務器進行驗證,攻擊者冒充服務器,從而要求用戶把登錄信息發送到攻擊者的主機上,這樣用戶的口令就會被攻擊者所截獲。

用戶的輸入格式非法。在登錄時,把用戶的登錄名和口令作為數據庫查詢的參數,這樣用戶可以輸入特殊的以及口令來使查詢語句失去原來的作用。

所以要采用安全登錄的方式,安全登錄的過程如下:

服務器下載Applet類文件到客戶端,并產生一個隨機數k,送予客戶端,服務器與客戶端進行密匙交換,獲得會話密匙??蛻舳说纳矸蒡炞C模塊驗證服務器身份,客戶端的摘要算法模塊將用戶登錄口令進行摘要計算??蛻舳思用苣K把用戶名、隨機數K+1以及計算所得到的摘要值用會話密匙加密,傳送給服務器。服務器脫密模塊用會話密匙脫密,獲得用戶名、摘要值及隨機數K+1,驗證隨機數是否正確并把摘要值與數據庫中的摘要值進行匹配,如果服務器匹配成功,JSP顯示成功登錄,否則顯示失敗[1][4]。

3.5 信息發布安全設計

醫師協會信息管理系統內部涉及大量的業務信息發布,主要是發布一些文件、公告信息。這就需要解決哪些人有權限發布信息的問題,既解決身份認證和訪問控制的安全問題??梢圆捎秒娮诱諆染W統一的身份認證來訪問控制平臺,并使用基于PKI/CA體系的數字證書認證方式和基于角色的集中權限管理方式實現。

4 結束語

J2EE平臺在構架安全信息管理系統有著獨特的優勢,其安全體系結構亦非常復雜。文中僅從整體上介紹了構建J2EE的安全構架并針對目前Web開發的弊端,整合了Struts、Hibernate等優秀的開源框架,采用MVC設計模式,構建了一個安全的醫師協會管理系統。

參考文獻:

[1] 徐迎曉.Java安全性編程實例[M].北京:清華大學出版社,2003.

[2] 孫衛琴.精通Struts:基于MVC的Java Web設計與開發[M].北京:電子工業出版社,2004.

[3] 郝玉龍,等.J2EE編程技術[M].清華大學出版社,2005.

[4] 倪曉秋,等.J2EE案例開發[M].中國水利水電出版社,2005.

收稿日期:2008-03-12

作者簡介:金嬋鳴(1984-),女,湖北武漢人,武漢理工大學計算機科學與技術學院在讀碩士,研究方向:多媒體技術、網絡應用。

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合