本發(fā)明屬于信息通信中跨異構域認證與密鑰協(xié)商技術領域。
背景技術:
分布式的網絡環(huán)境的各種應用,例如虛擬企業(yè),即時通信系統(tǒng)等等,用戶與其想要訪問的信息資源往往都處于不同的信任域中。而不同的信任域可能會基于不同的密碼體制,例如基于Kerberos的密碼體制,基于PKI(公鑰基礎設施)的密碼體制以及基于IBC(基于身份的密碼技術)的密碼體制等等。同構域之間的認證密鑰協(xié)商方法已經有較多的研究,并且已形成標準并被廣泛應用。用于PKI以及Kerberos兩個域之間的認證密鑰協(xié)商方法也有較多的研究。但PKI域的用戶訪問IBC域的資源時的認證密鑰協(xié)商方法,卻很少有人研究。而在分布式網絡下的諸如虛擬企業(yè),敏捷制造等應用場景下,PKI域的用戶訪問IBC域的資源的應用需求很多。
現(xiàn)有的PKI域的用戶訪問IBC域的資源時的認證密鑰協(xié)商文獻只有:
文獻1“異構域的跨域授權”(孟欣,胡亮,初劍峰,等.異構信任域的跨域授權[J].吉林大學學報理學版,2010,48(1):89-93.)依托于PKI同構域之間的互信互聯(lián)體系,采用身份映射,跨域授權兩部分內容實現(xiàn)跨IBC與PKI域之間的可信互聯(lián)。但是該文獻中大量多次使用到證書,證書在傳遞,存儲過程中都會消耗大量的資源,與人們當初設計IBC密碼體制的初衷不符;采用身份映射的方式很不直接,在現(xiàn)實的應用中可行性不高。并且該文獻只是用身份映射,信任傳遞的方式來實現(xiàn)認證的思想,沒有具體的方案流程,只能算作是一種新的跨域授權的思想而不是一個可以直接實現(xiàn)的方案。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種PKI域內的用戶訪問IBC域內的資源的認證密鑰協(xié)商方法,該方法能有效實現(xiàn)PKI域內的用戶訪問IBC域內的資源的認證密鑰協(xié)商,其消耗資源少,安全性高。
本發(fā)明實現(xiàn)其發(fā)明目的所采用的技術方案是,一種PKI域內的用戶訪問IBC域內的資源的認證密鑰協(xié)商方法,其操作步驟是:
A、申請訪問
PKI域的用戶U向PKI域的認證服務器CA發(fā)出訪問IBC域的資源S的請求,PKI域認證服務器CA對PKI域的用戶U的身份合法性進行認證;若認證未通過,則跳轉至步驟E;否則,向IBC域認證服務器TA轉發(fā)PKI域的用戶U的訪問請求;
B、生成用戶索引并發(fā)送
IBC域認證服務器TA對PKI域認證服務器CA進行身份認證,若認證未通過,則跳轉至步驟E;否則,IBC域認證服務器TA生成PKI域的用戶U訪問IBC域內資源S的會話密鑰K的認證服務器部分k1,并生成會話密鑰K的認證服務器部分k1對應的用戶索引Na;且該用戶索引Na為隨機產生并與已有用戶索引不相同;
IBC域認證服務器TA利用自身私鑰SKTA對IBC域認證服務器TA的身份標識IDTA、用戶索引Na及會話密鑰K的認證服務器部分k1,進行簽名得到已簽名消息Msign,再利用PKI域的用戶U的公鑰PKU對已簽名消息Msign進行加密,得到用戶接收消息MA2TA->U,并將用戶接收消息MA2TA->U發(fā)送給PKI域的用戶U;
同時,IBC域認證服務器TA利用IBC域內資源S的公鑰QS對已簽名消息Msign進行加密,得到資源接收信息MA2TA->S,并將資源接收信息MA2TA->S發(fā)送給IBC域內的資源S;
C、雙向身份認證以及協(xié)商會話密鑰
C1、PKI域的用戶U利用自身私鑰SKU對IBC域認證服務器TA發(fā)來的用戶接收消息MA2TA->U進行解密,得到IBC域認證服務器TA的身份標識IDTA、用戶索引Na及會話密鑰K的認證服務器部分k1;再利用IBC域認證服務器TA的身份標識IDTA,計算出IBC域認證服務器TA的公鑰QTA,并用IBC域認證服務器TA的公鑰QTA來驗證簽名的有效性,若驗證未通過,則跳轉至步驟E;否則,PKI域的用戶U生成會話密鑰K的用戶部分k2,并將會話密鑰K的用戶部分k2首位處進行填充,使其與會話密鑰K的認證服務器部分k1的位數(shù)相同,然后對會話密鑰K的認證服務器部分k1和填充后的用戶部分k2進行異或處理得到完整的會話密鑰K;
C2、IBC域內的資源S用自身私鑰SS對B步驟中IBC域內認證服務器TA發(fā)送來的資源接收消息MA2TA->S進行解密,得到解密會話密鑰K’的認證服務器部分K1'以及對應的資源端用戶索引Na';
C3、PKI域的用戶U再利用IBC域內的資源S的身份標識IDS,計算出IBC域內的資源S的公鑰QS,對會話密鑰K的用戶部分K2和用戶索引Na進行加密,得到用戶密文S-k2;同時,利用會話密鑰K對IBC域內的資源S的身份標識IDS進行加密,得到身份標識密文S-ID;再將用戶密文S-k2和身份標識密文S-ID一起發(fā)送給IBC域內的資源S;
C4、IBC域內的資源S對收到的用戶密文S-k2進行解密,得到資源端會話密鑰K''的用戶部分K2''以及用戶端用戶索引Na'';再搜索出與用戶端用戶索引Na''對應的檢出解密會話密鑰K'''的認證服務器部分K1''';再將資源端會話密鑰K''的用戶部分K2''首位處進行填充,使其與檢出解密會話密鑰K'''的認證服務器部分K1'''的位數(shù)相同,然后對檢出解密會話密鑰K'''的認證服務器部分K1'''和填充后的用戶部分K2''進行異或處理得到完整的資源端會話密鑰K'';再用資源端會話密鑰K''解密收到的身份標識密文S-ID,得到IBC域內資源S的提取身份標識IDS',將提取身份標識IDS'和IBC域的資源S的身份標識IDS進行驗證,若二者不一致,則跳轉至步驟E;否則,IBC域內的資源S用資源端會話密鑰K''對其身份標識IDS進行加密,得到IBC域內的資源S的資源端身份標識密文MA3S->U,并將其發(fā)送給PKI域的用戶U;
C5、PKI域的用戶U用會話密鑰K對收到的資源端身份標識密文MA3S->U進行解密,得到IBC域內的資源S的用戶端身份標識IDS”,并驗證IBC域內的資源S的用戶端身份標識IDS”的有效性,若驗證未通過,則跳轉至步驟E;否則PKI域的用戶U與IBC域的資源S的認證密鑰協(xié)商完成,PKI域的用戶U利用會話密鑰K對IBC域的資源S進行安全訪問;
D、重認證
當會話密鑰K的認證服務器部分k1超出其生命周期時,IBC域認證服務器TA銷毀B步驟中生成的與會話密鑰K的認證服務器部分k1對應的用戶索引Na;IBC域內的資源S銷毀C2步驟中得到的與會話密鑰K的認證服務器部分K1對應的用戶索引Na;若PKI域的用戶U不再訪問IBC域的資源S,則跳轉至步驟E;若PKI域的用戶U仍需訪問IBC域的資源S,則跳轉至步驟A;
當會話密鑰K的用戶部分k2超出其生命周期,但會話密鑰K的認證服務器部分k1仍在其生命周期中,若PKI域的用戶U不再訪問IBC域的資源S時,則跳轉至步驟E;若PKI域的用戶U仍需訪問IBC域的資源S,則跳轉至步驟A或者進行快速重認證;
E、中止會話。
與現(xiàn)有技術相比,本發(fā)明的有益效果是:
一、本發(fā)明給出了PKI域內的用戶訪問IBC域內的資源時的跨異構域認證密鑰協(xié)商方法,使得PKI域內的用戶能夠安全的訪問IBC域內的資源。
二、會話密鑰是由會話密鑰的認證服務器部分和用戶部分進行異或處理得到,較之單純由認證服務器生成的會話密鑰而言,其安全性得到大幅提高,并且增加的資源消耗少。
三、IBC域內的資源基于用戶索引的方法來認證PKI域內的用戶的合法身份,由于用戶索引隨機產生、密文傳輸;因此能保證訪問的安全性。較之傳統(tǒng)的基于訪問授權票據(jù)的認證方法,用戶索引的信息量少,又能有效地減少通信量。
四、當會話密鑰的認證服務器部分超出其生命周期時,其對應的用戶索引隨即銷毀;減少了對存儲資源的消耗;同時,使新的用戶索引生成更快捷,使用用戶索引進行檢索時更迅速高效。
進一步,本發(fā)明的B步驟中的會話密鑰K的認證服務器部分K1的位數(shù)為128位;所述的C1步驟中,IBC域的用戶U生成會話密鑰K的用戶部分K2的長度為80位。
這樣,采用80位的用戶部分進行填充與128位的認證服務器部分進行異或得到會話密鑰,較之僅由128位的認證服務器部分得到的會話密鑰,密鑰的生命周期較短,會話密鑰的安全得到保證,同時,增加的通信量很少。
進一步,本發(fā)明的D步驟中的快速重認證的具體做法是:
PKI域內的用戶U生成重認證會話密鑰KR的用戶部分KR2,并將重認證會話密鑰KR的用戶部分KR2首位處進行填充,使其與重認證會話密鑰KR的認證服務器部分k1的位數(shù)相同,然后對重認證會話密鑰KR的認證服務器部分k1和填充后的用戶部分KR2進行異或處理得到完整的重認證會話密鑰KR;轉至C3步驟。
這樣,當會話密鑰的用戶部分超出其生命周期,但會話密鑰的認證服務器部分仍在其生命周期中時;若PKI域的用戶仍需訪問IBC域的資源,可進行快速重認證,而無需重新進行申請訪問和訪問授權票據(jù)生成和分發(fā)的操作,在保證訪問安全的前提下,大大減少了方法的交互次數(shù),通信量和計算量。
下面結合具體實施方式對本發(fā)明作進一步的詳細說明。
具體實施方式
實施例
一種PKI域內的用戶訪問IBC域內的資源的認證密鑰協(xié)商方法,其操作步驟是:
A、申請訪問
PKI域的用戶U向PKI域的認證服務器CA發(fā)出訪問IBC域的資源S的請求,PKI域認證服務器CA對PKI域的用戶U的身份合法性進行認證;若認證未通過,則跳轉至步驟E;否則,向IBC域認證服務器TA轉發(fā)PKI域的用戶U的訪問請求;
B、生成用戶索引并發(fā)送
IBC域認證服務器TA對PKI域認證服務器CA進行身份認證,若認證未通過,則跳轉至步驟E;否則,IBC域認證服務器TA生成PKI域的用戶U訪問IBC域內資源S的會話密鑰K的認證服務器部分k1,并生成會話密鑰K的認證服務器部分k1對應的用戶索引Na;且該用戶索引Na為隨機產生并與已有用戶索引不相同;
IBC域認證服務器TA利用自身私鑰SKTA對IBC域認證服務器TA的身份標識IDTA、用戶索引Na及會話密鑰K的認證服務器部分k1,進行簽名得到已簽名消息Msign,再利用PKI域的用戶U的公鑰PKU對已簽名消息Msign進行加密,得到用戶接收消息MA2TA->U,并將用戶接收消息MA2TA->U發(fā)送給PKI域的用戶U;
同時,IBC域認證服務器TA利用IBC域內資源S的公鑰QS對已簽名消息Msign進行加密,得到資源接收信息MA2TA->S,并將資源接收信息MA2TA->S發(fā)送給IBC域內的資源S;
C、雙向身份認證以及協(xié)商會話密鑰
C1、PKI域的用戶U利用自身私鑰SKU對IBC域認證服務器TA發(fā)來的用戶接收消息MA2TA->U進行解密,得到IBC域認證服務器TA的身份標識IDTA、用戶索引Na及會話密鑰K的認證服務器部分k1;再利用IBC域認證服務器TA的身份標識IDTA,計算出IBC域認證服務器TA的公鑰QTA,并用IBC域認證服務器TA的公鑰QTA來驗證簽名的有效性,若驗證未通過,則跳轉至步驟E;否則,PKI域的用戶U生成會話密鑰K的用戶部分k2,并將會話密鑰K的用戶部分k2首位處進行填充,使其與會話密鑰K的認證服務器部分k1的位數(shù)相同,然后對會話密鑰K的認證服務器部分k1和填充后的用戶部分k2進行異或處理得到完整的會話密鑰K;
C2、IBC域內的資源S用自身私鑰SS對B步驟中IBC域內認證服務器TA發(fā)送來的資源接收消息MA2TA->S進行解密,得到解密會話密鑰K’的認證服務器部分K1'以及對應的資源端用戶索引Na';
C3、PKI域的用戶U再利用IBC域內的資源S的身份標識IDS,計算出IBC域內的資源S的公鑰QS,對會話密鑰K的用戶部分K2和用戶索引Na進行加密,得到用戶密文S-k2;同時,利用會話密鑰K對IBC域內的資源S的身份標識IDS進行加密,得到身份標識密文S-ID;再將用戶密文S-k2和身份標識密文S-ID一起發(fā)送給IBC域內的資源S;
C4、IBC域內的資源S對收到的用戶密文S-k2進行解密,得到資源端會話密鑰K''的用戶部分K2''以及用戶端用戶索引Na'';再搜索出與用戶端用戶索引Na''對應的檢出解密會話密鑰K'''的認證服務器部分K1''';再將資源端會話密鑰K''的用戶部分K2''首位處進行填充,使其與檢出解密會話密鑰K'''的認證服務器部分K1'''的位數(shù)相同,然后對檢出解密會話密鑰K'''的認證服務器部分K1'''和填充后的用戶部分K2''進行異或處理得到完整的資源端會話密鑰K'';再用資源端會話密鑰K''解密收到的身份標識密文S-ID,得到IBC域內資源S的提取身份標識IDS',將提取身份標識IDS'和IBC域的資源S的身份標識IDS進行驗證,若二者不一致,則跳轉至步驟E;否則,IBC域內的資源S用資源端會話密鑰K''對其身份標識IDS進行加密,得到IBC域內的資源S的資源端身份標識密文MA3S->U,并將其發(fā)送給PKI域的用戶U;
C5、PKI域的用戶U用會話密鑰K對收到的資源端身份標識密文MA3S->U進行解密,得到IBC域內的資源S的用戶端身份標識IDS”,并驗證IBC域內的資源S的用戶端身份標識IDS”的有效性,若驗證未通過,則跳轉至步驟E;否則PKI域的用戶U與IBC域的資源S的認證密鑰協(xié)商完成,PKI域的用戶U利用會話密鑰K對IBC域的資源S進行安全訪問;
D、重認證
當會話密鑰K的認證服務器部分k1超出其生命周期時,IBC域認證服務器TA銷毀B步驟中生成的與會話密鑰K的認證服務器部分k1對應的用戶索引Na;IBC域內的資源S銷毀C2步驟中得到的與會話密鑰K的認證服務器部分K1對應的用戶索引Na;若PKI域的用戶U不再訪問IBC域的資源S,則跳轉至步驟E;若PKI域的用戶U仍需訪問IBC域的資源S,則跳轉至步驟A;
當會話密鑰K的用戶部分k2超出其生命周期,但會話密鑰K的認證服務器部分k1仍在其生命周期中,若PKI域的用戶U不再訪問IBC域的資源S時,則跳轉至步驟E;若PKI域的用戶U仍需訪問IBC域的資源S,則跳轉至步驟A或者進行快速重認證;
E、中止會話。
本例的B步驟中的會話密鑰K的認證服務器部分K1的位數(shù)為128位;所述的C1步驟中,PKI域的用戶U生成會話密鑰K的用戶部分K2的長度為80位。
本例的D步驟中的快速重認證的具體做法是:
PKI域內的用戶U生成重認證會話密鑰KR的用戶部分KR2,并將重認證會話密鑰KR的用戶部分KR2首位處進行填充,使其與重認證會話密鑰KR的認證服務器部分k1的位數(shù)相同,然后對重認證會話密鑰KR的認證服務器部分k1和填充后的用戶部分KR2進行異或處理得到完整的重認證會話密鑰KR;轉至C3步驟。