摘要:分布管理信息系統具有跨機構、跨平臺、跨地區等特點,其運行環境具有多樣性和復雜性,這加大了保證系統安全運行的難度。分析了分布式管理信息系統的安全威脅,并針對安全威脅提出了基于數字簽名的數據交換、數據全文加密等安全保證策略,并把這些策略應用到會計電算化無紙考試系統中,取得了良好的效果。
關鍵詞:信息安全;分布式應用;管理信息系統;分布式數據庫系統
中圖法分類號:TP309文獻標識碼:A
文章編號:1001-3695(2006)09-0130-03
1引言
分布式管理信息系統(DistributedMIS)通常由一個中心系統和數個分布于不同運行環境中的子系統構成。中心系統是分布式信息管理系統的核心,負責數據的匯總、處理、報表和分發。匯總指收集各個分布子系統上傳的數據,在進行合法性檢查、沖突檢測和有效性檢查后,合并到中心數據庫中;中心系統對匯總后的數據根據具體業務需要進行加工(如審核);中心系統的處理結果根據需要分發給各子系統。各子系統在中心系統的配合下實現原始數據收集、初級業務處理、數據上報接收等功能。分布式管理信息系統的中心系統與子系統的交互場景如圖1所示。
通常中心系統與子系統運行于不同的環境中,這些環境包括地理環境、網絡環境、操作系統和操作人員等。中心系統和子系統通常由不同的組織使用,這些組織通常分布在不同的地區(如省、區縣等),這些組織的職能、所扮演的角色和所代表的利益各不相同,其網絡環境、操作系統等支持軟件更是千差萬別。總之,系統運行的環境相當復雜,所面對的安全威脅可能來自外部,也可以來自內部(合法的操作人員)。
會計電算化無紙考試系統就是一個分布式管理信息系統的實例。本系統由考務系統、考點系統、考試系統三部分組成。考務系統是本系統的中心系統,通常運行在省(市)的會計電算化協會,主要功能是題庫維護、考試報名、考試安排、試卷生成、考試數據下發、成績接收、合格證管理等。考點系統和考試系統運行在各區縣設置的考點,考點系統負責接收考試數據、組織考場考試、成績數據上傳等。考試系統是學生答題的客戶端。
2分布式管理信息系統的安全問題
分布式管理信息系統的安全威脅主要來自分布式環境的多樣性和復雜性。
同普通管理信息系統一樣,分布式管理信息系統可能存在的安全問題有以下幾個方面:物理安全、操作系統安全、數據庫安全、應用系統安全和管理安全等。對此作專題研討的文章頗多,本文對安全的關注的是:分布式環境中的系統安全和不可信環境中的系統安全。
(1)從中心系統的角度分析系統的安全問題。通常,子系統中的數據庫是根據中心系統分發的基礎數據為模板創建的。存在安全問題有:第三方可能得到分發的數據包,根據數據包創建數據庫或竊取數據包中的數據(通常得到子系統的安裝程序是比較容易的),即假冒接收者;數據包中的數據被惡意竄改。
分發業務數據同樣存在著上面類似的安全問題,中心系統中的業務數據主要來自子系統。在接收子系統上傳的業務數據時存在以下安全問題:業務數據包的來源被假冒;數據包的發出者否認自己的操作,即否認發出;數據包在傳輸過程中被惡意竄改。
(2)從子系統的角度分析系統的安全問題。子系統在接收基礎數據包時同樣存在著數據包來源假冒、惡意竄改等問題。在上傳業務數據時同樣存著惡意竄改、接收者假冒等問題。
在分布式管理信息系統中,最主要的安全威脅是子系統運行環境的不可信。子系統運行的網絡環境、操作系統安全性不高,黑客(Hacker)很容易進入網絡,實施破壞、竊取竄改數據等。最危險的威脅是使用子系統的相關人員不可信,他們可能越過子系統的安全保護,惡意竊取、竄改數據。在會計電算化無紙考試系統的案例中,考場的相關人員可能在考試前直接從數據庫系統中竊取試題及答案,也可能直接修改數據庫中的考試成績(考場的數據庫管理員(DBA)通常知道數據庫的用戶和密碼)。
在這種不可信環境中不可能利用操作系統和數據庫系統的安全措施來保證系統的安全,保證系統安全最可靠的途徑是依靠系統本身的安全保護能力。
3分布式MIS系統的安全目標及其實現方案
不可信環境中的分布式管理信息系統安全設計目標是以信息系統安全保證的基本要求為基礎的。信息系統安全保證的基本要求是:保密性(Confidentiality)、完整性(Integrity)、可用性(Availability)、可控性(Controllability)、不可否認性(Nonrepudiation)。
針對分布式管理信息系統特點,需要保證數據包交換的安全只能通過管理系統查看修改數據庫,管理系統有身份鑒別、訪問控制、審計的能力。
筆者設計的方案使用到多種信息安全技術:加密(Encryption)、AAA(Authentication,Authorization,Accounting)、數字簽名(DigitalSignatures)、密碼校驗和(CryptographicChecksums)等[1,2]。
3.1身份鑒別與數字簽名
身份鑒別(Authentication)也稱為身份認證,身份鑒別的目的在于識別客體身份真實性。在本方案中,一個問題是系統間的身份鑒別,是指中心系統在與子系統交換數據時需要鑒別數據包發送方的身份,只有數據包發送方身份可信才能導入相應的數據包;另一個問題是中心系統和子系統的操作人員在登錄系統時的身份鑒定,中心系統為每個子系統頒發一張身份識別證書(Certificate),中心自己也擁有一張證書。在本方案中,中心系統是一個數字證書認證中心(CertificationAuthority,CA),采用X.509的證書格式。X.509的證書格式如圖2所示[1]。子系統在初始化時,需要把證書注冊到系統中,作為合法子系統標志。
中心系統向子系統分發數據的執行流程如下:
(1)中心系統生成要分發的數據M;
(2)中心系統用SHA1算法生成M的摘要MDC(MessageDigestCode);
(3)中心系統用私鑰加密MDC為MDCE;
(4)中心系統生成帶有加密摘要的數據MD:
MD=(M‖MDCE)
(5)中心系統用子系統的公鑰加密MD為ME。
子系統接收數據時執行流程如下:
(1)子系統用私鑰解密數據ME為MD;
(2)子系統分離MD中的摘要信息MDCE,得到消息M;
(3)子系統SHA1算法生成M的摘要MDC1;
(4)子系統用中心系統的公鑰解密MDCE為MDC;
(5)子系統比較MDC1和MDC,如果一致,就認為是數據是來自中心系統,否則可認為假冒。
子系統向中心系統上傳業務數據的執行方式與中心系統向子系統分發數據的方式類似,此處不再贅述。
操作人員的身份驗證與授權。操作人員在登錄系統時需要進行身份驗證,根據權限執行相關操作。有關這方面的方案、模型已很多,如基于角色存取控制的信息系統安全模型(RoleBasedAccessControl,RBAC)。具體實施方式可參見文獻[3~5]。
3.2系統中的數據加密
如前所述,子系統運行環境是不可信的,因此對子系統中的數據庫進行元數據級加密[6]與密碼摘要和校驗是保證安全的有效方法。
子系統通常涉及到多張數據,有復雜的處理邏輯。為了便于業務邏輯的處理,因此加解密不能在處理業務邏輯時進行,這樣可能造成代碼的可讀性、可修改性極差。由于在讀數據時需要解密,寫數據時需要加密,這樣計算量很大,因此需要考慮性能(如采用對稱加密算法)。考慮到子系統長期運行的安全性,密鑰和加密算法、校驗算法需要能夠更換(如采用插件技術)。
基于以上論述的需求和約束,建立如圖3所示的系統模型。
圖3所示的模型關鍵在數據庫訪問層與業務邏輯層之間加入了數據加解密層。對業務邏輯層來說,數據加解密層是透明的,因而對數據加解密層的修改不會對業務邏輯層和表示層產生影響。
數據加解密層為邏輯層提供三種基本服務,即執行數據修改SQL、查詢數據和啟動提交事務。執行數據修改SQL服務為邏輯層提供執行Delete,Update,Insert語句的接口。邏輯層傳入的SQL語句是明文的,而數據庫中存儲的數據是密文的,因此在提交到數據訪問層執行前需要對SQL語句進行加密(對SQL語句中的靜態數據加密)。例如邏輯層提交的SQL語句為
updateemployeesetisPass=1setIDCode=′512222790101234′
經過加密后,語句可能變成updateemployeesetisPass=
123122setIDCode=′Ad1234adasd23A1343413′
查詢數據服務把邏輯層傳入的Select語句加密后,提交給數據訪問層執行,然后對數據訪問層返回的數據集進行解密和完整性(Integrity)校驗,返回給邏輯層。
啟動提交事務服務為邏輯提供事務支持。
為了防止數據庫中的數據被惡意修改或刪除,需要對庫中的數據進行校驗,校驗分為兩種方式:
(1)記錄級校驗
記錄級校驗為數據庫中的每張表增加一個存放記錄級校驗值的字段,記錄級校驗值由式(1)表示:
Cr=E(H(ID‖F2…Fi…Fn))(1)
其中,Cr表示校驗值;E表示加密函數;H表示Hash函數;ID表示記錄的編號,通常是唯一索引(UniqueIndex)字段;
Fi表示數據表中的第i個字段;n表示數據表的字段數量。
ID加入校驗的目的是為了保證即使表中有相同數據的記錄,校驗值也不一樣。
(2)表級校驗
表級校驗為了防止數據被惡意刪除。表級校驗如式(2)所示:
Ct=E(H(Cr1‖Cr2‖…Cri…Crn))(2)
其中,Ct表示表的校驗值;
Cri表示表中的第i個記錄級校驗值;
表級校驗值保存在一張專門的表中。
在子系統模型中的加密算法、密碼、校驗算法可以由中心系統根據需要更換,這樣能保證長期的安全性。在考試系統中,加密算法、密碼、校驗算法是隨基礎數據一起分發到考點系統中的,由于基礎數據需要定期更新,因而算法和密碼也能得到定期更新。在設計加密算法時,需要考慮到算法的效率。
把數據加解密從業務邏輯層和數據訪問層中獨立出的另一個好處是可以把加解密、校驗等功能部署到獨立的高性能服務器上,以改善性能。
4安全性分析
數據包的安全取決于數字簽名、加密算法和數字證書的安全,本方案采用SHA1,RSA算法經過理論和實踐證明有很高的安全性。本方案中,CA中心的安全是本部分的弱點,需要從中心系統的管理方面加強安全保障,對密鑰的管理需要制定管理制度,建立嚴格的授權審計規則。子系統數據安全取決于加密算法的安全和密鑰的安全。方案中算法和密鑰的可更換機制加強了系統的安全,中心系統應該定期更換算法和密碼,并且做好密鑰的保密工作。中心組織需要強化監視子系統,在發現可能出現事故時,及時更新算法或密鑰,防止事故擴大。正是由于上述多種安全機制配合,保證了系統具有較高的安全性。
5結束語
本文分析了分布式管理信息系統的安全威脅,針對不同的安全威脅提出了相應的解決策略。會計電算化無紙考試系統運行情況表明,方案具有很高的安全性和可實施性。安全工程是一個系統工程,本文主要研究了從技術上保證系統安全,但建立完善的安全系統,嚴格的管理也是非常必要的。
參考文獻:
[1]WilliamStalling.NetworkSecurityEssentials:ApplicationsandStandards[M].US:PrenticeHall,2002.119123.
[2]蔡皖東.網絡與信息安全[M].西安:西北工業大學出版社,2004.9395.
[2]馮登國,卿斯漢.信息安全——核心理論與實踐[M].北京:國防工業出版社,2000.6673.
[3]王惠琴,李明,顧曉麗,等.管理信息系統中的安全性研究[J].計算機工程與應用,2001,37(10):9192,97.
[4]苗雪蘭.一種信息系統授權管理安全模型及實現方案[J].計算機應用與軟件,2004,21(11):108110,78.
[5]戴祝英,左禾興.基于角色的訪問控制模型分析與系統實現[J].計算機應用研究,2004,21(9):173175.
[6]舒德平.數據庫安全和保密之探討[J].通信技術,1994,(2):2630.
作者簡介:
文俊浩(1969),男,河南臨穎人,副教授,博士,主要研究方向為軟件工程、信息安全、數據挖掘;徐傳運(1979),男,重慶開縣人,碩士研究生,主要研究方向為信息安全、軟件工程;徐光俠(1974),女,重慶人,講師,碩士研究生,主要研究方向為軟件工程、信息安全、數字化校園;張楊(1981),女,重慶人,碩士研究生,主要研究方向為軟件工程。