24周年

財(cái)稅實(shí)務(wù) 高薪就業(yè) 學(xué)歷教育
APP下載
APP下載新用戶掃碼下載
立享專屬優(yōu)惠

安卓版本:8.7.20 蘋果版本:8.7.20

開發(fā)者:北京正保會(huì)計(jì)科技有限公司

應(yīng)用涉及權(quán)限:查看權(quán)限>

APP隱私政策:查看政策>

HD版本上線:點(diǎn)擊下載>

基于橢圓曲線密碼體制的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)研究

來源: 李美滿 編輯: 2009/04/17 15:56:36  字體:

  【摘 要】本文介紹了橢圓曲線密碼體制和身份認(rèn)證的相關(guān)理論,設(shè)計(jì)了基于橢圓曲線密碼體制的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng),給出了系統(tǒng)的總體結(jié)構(gòu),探討了認(rèn)證模塊、代理模塊、加密模塊的實(shí)現(xiàn)方法,并且對(duì)系統(tǒng)的安全性進(jìn)行了分析。

  【關(guān)鍵詞】橢圓曲線 加密 網(wǎng)絡(luò) 身份認(rèn)證

  隨著互聯(lián)網(wǎng)和信息技術(shù)的不斷發(fā)展,電子貿(mào)易和網(wǎng)上交易已經(jīng)逐漸成為企業(yè)發(fā)展的新趨勢(shì),越來越多的人通過網(wǎng)絡(luò)進(jìn)行商務(wù)活動(dòng),同時(shí)也為企業(yè)創(chuàng)造了高效率和高效益的商務(wù)環(huán)境,其發(fā)展前景十分誘人,但有的黑客假冒合法用戶的身份在網(wǎng)上進(jìn)行非法操作,使合法用戶或社會(huì)蒙受巨大的損失。身份認(rèn)證是身份識(shí)別( identification)和身份認(rèn)證(authentication)的總稱,是查明用戶是否具有所請(qǐng)求資源的存儲(chǔ)和使用權(quán),即系統(tǒng)查核用戶的身份證明的過程。身份認(rèn)證的關(guān)鍵是準(zhǔn)確地將對(duì)方辨認(rèn)出來,同時(shí)還應(yīng)該提供雙向認(rèn)證,即相互證明自己的身份。身份認(rèn)證是信息系統(tǒng)的第一道關(guān)卡,一旦身份認(rèn)證系統(tǒng)被攻破,那么系統(tǒng)的所有安全措施將形同虛設(shè)。傳統(tǒng)的口令鑒別方案通過核對(duì)登錄用戶的二元信息(ID,PW)來鑒別用戶的合法身份,但其安全性極低。當(dāng)前許多應(yīng)用系統(tǒng)都使用的“用戶名+口令”的身份認(rèn)證方式的安全性非常弱,用戶名和口令易被竊取,即使口令經(jīng)過加密后存放在口令文件中,一旦口令文件被竊取,就可以進(jìn)行離線的字典式攻擊。有的系統(tǒng)也采用基于智能卡或生物特征的身份認(rèn)證方式,但是系統(tǒng)的研制和開發(fā)費(fèi)用昂貴,只適用于安全性要求非常高的場合。本文設(shè)計(jì)的基于橢圓曲線密碼體制的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng),適用于成本不高但具有較高安全性的系統(tǒng)。該系統(tǒng)可以抵抗重放攻擊并避開時(shí)間戳漏洞,具有安全性高、速度快、靈活性好、適用性強(qiáng)的特點(diǎn)。

  一、橢圓曲線密碼體制

  橢圓曲線加密法ECC(Elliptic Curve Cryptography)是一種公鑰加密技術(shù),以橢圓曲線理論為基礎(chǔ),利用有限域上橢圓曲線的點(diǎn)構(gòu)成的Abel群離散對(duì)數(shù)難解性,實(shí)現(xiàn)加密、解密和數(shù)字簽名,將橢圓曲線中的加法運(yùn)算與離散對(duì)數(shù)中的模乘運(yùn)算相對(duì)應(yīng),就可以建立基于橢圓曲線的對(duì)應(yīng)密碼體制。橢圓曲線是由下列韋爾斯特拉斯Weierstrass方程所確定的平面曲線:

  E:y2+a1xy+a3y=x3+a2x2+a4x+a6

  橢圓曲線加密算法以其密鑰長度小、安全性能高、整個(gè)數(shù)字簽名耗時(shí)小,使其在智能終端應(yīng)用中有很大的發(fā)展?jié)摿?,比如掌上電腦、移動(dòng)手機(jī)等都能有更好的表現(xiàn)。而在網(wǎng)絡(luò)中,ECC算法也保證了其協(xié)同工作的實(shí)時(shí)性,使用ECC算法加密敏感性級(jí)別較高的數(shù)據(jù)(如密鑰),速度上能夠滿足大數(shù)據(jù)量要求,而且安全性高,能很好地保障系統(tǒng)的安全。

  由于橢圓曲線密碼體制的安全性只與橢圓曲線的安全性有關(guān),而橢圓曲線安全性是由ECDLP求解的困難性決定的,因此,為了保證ECDLP是難解的,在選取橢圓曲線的時(shí)候除了選擇合適的參數(shù)(a,b),使得相應(yīng)的Weierstrass方程滿足非超奇異橢圓曲線的要求外,還要選取合適的有限域GF(q),使得q滿足#E能被一大素?cái)?shù)(≥30位的整數(shù))整除,或q本身就是一個(gè)大素?cái)?shù)。安全的橢圓曲線也就是能抵抗各種已有攻擊算法攻擊的橢圓曲線。

  1.選取安全橢圓曲線時(shí)應(yīng)該遵循的一些原則

 ?。?)E選用非超奇異橢圓曲線,而不選取奇異橢圓曲線、超橢圓曲線以及反常橢圓曲線;

 ?。?)#E不能整除qk-1,1≤k≤20;

 ?。?)當(dāng)q=P為素?cái)?shù)時(shí),#E應(yīng)為素?cái)?shù),隨機(jī)選取橢圓曲線上的一點(diǎn)作為基點(diǎn);當(dāng)q=2m時(shí),#E應(yīng)包含大的素因子,如#E=2n,4n,其中的n是大素?cái)?shù),且m不取合數(shù)。隨機(jī)選取E上一階為n的點(diǎn)作為基點(diǎn);

 ?。?)選擇以基點(diǎn)生成循環(huán)子域H∈GF(q)上實(shí)現(xiàn)ECC,|H|是#E的最大素因子。

  2.描述一個(gè)利用橢圓曲線進(jìn)行加密通信的過程

 ?。?)用戶A選定一條橢圓曲線Ep(a,b),并取橢圓曲線上一點(diǎn)作為基點(diǎn)G,選擇一個(gè)私有密鑰k,并生成公開密鑰K=kG;

 ?。?)用戶A將Ep(a,b)和點(diǎn)K,G傳給用戶B;

  (3)用戶B接到信息后,將待傳輸?shù)拿魑木幋a到Ep(a,b)上一點(diǎn)M,并產(chǎn)生一個(gè)隨機(jī)整數(shù)r(r計(jì)算點(diǎn)C1=M+RK;C2=RG;

 ?。?)用戶B將C1、C2傳給用戶A;

  (5)用戶A接到信息后,計(jì)算C1-kC2,結(jié)果就是點(diǎn)M.因?yàn)镃1-kC2=M+rK-k(rG)=M+rK-r(kG)=M,再對(duì)點(diǎn)M進(jìn)行解碼就可以得到明文。

  在這個(gè)加密通信中,如果有一個(gè)入侵H,他只能看到Ep(a,b)、K、G、C1、C2而通過K、G求k或通過C1、C2求r都是相對(duì)困難的。因此H無法得到A、B間傳送的明文信息。基于橢圓曲線的密碼體制如圖1所示。

  二、基于橢圓曲線密碼體制的網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)

  由于網(wǎng)絡(luò)具有信息量大的特點(diǎn),其主要威脅來自于非授權(quán)用戶的非法訪問,因此它對(duì)數(shù)據(jù)完整性的要求很高,需要最快的速度提供最高的安全性,保證信息的機(jī)密性、完整性和有效性。網(wǎng)絡(luò)身份認(rèn)證是依靠用戶賬號(hào)、口令或者生物特征等信息來實(shí)現(xiàn)的,這些認(rèn)證方法在某種程度上存在著安全隱患,如賬號(hào)、口令或指紋特征信息在存儲(chǔ)、傳輸過程中可能被截取、被篡改等。在身份認(rèn)證系統(tǒng)中,起關(guān)鍵作用的是其中的加密體系。本文設(shè)計(jì)的身份認(rèn)證系統(tǒng)中,用戶首先要通過認(rèn)證模塊進(jìn)行注冊(cè),注冊(cè)成功后,獲得經(jīng)過系統(tǒng)認(rèn)證中心CA簽名的公鑰和私鑰。用戶公鑰和CA的公鑰都是公開信息,用戶的私鑰只有用戶本人知道,由用戶自己保存。

  1.系統(tǒng)的總體結(jié)構(gòu)

  假設(shè)通信的是A與B雙方,A與B處在同一個(gè)網(wǎng)絡(luò)中,文本加解密采用對(duì)稱算法AES,而密鑰的傳輸與簽名驗(yàn)簽都采用非對(duì)稱算法ECC.系統(tǒng)由服務(wù)器和客戶端兩部分組成,如圖2所示,服務(wù)器端包括代理服務(wù)器、認(rèn)證服務(wù)器、應(yīng)用服務(wù)器;客戶端包括代理客戶端、認(rèn)證客戶端。代理客戶端和代理服務(wù)器共同完成代理功能,認(rèn)證客戶端和認(rèn)證服務(wù)器共同完成身份認(rèn)證功能。

  系統(tǒng)模型主要工作流程如下:

  (1)將用戶信息存放在系統(tǒng)數(shù)據(jù)庫中;(2)客戶端應(yīng)用程序通過客戶端代理向認(rèn)證模塊請(qǐng)求申請(qǐng)登錄認(rèn)證;(3)認(rèn)證模塊檢查用戶身份并完成認(rèn)證過程,向客戶端發(fā)放應(yīng)用服務(wù)器的Ticket;(4)客戶端向安全代理服務(wù)器請(qǐng)求獲取訪問策略數(shù)據(jù);(5)安全代理服務(wù)器讀取訪問控制表中對(duì)應(yīng)的策略控制記錄,確定用戶是否有權(quán)限訪問相應(yīng)的應(yīng)用服務(wù)器資源;(6)確定用戶有權(quán)訪問后,連接到相應(yīng)的應(yīng)用服務(wù)器;(7)客戶端與應(yīng)用服務(wù)器間建立起了一條加密通道,雙方通過此通道來交換數(shù)據(jù)。

  2.系統(tǒng)功能模塊及實(shí)現(xiàn)

  (1)認(rèn)證模塊。認(rèn)證模塊主要實(shí)現(xiàn)身份認(rèn)證、密鑰分發(fā)等功能,采用基于公鑰密碼體制的改進(jìn)Kerberos認(rèn)證協(xié)議來對(duì)用戶進(jìn)行身份認(rèn)證,是模型的核心部分。

  認(rèn)證模塊由認(rèn)證客戶端模塊、認(rèn)證服務(wù)器端模塊組成。當(dāng)客戶端代理接到來自客戶端的任意請(qǐng)求時(shí),先判斷是否為客戶端代理啟動(dòng)后接收到的第一個(gè)請(qǐng)求,如果是,則客戶端代理必須先去認(rèn)證服務(wù)器進(jìn)行身份認(rèn)證。

 ?、僬J(rèn)證客戶端。認(rèn)證客戶端主要包括六個(gè)模塊,分別為:AS請(qǐng)求模塊、TGS請(qǐng)求模塊、GSSAPI接口模塊、Kerberos GSSAPI模塊、票據(jù)列出模塊、票據(jù)銷毀模塊。

  AS請(qǐng)求模塊主要功能是用戶獲取TGS的票據(jù)TGT.當(dāng)用戶進(jìn)行身份認(rèn)證時(shí),AS請(qǐng)求模塊被調(diào)用,從AS服務(wù)器中獲取TGT.AS請(qǐng)求模塊包括獲取Ticket模塊和報(bào)錯(cuò)子模塊。通過調(diào)用ECC加密模塊,對(duì)每條信息進(jìn)行必要的安全處理;TGS請(qǐng)求模塊主要用于獲得應(yīng)用服務(wù)器的票據(jù)。在調(diào)用TGS請(qǐng)求之前,客戶端必須己經(jīng)得到TGT,以便用TGT向TG服務(wù)器證明自己的身份。GSSAPI接口模塊用于實(shí)現(xiàn)與客戶端代理的接口,客戶端代理調(diào)用GSSAPI接口模塊來進(jìn)行身份認(rèn)證;Kerberos GSSAPI模塊被GSSAPI接口模塊調(diào)用,真正實(shí)現(xiàn)建立安全上下文,報(bào)文保護(hù)級(jí)別協(xié)商以及對(duì)每條報(bào)文的保護(hù)。通過調(diào)用Kerberos GSSAPI模塊,用戶獲得與代理服務(wù)器進(jìn)行加密通信的會(huì)話密鑰。票據(jù)列出模塊用于列出保留在緩存中的主要實(shí)體名和當(dāng)前所有活動(dòng)票據(jù)的內(nèi)容。票據(jù)銷毀模塊用于銷毀所有的票據(jù),以防止他人竊取票據(jù),當(dāng)用戶斷開與服務(wù)器的連接時(shí),系統(tǒng)會(huì)調(diào)用該模塊來銷毀用戶的票據(jù)。②認(rèn)證服務(wù)器。認(rèn)證服務(wù)器模塊主要包括KDC模塊、GSSAPI接口模塊Kerberos GSSAPI模塊以及其他輔助模塊。

  KDC模塊主要完成用戶身份認(rèn)證和票據(jù)分發(fā)等功能,包括AS請(qǐng)求處理子模塊和TGS請(qǐng)求處理子模塊。它與認(rèn)證客戶端的AS請(qǐng)求模塊和TGS請(qǐng)求模塊一起工作,來完成身份認(rèn)證和票據(jù)分發(fā)功能;GSSAPI接口模塊用于實(shí)現(xiàn)與代理服務(wù)器的接口,代理服務(wù)器調(diào)用GSSAPI接口模塊來進(jìn)行身份認(rèn)證,而GSSAPI接口模塊則調(diào)用Kerberos GSSAPI,用于真正實(shí)現(xiàn)建立安全上下文,報(bào)文保護(hù)級(jí)別協(xié)商以及對(duì)每條報(bào)文的保護(hù)。

 ?。?)代理模塊。代理模塊在模型中主要實(shí)現(xiàn)客戶端應(yīng)用程序通過代理客戶端、代理服務(wù)器訪問應(yīng)用服務(wù)器的功能,通過采用Socks5協(xié)議實(shí)現(xiàn)。

  代理模塊分別在客戶端和應(yīng)用服務(wù)器端加載一個(gè)代理軟件??蛻舳舜斫邮芸蛻舳说乃姓?qǐng)求,經(jīng)處理后轉(zhuǎn)發(fā)給服務(wù)器端代理??蛻舳舜硎紫扰c代理服務(wù)器建立一個(gè)TCP連接,通常SOCKS端口為1080,通過安全隧道,代理服務(wù)器認(rèn)證并接受所有來自客戶端軟件的通信。若身份得以認(rèn)證,則安全服務(wù)器將請(qǐng)求遞交應(yīng)用服務(wù)器,處理請(qǐng)求后并將結(jié)果返回安全服務(wù)器,安全服務(wù)器將此結(jié)果返回給客戶端。

  安全代理服務(wù)器在確認(rèn)客戶端連接請(qǐng)求有效后接管連接,代為向應(yīng)用服務(wù)器發(fā)出連接請(qǐng)求,安全代理服務(wù)器應(yīng)根據(jù)應(yīng)用服務(wù)器的應(yīng)答,決定如何響應(yīng)客戶端請(qǐng)求,代理服務(wù)進(jìn)程應(yīng)當(dāng)連接兩個(gè)連接,客戶端與代理服務(wù)進(jìn)程間的連接、代理服務(wù)進(jìn)程與應(yīng)用服務(wù)器端的連接。為確認(rèn)連接的唯一性與時(shí)效性,代理進(jìn)程應(yīng)當(dāng)維護(hù)代理連接表或相關(guān)數(shù)據(jù)庫。安全代理服務(wù)器為所有網(wǎng)絡(luò)通信提供了一個(gè)安全隧道,在建立通道的過程中,存在用戶認(rèn)證的過程。用戶經(jīng)過認(rèn)證和原始協(xié)議請(qǐng)求,通過GSSAPI建立的安全隧道傳送。

 ?。?)加密模塊。加密模塊在系統(tǒng)中主要完成對(duì)數(shù)據(jù)的加解密處理,通過調(diào)用橢圓曲線加密算法具體實(shí)現(xiàn)。模型中采用ECIES加解密方案,具體實(shí)現(xiàn)過程采用borZoi算法庫。borZoi是個(gè)免費(fèi)的C++橢圓曲線加密庫,含有完整的源代碼,提供了定義在特征值為2的有限域上的算法,提供了加密模塊。

  三、系統(tǒng)安全性分析

  系統(tǒng)提供了應(yīng)用層的安全解決方案,可作為網(wǎng)絡(luò)的授權(quán)訪問控制中心,提供用戶到應(yīng)用服務(wù)器的訪問控制服務(wù)?;跈E圓曲線加密法的網(wǎng)絡(luò)身份認(rèn)證,用戶可以采用較短的密鑰長度來實(shí)現(xiàn)較高的安全性,這樣既有便于用戶的記憶也提高了服務(wù)器的計(jì)算速度,從而將大大縮短登錄時(shí)間。在橢圓曲線密碼體制中,橢圓曲線Ep(a,b)中p、a、b的任何一個(gè)數(shù)字改變就產(chǎn)生新橢圓曲線方程,這樣既可為用戶提供豐富的選擇性也可以為服務(wù)器節(jié)約更廣闊的存儲(chǔ)空間,同時(shí)確保網(wǎng)絡(luò)信息的保密性、完整性和可用性。

  本文通過分析橢圓曲線密碼體制,建立了網(wǎng)絡(luò)身份認(rèn)證系統(tǒng)模型,該模型采用軟硬件協(xié)同的方式,基于混合加密體制,使用速度快而安全性高的ECC算法進(jìn)行加解密、簽名與驗(yàn)證簽名,對(duì)網(wǎng)絡(luò)的信息建立起良好的保護(hù)的屏障,能夠很好地抵抗重放攻擊、猜測(cè)攻擊、網(wǎng)絡(luò)竊聽攻擊,整個(gè)網(wǎng)絡(luò)身份認(rèn)證方案簡單有效。

  參考文獻(xiàn):

  張凌杰:基于企業(yè)網(wǎng)身份認(rèn)證系統(tǒng)的模型研究[J].福建電腦,2008,(5):109~110

責(zé)任編輯:雨昕
回到頂部
折疊
網(wǎng)站地圖

Copyright © 2000 - galtzs.cn All Rights Reserved. 北京正保會(huì)計(jì)科技有限公司 版權(quán)所有

京B2-20200959 京ICP備20012371號(hào)-7 出版物經(jīng)營許可證 京公網(wǎng)安備 11010802044457號(hào)