周 瑩
(南通師范高等專科學校 信息技術系,江蘇 南通 226005)
隨著數字化校園網的蓬勃發展,基于網絡應用的多種校園網應用系統應運而生,為了實現統一、安全、便利的身份認證過程,可以選用Kerberos網絡認證協議來為統一身份認證系統服務。然而,在實際的身份認證應用中,基于安全性能的考慮,單純的Kerberos認證協議還存在很多的弊端和漏洞,急需找到一種有效的方法對協議進行改進,以保證身份認證系統安全高效地運行。
Kerberos認證協議,是眾多認證協議中比較成熟的一種認證協議,這項技術一直在麻省理工學院的帶領下不斷地推動和發展。它的主要認證原理是利用對稱密鑰的加密技術,在網絡中設置一個密鑰系統,通過這個系統為客戶機和服務器中的應用程序提供安全認證服務,另外,它還可以實現跨域和遠距離的網絡認證。目前,Kerberos協議中所使用的更多的是公鑰加密方式。
在校園網這種特殊的多應用系統環境下,Kerberos認證方式和單點登錄[1]技術的結合使用已成為當前數字化校園網建設中主要采用的技術。
但是Kerberos認證協議在安全應用方面,也存在著一些缺陷,很多攻擊者可以利用這些漏洞進行攻擊,給網絡帶來了很多不安全的隱患。因此,需要研究Kerberos認證中的缺點,補充一些新的加密算法,輔助補充一些新的認證機制,使其在具體的應用中更加安全。
Kerberos協議的弱點之處在于常用的AES/DES算法無法具有抗否認性,密鑰更換困難,數字簽名和認證難于實現。針對存在的這些安全隱患,可以試著采用ECC(橢圓曲線加密算法)改進Kerberos協議。ECC算法具有處理速度快、計算量小、安全性能高、存儲空間小、單位安全強度高、帶寬要求低等優點,應用前景廣泛。[2]
ECC橢圓曲線加密算法是根據橢圓曲線離散對數問題ECDLP定義的,給定素數p和橢圓曲線E,對 Q=kP,在已知P,Q的情況下求出小于p的正整數k。可以證明,已知k和P計算Q比較容易,而由Q和P計算k則比較困難,至今沒有有效的方法來解決這個問題,這就是橢圓曲線加密算法原理之所在。
ECC加密的過程是:首先,私鑰擁有者隨機地選取一個整數k(k ECC橢圓曲線加密算法的加密解密流程如下圖: 圖1 ECC加密解密流程圖 對于Kerberos認證協議中,采用的是公開對稱密碼體制來傳輸數據的,這種對稱密碼體制在安全性上存在一定的缺陷。目前,比較主流的對稱密碼體制是AES算法,它用來替代原先的DES算法。改進后,可以使用非對稱密碼體制來取代對稱密碼體制。而非對稱密碼體制的算法也比較多,RSA、DSA、ECC都屬于非對稱密碼體制算法。比較AES、RSA、ECC算法的特點,可以參照下表。 表1 AES、RSA、ECC算法特點比較 在公開密鑰體制中,再比較分析RSA、DSA以及ECC算法,比較其性能特點,找出最優算法。下面從三類密碼的安全性、計算負載能力、密鑰大小和帶寬幾個方面來分析比較。 (1)安全性。 RSA的優點是原理較簡單,易于使用。隨著整數因子分解方法的技術進步,要保證RSA算法的安全性,只有通過增加密鑰的長度,但密鑰長度的增加會導致解密速度的降低,實現起來難度也加大了。 ECC的密鑰長度較短,160位的ECC和1024位的RSA、DSA的安全強度相同。具體的安全性分析可以參照下圖。(表中MIPS表示每秒執行百萬條指令的計算機運行一年,目前一般認為破譯時間為1012MIPS年可以看做比較安全) 圖2 RSA、DSA和ECC算法安全性比較 根據上圖分析得下表: 表2 RSA、DSA和ECC算法安全性比較 分析圖表可以看出,在保證相同的安全性的基礎上,ECC所需的密鑰模長遠遠小于RSA和DSA。如果攻擊者攻擊有限域上離散對數問題可以有指數積分法,而對橢圓曲線上的離散對數問題是無法奏效的。對于RSA和DSA,都存在指數時間算法,而ECC至今沒有改算法。可見,ECC算法的抗攻擊性最強,安全性能最高。 (2)計算負載。 所謂計算負載,是指公鑰密碼和私鑰密碼完成一次交換所需要的計算量。根據具體的操作,比較所需的時間。 表3 各密碼系統計算負載比較 根據上表可以看出,與ECC算法相比較,其他密鑰系統的計算較復雜,而ECC則能在較短的時間內產生符合要求的密鑰。在加密解密及數字簽名方面,160位的ECC的運算速度比用1024的RSA密鑰體制快10倍多。 (3)密鑰大小。 密鑰大小是指在密鑰系統中,存儲密鑰對和系統參數時所占的比特數。將RSA、DSA、ECC三種密鑰系統的密鑰大小和系統參數比較情況如下: 表4 系統參數和各密鑰大小的比較 根據上表可以看出,ECC在密鑰大小方面,優勢還是很明顯的。它在系統參數和密鑰大小方面比其他密鑰大小都要小很多。如果假使攻擊的算法復雜度已知,安全性能條件相同的情況下,ECC算法的密鑰量要遠遠小于其他密鑰系統,這樣,ECC算法所占的存儲空間就比較小,降低了實現難度,無需通過增加密鑰長度而提高系統安全性。 (4)帶寬。 帶寬是指在網絡中傳輸數據包或數字簽名時所產生的通訊量。根據分析比較,當對字長超過64位的長消息進行加密解密時,ECC和RSA、DSA對帶寬的要求基本是相同的,但是,對于字長小于64位的短消息而言,ECC算法對帶寬的要求要比RSA和DSA低得多,可以節省帶寬。 另外,ECC算法中的橢圓曲線,隨著參數的變化,可以得到不同的曲線,可見,ECC的算法具有較強的靈活性,橢圓曲線可以形成多種結構和選擇性。 綜上所述,ECC算法與其他密鑰體制相比,各方面都具有明顯的優勢,提供了一種安全強度高、速度快、密鑰長度小、要求帶寬低的靈活算法。ECC必將成為未來公鑰加密算法中的主流算法。 改進后的Kerberos基本模型與原來的Kerberos協議模型是類似的,改進后的協議流程具體說明如下。 1.客戶機隨機產生會話密鑰,將加密后的密鑰發送給認證服務器,申請許可證頒發服務器的票據。 2.認證服務器用私鑰將密鑰解密,在其數據庫中查找客戶機并驗證客戶機的簽名,為客戶機生成許可證頒發服務器的公鑰加密的票據,其中關鍵數據加上認證服務器的簽名,并產生會話密鑰,用第一步中產生的會話密鑰加密發送給客戶機。 3.客戶機解密得到會話密鑰,將第二步得到的票據和用會話密鑰加密的本機名字、地址以及隨機數,發送許可證頒發服務器申請訪問特權服務器的憑據。 4.許可證頒發服務器用私鑰解密并驗證服務器發送的票據,然后為客戶機生成去特權服務器的票據,票據用特權服務器的公鑰加密并加上許可證頒發服務器的簽名,并隨機產生會話密鑰,并將會話密鑰和隨機數用第二步產生的會話密鑰加密回傳給客戶機。 5.客戶機解密得到會話密鑰和隨機數,與自己發送給許可證頒發服務器的隨機數相比,若相等則確定是新消息,將許可證頒發服務器發送的票據、用會話密鑰加密的本機名字、地址和新的隨機數,發送給應用服務器。 6.應用服務器用私鑰解密許可證頒發服務器發送的票據,同時驗證并確認許可證頒發服務器的簽名,得到以后加密通信用的會話密鑰,還可將第五步客戶機發送的隨機數加密發給客戶機,供客戶機驗證新消息,防止重放攻擊。 [1]IBM.IBM/Lotus Domino與WebSphere Portal:單點登錄[R]. http://www.ibm.com/developerworks/cn/lotus/l-ssowhitepaper/index.html 2006.2.26. [2]Darrel Hankerson,Alfred Menezes,Scott Vanstone,et al.橢圓曲線密碼學導論[M].電子工業出版社,2005. [3]肖新鳳.一種提高Kerberos協議安全性能的策略[J].電腦編程技術與維護,2009(19). [4]石潤華,鐘誠.基于整數拆分的橢圓曲線密碼體制上的快速點乘算法[J].計算機工程與科學,2005,27(5).
3.ECC算法性能分析。





二 ECC算法改進后的認證過程