適用于移動(dòng)通信系統(tǒng)的公鑰加密認(rèn)證方案

隨著移動(dòng)通信提供的業(yè)務(wù)越來越廣泛,用戶對(duì)通信中的安全和其隱私的要求也越來越高。第三代移動(dòng)通信系統(tǒng)雖然較第二代移動(dòng)通信系統(tǒng)在安全方面有了較大的改善,但是它仍然采用的是私鑰認(rèn)證體制的用戶認(rèn)證方案。那么我今天就給大家介紹一個(gè)適用于移動(dòng)通信系統(tǒng)的公鑰加密認(rèn)證方案。

一、認(rèn)證和密鑰交換協(xié)議

在通信系統(tǒng)中,為實(shí)現(xiàn)安全通信,用戶和網(wǎng)絡(luò)運(yùn)營(yíng)商在初始化時(shí)就先得到權(quán)威機(jī)構(gòu)分配的、經(jīng)過認(rèn)證的密鑰。公鑰加密就是得到一對(duì)基于某種公鑰密碼體制的公私密鑰對(duì),其中公鑰以證書的形式對(duì)外發(fā)布,以供使用者相互之間驗(yàn)證彼此的身份。而在驗(yàn)證身份后,通話過程中使用的會(huì)話密鑰通常按照會(huì)話密鑰產(chǎn)生方案由雙方協(xié)商決定,因此會(huì)話密鑰也需要雙方的認(rèn)證確認(rèn)。為了簡(jiǎn)化過程,提高運(yùn)行效率,可以把它與雙方身份的認(rèn)證合并進(jìn)行。

1、_協(xié)議的設(shè)計(jì)原則

由于移動(dòng)通信的終端設(shè)備多以運(yùn)算能力相對(duì)較弱、存儲(chǔ)量小的智能卡為主,因此設(shè)計(jì)移動(dòng)通信系統(tǒng)中的認(rèn)證協(xié)議應(yīng)遵循原則:

(1) 盡量減少移動(dòng)臺(tái)的運(yùn)算量

采用計(jì)算簡(jiǎn)單的加密算法,將執(zhí)行協(xié)議所需要的計(jì)算盡可能多的轉(zhuǎn)移到網(wǎng)絡(luò)服務(wù)器端在認(rèn)證協(xié)議中使用的安全密碼算法有兩種:Hash 函數(shù)和簽名算法。Hash函數(shù)可以選擇信息—摘要算法(Message-Digest Algorithm5, MD5)、安全雜湊算法(Secure Hash Algorithm, SHA)等;簽名函數(shù)則應(yīng)該選擇橢圓曲線體制的簽名算法,因?yàn)樗谕劝踩珬l件下,較通用關(guān)鍵子密碼算法(Rivest-Shamir-Adleman algorithm,RSA)等加密算法運(yùn)算量要小得多。

(2)使傳送的消息簡(jiǎn)短

由于無線通信的帶寬比較窄,信道差錯(cuò)率比較高,因此盡可能使傳送的消息簡(jiǎn)短,減少相互傳遞的認(rèn)證信息的個(gè)數(shù)。

2、基本標(biāo)識(shí)符

采用如下的標(biāo)識(shí)符來描述協(xié)議:CA為證書權(quán)威,caid為證書權(quán)威的身份;r是網(wǎng)絡(luò)運(yùn)營(yíng)商N(yùn)O產(chǎn)生的隨機(jī)數(shù),它屬于基于大素?cái)?shù)p的一個(gè)循環(huán)群Zp*,CertN和CertU分別是證書權(quán)威頒發(fā)給NO和U的證書;K是用戶產(chǎn)生的隨機(jī)數(shù),它也屬于基于大素?cái)?shù)p的一個(gè)循環(huán)群Zp*,同時(shí)它也作為雙方的會(huì)話密鑰;IMSI是用戶U的永久身份,Sigu和Signo分別是U和NO擁有的一種簽名算法。PK_N,PR_N分別是NO的公鑰和私鑰;PK_U,PR_U分別是U的公鑰和私鑰;EPK_X(Y)就是用X的公鑰對(duì)Y進(jìn)行加密(X為U或NO);)DPR_X(Y)就是用X的私鑰對(duì)Y進(jìn)行解密(X為U或NO);X′是接收方為了驗(yàn)證收到的信息X,而從本地檢索出的與X對(duì)應(yīng)的那個(gè)值,X′直接從本地檢索出,原則上X=X′,在本協(xié)議中X為K或者r。

3、協(xié)議描述

