本發(fā)明涉及網(wǎng)絡(luò)信息安全領(lǐng)域,尤其涉及一種基于CPK標(biāo)識(shí)認(rèn)證的端對(duì)端身份認(rèn)證及加密方法。
背景技術(shù):
隨著網(wǎng)絡(luò)應(yīng)用的的普及發(fā)展,網(wǎng)絡(luò)信息安全的問(wèn)題日益嚴(yán)重并威脅大眾,而信息安全的把控核心在于認(rèn)證和加密。目前全世界范圍內(nèi)主要存在兩套認(rèn)證體系,PKI公鑰體系和CPK組合公鑰體系。認(rèn)證體系主要解決的問(wèn)題是身份認(rèn)證和密鑰交換,身份認(rèn)證解決身份真?zhèn)蔚蔫b別,而密鑰交換解決數(shù)據(jù)的安全傳輸。在PKI公鑰體系中,采用CA認(rèn)證中心負(fù)責(zé)管理用戶的公鑰證書,而用戶的公私鑰證書與用戶標(biāo)識(shí)并沒(méi)有關(guān)系,每次認(rèn)證都需要在線的CA認(rèn)證中心的支持,無(wú)法實(shí)現(xiàn)離線的端對(duì)端的認(rèn)證;PKI的認(rèn)證容量比較低,認(rèn)證過(guò)程需要消耗海量的網(wǎng)絡(luò)資源,且其無(wú)法實(shí)現(xiàn)跨域的身份認(rèn)證,其建設(shè)成本高,維護(hù)復(fù)雜。在CPK組合公鑰體系中,利用橢圓曲線密碼理論,構(gòu)造了種子公、私鑰矩陣,以微小的種子密鑰(如48kb)產(chǎn)生出巨大的公私鑰對(duì)數(shù)量(如10的48次方),解決了密鑰規(guī)?;芾砗蛻?yīng)用難題,可滿足海量的認(rèn)證需求;CPK技術(shù)中的密鑰分散存儲(chǔ)、靜態(tài)調(diào)用的運(yùn)行模式,可以實(shí)現(xiàn)無(wú)第三方和非在線認(rèn)證,支持端對(duì)端的認(rèn)證需求;其建設(shè)成本低,維護(hù)簡(jiǎn)單。
在互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)的快速發(fā)展下,PKI公鑰體系已經(jīng)無(wú)法滿足新的需求,如移動(dòng)應(yīng)用端對(duì)端的認(rèn)證及加密等,且當(dāng)PKI中的CA認(rèn)證中心一旦出現(xiàn)問(wèn)題,整個(gè)認(rèn)證系統(tǒng)將全面癱瘓。因此我們提出一種基于CPK組合公鑰體系的身份認(rèn)證及加密方法,其不需要第三方的CA中心、可實(shí)現(xiàn)離線的、跨域的、海量的基于公網(wǎng)的端對(duì)端的身份認(rèn)證和密鑰交換。
技術(shù)實(shí)現(xiàn)要素:
為達(dá)到上述目的,本發(fā)明提供一種基于CPK標(biāo)識(shí)認(rèn)證的端對(duì)端身份認(rèn)證及加密方法,采用如下技術(shù)方案:
一種基于CPK標(biāo)識(shí)認(rèn)證的端對(duì)端身份認(rèn)證及加密方法,其特征在于:
服務(wù)端接收用戶端發(fā)來(lái)的用服務(wù)端的CPK標(biāo)識(shí)公鑰加密的用戶的CPK簽名信息,用服務(wù)端的CPK標(biāo)識(shí)私鑰進(jìn)行解密得到用戶的CPK簽名信息,采用CPK算法用用戶私有標(biāo)識(shí)和種子公鑰計(jì)算出用戶的CPK標(biāo)識(shí)公鑰來(lái)驗(yàn)證用戶的CPK簽名信息,將驗(yàn)證后的認(rèn)證結(jié)果信息用用戶的CPK標(biāo)識(shí)公鑰進(jìn)行加密并返回給用戶端;
用戶身份認(rèn)證通過(guò)后,用戶端與服務(wù)端可進(jìn)行會(huì)話密鑰的交換,用戶端與服務(wù)端基于該會(huì)話密鑰進(jìn)行認(rèn)證加密通信;服務(wù)端可為身份認(rèn)證通過(guò)的不同用戶的用戶端完成網(wǎng)絡(luò)地 址交換,用戶端的不同用戶可用自己的CPK Key設(shè)備(如用戶A與用戶B)進(jìn)行身份認(rèn)證及會(huì)話密鑰交換,并基于該會(huì)話密鑰實(shí)現(xiàn)用戶端對(duì)用戶端的認(rèn)證加密通信。
所述服務(wù)端為支持CPK標(biāo)識(shí)認(rèn)證技術(shù)、能進(jìn)行CPK標(biāo)識(shí)白名單管理的服務(wù)設(shè)備或服務(wù)云端;服務(wù)端的功能包括但不限于:服務(wù)審計(jì)等可設(shè)置的功能。
所述用戶端為支持CPK標(biāo)識(shí)認(rèn)證技術(shù)的軟件或設(shè)備,用戶端的每個(gè)用戶都有一個(gè)基于用戶私有標(biāo)識(shí)的用戶的CPK Key設(shè)備;在用戶發(fā)起身份認(rèn)證請(qǐng)求后,用戶端先檢測(cè)是否有用戶的CPK Key設(shè)備插入,若檢測(cè)到有用戶的CPK Key設(shè)備插入,再對(duì)用戶輸入的CPK pin碼做本地驗(yàn)證;CPK pin碼驗(yàn)證通過(guò)后,用戶端再發(fā)送用戶的身份認(rèn)證信息給服務(wù)端;若沒(méi)有檢測(cè)到用戶的CPK Key設(shè)備或有用戶的CPK Key設(shè)備但用戶輸入的CPK pin碼錯(cuò)誤,其顯示相應(yīng)的錯(cuò)誤信息給用戶。
所述用戶的CPK Key設(shè)備在使用前需要用戶設(shè)置CPK Key的pin碼來(lái)激活CPK Key設(shè)備,在每次認(rèn)證中都需要用戶輸入已設(shè)置的CPK Key的pin碼做本地驗(yàn)證;用戶的CPK Key的Pin碼在一次認(rèn)證中錯(cuò)誤輸入到達(dá)一定次數(shù),用戶的CPK Key設(shè)備會(huì)鎖死,用戶則需要去CPK Key設(shè)備的發(fā)證中心去解鎖。
所述的用戶端與服務(wù)端或用戶端與用戶端的身份認(rèn)證及加密是端對(duì)端的身份認(rèn)證及加密通信,且不需要認(rèn)證中心。
所述的端對(duì)端的身份認(rèn)證及加密通信可支持跨域的用戶認(rèn)證及加密通信,即不同域的用戶端(或服務(wù)端)互為協(xié)議,并存放需要通信的域的CPK種子公鑰矩陣,可實(shí)現(xiàn)不同域的用戶端之間的相互認(rèn)證及加密通信。
所述的會(huì)話密鑰為隨機(jī)數(shù)(臨時(shí)產(chǎn)生,每次隨機(jī)),該隨機(jī)數(shù)可由通信雙方的任意一端產(chǎn)生;通過(guò)用用戶私有標(biāo)識(shí)和種子公鑰在本地計(jì)算出對(duì)話端的用戶的CPK標(biāo)識(shí)公鑰,并用對(duì)話端用戶的CPK標(biāo)識(shí)公鑰對(duì)會(huì)話密鑰進(jìn)行加密來(lái)實(shí)現(xiàn)密鑰的交換;會(huì)話密鑰可定時(shí)更換(更換時(shí)間可自行定義),從而實(shí)現(xiàn)了一話一密安全可信的通信。
所述的端對(duì)端的身份認(rèn)證及加密都是基于互聯(lián)網(wǎng)或移動(dòng)網(wǎng)絡(luò)連接的通信。
附圖說(shuō)明
圖1為本發(fā)明基于CPK標(biāo)識(shí)認(rèn)證的端對(duì)端身份認(rèn)證及加密通信的流程圖
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面將結(jié)合實(shí)施例中的附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
參照?qǐng)D1所示,本實(shí)施例中的用戶端與服務(wù)端或用戶端與用戶端都是通過(guò)互聯(lián)網(wǎng)或移動(dòng)網(wǎng)絡(luò)相連。用戶端的每個(gè)用戶和服務(wù)端的服務(wù)設(shè)備都有一把基于自己私有標(biāo)識(shí)的CPK Key設(shè)備。用戶在網(wǎng)絡(luò)終端(電腦、PDA以及智能終端等)上打開(kāi)用戶端軟件,插入用戶的CPK Key設(shè)備,輸入用戶的CPK Key設(shè)備的Pin碼,發(fā)起身份認(rèn)證請(qǐng)求,具體的身份認(rèn)證及加密通信還包括以下步驟:
步驟101:當(dāng)用戶通過(guò)用戶端向服務(wù)端發(fā)起身份認(rèn)證請(qǐng)求后,用戶端先檢測(cè)是否有用戶的CPK Key設(shè)備插入,若檢測(cè)到有用戶的CPK Key設(shè)備插入,再對(duì)用戶輸入的CPK pin碼做本地驗(yàn)證;CPK pin碼驗(yàn)證通過(guò)后,用戶端再將用服務(wù)端的CPK標(biāo)識(shí)公鑰加密的用戶的CPK簽名信息發(fā)送給服務(wù)端;若沒(méi)有檢測(cè)到用戶的CPK Key設(shè)備或有用戶的CPK Key設(shè)備但用戶輸入的CPK pin碼錯(cuò)誤,其顯示相應(yīng)的錯(cuò)誤信息給用戶;
步驟102:服務(wù)端用自己的CPK標(biāo)識(shí)私鑰解密得到用戶的CPK簽名信息,讀取CPK簽名信息中的用戶私有標(biāo)識(shí),先驗(yàn)證用戶私有標(biāo)識(shí)是否在服務(wù)端的CPK標(biāo)識(shí)白名單中,若驗(yàn)證失敗,則返回用用戶的CPK標(biāo)識(shí)公鑰加密的認(rèn)證失敗信息;若驗(yàn)證通過(guò),則利用CPK算法,用用戶私有標(biāo)識(shí)和種子公鑰計(jì)算出用戶的CPK標(biāo)識(shí)公鑰,用用戶的CPK標(biāo)識(shí)公鑰驗(yàn)證用戶的CPK簽名信息,若CPK簽名信息驗(yàn)證通過(guò),則返回用用戶的CPK標(biāo)識(shí)公鑰加密的認(rèn)證通過(guò)信息,若驗(yàn)證失敗,則返回用用戶的CPK標(biāo)識(shí)公鑰加密的認(rèn)證失敗信息;
步驟103:用戶身份認(rèn)證通過(guò)后,用戶端(或服務(wù)端)產(chǎn)生會(huì)話密鑰,并用對(duì)話端的CPK標(biāo)識(shí)公鑰對(duì)會(huì)話密鑰進(jìn)行加密來(lái)實(shí)現(xiàn)會(huì)話密鑰的交換;
步驟104:用戶端與服務(wù)端采用步驟103中的會(huì)話密鑰來(lái)完成彼此間端對(duì)端的認(rèn)證加密通信;
步驟105:服務(wù)端可為接入其下身份認(rèn)證通過(guò)的不同用戶的用戶端完成網(wǎng)絡(luò)地址交換,如服務(wù)端為用戶A與用戶B的用戶端完成網(wǎng)絡(luò)地址交換,用戶A和用戶B的用戶端可用各自的CPK Key設(shè)備進(jìn)行雙方的身份認(rèn)證和會(huì)話密鑰交換;
步驟106:用戶A和用戶B采用步驟105中的會(huì)話密鑰來(lái)完成彼此間端對(duì)端的認(rèn)證加密通信。
上述步驟中的會(huì)話密鑰是隨機(jī)數(shù)(臨時(shí)產(chǎn)生,每次隨機(jī)),該隨機(jī)數(shù)可由通信雙方的任意一端產(chǎn)生;通過(guò)用用戶私有標(biāo)識(shí)和種子公鑰在本地計(jì)算出對(duì)話端的用戶的CPK標(biāo)識(shí)公鑰,并用對(duì)話端用戶的CPK標(biāo)識(shí)公鑰對(duì)其進(jìn)行加密來(lái)實(shí)現(xiàn)會(huì)話密鑰的交換;會(huì)話密鑰可定時(shí)更換(更換時(shí)間可自行定義,如毫秒到秒級(jí)不等),從而可實(shí)現(xiàn)一話一密安全可信的通信。
本發(fā)明中的服務(wù)端為支持CPK標(biāo)識(shí)認(rèn)證技術(shù)、能進(jìn)行CPK標(biāo)識(shí)白名單管理的服務(wù)設(shè)備或服務(wù)云端;服務(wù)端為具有特定功能的用戶端,服務(wù)端的功能包括但不限于:服務(wù)審計(jì)等可設(shè)置的功能。
本發(fā)明中的用戶端為支持CPK標(biāo)識(shí)認(rèn)證技術(shù)的軟件或設(shè)備,用戶端的每個(gè)用戶都有 一個(gè)基于用戶私有標(biāo)識(shí)的用戶的CPK Key設(shè)備。
本發(fā)明中的CPK Key設(shè)備為支持CPK標(biāo)識(shí)認(rèn)證技術(shù)的、能代表用戶身份標(biāo)識(shí)的設(shè)備,里面存有用用戶私有標(biāo)識(shí)生成的用戶的CPK標(biāo)識(shí)公私鑰對(duì)中的用戶的CPK標(biāo)識(shí)私鑰;CPK Key設(shè)備就相當(dāng)于用戶接入網(wǎng)絡(luò)的身份證,每一個(gè)CPK Key設(shè)備都具有唯一性。用戶的CPK Key設(shè)備在使用前需要用戶設(shè)置CPK Key的pin碼來(lái)激活CPK Key設(shè)備,在用戶每次身份認(rèn)證中都需要用戶輸入已設(shè)置的CPK Key的pin碼做本地驗(yàn)證;用戶的CPK Key的Pin碼在一次認(rèn)證中錯(cuò)誤輸入到達(dá)一定次數(shù),用戶的CPK Key設(shè)備會(huì)鎖死,用戶則需要去CPK Key設(shè)備的發(fā)證中心去解鎖;所述的用戶包括但不限于:個(gè)人用戶、網(wǎng)絡(luò)設(shè)備用戶等。
本發(fā)明提出的此種方法可適用于基于互聯(lián)網(wǎng)或移動(dòng)網(wǎng)絡(luò)的端對(duì)端的用戶身份認(rèn)證及加密通信,且不需要認(rèn)證中心,如第三方的CA認(rèn)證中心;此種端對(duì)端的身份認(rèn)證及加密還可支持跨域的用戶認(rèn)證及加密通信,即不同域的用戶端(或服務(wù)端)互為協(xié)議,彼此協(xié)商定義相同的通信協(xié)議,并存放需要通信的其他域的CPK種子公鑰矩陣,從而實(shí)現(xiàn)了不同域的用戶端之間的用戶身份認(rèn)證及加密通信。
由于本發(fā)明技術(shù)的應(yīng)用和實(shí)施十分廣泛,只要是需要身份認(rèn)證及加密的網(wǎng)絡(luò)系統(tǒng)都可以采用此方法實(shí)現(xiàn)用戶的身份認(rèn)證及加密通信。以上所述,僅為本發(fā)明的優(yōu)選實(shí)施例,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。