張小莉
(山西輕工職業(yè)技術(shù)學(xué)院,山西 太原 030013)
基于USBKey的增強型登錄認(rèn)證系統(tǒng)的設(shè)計與實現(xiàn)
張小莉
(山西輕工職業(yè)技術(shù)學(xué)院,山西 太原 030013)
分析了Windows操作系統(tǒng)自登錄方式的安全隱患,對Windows的身份認(rèn)證機制進行深入研究,給出基于USBKey的增強型登錄認(rèn)證系統(tǒng)方案,最后通過C++編程實現(xiàn).系統(tǒng)可以阻止非法用戶登錄Windows操作系統(tǒng),增加了系統(tǒng)的安全性,提高了用戶信息的保密性.
USBKey ; C++;登錄認(rèn)證系統(tǒng);安全性
本文就目前使用的Windows桌面操作系統(tǒng)自登錄方式存在安全隱患的問題,提出了基于USBKey的Windows操作系統(tǒng)增強型登錄認(rèn)證系統(tǒng),并用C++程序?qū)崿F(xiàn)了該系統(tǒng).
USBKey實際上是一種直接使用在個人電腦USB接口上的智能存儲卡設(shè)備,由于其攜帶方便,安全性高,應(yīng)用廣泛,運算能力強等特點,使其成為現(xiàn)在電子商務(wù)以及電子政務(wù)領(lǐng)域廣泛使用的加密設(shè)備.研究和設(shè)計一套基于USBKey的Windows操作系統(tǒng)增強型登錄認(rèn)證系統(tǒng)有著極高的市場價值和應(yīng)用前景.
是一種使用Windows系統(tǒng)的安全用戶及遠(yuǎn)程安全主體計算機通過一些諸如保存的口令字,登記的指紋等秘密信息來進行安全主體合法身份的認(rèn)證機制.Windows系統(tǒng)支持本地身份認(rèn)證和網(wǎng)絡(luò)身份認(rèn)證兩種方式.其中用Winlogon進程,GINA圖形化登錄窗口與LSASS服務(wù)通過協(xié)作來完成本地身份認(rèn)證過程.
2.1 系統(tǒng)功能分析
系統(tǒng)主要由三部分組成:控制端,客戶端和DLL(動態(tài)庫).本系統(tǒng)實現(xiàn)的登錄Windows操作系統(tǒng)的方式也有三種,第一種是Windows自登錄方式,第二種是使用硬件USB設(shè)備的登錄方式,第三種是使用PIN碼的登錄方式.
2.2 系統(tǒng)流程圖
控制端獲取USBKey設(shè)備ID和驗證碼將其寫入該USB設(shè)備進行注冊,并將注冊的信息傳送到客戶端,客戶端把該信息人寫入配置文件保存, Windows操作系統(tǒng)加載讀取了配置文件信息的DLL模塊,且提示用戶需要注銷客戶端計算機使程序生效(注意:當(dāng)?shù)谝淮渭虞dDLL模塊時需要重新啟動客戶端計算機,以后只需要注銷客戶端計算機即可).
Windows操作系統(tǒng)啟動過程中加載SSRUsbkeygina.dll文件,該文件會替換系統(tǒng)安裝目錄文件下自帶的Msgina.dll.Windows操作系統(tǒng)調(diào)用DLL模塊中的所有接口,讀取配置文件并判斷動態(tài)鏈接庫的運行模式.
當(dāng)返回值為“0”時,DLL模塊不啟用任何模式操作,Windows操作系統(tǒng)選擇自己的默認(rèn)登錄方式;當(dāng)返回值為“1”時,DLL模塊啟用Usbkey身份認(rèn)證登錄模式;當(dāng)返回值為“2”時,DLL模塊啟用雙重密碼認(rèn)證登錄模式.即在彈出的SSR密碼登錄框輸入密碼,如果驗證通過,則彈出系統(tǒng)自帶的密碼登錄框,如果SSR驗證信息失敗,則一直停留在SSR密碼登錄框界面,(動態(tài)庫)程序流程圖如圖1所示.
圖1 DLL(動態(tài)庫)程序流程圖
3.1 系統(tǒng)運行環(huán)境
系統(tǒng)對計算機的CPU及硬盤要求不高,使用的USBKey可以支持任何一款普通移動設(shè)備,該系統(tǒng)只支持本地登錄方式,不支持遠(yuǎn)程登錄.
3.2 系統(tǒng)中使用的部分函數(shù)
見表1.
表1 WINAPI LoggedOut函數(shù)功能
3.3 增強型登錄認(rèn)證系統(tǒng)的執(zhí)行過程
系統(tǒng)采用當(dāng)今流行語言C++加以實現(xiàn),由于客戶端和DLL模塊都是后臺運行程序,所以沒有實現(xiàn)界面.控制端實現(xiàn)界面如圖2所示,具體實現(xiàn)步驟如下所述.
圖2 控制端實現(xiàn)界面
1)選擇第一項“windows默認(rèn)登錄方式”,此時只需輸入系統(tǒng)“用戶名+密碼”即登錄Windows操作系統(tǒng).
2)選擇第二項“增強型USBKEY登錄方式”,系統(tǒng)管理員登錄時需要插入安全管理配發(fā)的USBKey.此時“配發(fā)USBKey”按鈕和“刪除選中”按鈕成為可用狀態(tài).點擊“配發(fā)USBKey”按鈕進行配發(fā)USBKey(如果已經(jīng)有配發(fā)的USBKey可以直接進行提交).然后在控制端界面中輸入持有者姓名并選擇已有USB設(shè)備,然后點擊“配發(fā)”按鈕完成操作.此時Windows操作系統(tǒng)打開自帶的用戶名+密碼界面,用戶正確輸入即可進入Windows操作系統(tǒng).
3)選擇第三項“增強型組合密碼登錄方式”,系統(tǒng)管理員登錄Windows操作系統(tǒng)前需要先獲取本系統(tǒng)配發(fā)的PIN碼.此時“配發(fā)PIN碼”按鈕和“刪除選中”按鈕成為可用狀態(tài),點擊“配發(fā)PIN碼”按鈕配發(fā)PIN碼(如果已經(jīng)有配發(fā)的PIN碼可以直接進行提交),然后在配發(fā)PIN界面輸入持有者和PIN碼點擊配發(fā)按鈕完成操作.Windows操作系統(tǒng)打開自帶的用戶名+密碼界面,用戶正確輸入即可正常進入Windows操作系統(tǒng).
4)點擊“提交”按鈕實現(xiàn)將用戶選中的登錄方式、配發(fā)增強型硬件USB信息、增強型組合密碼即PIN碼發(fā)送到客戶端并寫入配置文件功能,且在提交配置信息時進行檢測.如果用戶選擇了“增強型硬件USBKEY登陸方式”或者“增強型組合密碼登陸方式”但是未配發(fā)USBKey或者PIN碼,則出現(xiàn)提示返回界面.
5)點擊“初始狀態(tài)”按鈕自動修改為“windows默認(rèn)登錄方式”,所有配發(fā)的USBKey信息和配發(fā)的PIN碼都將被清空.
3.4 USBKey登錄認(rèn)證的實現(xiàn)代碼
由于篇幅的限制,我們僅列舉其中登錄認(rèn)證的部分代碼,大部分代碼沒有列出.
int WINAPI aLoggedOutSAS(
PVOID paContext,
DWORD dwSasType,
PLUID pAuthenticationId,
PSID pLogonSid,
PDWORD pdwOptions,
PHANDLE phToken,
PA_MPR_NOTIFY_INFO pNprNotifyInfo,
PVOID* pProfile)
{int iMode=GetIniData();
if(0==iMode)
{……}
if ( 1 == iMode )
{ …… }
if ( 2 == iMode )
{……}
if ( NULL != p)
{
return (p)( paContext, dwSasType, pAuthenticationId,
pLogonSid, pdwOptions, phToken,
pNprNotifyInfo, pProfile);
}
return FALSE;
}
本W(wǎng)indows增強型登錄認(rèn)證系統(tǒng)目前已應(yīng)用于各大企業(yè)單位,安裝該系統(tǒng)Windows啟動時根據(jù)用戶選擇進入相應(yīng)密級的Windows安全增強系統(tǒng)界面進行對Windows操作系統(tǒng)的登錄控制管理.本系統(tǒng)具有以下特點:
4.1 增強型雙重身份認(rèn)證機制
系統(tǒng)管理員選擇增強型硬件USBKEY登陸方式時,只插入USBKey設(shè)備而未輸入持有者信息將不允許登錄操作系統(tǒng)進行操作;當(dāng)選擇增強型組合密碼即PIN碼登錄方式時,只有PIN碼而未輸入持有者信息也將不允許登錄操作系統(tǒng).只有是合法的USBKey設(shè)備持有者或者合法的PIN碼持有者才可以登錄Windows操作系統(tǒng).即使丟失USBKey設(shè)備但不是合法的持有者,也將不能登錄操作系統(tǒng),保證了操作系統(tǒng)的安全性和隱私性.
4.2 帶有安全存儲空間
USBKey有較大的數(shù)據(jù)存儲空間,可以存儲大量用戶密鑰和數(shù)字證書等機密數(shù)據(jù).只有登錄系統(tǒng)才能對該存儲空間進行讀寫操作,其中除了點擊“配發(fā)”按鈕能夠得到合法的USBKey設(shè)備信息和PIN碼外,其他途徑均無效,杜絕了登錄身份信息被復(fù)制的可能性.
Windows操作系統(tǒng)的登錄認(rèn)證問題由來已久,其安全問題也層出不窮[10].本文提出的基于USBKey的Windows增強型身份認(rèn)證機制能夠有效彌補Windows操作系統(tǒng)“用戶名+密碼”的身份認(rèn)證安全漏洞,提高了系統(tǒng)安全性能,有效阻止用戶機密信息的外泄,保護了用戶隱私.通過在眾多網(wǎng)絡(luò)安全信息系統(tǒng)中的實際應(yīng)用證明了該系統(tǒng)能滿足操作系統(tǒng)安全性的需要,有較高的市場應(yīng)用價值.
[1] 蔣毅娜.Windows登錄安全增強系統(tǒng)的設(shè)計與實現(xiàn).北京:北京郵電大學(xué),2009:2-20
[2] 曹 喆,王以剛.基于USBKey的身份認(rèn)證機制的研究與實現(xiàn).計算機應(yīng)用與軟件,2011,28(2):284-286
[3] 朱 誠,左 輝.利用KMDF驅(qū)動程序?qū)崿F(xiàn)USB設(shè)備的功耗控制.計算機應(yīng)用與軟件,2012,29(12):252-254
[4] 李偉為.基于ASP.NET2.0的在線考試系統(tǒng)的設(shè)計與實現(xiàn).計算機應(yīng)用與軟件,2013,28(9):163-165,224
[5] 徐照興,劉 武.基于B/S模式的高職畢業(yè)生就業(yè)數(shù)據(jù)管理系統(tǒng)的設(shè)計與實現(xiàn).計算機應(yīng)用與軟件,2013,29(9):297-300
[6] 楊佳麗,黎敬濤.基于PHP的一個家庭理財系統(tǒng)的設(shè)計與實現(xiàn).計算機應(yīng)用與軟件,2014,30(2):259-262
[7] 譚 萌,王金磊,楊麗芬,等.基于World Wind Java的海底電纜管道業(yè)務(wù)管理信息系統(tǒng)設(shè)計與實現(xiàn).海岸工程,2015,2:10-15[8] 衛(wèi) 琳,SQL Server 2012數(shù)據(jù)庫應(yīng)用與開發(fā)教程.3版.北京:清華大學(xué)出版社,2014:100-150
[9] 邵冬華.Web數(shù)據(jù)庫設(shè)計項目教程.北京:中國人民大學(xué)出版社,2015:62-64
[10] 陳家駿,鄭 滔.程序設(shè)計教程:用C++語言編程.3版.北京:機械工業(yè)出版社,2015:50-100
Enhanced Login Authentication System Design And Implementation Based On USBkey
ZHANG Xiaoli
(Shanxi Light Industry College of Vocational and Technical, Taiyuan 030013, China)
After analyzing the login security trouble in Windows operating system and having studied some mechanisms of Windows’ identity authentication, we propose an enhanced login authentication system scheme based on USBKey. Then it realized by C++ programming. The system can prevent illegal user login the Windows operating system and increase the security of the system and improve the confidentiality of user information.
USBKey;C++;login authentication system; security
2015-10-16
張小莉(1982-),女, 山西興縣人,碩士,山西輕工職業(yè)技術(shù)學(xué)院講師,主要從事計算機應(yīng)用及計算機網(wǎng)絡(luò)研究.
1672-2027(2015)04-0070-04
TP302.1
A