協(xié)議設(shè)計(jì)的前提是用戶U和網(wǎng)絡(luò)運(yùn)營(yíng)商N(yùn)O雙方彼此都不知道對(duì)方的公鑰,但他們都已經(jīng)擁有了由CA頒發(fā)的證書CertU和CertN。各自都可以獲得自己的證書,但并沒有獲得對(duì)方的證書。U和NO雙方都擁有一個(gè)CA的公鑰PK來檢驗(yàn)他們的證書。本協(xié)議在U和NO之間展開,不需要與權(quán)威的認(rèn)證機(jī)構(gòu)進(jìn)行通信。U與NO之間執(zhí)行如圖所示的協(xié)議。

適用于移動(dòng)通信系統(tǒng)的公鑰加密認(rèn)證方案

具體步驟為:

(1) U發(fā)送CA的身份信息caid給NO。

(2) NO收到caid后,可以據(jù)此識(shí)別CA的身份,然后產(chǎn)生一個(gè)隨機(jī)數(shù)r∈ZP*,并把證書CertN和r一起發(fā)送給U。

(3) U收到NO發(fā)來的消息后,從CertN中檢索出NO的公鑰PK_N,產(chǎn)生隨機(jī)數(shù)K∈ZP*作為會(huì)話密鑰,這同時(shí)也是一個(gè)挑戰(zhàn)信息,然后用自己的私鑰對(duì)K、IMSI、CertU和隨機(jī)數(shù)r作簽名運(yùn)算得us,再用NO的公鑰對(duì)K、IMSI、CertU、r和us進(jìn)行加密運(yùn)算得a,U把a(bǔ)發(fā)送給NO。

(4) NO收到a后,首先用自己的私鑰解密a得(K,IMSI,CertU,r,Su)檢查r=r′是否成立,若成立,從CertU中檢索出用戶的公鑰PK_U,并用該公鑰通過U的驗(yàn)證簽名算法檢驗(yàn)簽名su=Siguh(K||IMSI||CertU||r)=是否成立,若成立,則會(huì)話密鑰K得到確認(rèn),再檢查用戶身份IMSI;用自己的私鑰計(jì)算簽名sn=Sigon h(k),然后用U的公鑰加密計(jì)算,b=Epk_u(k,sn),NO發(fā)送b給U。

(5) U收到b后,用私鑰解密得(K,Sn),檢查K=K′是否成立,若成立,則NO的身份得到驗(yàn)證;然后U從CertN中檢索出NO的公鑰和其驗(yàn)證簽名算法來驗(yàn)證它的簽名sn=Sigon h(k)是否成立,若成立,會(huì)話密鑰K得到確認(rèn)。

二、協(xié)議的性能分析

協(xié)議滿足第三代移動(dòng)通信的安全要求,應(yīng)用公鑰加密,提高了協(xié)議安全性,同時(shí)雙方通過使用數(shù)字簽名,可提供業(yè)務(wù)的不可否認(rèn)性;雖然使用了公鑰加密,但計(jì)算量并不太大,可滿足移動(dòng)通信終端的要求。

1、協(xié)議實(shí)現(xiàn)的基本功能

(1)U對(duì)NO的身份驗(yàn)證:

通過檢驗(yàn)(K,Sn),用戶知道K是他原來發(fā)送的,確信與其通信的NO知道對(duì)應(yīng)的私鑰,并且通過NO公鑰驗(yàn)證簽名sn=Sigon h(k)進(jìn)一步驗(yàn)證了NO的身份。

(2) NO對(duì)U的身份驗(yàn)證:

NO通過檢驗(yàn)它產(chǎn)生的隨機(jī)數(shù)r,可以知道r是他原來產(chǎn)生的,確信與其通信的U是這個(gè)IMSI對(duì)應(yīng)的U,而通過用戶的公鑰驗(yàn)證簽名su=Siguh(K||IMSI||CertU||r),進(jìn)一步驗(yàn)證了U的身份。

(3) 協(xié)議產(chǎn)生的會(huì)話密鑰:

協(xié)議產(chǎn)生的會(huì)話密鑰K是由U產(chǎn)生的,因此對(duì)U來說是新鮮的,而對(duì)NO來說,K是由其公鑰加密得來的,只有它本身用私鑰解密才能得到相應(yīng)的K,因此可以保證K是新鮮的,而通過驗(yàn)證用戶的簽名us進(jìn)一步確認(rèn)了會(huì)話密鑰K的新鮮屬性。

(4) 會(huì)話密鑰K得到了U和NO的確認(rèn):

U用自己的私鑰解密得到K和ns,通過驗(yàn)證KK′=的成立及NO的簽名ns可以確認(rèn)NO已經(jīng)擁有了會(huì)話密鑰;而NO通過驗(yàn)證r=r′及U的簽名us可以確認(rèn),K就是U所要用的會(huì)話密鑰。

