網絡認證技術是網絡安全技術的重要組成部分之一。認證指的是證明被認證對象是否屬實和是否有效的一個過程。其基本思想是通過驗證被認證對象的屬性來達到确認被認證對象是否真實有效的目的。被認證對象的屬性可以是密碼、數字簽名或者象指紋、聲音、視網膜這樣的生理特征。認證常常被用于通信雙方互相确認身份,以保證通信的安全。認證可采用各種方法進行。
基于密碼的認證方法
傳統的認證技術主要采用基于密碼的認證方法。當被認證對象要求通路提供服務的系統時,提供服務的認證方要求被認證對象送出該對象的密碼,認證方收到密碼後,将其與系統中存儲的使用者密碼進行比較,以确認被認證對象是否為合法通路者。
這種認證方法的優點在于:一般的系統(如UNIX,Windows NT,NetWare等)都提供了對密碼認證的支援,對于封閉的小型系統來說不失為一種簡單可行的方法。
然而,基于密碼的認證方法存在下面幾點不足:
①使用者每次通路系統時都要以明文方式輸入密碼,這時很容易洩密
②密碼在傳輸過程中可能被截獲。
③系統中所有使用者的密碼以檔案形式存儲在認證方,攻擊者可以利用系統中存在的漏洞擷取系統的密碼檔案。
④使用者在通路多個不同安全級别的系統時,都要求使用者提供密碼,使用者為了記憶的友善,往往采用相同的密碼。而低安全級别系統的密碼更容易被攻擊者獲得,進而用來對高安全級别系統進行攻擊。
⑤隻能進行單向認證,即系統可以認證使用者,而使用者無法對系統進行認證。攻擊者可能僞裝成系統騙取使用者的密碼。
對于第②點,系統可以對密碼進行加密傳輸。對于第③點,系統可以對密碼檔案進行不可逆加密。盡管如此,攻擊者還是可以利用一些工具很容易地将密碼和密碼檔案解密。
雙因素認證
在雙因素認證系統中,使用者除了擁有密碼外,還擁有系統頒發的令牌通路裝置。當使用者向系統登入時,使用者除了輸入密碼外,還要輸入令牌通路裝置所顯示的數字。該數字是不斷變化的,而且與認證伺服器是同步的。
雙因素認證比基于密碼的認證方法增加了一個認證要素,攻擊者僅僅擷取了使用者密碼或者僅僅拿到了使用者的令牌通路裝置,都無法通過系統的認證。而且令牌通路裝置上所顯示的數字不斷地變化,這使得攻擊變得非常困難。是以,這種方法比基于密碼的認證方法具有更好的安全性,在一定程度上解決了密碼認證方法中的問題①、②和③。
提問握手認證協定CHAP
除雙因素認證外,還可采用提問-響應(challenge-response)方法來解決上述問題。提問-握手認證協定CHAP(Challenge Handshake Anthentication Protocol)采用的就是提問-響應方法,它通過三次握手(3-way handshake)方式對被認證方的身份進行周期性的認證。其認證過程是:第一步,在通信雙方鍊路建立階段完成後,認證方(authenticator)向被認證方(peer)發送一個提問(challenge)消息;第二步,被認證方向認證方發回一個響應(response),該響應由單向散列函數計算得出,單向散列函數的輸入參數由本次認證的辨別符、秘訣(secret)和提問構成;第三步,認證方将收到的響應與它自己根據認證辨別符、秘訣和提問計算出的散列函數值進行比較,若相符則認證通過,向被認證方發送“成功”消息,否則,發送“失敗”消息,斷開連接配接。在雙方通信過程中系統将以随機的時間間隔重複上述三步認證過程。
CHAP采用的單向散列函數算法可保證由已知的提問和響應不可能計算出秘訣。同時由于認證方的提問值每次都不一樣,而且是不可預測的,因而具有很好的安全性。
CHAP具有以下優點:
①通過不斷地改變認證辨別符和提問消息的值來防止回放(playback)攻擊。
②利用周期性的提問防止通信雙方在長期會話過程中被攻擊。
③雖然CHAP進行的是單向認證,但在兩個方向上進行CHAP協商,也能實作通信雙方的互相認證。 ④CHAP可用于認證多個不同的系統。
CHAP的不足之處是:CHAP認證的關鍵是秘訣,CHAP的秘訣以明文形式存放和使用,不能利用通常的不可逆加密密碼資料庫。并且CHAP的秘訣是通信雙方共享的,這一點類似于對稱密鑰體制,是以給秘訣的分發和更新帶來了麻煩,要求每個通信對都有一個共享的秘訣,這不适合大規模的系統。
Kerberos
Kerberos是由美國麻省理工學院提出的基于可信賴的第三方的認證系統。Kerberos提供了一種在開放式網絡環境下進行身份認證的方法,它使網絡上的使用者可以互相證明自己的身份。
Kerberos采用對稱密鑰體制對資訊進行加密。其基本思想是:能正确對資訊進行解密的使用者就是合法使用者。使用者在對應用伺服器進行通路之前,必須先從第三方(Kerberos伺服器)擷取該應用伺服器的通路許可證(ticket)。
Kerberos密鑰配置設定中心KDC(即Kerberos伺服器)由認證伺服器AS和許可證頒發伺服器TGS構成。 Kerberos的認證過程如圖1所示。
①使用者想要擷取通路某一應用伺服器的許可證時,先以明文方式向認證伺服器AS送出請求,要求獲得通路TGS的許可證。
②AS以證書(credential)作為響應,證書包括通路TGS的許可證和使用者與TGS間的會話密鑰。會話密鑰以使用者的密鑰加密後傳輸。
③使用者解密得到TGS的響應,然後利用TGS的許可證向TGS申請應用伺服器的許可證,該申請包括TGS的許可證和一個帶有時間戳的認證符(authenticator)。認證符以使用者與TGS間的會話密鑰加密。
④TGS從許可證中取出會話密鑰、解密認證符,驗證認證符中時間戳的有效性,進而确定使用者的請求是否合法。TGS确認使用者的合法性後,生成所要求的應用伺服器的許可證,許可證中含有新産生的使用者與應用伺服器之間的會話密鑰。TGS将應用伺服器的許可證和會話密鑰傳回到使用者。
⑤使用者向應用伺服器送出應用伺服器的許可證和使用者新産生的帶時間戳的認證符(認證符以使用者與應用伺服器之間的會話密鑰加密)。
⑥應用伺服器從許可證中取出會話密鑰、解密認證符,取出時間戳并檢驗有效性。然後向使用者傳回一個帶時間戳的認證符,該認證符以使用者與應用伺服器之間的會話密鑰進行加密。據此,使用者可以驗證應用伺服器的合法性。
至此,雙方完成了身份認證,并且擁有了會話密鑰。其後進行的資料傳遞将以此會話密鑰進行加密。 Kerberos将認證從不安全的工作站移到了集中的認證伺服器上,為開放網絡中的兩個主體提供身份認證,并通過會話密鑰對通信進行加密。對于大型的系統可以采用階層化的區域(realm)進行管理。
Kerberos也存在一些問題: Kerberos伺服器的損壞将使得整個安全系統無法工作;AS在傳輸使用者與TGS間的會話密鑰時是以使用者密鑰加密的,而使用者密鑰是由使用者密碼生成的,是以可能受到密碼猜測的攻擊;Kerberos使用了時間戳,是以存在時間同步問題;要将Kerberos用于某一應用系統,則該系統的用戶端和伺服器端軟體都要作一定的修改。
X.509證書及認證架構
國際電信聯盟的X.509建議(已成為事實上的标準)定義了一種提供認證服務的架構。
采用基于X.509證書的認證技術類似于 Kerberos技術,它也依賴于共同信賴的第三方來實作認證。所不同的是它采用非對稱密碼體制(公鑰制),實作上更加簡單明了。這裡可信賴的第三方是指稱為CA(Certificate Authority)的認證機構。該認證機構負責認證使用者的身份并向使用者簽發數字證書。數字證書遵循X.509标準所規定的格式,是以稱為X.509證書。持有此證書的使用者就可以憑此證書通路那些信任CA的伺服器。
當使用者向某一伺服器提出通路請求時,伺服器要求使用者送出數字證書。收到使用者的證書後,伺服器利用CA的公開密鑰對CA的簽名進行解密,獲得資訊的散列碼。然後伺服器用與CA相同的雜湊演算法對證書的資訊部分進行處理,得到一個散列碼,将此散列碼與對簽名解密所得到的散列碼進行比較,若相等則表明此證書确實是CA簽發的,而且是完整的未被篡改的證書。這樣,使用者便通過了身份認證。伺服器從證書的資訊部分取出使用者的公鑰,以後向使用者傳送資料時,便以此公鑰加密,對該資訊隻有使用者可以進行解密。
基于X.509證書的認證技術适用于開放式網絡環境下的身份認證,該技術已被廣泛接受,許多網絡安全程式都可以使用X.509證書(如:IPSec、SSL、SET、S/MIME等)。
由于這種認證技術中采用了非對稱密碼體制,CA和使用者的私鑰都不會在網絡上傳輸,避免了基于密碼的認證中傳輸密碼所帶來的問題。攻擊者即使截獲了使用者的證書,但由于無法獲得使用者的私鑰,也就無法解讀伺服器傳給使用者的資訊。
基于X.509證書的認證明際上是将人與人之間的信任轉化為個人對組織機構的信任,是以這種認證系統需要有CA的支援。目前網際網路上已有一些這樣的認證機構,如Verisign、U.S.Postal Service和CommerceNet等。
CA在确信使用者的身份後才為使用者簽發證書,而CA對使用者身份的确認則遵循CA自己定義的稱為CPS的規則,CA通過這些規則來判定使用者是否存在和有效。證書将使用者的唯一名稱與使用者的公鑰關聯起來。但這種關聯是否合法,卻不屬于X.509所涉及的範疇。X.509聲明:凡是與語義或信任相關的所有問題都依賴于CA的證書正常聲明CPS(Certification Practice Statement),即關聯的合法性取決于CA自己定義的CPS規則。顯然,這種做法會導緻各個CA對使用者的确認方法和确認的嚴格程度上的差異。是以,建立全球性的統一的認證體系以及相關的規範就顯得非常必要。
全球公鑰基礎設施(PKI)就是一個全球範圍的互相信任的基礎設施,它是一種遵循标準的密鑰管理平台。 PKI的建構主要圍繞着認證機構、證書庫、密鑰備份及恢複系統、證書廢棄處理系統、用戶端證書處理系統等基本部分來進行。建立PKI這樣的基礎設施是一項非常龐大的工程,它不僅涉及到一些技術問題,而且涉及到諸多的政策性及政治性問題,因為它要求參與的各方在一個共同點上達成信任。盡管實作全球公鑰基礎設施還需要一定的時間,然而一旦實作,将使得全球性的商務活動變得非常的快捷和友善。目前我國已經開始着手進行這方面的工作,建立自己的認證中心。
基于X.509證書和CA的認證系統将可能是未來認證系統發展的主要方向。