唐毅鋆
?
實(shí)驗(yàn)室物資管理安全子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
唐毅鋆
(漳州職業(yè)技術(shù)學(xué)院 計(jì)算機(jī)工程系,福建 漳州 363000)
針對(duì)目前信息安全所存在的問題以及信息安全策略,結(jié)合ASP.NET開發(fā)的Web系統(tǒng)可能存在的漏洞解決方案,分別研究了身份認(rèn)證、信息加密、數(shù)據(jù)輸入輸出安全以及數(shù)據(jù)庫(kù)安全等方面的基礎(chǔ)理論知識(shí),設(shè)計(jì)了一個(gè)安全子系統(tǒng)。
信息安全策略;身份認(rèn)證;信息加密
信息安全的實(shí)質(zhì)就是要保護(hù)信息系統(tǒng)或信息網(wǎng)絡(luò)中的信息資源免受各種類型的威脅、干擾和破壞,即保證信息的安全性。因此,信息安全又可以從以下幾個(gè)方面來進(jìn)行闡述[1]。
(1)保密性:信息系統(tǒng)或信息網(wǎng)絡(luò)中的信息資源不會(huì)泄露給非授權(quán)的組織、個(gè)人以及可供其利用的事物。
(2)完整性:信息系統(tǒng)或信息網(wǎng)絡(luò)中的信息資源不會(huì)被隨意的刪除或修改,導(dǎo)致信息丟失或錯(cuò)誤。
(3)有效性:信息系統(tǒng)或信息網(wǎng)絡(luò)中的信息資源永不失效,隨時(shí)都能被合法的用戶所使用。
安全技術(shù)是信息系統(tǒng)能否安全可靠、穩(wěn)定運(yùn)行的保障,該技術(shù)的性能是信息系統(tǒng)生死存亡的關(guān)鍵,因此信息系統(tǒng)的安全技術(shù)可以歸納為以下兩個(gè)方面[2]。
(1)計(jì)算機(jī)自身的安全策略及技術(shù)
計(jì)算機(jī)系統(tǒng)上硬件資源及軟件資源的分配與調(diào)用都是由操作系統(tǒng)來進(jìn)行管理控制的,所以保證信息系統(tǒng)安全的首要任務(wù)便是選擇一個(gè)安全的操作系統(tǒng)。當(dāng)今比較流行的操作系統(tǒng)有四種:Windows、NetWare、Unix、Linux。
(2)網(wǎng)絡(luò)安全策略及技術(shù)
信息系統(tǒng)是運(yùn)行在一個(gè)開放式的互聯(lián)網(wǎng)環(huán)境下,很容易受到攻擊,占用其網(wǎng)絡(luò)資源或者被懷有惡意的攻擊者截獲、修改網(wǎng)絡(luò)傳輸過程中的信息,從而非法進(jìn)入主機(jī),竊取系統(tǒng)內(nèi)重要信息。針對(duì)以上出現(xiàn)的網(wǎng)絡(luò)威脅,可以采取密碼、安全協(xié)議、防火墻及入侵檢測(cè)等幾種技術(shù)進(jìn)行防疫。
身份認(rèn)證是系統(tǒng)安全的第一道關(guān)卡。當(dāng)用戶請(qǐng)求訪問系統(tǒng)資源之前,先由身份認(rèn)證系統(tǒng)對(duì)其進(jìn)行身份鑒定,才能經(jīng)過訪問控制器對(duì)用戶身份和權(quán)限進(jìn)行判斷,并決定該用戶所能夠訪問的資源。目前,常用的身份認(rèn)證技術(shù)有靜態(tài)口令和數(shù)字簽名。
(1)靜態(tài)口令認(rèn)證
靜態(tài)口令認(rèn)證即是用戶名/密碼的認(rèn)證方式。用戶自己設(shè)定用戶密碼,并且該密碼只有用戶自己知道。但是,靜態(tài)口令認(rèn)證的安全性很低,沒有辦法保障復(fù)雜網(wǎng)絡(luò)環(huán)境下的系統(tǒng)安全。
(2)數(shù)字簽名
數(shù)字簽名其實(shí)就是利用加密算法對(duì)客戶所要發(fā)送的信息進(jìn)行加密,然后再由服務(wù)器短通過解密算法來驗(yàn)證信息的完整性以及用戶的正確性。
實(shí)現(xiàn)數(shù)字簽名的算法有兩種:對(duì)稱加密算法和非對(duì)稱加密算法。目前普遍使用非對(duì)稱加密算法。常見的如: RSA簽名[3]。
RSA數(shù)字簽名的實(shí)現(xiàn)過程如下。
①對(duì)于給定任意長(zhǎng)度的消息首先使用MD5或SHA-1算法產(chǎn)生一個(gè)雜湊值A(chǔ),該雜湊值也稱為消息摘要,是用于檢驗(yàn)消息完整性的重要依據(jù);
②發(fā)送者使用私鑰對(duì)雜湊值進(jìn)行加密,完成“簽名”,將簽名及消息發(fā)送給接收者;
③接收者使用發(fā)送者公開的密鑰對(duì)簽名進(jìn)行解密,獲得雜湊值B;
④接收者使用MD5或SHA-1算法對(duì)接收到的消息進(jìn)行運(yùn)算,獲得雜湊值C;
⑤將雜湊值B與雜湊值C進(jìn)行匹配,如果兩者相同,則認(rèn)為消息沒有被改變,并且簽名合法有效。
DES是一種通用的對(duì)稱加密算法,該算法的工作方式是通過密鑰對(duì)用戶輸入的64位字符進(jìn)行加密,生成密文,需要的時(shí)候再使用相同的密鑰將密文還原回來。DES的加密過程如圖1所示[4]。
圖1 DES加密過程圖
訪問控制是指將用戶按照其身份及所在的分組的定義用作為是否對(duì)網(wǎng)絡(luò)中某項(xiàng)資源進(jìn)行訪問或操作的判斷依據(jù)。主要有基于對(duì)象的訪問控制、基于任務(wù)的訪問控制及基于角色的訪問控制三種類型。其中,基于角色的訪問控制是系統(tǒng)開發(fā)過程中最常用的一種訪問控制模型。
基于角色的訪問控制在實(shí)現(xiàn)的過程中,首先要將資源的訪問權(quán)限分配給某一種或幾種特定角色,再讓用戶扮演訪問許可中的一種或幾種角色,便可實(shí)現(xiàn)用戶對(duì)資源的訪問。它可以保證每個(gè)角色的用戶,只能行使其角色所規(guī)定的職能,達(dá)到身份與職能統(tǒng)一的效果。
在引言的信息安全策略,曾經(jīng)介紹使用防火墻技術(shù)是防止攻擊的最有效解決方案。為此,選擇了如圖2所示的網(wǎng)絡(luò)體系結(jié)構(gòu)用于Web系統(tǒng)的部署。
3.2.1 靜態(tài)口令認(rèn)證
在身份認(rèn)證的幾種技術(shù)中,靜態(tài)口令的認(rèn)證方式是最快捷、消耗成本最低的一種認(rèn)證方式??紤]到本系統(tǒng)的便捷性及開發(fā)成本,用戶在執(zhí)行身份認(rèn)證的時(shí)候主要以傳統(tǒng)的靜態(tài)口令進(jìn)行登錄。
用戶在進(jìn)行用戶密碼匹配的時(shí)候,由于事先存放在數(shù)據(jù)庫(kù)中的密碼字段已經(jīng)使用了該用戶所有的密鑰進(jìn)行加密保護(hù),所以匹配之前需獲得該密鑰對(duì)明文加密后的密文。密文的生成是由.NET中的DESCryptoServiceProvider類來實(shí)現(xiàn)的。為了保障密鑰的安全,本系統(tǒng)將密鑰存放在另外的數(shù)據(jù)庫(kù)表Key中。
3.2.2 數(shù)字簽名
本系統(tǒng)采用的是公開密鑰密碼算法的數(shù)字簽名,所以在使用數(shù)字簽名進(jìn)行身份認(rèn)證之前,首先必須對(duì)為系統(tǒng)中的屬于實(shí)訓(xùn)室管理員、分管領(lǐng)導(dǎo)、系統(tǒng)管理員等角色的用戶創(chuàng)建加密的私鑰及解密的密鑰。在ASP.NET中,可以使用RSA 類和RSACryptoServiceProvider 類來創(chuàng)建和存儲(chǔ)公鑰及密鑰。
(1)用戶密鑰對(duì)生成
首先讀取入用戶信息,再調(diào)用RSACryptoServiceProvider類所提供的ToXmlString( )方法創(chuàng)建密鑰對(duì)。
(2)私鑰的存儲(chǔ)
在生成密鑰對(duì)信息后,通過ASP.NET所提供的StreamWriter對(duì)象所提供的Write( )方法將私鑰的信息寫入文本文件中,用戶可以將該私鑰保存到USB盤中或是其計(jì)算機(jī)磁盤中。需要的時(shí)候再將其取出進(jìn)行簽名。
(3)公鑰的存儲(chǔ)
為方便服務(wù)器讀取公鑰,將公鑰存儲(chǔ)在數(shù)據(jù)庫(kù)表PublicKey中。
(4)身份認(rèn)證
當(dāng)進(jìn)行身份認(rèn)證的時(shí)候,用戶在客戶端使用私鑰及哈希算法進(jìn)行數(shù)字簽名,服務(wù)器則使用數(shù)據(jù)庫(kù)中所不保存的公鑰對(duì)客戶驗(yàn)證數(shù)字簽名。身份認(rèn)證流程圖如圖3所示。
圖2 實(shí)驗(yàn)室物資管理系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖3 身份認(rèn)證過程
3.3.1. 強(qiáng)制身份認(rèn)證
為了防止攻擊者通過URL路徑直接訪問系統(tǒng)后臺(tái)頁(yè)面,必需強(qiáng)制訪問者先從系統(tǒng)首頁(yè)進(jìn)行身份驗(yàn)證。要解決這個(gè)安全問題可以采用兩種方法:(1)在每個(gè)頁(yè)面的Page_Load事件中進(jìn)行Session[“User”]==null判斷;(2)利用ASP.NET所提供的安全驗(yàn)證模型。本系統(tǒng)中采用方法二來實(shí)現(xiàn)。
ASP.NET提供了兩種身份驗(yàn)證模式:Windows 安全驗(yàn)證模型和Form 安全驗(yàn)證模型,默認(rèn)的是Windows 安全驗(yàn)證。要想強(qiáng)制用戶從首頁(yè)進(jìn)行登錄就得采用Form安全驗(yàn)證。本系統(tǒng)通過Form安全驗(yàn)證模式實(shí)現(xiàn)強(qiáng)制驗(yàn)證步驟如下:
(1)更改Web系統(tǒng)根目錄下的web.config文件,將
(2)在Web系統(tǒng)根目錄下創(chuàng)建一個(gè)文件夾,命名為“Web_UI”,將除Login.aspx頁(yè)面外的所有頁(yè)面放入該文件夾中。
(3)在Web_UI文件夾內(nèi)創(chuàng)建一個(gè)web.config文件,在文件中添加
至此,在服務(wù)器上完成匿名用戶對(duì)該Web系統(tǒng)的訪問控制配置。但是,要實(shí)現(xiàn)合法用戶對(duì)該文件夾的訪問,還需要在用戶登錄的時(shí)候做一些設(shè)置。這就需要使用ASP.NET所提供的FormsAuthentication對(duì)象調(diào)用方法SetAuthCookie( )為登錄用戶分配一個(gè)已驗(yàn)證的用戶標(biāo)識(shí)存放在Cookie,這樣就可以訪問Web_UI文件夾內(nèi)的所有頁(yè)面。
當(dāng)用戶需要退出時(shí),如果是直接關(guān)閉網(wǎng)頁(yè),存放在Cookie中的用戶身份票證不會(huì)立馬消失,如果有人這時(shí)候使用已經(jīng)登錄過的機(jī)子打開系統(tǒng)頁(yè)面就可以繞過身份驗(yàn)證。所以在系統(tǒng)中還必須設(shè)置一個(gè)退出按鈕,并在按鈕事件中調(diào)用FormsAuthentication對(duì)象的SignOut( )方法將已驗(yàn)證標(biāo)識(shí)刪除,以此來達(dá)到防止其他人繞過身份驗(yàn)證進(jìn)入系統(tǒng)。
3.3.2 訪問控制
訪問控制的實(shí)現(xiàn)是在上述應(yīng)用程序配置之上通過對(duì)頁(yè)面文件根據(jù)訪問許可在Web_UI文件夾下進(jìn)行歸類存放來實(shí)現(xiàn)的,具體實(shí)現(xiàn)步驟如下。
(1)在Web系統(tǒng)根目錄下建立三個(gè)文件夾分別命名為:Admin、Leader、LabManager、Teacher。將UserList.aspx和ManagerUser.aspx頁(yè)面放入Admin文件夾中,將EquipmentIn.aspx、LowerGodIn.aspx、MaterialIn.aspx、EquipmentOut.aspx、LowerGodOut.aspx、MaterialOut.aspx等頁(yè)面放入LabManager文件夾中,將ApplyExamine.aspx、RepairExamine.aspx、ScrapExamine.aspx等頁(yè)面放入LabManager文件夾中,將RepairCheck.aspx、ApplyCheck.aspx等頁(yè)面放入Teacher文件夾中。
(2)分別在Admin、Leader、LabManager文件夾下各創(chuàng)建一個(gè)web.config文件。在文件中添加
(3)在Web系統(tǒng)根目錄下創(chuàng)建一個(gè)全局文件Global.asax,通過HttpContext對(duì)象獲得已驗(yàn)證用戶標(biāo)識(shí),再利用new GenericPrincipal( )方法將用戶角色添加入已驗(yàn)證用戶標(biāo)識(shí)中。
[1] 劉微微,程景云,程海蓉.互聯(lián)網(wǎng)時(shí)代的信息安全[J].計(jì)算機(jī)輔助工程,2001(2):54-61
[2] 朱亞殊,朱荊州.實(shí)現(xiàn)操作系統(tǒng)安全的幾種策略[J].計(jì)算機(jī)與數(shù)字工程,2005(01):49-52
[3] 肖力.RSA密碼系統(tǒng)實(shí)現(xiàn)數(shù)字簽名[J].長(zhǎng)春工程學(xué)院學(xué)報(bào)(自然科學(xué)版),2002(4):68-70
[4] 管瑩,敬茂華.DES算法原理及實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2009(4):5-7
The security subsystem Design and Implementation of Laboratory Materials Management
TANG Yi-yun
(Computer Department of Zhangzhou Institute of Technology, Fujian Zhangzhou 363000,China)
according to the current problems in information security and information security policy, combine the loophole solution that the Web system of ASP.NET development may exist, studied an identity respectively earnest, the information encrypt, data importation output safety and database safety etc. of foundation theory knowledge, designed a safe sub-system.
information safe strategy; identity respectively earnest; the information encrypt
TP393.08
A
1673-1417(2011)04-0001-05
2011-09-05
唐毅鋆(1982-),女,福建漳州人,助教,碩士。
(責(zé)任編輯:季平)