5) U和NO雙方所發(fā)數(shù)據(jù)都不可抵賴:

NO通過驗(yàn)證U的簽名su=Siguh(K||IMSI||CertU||r),從而使U所發(fā)的數(shù)據(jù)不可抵賴;U通過驗(yàn)證NO的簽名sn=Sigon h(k),從而使NO發(fā)的數(shù)據(jù)不可抵賴。

2、協(xié)議的抗攻擊性

本協(xié)議安全的前提是假定協(xié)議中所采用的各種密碼算法是安全的。

(1) 協(xié)議產(chǎn)生的會(huì)話密鑰是安全的:

即使非法攻擊者能夠截獲傳遞的信息a、b,然而他們都是用公鑰加密的,由于計(jì)算離散對(duì)數(shù)的困難性,他無法得到會(huì)話密鑰。

(2) 協(xié)議能抗中間人攻擊:

攻擊者作為中間人,雖然可以得到未加密的caid、CertN和r,但由于caid和CertN本來就是公開的,即使得到也沒有實(shí)際的意義;而對(duì)于隨機(jī)數(shù)r,攻擊者雖然可以得到這一新鮮信息,但它無法得到已被公鑰加密了的K、IMSI及CertU等信息,因此它無法通過NO的簽名驗(yàn)證,而且它也得不到雙方的會(huì)話密鑰K。而對(duì)于加密信息a和b,攻擊者冒充任一方得到這兩個(gè)信息,都由于不知道相應(yīng)的私鑰而無法完成協(xié)議的認(rèn)證功能。

(3) 協(xié)議能抗重放攻擊:

為了防止重放攻擊,協(xié)議里的信息包含一些“新鮮”屬性。在認(rèn)證過程中,U和NO各自產(chǎn)生一個(gè)會(huì)話密鑰K和隨機(jī)數(shù)r作為新鮮信息,在5)中,U根據(jù)),(nsK檢查K是否新鮮;在4)中,NO檢查r和us來確知信息的新鮮屬性。只要認(rèn)證雙方有一方是合法的,并按協(xié)議的規(guī)則執(zhí)行,則攻擊者重放已截獲的信息無法得到有效的會(huì)話密鑰,同時(shí)其身份認(rèn)證也無法通過。

(4) 協(xié)議能抗窮舉密鑰攻擊:

許多業(yè)務(wù)的安全系統(tǒng)廣泛使用密碼認(rèn)證,但是密碼在窮舉攻擊下是很脆弱的,攻擊者可以成功的猜出密碼,然而用公鑰加密提供了一種阻止窮舉攻擊的方法。因此,使用公鑰加密信息,窮舉攻擊行不通。

(5) 用戶身份得到了保護(hù):

用戶的身份信息發(fā)送到網(wǎng)絡(luò)時(shí),使用網(wǎng)絡(luò)的公鑰加密,攻擊者無法獲取用戶的身份信息。

3、協(xié)議的效率

(1) 協(xié)議的執(zhí)行不涉及第三方:身份認(rèn)證和會(huì)話密鑰的建立由通信雙方完成,不需要密鑰生成中心或其他第三方的協(xié)助,因而協(xié)議結(jié)構(gòu)簡(jiǎn)單,通信次數(shù)少。

(2) 用戶端計(jì)算量少:用戶端涉及的公鑰密碼體制的算法簡(jiǎn)單,運(yùn)算量少,達(dá)到了協(xié)議設(shè)計(jì)所要求的目標(biāo),適合移動(dòng)通信終端。

本文基于公鑰密碼體制設(shè)計(jì)了一個(gè)有效的適用于移動(dòng)通信系統(tǒng)的身份認(rèn)證和會(huì)話密鑰分配方案,該方案能夠滿足通信雙方進(jìn)行相互身份認(rèn)證的要求,也能為通信雙方分配一個(gè)經(jīng)過雙方確認(rèn)的會(huì)話密鑰,而且可以提供業(yè)務(wù)的不可抵賴性。同時(shí)這個(gè)協(xié)議計(jì)算復(fù)雜程度低,簡(jiǎn)單而又足夠安全,高效實(shí)用,可以為未來移動(dòng)通信中的諸多業(yè)務(wù)需要不同水平的安全考慮提供技術(shù)支持。

小知識(shí)之公鑰加密

由對(duì)應(yīng)的一對(duì)唯一性密鑰(即公開密鑰和私有密鑰)組成的加密方法。它解決了密鑰的發(fā)布和管理問題,是目前商業(yè)密碼的核心。