使用智能卡實(shí)現(xiàn)集成Windows身份驗(yàn)證的實(shí)踐
文章出處:http://coolbang.cn 作者:程超 人氣: 發(fā)表時(shí)間:2011年09月22日
1 引言
隨著信息安全需求和技術(shù)的飛速發(fā)展,有效、便捷、安全的身份驗(yàn)證已成為眾多應(yīng)用系統(tǒng)的必須,身份驗(yàn)證是指驗(yàn)證實(shí)體身份(是用戶(hù)、計(jì)算機(jī)還是程序)的過(guò)程。該過(guò)程確定實(shí)體是它所聲稱(chēng)的身份,從而可以正確應(yīng)用數(shù)據(jù)安全的保密性、完整性和可用性三個(gè)原則。目前在企業(yè)的應(yīng)用中,結(jié)合AD(Active Directory)目錄服務(wù)的集成Windows身份驗(yàn)證正在成為流行的身份驗(yàn)證方式。它提供了包括單一機(jī)密和二元身份驗(yàn)證以及二者相結(jié)合的訪問(wèn)控制和身份驗(yàn)證的方法。
2 身份驗(yàn)證概述
傳統(tǒng)方式下,用戶(hù)只需要提供網(wǎng)絡(luò)用戶(hù)名和與其相關(guān)聯(lián)的登錄密碼就可以通過(guò)身份驗(yàn)證來(lái)訪問(wèn)網(wǎng)絡(luò)資源。然而,網(wǎng)絡(luò)用戶(hù)名經(jīng)常會(huì)在名片、雜志文章等公開(kāi)的信息中出現(xiàn),或者很容易被猜到,甚至在輸入的時(shí)候被別人看到,因此網(wǎng)絡(luò)密碼成為保護(hù)公司網(wǎng)絡(luò)僅存的安全機(jī)制。
單一機(jī)密(如密碼)可以作為有效的安全控制手段。由隨機(jī)字母、數(shù)字和特殊字符組成的1O個(gè)字符以上的長(zhǎng)密碼很難破解。遺憾的是,用戶(hù)并不總是能夠記住此類(lèi)密碼,部分原因是人類(lèi)固有的局限性。George A.Miller于1956年在The Psychological Review上發(fā)表的研究報(bào)告指出:人腦的短期記憶能力有限,只能記憶5至9個(gè)隨機(jī)字符,平均為7個(gè)字符。但是。大多數(shù)安全指導(dǎo)建議的密碼至少為八字符隨機(jī)密碼。由于大多數(shù)用戶(hù)無(wú)法記住八字符隨機(jī)密碼,許多用戶(hù)選擇將密碼記在紙上或者設(shè)置一些容易記憶的密碼,比如“ p~sword”等,這在給自己帶來(lái)方便的同時(shí),也為攻擊者打開(kāi)了方便之門(mén)。
二元身份驗(yàn)證要求用戶(hù)提交某種形式的唯一令牌(比如硬件令牌或智能卡)及個(gè)人標(biāo)識(shí)號(hào)(PIN),明顯優(yōu)于簡(jiǎn)單的用戶(hù)名和密碼組合。目前,使用智能卡及關(guān)聯(lián)PIN是越來(lái)越流行、可靠、經(jīng)濟(jì)實(shí)惠的二元身份驗(yàn)證形式。它主要有如下優(yōu)勢(shì):
a、提高了攻擊者破解難度,加強(qiáng)了對(duì)敏感數(shù)據(jù)的保護(hù)。由于智能卡使用難以偽造的數(shù)字證書(shū)作為登錄憑證,因此黑客必須竊取智能卡并獲取PIN才能登錄網(wǎng)絡(luò)。
b、降低抵賴(lài)的可能性。由于智能卡能夠識(shí)別已登錄用戶(hù)的真實(shí)身份,因此降低了個(gè)人拒絕承擔(dān)其行為責(zé)任的能力,同時(shí)也提高了監(jiān)控日志的可信度。
3 集成Windows身份驗(yàn)證
使用智能卡實(shí)現(xiàn)集成Windows身份驗(yàn)證正是二元身份驗(yàn)證的典型模式,此模式的實(shí)現(xiàn)主要包括:安裝根證書(shū)、配置集成Windows身份驗(yàn)證、安裝服務(wù)器證書(shū)及配置SSL、啟用目錄服務(wù)映射器、數(shù)字證書(shū)和賬號(hào)的映射等幾個(gè)關(guān)鍵點(diǎn)。
3 1 安裝第三方認(rèn)證中心(CA)根證
如果您的域中有Windows證書(shū)機(jī)構(gòu),那么您沒(méi)有必要安裝CA根證,因?yàn)榕c客戶(hù)在相同域中的Windows證書(shū)機(jī)構(gòu)的根證是自動(dòng)安裝的。另外如果你的域中正使用企業(yè)CA,也可以跳過(guò)這一部分,因?yàn)楸緛?lái)企業(yè)根證書(shū)在系統(tǒng)中是被信任的。但是如果您選擇使用一個(gè)沒(méi)有預(yù)先安裝的商業(yè)CA,就必須安裝CA根證書(shū)來(lái)進(jìn)行相應(yīng)信任關(guān)系的處理,只有根證被信任,用戶(hù)的數(shù)字證書(shū)才有可能驗(yàn)證通過(guò)。
對(duì)于第三方CA的根證我們可以通過(guò)Windows2003控制臺(tái)中的證書(shū)管理單元添加到“受信任的根證書(shū)頒發(fā)機(jī)構(gòu)”中,對(duì)于已經(jīng)添加好的根證會(huì)被羅列出來(lái),用戶(hù)在安裝之前最好先仔細(xì)檢查自己選擇的CA機(jī)構(gòu)根證是否已經(jīng)存在。
3.2 啟動(dòng)集成Windows身份驗(yàn)證
集成Windows身份驗(yàn)證(以前稱(chēng)為NTLM身份驗(yàn)證和Windows NT質(zhì)詢(xún)/響應(yīng)身份驗(yàn)證)可以使用NTLM或Kerbetas身份驗(yàn)證,NTLM是Microsoft的一項(xiàng)專(zhuān)有技術(shù),自問(wèn)世以來(lái)已幾經(jīng)更新,雖然這種機(jī)制穩(wěn)定可靠但它有一個(gè)致命缺點(diǎn)是不能進(jìn)行委派,這就意味著用戶(hù)憑據(jù)不能流動(dòng)到遠(yuǎn)程服務(wù)(如SQL Server)。而Kerberos卻不存在這種問(wèn)題,在保持穩(wěn)定安全的驗(yàn)證機(jī)制的同時(shí)還可以在Windows環(huán)境中輕松地使用委派,我們要討論的就是這種機(jī)制。
Kerberos大多數(shù)情況下要求使用Microsoft Active Directory,因?yàn)锳ctive Directory 充當(dāng)Kerberos令牌授予服務(wù)(TGS/TGT)。
3.3 安裝服務(wù)器證書(shū)并配置SSL服務(wù)
服務(wù)器身份證書(shū)中包含服務(wù)器信息、公鑰及CA的簽名,在網(wǎng)絡(luò)通訊中標(biāo)識(shí)證書(shū)持有服務(wù)器的身份。利用證書(shū)機(jī)制保證與其他服務(wù)器或用戶(hù)通信的安全性。web服務(wù)器證書(shū)是Web Server與用戶(hù)瀏覽器之問(wèn)建立安全連接時(shí)所使用的數(shù)字證書(shū),配置后,可以要求瀏覽器客戶(hù)端擁有數(shù)字證書(shū),建立通信時(shí)Web Server和瀏覽器交換證書(shū),驗(yàn)證對(duì)方身份后建立安全連接通道。web服務(wù)器證書(shū)的安裝可以通過(guò)IIs配置中的安全通信將服務(wù)器證書(shū)導(dǎo)人。
服務(wù)器證書(shū)安裝成功后就可以設(shè)置SSL了,SSL是“安全套接層”的簡(jiǎn)稱(chēng),是一套提供身份驗(yàn)證、保密性和數(shù)據(jù)完整性的加密技術(shù)。在IIs安全通信屬性中我們可以選擇“接受客戶(hù)端證書(shū)”或者“要求客戶(hù)端證書(shū)”,“接受客戶(hù)端證書(shū)”設(shè)置需要在客戶(hù)端證書(shū)和瀏覽器之間進(jìn)行協(xié)商。如果失敗了,它就會(huì)退回到標(biāo)準(zhǔn)驗(yàn)證協(xié)議中的一個(gè)。如果想選中“要求客戶(hù)端證書(shū)”,那么你需要先選中“要求安全通道”,這就意味著web站點(diǎn)將不能通過(guò)H rrP協(xié)議進(jìn)行訪問(wèn),只可以通過(guò)Hrl’I ;協(xié)議進(jìn)行訪問(wèn)。
3.4 啟用目錄服務(wù)映射器
Active Directory 是實(shí)施智能卡部署的關(guān)鍵組件。Windows Server 2003中的Active Directory 包含對(duì)實(shí)施智能卡交互式登錄的內(nèi)置支持以及將帳戶(hù)映射至證書(shū)的功能。這種將用戶(hù)帳戶(hù)映射至證書(shū)的功能將智能卡上的私鑰與ActiveDirectory中存儲(chǔ)的證書(shū)捆綁。登錄時(shí)提供智能卡憑據(jù)要求Active Directory將該特定卡與唯一的用戶(hù)帳戶(hù)匹配。
3.5 將證書(shū)映射到用戶(hù)賬號(hào)
將已頒發(fā)給用戶(hù)的證書(shū)映射到用戶(hù)帳戶(hù)(或創(chuàng)建與帳戶(hù)的關(guān)聯(lián)),這樣服務(wù)器應(yīng)用程序可以使用公鑰加密技術(shù)來(lái)驗(yàn)證使用該證書(shū)的用戶(hù)身份。如果用戶(hù)的身份通過(guò)驗(yàn)證,則可登錄到該用戶(hù)的帳戶(hù)上。最終結(jié)果與用戶(hù)提供了用戶(hù)ID和密碼一樣。
一般情況下,將數(shù)字證書(shū)映射到用戶(hù)帳號(hào)主要有在AD中映射和在IIs服務(wù)器中映射兩種途徑,這兩種途徑各有利弊,我們可以靈活選擇自己的映射途徑。
另外數(shù)字證書(shū)映射到用戶(hù)帳戶(hù)有以下兩種方式:一個(gè)證書(shū)映射一個(gè)用戶(hù)帳戶(hù)(一對(duì)一映射)或者多個(gè)證書(shū)映射到一個(gè)用戶(hù)帳戶(hù)(多對(duì)一映射)。
3.5.1 一對(duì)一映射
一對(duì)一映射將單個(gè)用戶(hù)證書(shū)映射到單個(gè)用戶(hù)帳戶(hù)。實(shí)際應(yīng)用中可以為每一位用戶(hù)發(fā)放一張屬于自己的數(shù)字證書(shū),然后將這些用戶(hù)證書(shū)映射到員工的用戶(hù)帳戶(hù)。這允許用戶(hù)從任何地方,通過(guò)提供其客戶(hù)端證書(shū)使用SSL(安全套接字層)連接到web頁(yè)。然后,用戶(hù)登錄到自己的用戶(hù)帳戶(hù),并可應(yīng)用正常的訪問(wèn)控制。
3.5.2 多對(duì)一映射
多對(duì)一映射將許多證書(shū)映射到單個(gè)用戶(hù)帳戶(hù)。例如,您認(rèn)識(shí)一家專(zhuān)為您的工作空缺提供臨時(shí)工的代理。您可能想讓代理人查看只有公司員工才能看到的介紹當(dāng)前工作空缺的網(wǎng)頁(yè)。代理有自己的證書(shū)頒發(fā)機(jī)構(gòu),用于為其員工頒發(fā)證書(shū)。將代理證書(shū)頒發(fā)機(jī)構(gòu)的根證書(shū)作為您企業(yè)的受信任根證書(shū)進(jìn)行安裝之后,您可以設(shè)置一種規(guī)則,將該證書(shū)頒發(fā)機(jī)構(gòu)頒發(fā)的所有證書(shū)都映射到某一賬號(hào)。然后設(shè)置帳戶(hù)訪問(wèn)權(quán)利,以使該帳戶(hù)可訪問(wèn)那個(gè)網(wǎng)頁(yè)。
4 結(jié)束語(yǔ)
使用智能卡實(shí)現(xiàn)集成Windows身份驗(yàn)證,有效的整合了單一機(jī)密和二元身份驗(yàn)證技術(shù)的特點(diǎn),在不對(duì)應(yīng)用系統(tǒng)進(jìn)行二次開(kāi)發(fā)改造的情況下,實(shí)現(xiàn)了強(qiáng)身份驗(yàn)證并保障通訊安全。目前青島市委市政府基于微軟.NET環(huán)境開(kāi)發(fā)的辦公系統(tǒng),用Active Directory存儲(chǔ)、管理用戶(hù)信息和控制訪問(wèn)權(quán)限,結(jié)合山東CA的數(shù)字證書(shū),實(shí)現(xiàn)了用戶(hù)使用智能卡登錄辦公系統(tǒng),進(jìn)行身份驗(yàn)證和數(shù)字簽名,使系統(tǒng)的安全更加有保障。