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