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