專利名稱:一種分布式網(wǎng)絡(luò)的認(rèn)證方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,特別涉及一種在分布式網(wǎng)絡(luò)中的認(rèn)證方法和系統(tǒng)。
背景技術(shù):
移動(dòng)Ad hoc網(wǎng)絡(luò)(MANETMobile Ad hoc Network,也稱移動(dòng)自組織網(wǎng)絡(luò))是一種分布式網(wǎng)絡(luò),它是由一群移動(dòng)設(shè)備(比如智能手機(jī))動(dòng)態(tài)地組成的。Ad hoc網(wǎng)絡(luò)的建立不需要借助于已有的網(wǎng)絡(luò)基礎(chǔ)設(shè)施或者中央的管理。由于其部署快捷方便,應(yīng)用環(huán)境廣泛(從軍用到商用),移動(dòng)Ad hoc網(wǎng)絡(luò)已經(jīng)成為一個(gè)熱門的研究領(lǐng)域。在帶來建立通信網(wǎng)絡(luò)方便快捷的同時(shí),移動(dòng)Ad hoc由于其自身的特點(diǎn)而帶來了諸多安全上的考慮。其中之一就是如何保障資源不被非授權(quán)用戶訪問。
目前,基于口令的認(rèn)證是用來解決系統(tǒng)的保密性和安全性問題最流行的證實(shí)方法之一。在傳統(tǒng)的基于口令認(rèn)證方案的模型中,為了申請資源,用戶首先向遠(yuǎn)程服務(wù)器發(fā)出請求消息,其中包括用戶的身份ID和經(jīng)過哈希運(yùn)算的口令值h(PW)。收到請求后,遠(yuǎn)程服務(wù)器在本地的數(shù)據(jù)庫中的訪問列表中搜尋是否存在和用戶提交的請求匹配的(ID,h(PW))對,若存在,服務(wù)器將授予用戶ID訪問權(quán)限,否則拒絕訪問。但是傳統(tǒng)的單依靠用戶名和口令匹配來確認(rèn)用戶的真實(shí)性的方式已經(jīng)暴露出很多安全缺陷,比如口令容易被猜測或通過交際工程學(xué)等途徑獲取,輸入口令時(shí)容易被人窺視,口令容易被很多工具破解,存在著沒有被檢測到的缺陷和漏洞,口令可以在網(wǎng)絡(luò)離線時(shí)被窺測,口令和文件容易從PC和服務(wù)器上被轉(zhuǎn)移等等?;谏鲜鲈颍@種方法并不能用于對安全性要求高的場合。因此,在許多應(yīng)用環(huán)境中,除了采用個(gè)人所知道的因素(口令),往往還采用個(gè)人所擁有的因素(比如,智能卡)來實(shí)現(xiàn)安全強(qiáng)度更高的雙因素認(rèn)證。
在過去若干年內(nèi),諸多基于口令的認(rèn)證方案被提出,以增強(qiáng)安全性和效率為目標(biāo)。這些方案一般可分為用戶注冊階段,登陸階段和認(rèn)證階段。在注冊階段,服務(wù)器根據(jù)新用戶提交的身份信息和口令,簽發(fā)一個(gè)數(shù)字票據(jù),并將該票據(jù)存貯在一個(gè)具有防篡改功能的智能卡中,最后把智能卡發(fā)給用戶。在登陸階段中,用戶將智能卡插入登陸設(shè)備,輸入口令,由智能卡根據(jù)票據(jù)和口令生成登陸請求消息。在認(rèn)證階段,服務(wù)器對登陸請求消息進(jìn)行驗(yàn)證,決定是否允許用戶登陸。
現(xiàn)有的這些方案均是應(yīng)用在單服務(wù)器的場合中,而在分布式網(wǎng)絡(luò),如移動(dòng)Ad hoc網(wǎng)絡(luò)中,為了提高系統(tǒng)的可用性,認(rèn)證的過程應(yīng)該是以多服務(wù)器分布式的方式完成的。移動(dòng)Ad hoc網(wǎng)絡(luò)區(qū)別與其它網(wǎng)絡(luò)的重要特點(diǎn)之一就高度的動(dòng)態(tài)性。移動(dòng)Ad hoc網(wǎng)絡(luò)是由許多自由移動(dòng)的節(jié)點(diǎn)通過無線信號組建的。在這種方式組建的網(wǎng)絡(luò)中,沒有兩點(diǎn)間的鏈接是保證一直通暢地連通著,因?yàn)橐粋€(gè)節(jié)點(diǎn)可能突然離開另一個(gè)節(jié)點(diǎn)的無線發(fā)射范圍,或者傳輸信號可能招受其它信號的干擾。因此,按照有線網(wǎng)絡(luò)中采用單服務(wù)器的實(shí)現(xiàn)將是一種冒險(xiǎn)的做法。一旦單個(gè)服務(wù)器無法被訪問到,那么整個(gè)系統(tǒng)的服務(wù)將被中斷。因而現(xiàn)有技術(shù)所采用的方案無法直接應(yīng)用在需要分布式認(rèn)證的環(huán)境中,不能適用于可用性要求高的場合。
其次,在有線網(wǎng)絡(luò)環(huán)境中,服務(wù)器往往都配有足夠大容量的存儲設(shè)備,足以存儲所有注冊用戶的口令。然而,在移動(dòng)Ad hoc網(wǎng)絡(luò)中,作為節(jié)點(diǎn)之一的服務(wù)器可能只是一個(gè)資源有限的移動(dòng)設(shè)備。對于資源受限的移動(dòng)設(shè)備而言,維護(hù)并存儲所有用戶的口令表將是一項(xiàng)巨大的負(fù)擔(dān),特別是當(dāng)用戶數(shù)量劇增時(shí),問題將更加突出。而且,存儲口令表容易使服務(wù)器招致竊取和修改替換驗(yàn)證表攻擊。
再次,移動(dòng)Ad hoc網(wǎng)絡(luò)經(jīng)常部署在開放的網(wǎng)絡(luò)環(huán)境(甚至是敵對的環(huán)境)中的。與有線網(wǎng)絡(luò)中的節(jié)點(diǎn)相比,移動(dòng)Ad hoc網(wǎng)絡(luò)中的節(jié)點(diǎn)受到的保護(hù)更少,更容易遭受攻擊,因而需要有更多的安全考慮。首先需要考慮的是作為服務(wù)器節(jié)點(diǎn)遭受攻擊的情況。在傳統(tǒng)的方案中,系統(tǒng)的密鑰被保密存放在單一的服務(wù)器中,這是因?yàn)樵谟芯€網(wǎng)絡(luò)環(huán)境中的服務(wù)器都受到層層保護(hù),攻擊者很難攻破服務(wù)器。然而在移動(dòng)Ad hoc網(wǎng)絡(luò)中,利用單一服務(wù)節(jié)點(diǎn)保存密鑰的做法是不安全的,因?yàn)楣?jié)點(diǎn)相對容易攻破。其次需要考慮普通用戶節(jié)點(diǎn)遭受攻擊的情況。目前,在不需要口令表的強(qiáng)認(rèn)證方案中,服務(wù)器會給注冊用戶簽發(fā)一份票據(jù)。利用該票據(jù)及口令,用戶可以登陸到服務(wù)器。如果攻擊者獲得了該票據(jù),那么攻擊者可以利用離線字典攻擊的手段猜測用戶的密碼,進(jìn)而假冒用戶登陸服務(wù)器。在傳統(tǒng)的方案中,票據(jù)都被保存在具有防篡改能力的智能卡中,這就增加了應(yīng)用的成本,降低了用戶的易用性。且智能卡有限的運(yùn)算能力也容易成為應(yīng)用的瓶頸。
綜上所述,出于可用性和安全的考慮,傳統(tǒng)的基于單服務(wù)器架構(gòu)和借助于防篡改的智能卡的方案不適合在分布式網(wǎng)絡(luò)中應(yīng)用。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于克服現(xiàn)有技術(shù)中存在的不足,以保障系統(tǒng)的可用性和安全性。本發(fā)明實(shí)施例提出了一個(gè)基于口令的(t,n)門限認(rèn)證方法和系統(tǒng)。共有n個(gè)服務(wù)器節(jié)點(diǎn)分享一個(gè)系統(tǒng)密鑰,只有當(dāng)其中任意t(t<n)個(gè)節(jié)點(diǎn)共同合作,才能完成對用戶請求的認(rèn)證操作。本發(fā)明實(shí)施例所述技術(shù)方案如下一種分布式網(wǎng)絡(luò)的認(rèn)證方法,所述方法包括產(chǎn)生系統(tǒng)密鑰,將所述系統(tǒng)密鑰分片后得到分片密鑰,并將所述分片密鑰分別保存在服務(wù)器組的成員服務(wù)器節(jié)點(diǎn)上;認(rèn)證服務(wù)器組接收用戶的身份標(biāo)識和口令,根據(jù)所述身份標(biāo)識、口令和分片密鑰共同簽發(fā)一份票據(jù),并將所述票據(jù)發(fā)送給登陸設(shè)備;所述登陸設(shè)備根據(jù)所述票據(jù)及所述用戶的身份標(biāo)識和口令生成登陸請求消息,并將所述登陸請求消息發(fā)送給所述認(rèn)證服務(wù)器組;所述認(rèn)證服務(wù)器組收到所述登陸請求消息后,驗(yàn)證所述登陸請求消息,如果所述消息通過驗(yàn)證,則所述認(rèn)證服務(wù)器組與所述用戶進(jìn)行雙向認(rèn)證。
本發(fā)明實(shí)施例還提供了一種分布式網(wǎng)絡(luò)的認(rèn)證系統(tǒng),所述系統(tǒng)包括初始化模塊,用于產(chǎn)生系統(tǒng)密鑰,將所述系統(tǒng)密鑰分片后得到分片密鑰,并將所述分片密鑰分別保存在服務(wù)器組的成員服務(wù)器節(jié)點(diǎn)上;注冊模塊,用于對服務(wù)器組接收用戶的身份標(biāo)識和口令進(jìn)行認(rèn)證,根據(jù)所述身份標(biāo)識、口令和分片密鑰共同簽發(fā)一份票據(jù);登陸模塊,用于根據(jù)所述票據(jù)及所述用戶的身份標(biāo)識和口令生成登陸請求消息,并將所述登陸請求消息發(fā)送給所述認(rèn)證服務(wù)器組;認(rèn)證模塊,用于所述認(rèn)證服務(wù)器組收到所述登陸請求消息后,驗(yàn)證所述登陸請求消息,如果所述消息通過驗(yàn)證,則所述認(rèn)證服務(wù)器組與所述用戶進(jìn)行雙向認(rèn)證。
本發(fā)明實(shí)施例的有益效果是1、在本發(fā)明實(shí)施例提供的技術(shù)方案中,共有n個(gè)服務(wù)器節(jié)點(diǎn)分享一個(gè)系統(tǒng)密鑰,只有當(dāng)其中任意t(t<n)個(gè)節(jié)點(diǎn)共同合作,才能完成對用戶請求的認(rèn)證操作。即使攻擊者擊破了少量的服務(wù)器節(jié)點(diǎn),攻擊者還是無法獲取密鑰。即使有少數(shù)(小于n-t個(gè))服務(wù)節(jié)點(diǎn)遭受攻擊或者離線,其它剩余的服務(wù)節(jié)點(diǎn)仍然可以提供安全的服務(wù),增強(qiáng)了密鑰的安全性和高可用性。
2、由于認(rèn)證服務(wù)器組給用戶簽發(fā)票據(jù),因而服務(wù)器中不需要存儲口令表。
3、可以抵抗字典攻擊。在通常的離線字典攻擊中,攻擊者利用猜測的口令計(jì)算出某些中間值,然后把這些中間值和已經(jīng)得到的相應(yīng)的正確值比較,若吻合,說明猜測口令正確,攻擊成功。而且在本發(fā)明實(shí)施例所述的方案設(shè)計(jì)中,由于攻擊者能得到的正確值和能計(jì)算出的中間值沒有聯(lián)系,無法比較,所以攻擊者無法確定猜測口令的正確性。所以攻擊者即使獲得用戶節(jié)點(diǎn)中的票據(jù),也無法利用離線字典攻擊的方法獲得用戶口令,更無法冒充合法用戶登陸服務(wù)器。
4、由于本發(fā)明實(shí)施例提供的技術(shù)方案將票據(jù)直接存在登陸設(shè)備(即移動(dòng)終端設(shè)備)中,無需智能卡,降低了成本,增加了易用性,同時(shí)也不失安全性。
5、成員服務(wù)器和登陸設(shè)備之間通過兩次的信息交換達(dá)到雙向認(rèn)證。不僅服務(wù)節(jié)點(diǎn)可以對用戶節(jié)點(diǎn)進(jìn)行認(rèn)證,用戶節(jié)點(diǎn)也可以對服務(wù)節(jié)點(diǎn)進(jìn)行認(rèn)證,增強(qiáng)了認(rèn)證的可靠性。
圖1是本發(fā)明實(shí)施例所述分布式網(wǎng)絡(luò)的認(rèn)證方法的流程圖;圖2是本發(fā)明實(shí)施例所述分布式網(wǎng)絡(luò)的認(rèn)證系統(tǒng)的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面將參照相應(yīng)的附圖和實(shí)施例對本發(fā)明作進(jìn)一步說明。
本發(fā)明實(shí)施例提供了一種分布式網(wǎng)絡(luò)的認(rèn)證方法,所述方法主要包括四個(gè)階段系統(tǒng)初始化階段,注冊階段,登陸階段和認(rèn)證階段。參見圖1,具體步驟如下步驟101系統(tǒng)初始化階段一個(gè)可信第三方產(chǎn)生系統(tǒng)密鑰x,并將之分成n片分片密鑰,并將這n個(gè)分片密鑰分別保存在服務(wù)器組的所有n個(gè)成員服務(wù)節(jié)點(diǎn)S1,…,Sn上。具體可以采取如下方式實(shí)現(xiàn)1)選擇兩個(gè)大素?cái)?shù)p和q,滿足p=2p′+1且q=2q′+1,其中p′和q′是大素?cái)?shù);一般而言,本領(lǐng)域中,大素?cái)?shù)通常是指用多于512比特表示的素?cái)?shù),即諸如3,5等只被1和本身整除的數(shù)。
2)計(jì)算合數(shù)N=p×q,隨機(jī)選擇g∈QN,其中QN是模N二次剩余的集合。
3)在1到p′q′中隨機(jī)選擇系統(tǒng)密鑰x,使得x與p′q′互素,即x∈Zp′q′*,]]>隨機(jī)選擇在Zp′q′*上的t-1次多項(xiàng)式f(.),滿足f(0)=xmodp′q′,其中Zp′q′*是1到p′q′的整數(shù)模p′q′有乘法逆元的集合,t是被要求參與認(rèn)證操作的服務(wù)器節(jié)點(diǎn)的個(gè)數(shù)。
4)計(jì)算n個(gè)分片密鑰xi=f(i)/∏j∈Φ,j≠i(i-j)modp′q′,然后通過秘密渠道將xi發(fā)送給服務(wù)器組的n個(gè)成員服務(wù)器Si,其中,Φ是包含數(shù)字1至n的集合,即Φ={1,...,n},這里的秘密渠道可以認(rèn)為是將該票據(jù)加密后傳輸。
5)銷毀x,p,q,并公開N和g。
步驟102注冊階段一個(gè)需要注冊的新用戶U發(fā)送自己的身份ID和哈希變換后的口令h(PW)給包含t個(gè)認(rèn)證成員服務(wù)器節(jié)點(diǎn)Si(f∈φ)的認(rèn)證服務(wù)器組Ω。其中φ是包含f個(gè){1,...,n}中元素的集合,即φ{1,...,n},且滿足φ包含t個(gè)元素,t<n,h()是哈希函數(shù)。在證實(shí)了用戶身份后,t個(gè)成員服務(wù)節(jié)點(diǎn)將共同簽發(fā)一份票據(jù),并將該票據(jù)發(fā)送給用戶。簽發(fā)及發(fā)送票據(jù)的步驟可以采取如下方式實(shí)現(xiàn)1)t個(gè)認(rèn)證成員服務(wù)器節(jié)點(diǎn)Si計(jì)算并給分發(fā)節(jié)點(diǎn)發(fā)送如下值Bi=gh(ID)ximodN,]]>其中分發(fā)節(jié)點(diǎn)可以是t個(gè)認(rèn)證成員服務(wù)器中的一個(gè),也可以是獨(dú)立的節(jié)點(diǎn)。
2)分發(fā)節(jié)點(diǎn)收集到t份Bi后,該分發(fā)節(jié)點(diǎn)計(jì)算β=Πi∈φBiLi0-h(PW)modN=gh(ID)x-h(PW)modN,]]>其中Li′0=Πj∈Φ,j∉φ(i-j)Πj∈φ,j≠i(0-j).]]>3)最后,分發(fā)節(jié)點(diǎn)將包括(ID,β,N,g,h(·))信息的票據(jù)發(fā)給登陸設(shè)備,并存儲在登陸設(shè)備中。為了增強(qiáng)安全性,該票據(jù)可以通過秘密渠道發(fā)送并存儲在登陸設(shè)備中。在票據(jù)的發(fā)送過程中,是否需要用戶直接參與可以由具體實(shí)現(xiàn)方法決定。可以采用直接讓用戶拷貝票據(jù),然后自己存入登陸設(shè)備的方式,也可以采用登陸設(shè)備直接通過數(shù)據(jù)線路下載票據(jù)的方式。
在本實(shí)施例中,登陸設(shè)備可以是移動(dòng)終端設(shè)備。
在本步驟中,為了保證口令不會暴露給服務(wù)器,將口令經(jīng)過了哈希變換。在服務(wù)器確實(shí)可信的情況下,而且注冊不是通過網(wǎng)絡(luò)進(jìn)行的,也可以直接提交口令明文。
另外,身份的證實(shí)可以通過非技術(shù)手段實(shí)現(xiàn),比如用戶出示身份證給系統(tǒng)管理員,管理員同意后,就可以給用戶簽發(fā)票據(jù)。也可以沒有身份證實(shí)過程,那就對任何注冊請求都簽發(fā)票據(jù),在這種情況下;用戶也僅能獲得自己提交的口令,對其他身份對應(yīng)的口令還是一無所知。
步驟103登陸階段當(dāng)已經(jīng)注冊的用戶U想登陸認(rèn)證服務(wù)器組Ω時(shí),用戶U在存儲其個(gè)人票據(jù)的登陸設(shè)備上輸入身份標(biāo)識ID和口令PW。由登陸設(shè)備生成登陸請求消息,并發(fā)送至認(rèn)證服務(wù)器組。具體可以采取如下方式實(shí)現(xiàn)1)選擇隨機(jī)數(shù)r,并獲取登陸設(shè)備的當(dāng)前時(shí)間戳T。
2)計(jì)算B=β+h(PW)=gh(ID)xmod N。
3)計(jì)算E=Br=gh(ID)xrmod N。
4)計(jì)算D=grmod N。
5)計(jì)算C=h(T‖E‖B)mod N。
6)發(fā)送登陸請求消息M=(ID,T,D,C)至認(rèn)證服務(wù)器組Ω。
步驟104認(rèn)證階段認(rèn)證服務(wù)器組Ω中的分發(fā)節(jié)點(diǎn)收到登陸請求消息M=(ID,T,D,C)后,t個(gè)認(rèn)證成員服務(wù)器節(jié)點(diǎn)將聯(lián)合驗(yàn)證該請求并發(fā)回響應(yīng)。例如,具體操作如下每個(gè)參與驗(yàn)證的認(rèn)證成員服務(wù)器節(jié)點(diǎn)Si首先按照如下的過程檢查消息M是否被正確產(chǎn)生1)檢查身份ID的有效性,如果格式不正確,則拒絕該登陸請求,請求消息將被丟棄。
2)檢查當(dāng)前時(shí)間與登陸請求中時(shí)間T的時(shí)間差,若該時(shí)間差大于合理的傳輸時(shí)延,那么該拒絕該登陸請求。
如果消息M通過初步驗(yàn)證,那么t個(gè)認(rèn)證成員服務(wù)器Si(i∈φ)與用戶的登陸設(shè)備執(zhí)行以下協(xié)議完成雙向認(rèn)證1)Si(i∈φ)計(jì)算并發(fā)送以下值給分發(fā)節(jié)點(diǎn)Bi′=gh(ID)ximodN]]>Ei′=Dh(ID)ximodN;]]>2)收到所有E′i和B′i后,分發(fā)節(jié)點(diǎn)計(jì)算B′=Πi∈φBi′Li0modN]]>E′=Πi∈φEi′Li0modN;]]>3)分發(fā)節(jié)點(diǎn)驗(yàn)證等式C=h(T‖E′‖B′)是否成立,如果不成立,請求被拒絕,否則接受請求。然后分發(fā)節(jié)點(diǎn)計(jì)算C′=h(B′‖T′‖E′)并發(fā)回響應(yīng)(ID,C′,T′)至用戶的登陸設(shè)備,其中T′是分發(fā)節(jié)點(diǎn)的當(dāng)前時(shí)間戳。
4)收到服務(wù)器響應(yīng)(ID,C′,T′)后,登陸設(shè)備首先檢查ID和T′,檢查的步驟和步驟104中檢查消息M是否被正確產(chǎn)生相同。然后驗(yàn)證等式C′=h(B‖T′‖E)是否成立。如果驗(yàn)證通過,U和Ω之間完成了雙向認(rèn)證,否則,登陸設(shè)備丟棄當(dāng)前會話。
在本實(shí)施例中,假設(shè)各個(gè)節(jié)點(diǎn)的時(shí)間都是一致的。這樣就可以利用時(shí)間戳來簡化協(xié)議的過程,保證消息的即時(shí)性。在各個(gè)節(jié)點(diǎn)時(shí)鐘不統(tǒng)一的環(huán)境下,本實(shí)施例可以不利用時(shí)間戳,而采用挑戰(zhàn)隨機(jī)數(shù)的方法實(shí)現(xiàn)。
參見圖2,本發(fā)明實(shí)施例還提供了一種分布式網(wǎng)絡(luò)認(rèn)證系統(tǒng),包括初始化模塊201,注冊模塊202,登陸模塊203和認(rèn)證模塊204。其中初始化模塊201用于產(chǎn)生系統(tǒng)密鑰,將所述系統(tǒng)密鑰分片,并將分片后的密鑰分別保存在服務(wù)器組的成員服務(wù)器節(jié)點(diǎn)上。
注冊模塊202位于認(rèn)證服務(wù)器組中,用于接收用戶的身份標(biāo)識和口令,根據(jù)所述身份標(biāo)識、口令和分片密鑰共同簽發(fā)一份票據(jù),并將所述票據(jù)發(fā)送給登陸模塊203。
登陸模塊203位于登陸設(shè)備中,用于接收注冊模塊202發(fā)送的票據(jù),根據(jù)所述票據(jù)及所述用戶的身份標(biāo)識和口令生成登陸請求消息,并將所述登陸請求消息發(fā)送給所述認(rèn)證模塊204。在本實(shí)施例中,登陸設(shè)備可以是用戶終端設(shè)備。
認(rèn)證模塊204位于認(rèn)證服務(wù)器組中,用于在收到所述登陸模塊發(fā)送的登陸請求消息后,驗(yàn)證所述登陸請求消息,如果所述消息通過驗(yàn)證,則與所述用戶進(jìn)行雙向認(rèn)證。
在本發(fā)明實(shí)施例提供的技術(shù)方案中,共有n個(gè)服務(wù)器節(jié)點(diǎn)分享一個(gè)系統(tǒng)密鑰,只有當(dāng)其中任意t(t<n)個(gè)節(jié)點(diǎn)共同合作,才能完成對用戶請求的認(rèn)證操作。即使攻擊者擊破了少量的服務(wù)器節(jié)點(diǎn),攻擊者還是無法獲取密鑰。即使有少數(shù)(小于n-t個(gè))服務(wù)節(jié)點(diǎn)遭受攻擊或者離線,其它剩余的服務(wù)節(jié)點(diǎn)仍然可以提供安全的服務(wù),增強(qiáng)了密鑰的安全性和高可用性。
由于認(rèn)證服務(wù)器組給用戶簽發(fā)票據(jù),因而服務(wù)器中不需要存儲口令表。
本發(fā)明實(shí)施例提供的技術(shù)方案還可以抵抗字典攻擊。在通常的離線字典攻擊中,攻擊者利用猜測的口令計(jì)算出某些中間值,然后把這些中間值和已經(jīng)得到的相應(yīng)的正確值比較,若吻合,說明猜測口令正確,攻擊成功。而且在本發(fā)明實(shí)施例所述的方案中,由于攻擊者能得到的正確值和能計(jì)算出的中間值沒有聯(lián)系,無法比較,所以攻擊者無法確定猜測口令的正確性,更無法冒充合法用戶登陸服務(wù)器。
由于本發(fā)明實(shí)施例提供的技術(shù)方案將票據(jù)直接存在登陸設(shè)備(即移動(dòng)終端設(shè)備)中,無需智能卡,降低了成本,增加了易用性,同時(shí)也不失安全性。
由于成員服務(wù)器和登陸設(shè)備之間通過兩次的信息交換達(dá)到雙向認(rèn)證,不僅服務(wù)節(jié)點(diǎn)可以對用戶節(jié)點(diǎn)進(jìn)行認(rèn)證,用戶節(jié)點(diǎn)也可以對服務(wù)節(jié)點(diǎn)進(jìn)行認(rèn)證,增強(qiáng)了認(rèn)證的可靠性。
由于本發(fā)明實(shí)施例所述技術(shù)方案可以抵抗離線字典攻擊,因此用戶可以自由選擇和更換簡單、容易記憶的短口令,而不用擔(dān)心口令被猜出。
由于用戶的口令是經(jīng)過哈希變換的,因而用戶口令不會暴露給服務(wù)器。
本發(fā)明實(shí)施例所述的技術(shù)方案可以抵抗重放攻擊,替換和盜竊口令表攻擊,和并行會話攻擊。
在本發(fā)明實(shí)施例所述的技術(shù)方案中,由于采用了時(shí)間戳,所以可以抵抗重放攻擊。重放攻擊是指攻擊者首先截獲正確的登陸請求消息,然后重新發(fā)送該消息至服務(wù)器節(jié)點(diǎn),以企圖達(dá)到合法登陸的目的。
在本發(fā)明實(shí)施例所述的技術(shù)方案中,由于根本不存在用戶口令表,服務(wù)器只存儲一個(gè)密鑰分片,所以無法發(fā)動(dòng)替換和盜竊口令表的攻擊。替換和盜竊口令表攻擊是指在服務(wù)器節(jié)點(diǎn)保存有完整的用戶名和口令表的情況下,攻擊者通過修改或盜竊該口令表的手段來發(fā)動(dòng)攻擊。
并行會話攻擊是指攻擊者截獲登陸會話A中服務(wù)器的響應(yīng)消息,以充當(dāng)同時(shí)進(jìn)行的會話B的登陸請求消息(之所以同時(shí)進(jìn)行,是為了保證時(shí)間戳的有效性),這種攻擊成功的條件是響應(yīng)消息和請求消息格式相互匹配。在本發(fā)明實(shí)施例所述的技術(shù)方案中,兩種消息的格式不一樣,所以能夠抵抗這種攻擊。
以上只是對本發(fā)明的優(yōu)選實(shí)施方式進(jìn)行了描述,本領(lǐng)域的技術(shù)人員在本發(fā)明的技術(shù)方案范圍內(nèi)進(jìn)行的通常變化和替換,都應(yīng)包含在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種分布式網(wǎng)絡(luò)的認(rèn)證方法,其特征在于,所述方法包括產(chǎn)生系統(tǒng)密鑰,將所述系統(tǒng)密鑰分片后得到分片密鑰,并將所述分片密鑰分別保存在服務(wù)器組的成員服務(wù)器節(jié)點(diǎn)上;認(rèn)證服務(wù)器組接收用戶的身份標(biāo)識和口令,根據(jù)所述身份標(biāo)識、口令和分片密鑰共同簽發(fā)一份票據(jù),并將所述票據(jù)發(fā)送給登陸設(shè)備;所述登陸設(shè)備根據(jù)所述票據(jù)及所述用戶的身份標(biāo)識和口令生成登陸請求消息,并將所述登陸請求消息發(fā)送給所述認(rèn)證服務(wù)器組;所述認(rèn)證服務(wù)器組收到所述登陸請求消息后,驗(yàn)證所述登陸請求消息,如果所述消息通過驗(yàn)證,則所述認(rèn)證服務(wù)器組與所述用戶進(jìn)行雙向認(rèn)證。
2.如權(quán)利要求1所述的認(rèn)證方法,其特征在于,所述產(chǎn)生系統(tǒng)密鑰,將所述系統(tǒng)密鑰分片,并將分片密鑰分別保存在服務(wù)器組的多個(gè)成員服務(wù)器節(jié)點(diǎn)上的步驟具體包括選擇兩個(gè)大素?cái)?shù)p和q,滿足p=2p′+1且q=2q′+1,其中p′和q′都是大素?cái)?shù);計(jì)算合數(shù)N=p×q,隨機(jī)選擇g∈QN,其中QN是模N二次剩余的集合;在1到p′q′中隨機(jī)選擇系統(tǒng)密鑰x,使得x與p′q′互素,即x∈ZP′q′*,]]>隨機(jī)選擇在Zp′q′*上的t-1次多項(xiàng)式f(.),滿足f(0)=x mod p′q′,其中Zp′q′*是1到p′q′的整數(shù)模p′q′有乘法逆元的集合,t是被要求參與認(rèn)證操作的服務(wù)器節(jié)點(diǎn)的個(gè)數(shù);計(jì)算n個(gè)分片密鑰xi=f(i)/∏j∈Φ,j≠i(i-j)mod p′q′,然后通過秘密渠道將xi發(fā)送給服務(wù)器組的n個(gè)成員服務(wù)器Si,其中,Φ是包含數(shù)字1至n的集合,即Φ={1,...,n},i取遍1至n;銷毀x,p,q,并公開N和g。
3.如權(quán)利要求2所述的認(rèn)證方法,其特征在于,所述認(rèn)證服務(wù)器組接收用戶的身份標(biāo)識和口令,根據(jù)所述身份標(biāo)識、口令和分片密鑰共同簽發(fā)一份票據(jù),并將所述票據(jù)發(fā)送給登陸設(shè)備的步驟具體包括用戶發(fā)送自己的身份標(biāo)識ID和哈希變換后的口令h(PW)給包含t個(gè)成員服務(wù)器節(jié)點(diǎn)Si(i∈φ)的認(rèn)證服務(wù)器組,其中φ是包含t個(gè){1,...,n}中元素的集合,即φ{1,...,n},且滿足φ包含t個(gè)元素,h()是哈希函數(shù);t個(gè)成員服務(wù)器節(jié)點(diǎn)Si證實(shí)用戶身份后,計(jì)算Bi=gh(ID)ximodN,]]>并將計(jì)算出的Bi值發(fā)送給分發(fā)節(jié)點(diǎn);所述分發(fā)節(jié)點(diǎn)收集到t份Bi后,計(jì)算β=Πl∈φBiLi0-h(PM)modN=gh(ID)x-h(PW)modN,]]>其中Li0=Πj∈Φ,j∉φ(i-j)Πj∈φ,j≠i(0-j);]]>所述分發(fā)節(jié)點(diǎn)將包括(ID,β,N,g,h(·))信息的票據(jù)發(fā)送給用戶。
4.如權(quán)利要求3所述的認(rèn)證方法,其特征在于,所述生成登陸請求的步驟具體包括選擇隨機(jī)數(shù)r,并獲取登陸設(shè)備的當(dāng)前時(shí)間戳T;計(jì)算B=β+h(PW)=gh(ID)xmod N;計(jì)算E=Br=gh(ID)xrmod N;計(jì)算D=grmod N;計(jì)算C=h(T‖E‖B)mod N;生成登陸請求消息M=(ID,T,D,C)。
5.如權(quán)利要求4所述的認(rèn)證方法,其特征在于,所述驗(yàn)證登陸請求消息的步驟具體包括檢查用戶身份標(biāo)識的有效性,如果格式不正確,則拒絕所述登陸請求;檢查當(dāng)前時(shí)間與登陸請求中時(shí)間T的時(shí)間差,若該時(shí)間差大于合理的傳輸時(shí)延,則拒絕所述登陸請求。
6.如權(quán)利要求4所述的認(rèn)證方法,其特征在于,所述雙向認(rèn)證的步驟具體包括認(rèn)證服務(wù)器節(jié)點(diǎn)Si(i∈φ,φ{1,...,n})計(jì)算并發(fā)送以下值給分發(fā)節(jié)點(diǎn)B′i=gh(ID)ximodN]]>E′i=Dh(ID)ximodN;]]>所述分發(fā)節(jié)點(diǎn)收到所有E′i和B′i后,計(jì)算B′=Πi∈φB′iLi0modN]]>E′=Πi∈φE′iLi0modN;]]>分發(fā)節(jié)點(diǎn)驗(yàn)證等式C=h(T‖E′‖B′)是否成立,如果不成立,則拒絕所述登陸請求,否則接受所述登陸請求;所述分發(fā)節(jié)點(diǎn)獲取分發(fā)節(jié)點(diǎn)的當(dāng)前時(shí)間戳T′,計(jì)算C′=h(B′‖T′‖E′)并發(fā)回響應(yīng)(ID,C′,T′)至用戶的登陸設(shè)備;所述登陸設(shè)備收到所述響應(yīng)(ID,C′,T′)后,首先檢查ID和T′的有效性,然后驗(yàn)證等式C′=h(B‖T′‖E)是否成立,如果驗(yàn)證通過,用戶登陸設(shè)備和認(rèn)證服務(wù)器組之間完成了雙向認(rèn)證,否則所述登陸設(shè)備丟棄當(dāng)前會話。
7.如權(quán)利要求1至6中任意一項(xiàng)權(quán)利要求所述的認(rèn)證方法,其特征在于,所述票據(jù)通過秘密渠道發(fā)送并存儲在所述登陸設(shè)備中。
8.如權(quán)利要求3或6中所述的認(rèn)證方法,其特征在于,所述分發(fā)節(jié)點(diǎn)為獨(dú)立的節(jié)點(diǎn)或t個(gè)成員服務(wù)器中的一個(gè)。
9.如權(quán)利要求3或6中所述的認(rèn)證方法,其特征在于,所述登陸設(shè)備為用戶終端設(shè)備。
10.一種分布式網(wǎng)絡(luò)的認(rèn)證系統(tǒng),其特征在于,所述系統(tǒng)包括初始化模塊,用于產(chǎn)生系統(tǒng)密鑰,將所述系統(tǒng)密鑰分片后得到分片密鑰,并將所述分片密鑰分別保存在服務(wù)器組的成員服務(wù)器節(jié)點(diǎn)上;注冊模塊,用于對服務(wù)器組接收用戶的身份標(biāo)識和口令進(jìn)行認(rèn)證,根據(jù)所述身份標(biāo)識、口令和分片密鑰共同簽發(fā)一份票據(jù);登陸模塊,用于根據(jù)所述票據(jù)及所述用戶的身份標(biāo)識和口令生成登陸請求消息,并將所述登陸請求消息發(fā)送給所述認(rèn)證服務(wù)器組;認(rèn)證模塊,用于所述認(rèn)證服務(wù)器組收到所述登陸請求消息后,驗(yàn)證所述登陸請求消息,如果所述消息通過驗(yàn)證,則所述認(rèn)證服務(wù)器組與所述用戶進(jìn)行雙向認(rèn)證。
全文摘要
本發(fā)明提供了一種分布式網(wǎng)絡(luò)的認(rèn)證方法和系統(tǒng),屬于網(wǎng)絡(luò)通信領(lǐng)域。為了克服現(xiàn)有技術(shù)中認(rèn)證方案無法直接應(yīng)用在需要分布式認(rèn)證的環(huán)境中,不能適用于可用性要求高的場合,本發(fā)明提供了一種分布式網(wǎng)絡(luò)的認(rèn)證方法,所述方法包括產(chǎn)生分片密鑰,新用戶注冊時(shí),認(rèn)證服務(wù)器組共同向用戶簽發(fā)一份票據(jù),用戶登陸時(shí),認(rèn)證服務(wù)器組聯(lián)合驗(yàn)證用戶發(fā)送的登陸請求消息,如果所述消息通過驗(yàn)證,則所述成員服務(wù)器與用戶的登陸設(shè)備進(jìn)行雙向認(rèn)證。本發(fā)明還提供了一種分布式網(wǎng)絡(luò)的認(rèn)證系統(tǒng),包括初始化模塊、注冊模塊、登陸模塊和認(rèn)證模塊。本發(fā)明可用于移動(dòng)Ad hoc網(wǎng)絡(luò)、網(wǎng)格等分布式網(wǎng)絡(luò)的認(rèn)證。
文檔編號H04L12/28GK101030859SQ20071006360
公開日2007年9月5日 申請日期2007年2月6日 優(yōu)先權(quán)日2007年2月6日
發(fā)明者曹珍富, 董曉蕾, 柴震川, 位繼偉 申請人:上海交通大學(xué), 華為技術(shù)有限公司