[摘要] 隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)的安全問題日益被關(guān)注,尤其是網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,使得計(jì)算機(jī)攻擊與破壞事件層出不窮,安全問題已經(jīng)引起許多國(guó)家的重視。身份認(rèn)證技術(shù)是信息安全理論與技術(shù)的一個(gè)重要方面,本文主要闡述了如何用.net工具開發(fā)windows下的身份認(rèn)證系統(tǒng)。
[關(guān)鍵詞] gina winlogon
一、身份認(rèn)證技術(shù)分析
身份認(rèn)證是指用戶必須提供他是誰(shuí)的證明。認(rèn)證的目的就是弄清楚他是誰(shuí),具有什么特征,知道什么可用于識(shí)別他的東西。這種證實(shí)客戶的真實(shí)身份與其所聲稱的身份是否相符合的過程是為了限制非法用戶訪問網(wǎng)絡(luò)資源,是其他安全機(jī)制的基礎(chǔ)。
認(rèn)證技術(shù)是信息安全理論與技術(shù)的一個(gè)重要方面。身份認(rèn)證是安全系統(tǒng)中的第一道關(guān)卡,用戶在訪問安全系統(tǒng)之前,首先經(jīng)過身份認(rèn)證系統(tǒng)識(shí)別身份,然后訪問監(jiān)控器, 根據(jù)用戶的身份和授權(quán)數(shù)據(jù)庫(kù)決定用戶是否能夠訪問某個(gè)資源。授權(quán)數(shù)據(jù)庫(kù)由安全管理員按照需要進(jìn)行配置。審計(jì)系統(tǒng)根據(jù)審計(jì)設(shè)置記錄用戶的請(qǐng)求和行為,同時(shí)如情監(jiān)測(cè)系統(tǒng)實(shí)時(shí)或非實(shí)時(shí)地檢測(cè)是否有入侵行為。訪問控制和審計(jì)系統(tǒng)都要依賴于身份認(rèn)證系統(tǒng)提供的“信息”即用戶的身份。一旦身份認(rèn)證系統(tǒng)被攻破,那么系統(tǒng)的所有安全措施將形同虛設(shè)。黑客攻擊的目標(biāo)往往就是身份認(rèn)證系統(tǒng),下面要討論的是單機(jī)狀態(tài)下的身份認(rèn)證。
二、單機(jī)狀態(tài)下的身份認(rèn)證
單機(jī)狀態(tài)下的用戶登錄計(jì)算機(jī),一般有以下幾種形式驗(yàn)證用戶身份:用戶所知道的東西,如口令,密碼;用戶所擁有的東西,如智能卡,身份證,護(hù)照,密鑰盤;用戶所具有的生物特征,如指紋,聲音,視網(wǎng)膜掃描,DNA等。
1.基于口令的認(rèn)證方式
基于口令的認(rèn)證方式是最常用的一種技術(shù)。用戶輸入自己的口令,計(jì)算機(jī)驗(yàn)證并給予用戶相應(yīng)的權(quán)限。這種方式中很重要的問題是口令的存儲(chǔ),一般有兩種方法:
(1)直接明文存儲(chǔ)口令。這種方式有很大風(fēng)險(xiǎn),任何人只要得到存儲(chǔ)口令的數(shù)據(jù)庫(kù),就可以得到全體人員的口令。
(2)Hash散列存儲(chǔ)口令。散列函數(shù)的目的是為文件,報(bào)文或其他分組數(shù)據(jù)產(chǎn)生”指紋”。
2.基于智能卡的認(rèn)證方式
智能卡又稱集成電路卡,即IC卡。智能卡具有硬件加密性能,有較高的安全性。智能卡存儲(chǔ)用戶個(gè)性化的秘密信息,同時(shí)在驗(yàn)證服務(wù)器中也存放該信息。進(jìn)行認(rèn)證時(shí),用戶輸入個(gè)人身份識(shí)別碼,智能卡認(rèn)證成功后,即可讀出智能卡中的秘密信息,從而防止秘密信息的泄露。
3.基于生物特征的認(rèn)證方式
基于生物認(rèn)證的方式是以人體惟一的、可靠的、穩(wěn)定的生物特征(如指紋,虹膜,掌紋等)為依據(jù),采用計(jì)算機(jī)的強(qiáng)大的計(jì)算功能和網(wǎng)絡(luò)技術(shù)進(jìn)行圖像處理和模式識(shí)別。該技術(shù)具有很好的安全性,可靠性和有效性,與傳統(tǒng)的身份確認(rèn)手段相比,無(wú)疑產(chǎn)生了質(zhì)的飛躍。
生物認(rèn)證的過程分為四個(gè)階段:抓圖,抽取特征,比較和匹配。本文要討論的是在單機(jī)狀態(tài)下基于智能卡的認(rèn)證方式,設(shè)計(jì)工作中將用到的智能卡(安全芯)。安全芯的主體是具有運(yùn)算功能的單片機(jī),通過USB接口同PC 主機(jī)通訊。安全芯在不做任何處理時(shí)就可以完成一些軟件加密的任務(wù)。
三、身份認(rèn)證系統(tǒng)實(shí)現(xiàn)
1.系統(tǒng)需求
應(yīng)用要求:在用戶登錄成功狀態(tài)下,按下Ctrl+Alt+Del時(shí)系統(tǒng)不再?gòu)棾觥癢idows安全”對(duì)話框。由于并不需要改變用戶名、密碼這種標(biāo)準(zhǔn)的認(rèn)證模式,所以可以仍然使用msgina.dll中導(dǎo)出的函數(shù)接口,而對(duì)WlxLoggedOnSAS函數(shù)的實(shí)現(xiàn)進(jìn)行必要的改變。
開發(fā)環(huán)境:Windows 2000,PII 400。
開發(fā)工具:Microsoft Visual C++ 6.0。
2.開發(fā)步驟
(1)新建項(xiàng)目,選擇MFC AppWizard(dll),項(xiàng)目名輸入為MyGina。按下“OK”后,選擇Regular DLL with MFC statically linked,按下“Finish”。
(2)使用View->ClassWizard為CmyGinaApp增加InitInstance和ExitInstance兩個(gè)函數(shù)的覆蓋。注意在Stdafx.h中加入#include
(3)由于要導(dǎo)入msgina.dll的接口函數(shù),所以在MyGina.h中定義接口函數(shù)變量類型,并在類CmyGinaApp中定義成員變量。
(4)在MyGina.cpp中,實(shí)現(xiàn)InitInstance。
(5)實(shí)現(xiàn)接口函數(shù)。由于本應(yīng)用仍然保持msgina.dll的大部分操作,所以MyGina.dll的接口函數(shù)的實(shí)現(xiàn)較為簡(jiǎn)單,需要注意的是WlxLoggedOnSAS函數(shù)的實(shí)現(xiàn),當(dāng)在成功登錄狀態(tài)下,不管接收到什么SAS事件,該函數(shù)直接返回WLX_SAS_ACTION_NONE而不做其他處理。
四、結(jié)束語(yǔ)
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)的安全問題日益被人們?cè)絹?lái)越關(guān)注,尤其是網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,使得計(jì)算機(jī)被攻擊與破壞事件層出不窮,所以安全問題已經(jīng)引起許多國(guó)家的重視。身份認(rèn)證技術(shù)是信息安全理論與技術(shù)的一個(gè)重要方面。開發(fā)和研究身份認(rèn)證技術(shù)無(wú)疑是一項(xiàng)前景光明的事業(yè)。
參考文獻(xiàn):
[1]武安河于洪濤編著:Windows 2000/XP WDM設(shè)備驅(qū)動(dòng)程序開發(fā),北京:電子工業(yè)出版社,2003.4
[2]Microsoft Corporation(美)馮博琴朱丹軍雪濤等譯:Windows 2000驅(qū)動(dòng)程序開發(fā)大全,北京:機(jī)械工業(yè)出版社,2001.8