本發(fā)明涉及信息安全中基于pki/pmi的匿名身份認(rèn)證,基于xacml的訪問控制技術(shù),以及匿名的跨域授權(quán)方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的日益發(fā)展,網(wǎng)絡(luò)上給我們提供了海量的信息資源,各種應(yīng)用系統(tǒng)層出不窮,不同應(yīng)用系統(tǒng)之間的信息資源共享越來越頻繁。但是不同系統(tǒng)的構(gòu)建方式以及權(quán)限管理方式往往差別很大,具有相當(dāng)?shù)姆忾]性,這就為不同系統(tǒng)之間的信息共享帶來了巨大的不便。比如一些組織機(jī)構(gòu)會有很多獨立的子系統(tǒng),各個子系統(tǒng)都有各自的權(quán)限管理方式,往往不能相互訪問獲取信息,而成為了“信息孤島”。此外,海量的信息資源共享也帶來了嚴(yán)峻的信息安全問題。一方面,信息資源受到的攻擊越來越多,越來越多的信息資源被不相干人等獲取,謀取私利,造成資源內(nèi)容的安全性隱患。另一方面,在我們獲取和共享資源的過程中,往往會要求驗證我們的身份信息,我們在網(wǎng)絡(luò)上泄露的個人隱私越來越多,會給自身安全性帶來威脅,給個人的隱私帶來很大安全隱患。
多域網(wǎng)絡(luò)環(huán)境中,實現(xiàn)不同應(yīng)用域的安全互操作的關(guān)鍵就是跨域的匿名身份認(rèn)證和授權(quán)問題?,F(xiàn)流行的匿名認(rèn)證方案多是采用群簽名忙簽名等技術(shù),其針對性較強的其計算太過繁瑣復(fù)雜,而pki/pmi體系是用于提供數(shù)字證書的相關(guān)安全服務(wù)的,pki/pmi標(biāo)準(zhǔn)已經(jīng)被廣泛應(yīng)用,基于pki/pmi體系的匿名身份認(rèn)證易于融合,移植性好。對于授權(quán)管理,訪問控制概念的出現(xiàn)為解決網(wǎng)絡(luò)信息安全中存在的資源安全隱患提供了很好的解決思路。傳統(tǒng)的基于角色的訪問控制(rbac)在如今開放式的環(huán)境下,授權(quán)依據(jù)顯得過于單一?;趯傩缘脑L問控制(abac)技術(shù)應(yīng)運而生。基本的abac一般包括主體屬性,客體屬性、操作屬性和環(huán)境屬性。其中,以可擴(kuò)展訪問控制標(biāo)記語言實現(xiàn)的基于屬性的授權(quán)框架,根據(jù)用戶,資源,環(huán)境以及操作的屬性,結(jié)合訪問控制策略來判斷是否對訪問者授權(quán)。abac隨著實體屬性的變化,可以動態(tài)的及時更新訪問控制策略,相對于rbac來說,它更加具有細(xì)粒度,以及更加的靈活。
此外,考慮到用戶的屬性需要從屬性證書獲取,屬性證書雖然本身不含有公鑰信息,但是往往會通過其持有者(holder)字段的信息來跟公鑰信息綁定,其中屬性證書holder字段可以有3種不同的語法選項,分別是basecertificateid(公鑰證書的發(fā)布者和序列號),entityname(公鑰證書的主體名),objectdigestinfo(用于認(rèn)證證書擁有者的信息)。basecertificateid和entityname選項都跟公鑰證書有關(guān)聯(lián),從而會暴露自己的身份信息,所以為了保護(hù)好自己的身份信息,采用objectdigestinfo選項,來認(rèn)證屬性證書擁有者的真實性。
技術(shù)實現(xiàn)要素:
本發(fā)明目的是為了在保證用戶身份信息安全的基礎(chǔ)上,實現(xiàn)跨域匿名資源共享。本發(fā)明將基于pki/pmi的匿名認(rèn)證和符合xacml規(guī)范的基于屬性的訪問控制方法相結(jié)合,能夠在保護(hù)用戶身份隱私的基礎(chǔ)上,實現(xiàn)跨域匿名認(rèn)證身份以及跨域授權(quán),從而達(dá)到跨域匿名資源共享的目的。
本發(fā)明提供了一種跨域匿名資源共享平臺,包括匿名身份認(rèn)證模塊、資源上傳模塊、訪問控制模塊;
匿名身份認(rèn)證模塊:包括屬性統(tǒng)一定義機(jī)構(gòu)、屬性權(quán)威、服務(wù)提供方和用戶;
屬性統(tǒng)一定義機(jī)構(gòu):該機(jī)構(gòu)用以保證屬性權(quán)威的可信任。一是負(fù)責(zé)為每個應(yīng)用域的屬性權(quán)威生成公鑰證書并管理公鑰證書庫。二是建立一個全局的屬性定義庫,屬性定義庫是數(shù)據(jù)庫,包括了各應(yīng)用域中屬性權(quán)威的屬性信息庫,屬性信息庫包含了該屬性權(quán)威可用的屬性和屬性值空間。
屬性權(quán)威:向?qū)傩越y(tǒng)一定義機(jī)構(gòu)申請公鑰證書以及需要的屬性信息,從屬性信息庫中查詢屬性并為用戶頒發(fā)及管理屬性證書,并提供證書相關(guān)信息的查詢功能。
服務(wù)提供方:接收用戶發(fā)起的身份認(rèn)證請求,負(fù)責(zé)驗證用戶提交屬性證書的有效性,匿名驗證用戶身份的合法性。
用戶:向域內(nèi)屬性權(quán)威申請屬性證書,發(fā)起匿名身份認(rèn)證請求。
資源上傳模塊:系統(tǒng)管理員可以制定策略模板,信息上傳者可以制定策略并上傳資源。
訪問控制模塊:包括策略實施點、策略決策點和策略存儲點;
策略實施點,接收本地授權(quán)請求,并重新創(chuàng)建xacml格式的請求,發(fā)送給策略決策點,若策略決策點返回的決策信息為拒絕,則拒絕訪問者的請求,若為允許,則返回請求的資源。
策略決策點,接收策略實施點的xacml請求,從屬性庫檢索需要的屬性,從策略存儲點檢索跟請求匹配的策略,根據(jù)策略和訪問請求中的各實體屬性,決定是否允許訪問請求,將決策結(jié)果返回給策略實施點。其中,屬性庫是指存儲用戶屬性的數(shù)據(jù)庫。
策略存儲點,用于存儲本域的訪問策略。
一種跨域匿名資源共享方法,該方法包括以下步驟:
(1)匿名身份認(rèn)證,完成屬性注冊。各應(yīng)用域的屬性權(quán)威向?qū)傩越y(tǒng)一定義機(jī)構(gòu)申請公鑰證書,以及申請所需的屬性信息。屬性統(tǒng)一定義機(jī)構(gòu)審核屬性權(quán)威的資料并生成公鑰證書,根據(jù)屬性權(quán)威所提交的公鑰證書,建立和管理屬性信息庫。屬性權(quán)威根據(jù)用戶公鑰證書,查詢屬性信息庫中的可用屬性給用戶頒發(fā)屬性證書。用戶提交屬性證書給服務(wù)提供方,服務(wù)提供方匿名驗證之后,在本域注冊用戶屬性。
(2)上傳資源制定策略,信息資源上傳者可以通過兩種方法為所上傳資源制定策略,一是先從策略模板庫中選擇一個策略模板,再選擇相應(yīng)的屬性值,完成策略制定。二是從屬性統(tǒng)一定機(jī)構(gòu)的屬性定義庫選擇系列屬性限定,完成策略制定。
(3)請求訪問資源,用戶對某個應(yīng)用域的資源發(fā)起訪問請求。訪問控制模塊中,策略實施點接收到訪問請求,將請求轉(zhuǎn)化成以xacml描述的標(biāo)準(zhǔn)請求,發(fā)送給策略決策點。策略決策點接收策略實施點的標(biāo)準(zhǔn)請求,從本域的策略存儲點檢索所需的合適策略,根據(jù)策略和訪問請求中各實體屬性,決定是否允許請求。將決策結(jié)果返回給策略實施點。策略實施點根據(jù)策略決策點返回的決策結(jié)果,做出相應(yīng)的應(yīng)答返回給訪問者,返回所請求資源或者拒絕該請求。
進(jìn)一步地,所述步驟1中,所述用戶公鑰證書采用x.509標(biāo)準(zhǔn),公鑰證書包含版本信息,序列號,簽名算法,發(fā)行機(jī)構(gòu)名稱,有效期,持有者名稱,持有者公鑰,簽名信息。用戶公鑰證書相當(dāng)于用戶在網(wǎng)絡(luò)中的身份證,公鑰證書最主要功能是實現(xiàn)了用戶身份與用戶公鑰的綁定,而這種綁定的真實性是通過證書發(fā)行機(jī)構(gòu)的簽名來保證的。
屬性證書采用x.509標(biāo)準(zhǔn),屬性證書包含版本信息,序列號,簽名算法,發(fā)行機(jī)構(gòu)名稱,有效期,持有者名稱,屬性信息,簽名信息。其中,屬性信息由屬性名和屬性值組成。屬性證書主要實現(xiàn)了用戶和屬性的綁定,一般通過證書上的持有者名稱(holder)字段來跟公鑰證書進(jìn)行綁定,這里采用holder字段的objectdigestinfo選項來保證用戶的匿名性。
屬性統(tǒng)一定義機(jī)構(gòu)包含的屬性定義庫是一個數(shù)據(jù)庫服務(wù)器,包括了各個域的屬性定義庫,同時每個域的屬性定義庫又包含具體aa的屬性信息庫。aa的屬性信息庫包含了可用的屬性名和屬性值空間,屬性值空間是指屬性值的取值范圍。aa給用戶生成屬性證書時,需要從屬性信息庫查找合適的屬性。
進(jìn)一步地,所述步驟1中,匿名身份認(rèn)證過程涉及屬性統(tǒng)一定義機(jī)構(gòu)(aud)、屬性權(quán)威(aa)、用戶(user)、服務(wù)提供方(sp),其中,ea(m)表示用a的公鑰加密m,da(m)表示用a的私鑰解密m,hash(m)表示計算m的哈希值,signa(m)表示用a的私鑰對m簽名,ac.holder為屬性證書的holder字段,pkc為公鑰證書,ac為屬性證書,匿名認(rèn)證過程包括:
(1.1)aa審核用戶pkc的有效性和完整性。驗證通過之后,aa為該user生成ac發(fā)布于屬性證書庫,同時aa隨機(jī)生成一對公私鑰(sk,pk)和一個隨機(jī)數(shù)key,可以將pk、ac序列號等信息以web服務(wù)頁面的形式供開放查詢。
(1.2)aa計算key的哈希值hash(key),置于ac的holder字段,ac.holder=hash(key),ac的頒發(fā)者字段設(shè)置為aa的公鑰(由aud生成),對sk用user的公鑰加密后并簽名signaa(euser(sk)),連同ac一起發(fā)送給user。
(1.3)user驗證aa簽名檢查ac的正確性,并提取holder字段的hash(key)。用自己的私鑰解密得到sk,sk=duser(euser(sk)),用sk對hash(key)簽名之后連同自己的ac一起發(fā)送給sp,向sp發(fā)起匿名認(rèn)證請求。
(1.4)sp接收到ac后,首先根據(jù)ac的issuer字段的aa公鑰向aud發(fā)起查詢請求,檢查aud的公鑰證書庫中是否存在aa公鑰證書相關(guān)信息,如果存在則說明由該aa頒發(fā)的ac是可信任的。根據(jù)aa公鑰證書查找到具體的aa相關(guān)信息以及屬性證書庫所在地址。用aa公鑰驗證簽名判斷ac的正確性,檢查ac的有效日期。
(1.5)sp接收到sk簽名的hash(key),并獲取ac中holder字段的值hash(key),在該aa的屬性證書庫中根據(jù)ac序列號查詢對應(yīng)的pk。用pk驗證sk的簽名是否正確,如果正確說明user是ac和sk的擁有者,即user是合法用戶,ac上的屬性信息是經(jīng)過認(rèn)證的。
(1.6)sp根據(jù)匿名認(rèn)證結(jié)果向用戶返回驗證結(jié)果信息,如果認(rèn)證成功就在sp的屬性庫中注冊用戶的屬性,否則返回user認(rèn)證失敗消息。
本發(fā)明有益效果如下:
(1)本發(fā)明在pki/pmi技術(shù)的基礎(chǔ)上,以屬性證書作為屬性的載體,設(shè)計一個跨域匿名身份認(rèn)證系統(tǒng),證明了方案的匿名性和安全性,從而實現(xiàn)在匿名的基礎(chǔ)上認(rèn)證用戶身份。
(2)本發(fā)明利用xacml整合各個應(yīng)用域的訪問控制機(jī)制和策略描述方式,設(shè)計符合xacml規(guī)范的基于屬性的訪問控制方法來實現(xiàn)對用戶的跨域授權(quán)管理,保護(hù)資源的安全,實現(xiàn)了不同應(yīng)用域的資源共享。
(3)本發(fā)明將基于pki/pmi的身份匿名認(rèn)證和符合xacml規(guī)范的基于屬性的訪問控制方法相結(jié)合,實現(xiàn)匿名的跨域授權(quán)管理和資源共享。
附圖說明
圖1為平臺整體結(jié)構(gòu)圖;
圖2為匿名身份認(rèn)證架構(gòu)圖;
圖3為屬性證書頒發(fā)圖;
圖4為用戶合法性認(rèn)證圖;
圖5為資源上傳整體結(jié)構(gòu)圖;
圖6為策略示意圖;
圖7為訪問控制整體結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步的說明。
如圖1所示,本發(fā)明一種跨域匿名資源共享平臺包含三個模塊,匿名身份認(rèn)證模塊,資源上傳模塊,訪問控制模塊。
為了更好的理解本實施例,選取一次資源共享事件。事件中,a是信息上傳者,b、c是訪問者。a是就業(yè)辦的老師,屬于應(yīng)用域1,擁有屬性{role:teacher}{department:employment},b為藝術(shù)學(xué)院老師,c為藝術(shù)學(xué)院院長,屬于應(yīng)用域2,b擁有的屬性{role:teacher}{department:art},c擁有的屬性{role:president}{department:art}。
1.本發(fā)明所述的匿名身份認(rèn)證架構(gòu)如圖2所示。各個應(yīng)用域的屬性權(quán)威aa向?qū)傩越y(tǒng)一定義機(jī)構(gòu)申請公鑰證書,機(jī)構(gòu)管理員在審核aa所提交的資料后,為該aa生成公鑰證書,發(fā)布于公鑰證書庫,公鑰證書庫是一個數(shù)據(jù)庫服務(wù)器,用于存放證書相關(guān)信息,并提供查詢功能。aa向?qū)傩越y(tǒng)一定義機(jī)構(gòu)申請屬性,aa提交自己的公鑰證書向機(jī)構(gòu)申請屬性名和值空間,機(jī)構(gòu)管理員在審核通過之后,為該aa建立相應(yīng)的屬性信息庫和屬性。其中,機(jī)構(gòu)的屬性定義庫是一個數(shù)據(jù)服務(wù)器,包含了為每個aa建立的屬性信息庫。
2.匿名認(rèn)證,完成屬性注冊。匿名認(rèn)證過程包括屬性證書頒發(fā)和用戶合法性認(rèn)證,下面以b的匿名認(rèn)證舉例。
屬性證書頒發(fā)過程,如圖3所示:
2.1.應(yīng)用域2的aa審核b的pkc的有效性和完整性。驗證通過之后,aa為b生成ac發(fā)布于屬性證書庫,同時aa隨機(jī)生成一對公私鑰(sk,pk)和一個隨機(jī)數(shù)key,將pk和ac序列號相關(guān)聯(lián)。
2.2.aa計算key的哈希值hash(key),置于ac的holder字段,ac.holder=hash(key),ac的issuer字段設(shè)置為aa的公鑰(由aud生成),對sk用b的公鑰加密后并簽名signaa(eb(sk)),連同ac一起發(fā)送給b。
2.3.b驗證aa簽名檢查ac的正確性,并提取holder字段的hash(key)。用自己的私鑰解密得到sk,sk=db(eb(sk)),
用戶合法性認(rèn)證過程,如圖4所示:
2.4.b用sk對holder字段的hash(key)簽名之后連同自己的ac一起發(fā)送給sp,向sp發(fā)起匿名認(rèn)證請求。
2.5.sp接收到ac后,首先根據(jù)ac的issuer字段的aa公鑰向aud發(fā)起查詢請求,檢查aud的公鑰證書庫中是否存在aa公鑰證書相關(guān)信息,如果存在則說明由該aa頒發(fā)的ac是可信任的。根據(jù)aa公鑰證書查找到具體的aa相關(guān)信息以及屬性證書庫所在地址。用aa公鑰驗證簽名判斷ac的正確性,檢查ac的有效日期。
2.6.sp接收到sk簽名的hash(key),獲取ac中holder字段的值hash(key),在該aa的屬性證書庫中根據(jù)ac序列號查詢對應(yīng)的pk。用pk驗證sk的簽名是否正確,如果正確說明b是ac和sk的擁有者,即b是合法用戶,ac上的屬性信息是經(jīng)過認(rèn)證的。
2.7.sp根據(jù)匿名認(rèn)證結(jié)果向用戶b返回驗證結(jié)果信息,如果認(rèn)證成功就在sp的屬性庫中注冊用戶b的屬性,否則返回b認(rèn)證失敗消息。
3.資源上傳,本發(fā)明所述的資源上傳整體結(jié)構(gòu)如圖5所示。
a在本域上傳了外國語學(xué)院就業(yè)信息,制定了訪問策略,各學(xué)院院長以及外國語學(xué)院老師能查看該就業(yè)信息。
系統(tǒng)將策略轉(zhuǎn)化成標(biāo)準(zhǔn)策略形式,將策略存儲在本域的策略存儲點,將信息資源上傳服務(wù)器。策略規(guī)則如圖6所示。
4.請求訪問數(shù)據(jù),本發(fā)明所述的訪問控制整體結(jié)構(gòu)如圖7所示。
用戶b、c分別請求訪問外國語學(xué)院的就業(yè)信息。訪問控制模塊中的策略實施點將授權(quán)請求轉(zhuǎn)化成標(biāo)準(zhǔn)請求格式,發(fā)送給策略決策點。
策略決策點根據(jù)請求在策略存儲點查找到該策略,根據(jù)屬性信息做判斷,允許c的訪問,由于b的屬性department:art與規(guī)則中的約束department:foreignlanguage不符,所以拒絕b的訪問請求,將決策結(jié)果返回給策略實施點。由策略實施點做出相應(yīng)的響應(yīng)。