專利名稱:用于簽發(fā)證書的格式不可知的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算安全,尤其涉及使用數(shù)字證書來向服務(wù)器認(rèn)證客戶機(jī)并確定客戶機(jī)許可,還特別涉及證書簽發(fā)系統(tǒng)中這些證書與通用格式之間的轉(zhuǎn)換。
背景技術(shù):
證書是證明某物或某物所有權(quán)的真實(shí)性的文檔。在計(jì)算的世界中,數(shù)字證書提供各種功能。例如,數(shù)字證書可通過確定某實(shí)體實(shí)際上是所聲稱之物來認(rèn)證該實(shí)體數(shù)組證書可通過確定-實(shí)體有權(quán)訪問受限源而授權(quán)該實(shí)體。數(shù)字證書還可用來以防偽方式捕捉“策略”,例如授權(quán)策略、信任策略等。
證書是非常有用的,并且在當(dāng)前更為有用。安全策略的表達(dá)和實(shí)現(xiàn)是一種越來越重要的企業(yè)能力。證書格式的數(shù)量也在激增。當(dāng)前可用的一些較流行證書格式是X.509、安全性斷言標(biāo)記語言(SAML)安全令牌、XrML 1.2和MPEG-REL。注意MPEG-REL具有眾多變體并有眾多名稱,包括XrML 2.x、MPEG ISO-REL和ISO-REL。首字母簡略詞MPEG-REL在此使用時(shí)指向以上所列變體的至少全部。
為了說明以上示例性證書的各種功能和格式,X.509證書遵守它們自己的格式且通常表示身份。SAML證書遵守它們自己的XML模式并廣泛用于聯(lián)合身份解決方案。XrML 1.2和MPEG-REL表達(dá)資源的使用策略并遵守它們自己的XML模式。
現(xiàn)在存在生產(chǎn)并消費(fèi)證書的服務(wù)和產(chǎn)品。然而,當(dāng)新類型的證書開始流行時(shí)問題產(chǎn)生了。目前,消費(fèi)特定格式證書的證書簽發(fā)系統(tǒng)可能與其它格式的證書并不兼容。在最佳情況下,這可導(dǎo)致客戶機(jī)嘗試獲取適當(dāng)格式化的證書時(shí)的無效,或者需要客戶機(jī)事先確定服務(wù)器要求哪種證書格式。在最差情況下,它導(dǎo)致互操作性失敗。
可實(shí)現(xiàn)的一種可能解決方案是維持能處理不同格式證書的多個(gè)并排的證書簽發(fā)服務(wù)器。不幸的是,該解決方案使證書簽發(fā)系統(tǒng)的實(shí)現(xiàn)和更新更為困難。實(shí)現(xiàn)并維持多個(gè)系統(tǒng)所需努力隨著所使用的每個(gè)附加證書簽發(fā)器倍增。
現(xiàn)有證書簽發(fā)系統(tǒng)的另一弱點(diǎn)是難以更改可簽發(fā)證書的情形,即“證書簽發(fā)策略”。在現(xiàn)有系統(tǒng)中,策略用證書簽發(fā)系統(tǒng)二進(jìn)制碼表達(dá)為經(jīng)過編譯的算法,或者表達(dá)為配置參數(shù)的經(jīng)具體建模的“脆弱”集合。改變該實(shí)現(xiàn)策略需要重新編碼、重新編譯、并重新部署新的證書簽發(fā)系統(tǒng)。因而,為實(shí)踐起見,證書簽發(fā)策略受限于證書簽發(fā)系統(tǒng)編程人員所預(yù)想的內(nèi)容。為了改變該策略,證書簽發(fā)系統(tǒng)可能不得不全部重新編碼。要實(shí)現(xiàn)它會花去產(chǎn)品開發(fā)組大量的時(shí)間和精力。
因此,本行業(yè)中有未滿足的提供證書簽發(fā)中的更多互操作性、以及便于改變證書簽發(fā)策略的需要。
發(fā)明內(nèi)容
考慮本領(lǐng)域中以上所述的缺點(diǎn),本發(fā)明提供一種經(jīng)改進(jìn)的證書簽發(fā)系統(tǒng)和由這種經(jīng)改進(jìn)系統(tǒng)實(shí)現(xiàn)的方法。
在此提供的證書簽發(fā)系統(tǒng)可包括一轉(zhuǎn)換組件,用于將輸入證書轉(zhuǎn)換成通用格式并用于將輸出的生成證書轉(zhuǎn)換成任何支持格式。因而,該系統(tǒng)可被描述為格式不可知的。實(shí)現(xiàn)通用證書簽發(fā)策略的單個(gè)證書簽發(fā)組件可對以各種格式到達(dá)的證書進(jìn)行操作。由簽發(fā)組件簽發(fā)的證書還可在將這些證書傳送給請求客戶機(jī)之前轉(zhuǎn)換成各種格式。
該系統(tǒng)還可包括用于表達(dá)證書簽發(fā)策略的全新設(shè)備。策略可用標(biāo)記策略表達(dá)語言表達(dá),并存儲于例如由證書簽發(fā)系統(tǒng)在運(yùn)行時(shí)間消費(fèi)的文件中。策略因而可通過改變該文件來簡便地改變。還可提供用于擴(kuò)展證書簽發(fā)系統(tǒng)的能力的某些技術(shù),因此該系統(tǒng)可應(yīng)用并實(shí)現(xiàn)新的簽發(fā)策略。
本發(fā)明的其它優(yōu)點(diǎn)和特征如下所述。
根據(jù)本發(fā)明的用于簽發(fā)證書的系統(tǒng)和方法參照附圖作進(jìn)一步描述,在附圖中圖1是廣泛表示適于結(jié)合本發(fā)明各方面使用的示例性計(jì)算設(shè)備的基本特征的框圖。該計(jì)算設(shè)備可訪問計(jì)算機(jī)可讀介質(zhì)上的指令,并以適當(dāng)順序執(zhí)行那些指令以執(zhí)行證書簽發(fā)系統(tǒng)的各個(gè)功能。
圖2示出證書簽發(fā)系統(tǒng)可在其中操作的示例性網(wǎng)絡(luò)化計(jì)算環(huán)境。簽發(fā)器可駐留于例如設(shè)備271上。設(shè)備277上的客戶機(jī)過程可從271上的簽發(fā)器中請求證書,隨后使用該證書與設(shè)備275上的服務(wù)器過程進(jìn)行通信。
圖3A示出證書簽發(fā)系統(tǒng)的轉(zhuǎn)換組件部分。轉(zhuǎn)換組件或轉(zhuǎn)換引擎用來將多種格式的輸入證書轉(zhuǎn)換成單個(gè)通用格式。簽發(fā)組件34產(chǎn)生的用于傳送給客戶機(jī)的通用格式證書可按需轉(zhuǎn)換成任何格式。
圖3B示出輸入證書請求如何由簽發(fā)器處理的視圖。首先,請求到達(dá)服務(wù)器入口點(diǎn)301。例如302的原始格式的證書-或其它請求信息-被傳送給轉(zhuǎn)換層303。它被轉(zhuǎn)換成第二格式304。然后該證書和/或關(guān)聯(lián)于請求304的其它信息由服務(wù)器證書引擎305進(jìn)行處理。
圖3C示出本發(fā)明的另一視圖,其中客戶機(jī)310向服務(wù)器313發(fā)送對證書的請求。類型1證書關(guān)聯(lián)于客戶機(jī)310的請求。該類型1證書可通過證書轉(zhuǎn)換引擎(CTE)311轉(zhuǎn)換成類型2證書。類型2證書可被簽發(fā)引擎312用來確定是否要許可客戶機(jī)310的請求。當(dāng)簽發(fā)引擎312以第二格式簽發(fā)證書時(shí),CTE 311可將其轉(zhuǎn)換成客戶機(jī)310的第一格式。
圖4示出證書簽發(fā)系統(tǒng)的簽發(fā)組件部分。認(rèn)證41、授權(quán)42、以及證書格式化43是簽發(fā)組件可執(zhí)行的示例性功能。作為執(zhí)行這些功能的一部分,通用策略語言解析和實(shí)現(xiàn)引擎44可應(yīng)用證書簽發(fā)策略45。因而在要實(shí)現(xiàn)的策略不需要在引擎44中表達(dá)而在由引擎44在運(yùn)行時(shí)間消費(fèi)的簽發(fā)策略45中表達(dá)的意義上,簽發(fā)組件是數(shù)據(jù)驅(qū)動的。
圖5示出一種系統(tǒng)和方法,用于擴(kuò)展簽發(fā)組件以應(yīng)用和實(shí)現(xiàn)策略表達(dá)語言和/或策略語言解析和實(shí)現(xiàn)引擎56不會自然支持的新簽發(fā)策略。當(dāng)策略語言語法在例如59中得到擴(kuò)展時(shí),處理擴(kuò)展后策略語言結(jié)構(gòu)的插件邏輯55可被添加到實(shí)現(xiàn)引擎56中。當(dāng)使用自然策略語言通配符時(shí),處理擴(kuò)展通配符替換模式的插件邏輯57可被添加到實(shí)現(xiàn)引擎56中。
具體實(shí)施例方式
某些特定細(xì)節(jié)在以下說明書和附圖中陳述以提供對本發(fā)明各實(shí)施例的完整理解。然而,為了避免不必要地混淆本發(fā)明的各個(gè)實(shí)施例,通常關(guān)聯(lián)于計(jì)算和軟件技術(shù)的某些眾所周知的細(xì)節(jié)并未在以下揭示中陳述。此外,本領(lǐng)域技術(shù)人員將理解,無需以下所述的一個(gè)或多個(gè)細(xì)節(jié)他們可實(shí)踐本發(fā)明的其它實(shí)施例。最后,盡管各種方法是參照以下說明書中的步驟和順序來描述的,但是這樣的描述是用來提供本發(fā)明各實(shí)施例的清晰實(shí)現(xiàn)的,且各步驟和步驟的順序不應(yīng)視為是實(shí)踐本發(fā)明所必須的。
在此所述的設(shè)備和方法通常涉及簽發(fā)數(shù)字證書。術(shù)語“證書”在此用作“數(shù)字證書”的縮寫形式。如在背景技術(shù)中所述,證書是證明某物或某物所有權(quán)的真實(shí)性的文檔。術(shù)語“證明”表示確認(rèn)是正確、真實(shí)或真的。因而在此將被稱為客戶機(jī)的第一實(shí)體可使用證書來向第二實(shí)體-服務(wù)器-確認(rèn)有關(guān)它自己的一些事實(shí)。證書通常(盡管并非必須)由受信任的第三方簽發(fā)。當(dāng)在此使用時(shí),證書的范圍可以從自己產(chǎn)生的文檔或令牌到由受信任第三方簽發(fā)的具有許多安全特性的可高度信任的數(shù)字文件,諸如根據(jù)一種或多種公鑰或私鑰技術(shù)等的加密。由證書證明的“某物”可以是任何東西。通常,可證明客戶機(jī)的身份和/或?qū)蛻魴C(jī)花去或訪問某些資源的授權(quán),但也可證明任何其它東西。
受信任的第三方在此被稱為證書簽發(fā)系統(tǒng)。術(shù)語“證書簽發(fā)系統(tǒng)”在此且在本行業(yè)中也可稱為“證書簽發(fā)服務(wù)”,并且為簡便起見可簡稱為術(shù)語“簽發(fā)器”。證書簽發(fā)系統(tǒng)確定是否向特定客戶機(jī)授權(quán)一證書。如果是,則向客戶機(jī)簽發(fā)證書并可使用該證書向服務(wù)器進(jìn)行認(rèn)證。
盡管客戶機(jī)和服務(wù)器可被視為兩個(gè)完整的計(jì)算設(shè)備,每一個(gè)都包括硬盤、總線、系統(tǒng)存儲器等,但是本領(lǐng)域技術(shù)人員以更廣泛含義來理解這些術(shù)語。客戶機(jī)和服務(wù)器實(shí)際上可以是單個(gè)計(jì)算設(shè)備內(nèi)、或在分布式計(jì)算裝置中的多個(gè)計(jì)算機(jī)上存在的兩個(gè)實(shí)體。這樣,證書簽發(fā)系統(tǒng)也可存在于包括一個(gè)或多個(gè)客戶機(jī)以及一個(gè)或單個(gè)服務(wù)器實(shí)體的計(jì)算機(jī)內(nèi),并還可存在于多個(gè)設(shè)備之上。
參照圖1,概述了適于結(jié)合證書簽發(fā)系統(tǒng)使用的示例計(jì)算設(shè)備100。在其最基本配置中,設(shè)備100通常包括處理單元102和存儲器103。取決于計(jì)算設(shè)備的準(zhǔn)確配置和類型,存儲器103可以是易失性存儲器103A(諸如RAM)、非易失性存儲器103B(諸如ROM、閃存等等)、或兩者的某些組合。此外,設(shè)備100還可具有諸如磁性或光學(xué)的盤或帶的大容量存儲設(shè)備(可移動的104和/或不可移動的105)。類似地,設(shè)備100可包括諸如鍵盤和鼠標(biāo)的輸入設(shè)備107,和/或諸如將GUI表示為對計(jì)算設(shè)備100的功能的圖形輔助訪問的顯示器的輸出設(shè)備106。設(shè)備100的其它方面可包括使用有線或無線介質(zhì)與其它設(shè)備、計(jì)算機(jī)、網(wǎng)絡(luò)、服務(wù)器等的通信連接108。
易失性存儲器103A、非易失性存儲器103B、可移動大容量存儲104和不可移動大容量存儲105是計(jì)算機(jī)可讀介質(zhì)的示例。計(jì)算機(jī)可讀介質(zhì)可包括通信介質(zhì)以及計(jì)算機(jī)存儲介質(zhì)。通信介質(zhì)通常體現(xiàn)為計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它諸如載波或其它傳送機(jī)制的已調(diào)制數(shù)據(jù)的信號的其它數(shù)據(jù),并包括任何信息傳送介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”意指具有以這種把信息編碼到信號中的方式來設(shè)置或改變的一個(gè)或多個(gè)特征的信號。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接有線連接的有線介質(zhì),以及諸如聲學(xué)、RF、紅外和其它無線介質(zhì)的無線介質(zhì)。
計(jì)算機(jī)存儲介質(zhì)可以用來存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或其它數(shù)據(jù)的信息的任何方法或技術(shù)實(shí)現(xiàn)。計(jì)算機(jī)存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能光盤(DVD)或其它光學(xué)存儲器、磁盒、磁帶、磁盤存儲器或其它磁性存儲設(shè)備、或任何其它介質(zhì)。
本發(fā)明至少部分地可通過諸如由計(jì)算機(jī)100執(zhí)行的程序模塊的計(jì)算機(jī)可執(zhí)行指令實(shí)現(xiàn)。通常,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。
計(jì)算機(jī)可執(zhí)行指令通常體現(xiàn)為某些形式的計(jì)算機(jī)可讀介質(zhì)上的對計(jì)算機(jī)100可用的數(shù)字信息。例如在圖1中,系統(tǒng)存儲器103可存儲操作系統(tǒng)和應(yīng)用程序以及其它程序模塊和程序數(shù)據(jù)。應(yīng)用程序等可綁定于操作系統(tǒng),或可單獨(dú)存在并利用操作系統(tǒng)服務(wù)來發(fā)揮作用。
應(yīng)當(dāng)理解,盡管在此所述的本發(fā)明的各個(gè)實(shí)施例可以是軟件實(shí)現(xiàn),但在此所述的各種技術(shù)也可通過用硬件組件替換至少一些程序模塊來實(shí)現(xiàn)。因而,盡管本發(fā)明的方法和裝置、或其某些方面或部分可采取高級過程或面向?qū)ο缶幊陶Z言的程序代碼的形式,但(各)程序也可用匯編或及其語言實(shí)現(xiàn)。在任一情形中,語言可以是編譯或解釋語言,并可與硬件實(shí)現(xiàn)相結(jié)合。
本發(fā)明可在許多通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置中操作。眾所周知的適用于本發(fā)明的計(jì)算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電器、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、包括任何以上系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等。
圖2提供一示例性網(wǎng)絡(luò)化計(jì)算環(huán)境。該網(wǎng)絡(luò)包括計(jì)算設(shè)備271、272、276和277,對象273、274和275,以及數(shù)據(jù)庫278。這些實(shí)體271、272、273、274、275、276、277和278的每一個(gè)都可包括或使用程序、方法、數(shù)據(jù)存儲、可編程邏輯等。實(shí)體271、272、273、274、275、276、277和278可跨越諸如PDA、音頻/視頻設(shè)備、MP3播放器、個(gè)人計(jì)算機(jī)等的相同或不同設(shè)備的各個(gè)部分。每個(gè)實(shí)體271、272、273、274、275、276、277和278可通過通信網(wǎng)絡(luò)270與另一實(shí)體271、272、273、274、275、276、277和278進(jìn)行通信。
網(wǎng)絡(luò)上的各個(gè)設(shè)備利用(各)協(xié)議層提供的功能來彼此通信。例如,超文本傳輸協(xié)議(HTTP)是結(jié)合萬維網(wǎng)(WWW)或“web”使用的通用協(xié)議。通常諸如互聯(lián)網(wǎng)協(xié)議(IP)地址的計(jì)算機(jī)網(wǎng)絡(luò)地址、或諸如全球資源定位器(URL)的其它引用可用來彼此標(biāo)識服務(wù)器或客戶機(jī)計(jì)算機(jī)。網(wǎng)絡(luò)地址可被稱為URL地址。通信可在通信介質(zhì)上提供,例如(各)客戶機(jī)和(各)服務(wù)器可通過高容量通信的TCP/IP連接來彼此耦合。
網(wǎng)絡(luò)本身可包括向圖2系統(tǒng)提供服務(wù)的其它計(jì)算實(shí)體,并可表示多個(gè)互連網(wǎng)絡(luò)。每個(gè)實(shí)體271、272、273、274、275、276、277和278可包含離散的功能程序模塊,這些程序模塊可使用API、或其它對象、軟件、固件和/或硬件來請求其它實(shí)體271、272、273、274、275、276、277和278的一個(gè)或多個(gè)的服務(wù)。
“客戶機(jī)”是使用與之不相關(guān)的另一類或組的服務(wù)的一個(gè)類或組的成員。在計(jì)算中,客戶機(jī)可以是請求由另一程序提供的服務(wù)的進(jìn)程,即粗略地為一系列指令或任務(wù)。這種服務(wù)可以是例如由證書簽發(fā)系統(tǒng)的證書簽發(fā)??蛻魴C(jī)進(jìn)程無需“知道”任何有關(guān)其它程序或服務(wù)本身的工作細(xì)節(jié)就可使用所請求的服務(wù)。在客戶機(jī)/服務(wù)器體系結(jié)構(gòu)特別是網(wǎng)絡(luò)化系統(tǒng)中,客戶機(jī)通常是訪問由例如服務(wù)器的另一計(jì)算機(jī)提供的共享網(wǎng)絡(luò)資源的計(jì)算機(jī)。在圖2示例中,取決于各情形,任何實(shí)體271、272、273、274、275、276、277和278可被視為客戶機(jī)、服務(wù)器或兩者。
服務(wù)器通常(盡管并非必須)是在諸如因特網(wǎng)的遠(yuǎn)程或局域網(wǎng)上可訪問的遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。該客戶機(jī)進(jìn)程可在第一計(jì)算機(jī)系統(tǒng)內(nèi)活動,而服務(wù)器進(jìn)程可在第二計(jì)算機(jī)系統(tǒng)內(nèi)活動,彼此經(jīng)通信介質(zhì)通信,從而提供分布式功能并允許多個(gè)客戶機(jī)利用服務(wù)器的信息收集功能。任何軟件對象都可在多個(gè)計(jì)算設(shè)備或?qū)ο笊戏植肌?br>
因而本發(fā)明的各個(gè)實(shí)施例可解決請求證書的客戶機(jī)實(shí)體駐留于網(wǎng)絡(luò)中的例如第一計(jì)算設(shè)備277的情形。具有為客戶機(jī)實(shí)體所需的一些資源的服務(wù)器實(shí)體可駐留于例如第二計(jì)算設(shè)備275中。證書簽發(fā)系統(tǒng)可駐留于例如另外的第三計(jì)算設(shè)備271。
設(shè)備277上的客戶機(jī)可確定它需要一證書來向設(shè)備275上的服務(wù)器證明一些客戶機(jī)憑證。277上的客戶機(jī)因而在網(wǎng)絡(luò)總線170上向271上的簽發(fā)器提交請求。請求本身可包括一個(gè)或多個(gè)先前簽發(fā)的證書。271上的簽發(fā)器繼續(xù)確定客戶機(jī)是否有權(quán)得到所請求的證書。271上的簽發(fā)器通過應(yīng)用證書簽發(fā)策略來完成它。如果277上的客戶機(jī)具有策略所需的憑證,則所請求證書可由271上的簽發(fā)器簽發(fā)給277上的客戶機(jī)。然后客戶機(jī)可在它與275上服務(wù)器的通信中使用所簽發(fā)證書以及任何數(shù)量的其它證書。
圖3A示出證書簽發(fā)系統(tǒng)的轉(zhuǎn)換組件部分。簽發(fā)組件34更詳細(xì)地在圖4和5中示出。在本發(fā)明的各個(gè)實(shí)施例中,轉(zhuǎn)換組件實(shí)際上可以是接收輸入證書的第一個(gè)組件,也可以是在證書傳送給客戶機(jī)之前可操縱證書的最后一個(gè)組件。在其它實(shí)施例中,轉(zhuǎn)換組件可按需用于證書簽發(fā)系統(tǒng)中的任何地方。
當(dāng)對證書的請求到達(dá)證書簽發(fā)系統(tǒng)時(shí),諸如第一格式30的第一證書的任何附帶證書可被路由到轉(zhuǎn)換驅(qū)動器31。轉(zhuǎn)換驅(qū)動器31可操作以進(jìn)行各證書與用于簽發(fā)組件34的操作的通用格式之間的轉(zhuǎn)換。因而,第一格式30的第一證書可被轉(zhuǎn)換成第二格式。這種轉(zhuǎn)換的結(jié)果是第二格式33的第一證書。
相反,當(dāng)證書由簽發(fā)組件34簽發(fā)時(shí),它可從簽發(fā)組件34產(chǎn)生的格式轉(zhuǎn)換成客戶機(jī)所需的任何格式。因而,第二格式35的第二證書可被轉(zhuǎn)換成第三格式。這種轉(zhuǎn)換的結(jié)果是第三格式37的第二證書。該第三格式可以是任何證書格式,包括達(dá)到對證書的客戶機(jī)請求的一個(gè)或多個(gè)證書(例如30)的格式。
證書轉(zhuǎn)換組件最好被設(shè)計(jì)成轉(zhuǎn)換盡可能多的證書格式。這樣,它可轉(zhuǎn)換X.509證書、安全性斷言標(biāo)記語言(SAML)安全令牌證書、XrML 1.2證書、和MPEG-REL證書(僅列出一些較流行的示例性證書格式)。然而,對每種可能的證書類型設(shè)計(jì)轉(zhuǎn)換裝置并非總是經(jīng)濟(jì)可行的。本發(fā)明并不限于轉(zhuǎn)換組件能夠轉(zhuǎn)換的證書類型的數(shù)量或特定格式。
因?yàn)樵诒绢I(lǐng)域中新的證書格式在持續(xù)產(chǎn)生,所以將轉(zhuǎn)換組件設(shè)計(jì)成能進(jìn)行擴(kuò)展以容納其它證書格式是有利的。驅(qū)動器31可基于諸如32的一個(gè)或多個(gè)類所提供的指令,來管理將特定證書30的各個(gè)元素轉(zhuǎn)換成通用格式證書33。圖3A的特定裝置是有利的,因?yàn)樗试S轉(zhuǎn)換組件可擴(kuò)展以容納新的證書格式。然而,驅(qū)動器31和諸如圖3A中32、36裝置的類僅僅是示例性的,并且本領(lǐng)域技術(shù)人員將理解各種裝置可用來完成證書從一種格式到另一種格式的轉(zhuǎn)換。
在圖3A中,通用格式被稱為第二格式。通用格式的選擇涉及確定一種格式,該格式盡可能穩(wěn)健以容納各種格式的輸入證書中可包含的全部各種類型信息。盡管可選擇任何證書來用作通用格式,包括X.509證書、安全性斷言標(biāo)記語言(SAML)安全令牌證書、XrML 1.2證書、和MPEG-REL證書(僅列出一些較流行的示例性證書格式),但已選擇MPEG-REL來實(shí)現(xiàn)本發(fā)明,并被視為是有利于此目的的。MPEG-REL目前被視為最豐富、最穩(wěn)健和可擴(kuò)展的證書格式。然而,隨著技術(shù)的進(jìn)步,可開發(fā)其它更多有利的證書。
使用轉(zhuǎn)換組件的另一優(yōu)點(diǎn)源于這樣的事實(shí),各種證書格式的每一種都用它自已的方式來表達(dá)策略?,F(xiàn)有證書簽發(fā)器互操作性的障礙是格式不能兼容,因?yàn)橐M(fèi)任何特定格式需要遍及簽發(fā)器的定制算法。我們不能期望說服所有現(xiàn)有的證書制造商采用一通用格式,因此我們必須假設(shè)這些格式將繼續(xù)長期存在。用于將不同的證書格式及其語義映射或轉(zhuǎn)換成通用語言的技術(shù)減少了多種格式的系統(tǒng)性影響,并且是在解決證書互用性問題的方向上的一個(gè)步驟。
正確的轉(zhuǎn)換應(yīng)滿足語法和語義要求。前者需要轉(zhuǎn)換后格式具有有效格式。后者需要轉(zhuǎn)換后證書傳送與原始證書相同的信息。然而,有源格式具有比目標(biāo)格式更多信息的情形,這使得轉(zhuǎn)換中的信息損失不可避免。因而實(shí)現(xiàn)本發(fā)明的目標(biāo)是確保信息正確轉(zhuǎn)換同時(shí)盡力保留其它信息。
證書轉(zhuǎn)換算法32、26可基于其功能分成兩類語法級在結(jié)構(gòu)之間映射語義級在證書之間轉(zhuǎn)換在一實(shí)施例中,該算法集合被實(shí)現(xiàn)為一個(gè)類集。該類集在圖3A中被示為證書轉(zhuǎn)換驅(qū)動器31。轉(zhuǎn)換驅(qū)動器31的各個(gè)實(shí)施例可包括三個(gè)組件驅(qū)動器類、證書轉(zhuǎn)換類和配置類。驅(qū)動器類可執(zhí)行轉(zhuǎn)換過程的整體協(xié)調(diào)并調(diào)用轉(zhuǎn)換類。轉(zhuǎn)換類可執(zhí)行實(shí)際轉(zhuǎn)換過程,而配置類可包含轉(zhuǎn)換驅(qū)動器31進(jìn)行操作所必須的配置數(shù)據(jù)。
以下簡單示例被包括為演示從第一證書格式XrML 1.2到第二證書格式XrML2.0的轉(zhuǎn)換的示例性操作。如本領(lǐng)域技術(shù)人員可以理解的,MICROSOFT的RightsManagement Server(權(quán)限管理服務(wù)器)產(chǎn)品的第一版本使用XrML 1.2格式的證書來進(jìn)行其策略評估。然而,權(quán)限管理服務(wù)器產(chǎn)品的將來發(fā)行版本將使用XrML 2.0格式的證書。因而,以下提供轉(zhuǎn)換組件的操作和對在此提供的本發(fā)明的增長需要的較好示例。情形如下客戶機(jī)將證書請求發(fā)送給假定的實(shí)現(xiàn)本發(fā)明的權(quán)限管理服務(wù)器產(chǎn)品。該請求本身包含XrML 1.2格式的證書,例如圖3A中的證書30。XrML 2.0是證書簽發(fā)系統(tǒng)34所使用的通用格式。
為了接收并理解兩種格式的證書,實(shí)現(xiàn)一轉(zhuǎn)換類集。假設(shè)這已經(jīng)完成,在接收來自客戶機(jī)的具有XrML 1.2格式的證書30的請求之后,轉(zhuǎn)換驅(qū)動器31插件相應(yīng)的證書轉(zhuǎn)換類32、將配置數(shù)據(jù)傳送給它并調(diào)用轉(zhuǎn)換方法。證書轉(zhuǎn)換類32確認(rèn)XrML 1.2證書30的簽名和有效期,并及其轉(zhuǎn)換成XrML 2.0證書33,并將轉(zhuǎn)換特定信息返回給轉(zhuǎn)換驅(qū)動器31。然后轉(zhuǎn)換驅(qū)動器31使用XrML 2.0格式的證書33來調(diào)用權(quán)限管理服務(wù)器34。在該示例中,權(quán)限管理服務(wù)器34自然地理解XrML 2.0證書、執(zhí)行證書簽發(fā)操作、并將結(jié)果發(fā)送回轉(zhuǎn)換驅(qū)動器31。在接收由權(quán)限管理服務(wù)器34簽發(fā)的XrML 2.0證書35之后,轉(zhuǎn)換驅(qū)動器31創(chuàng)建將XrML 2.0證書35轉(zhuǎn)換成XrML 1.2證書37的證書轉(zhuǎn)換類36。
圖3B示出輸入證書請求如何由簽發(fā)器處理的視圖。首先請求到達(dá)服務(wù)器入口點(diǎn)301。原始格式的證書-或其它請求信息-302被傳送給稱為轉(zhuǎn)換層303的轉(zhuǎn)換組件。注意,證書并非總是附于證書請求的。通常作出某些形式的證明,并且在證書是確認(rèn)要證明的事實(shí)的較好方式時(shí),它們并非總附于證書請求。各種類型的其它信息也可包括于請求中。當(dāng)使用一些其它信息時(shí),信息的特定數(shù)據(jù)類型可以有些像證書格式可不同的方式而不同。因而,證書轉(zhuǎn)換層303可被配置成將諸如302的證書從一種格式轉(zhuǎn)換成另一種格式,或從各種格式轉(zhuǎn)換成單一格式,但也可配置成處理附于證書請求的任何數(shù)據(jù)。像輸入證書的這種數(shù)據(jù)可被轉(zhuǎn)換成可由單個(gè)簽發(fā)組件或(在此稱作)證書引擎305消費(fèi)的通用格式。
圖3B中的輸入信息可被轉(zhuǎn)換成第二格式304。如果輸入信息已是第二格式,則當(dāng)然無需轉(zhuǎn)換。然后證書和/或關(guān)聯(lián)于請求304的其它信息可由服務(wù)器證書引擎305來處理。
圖3C示出本發(fā)明的另一視圖,其中客戶機(jī)310向服務(wù)器313發(fā)送對證書的請求。類型1證書關(guān)聯(lián)于客戶機(jī)310的請求。類型1證書可被證書轉(zhuǎn)換引擎(CTE)311轉(zhuǎn)換成由簽發(fā)器312消費(fèi)的某些其它格式,諸如類型2證書。類型2證書可被簽發(fā)引擎312用來確定是否要許可客戶機(jī)310的請求。當(dāng)簽發(fā)引擎312簽發(fā)第二格式的證書時(shí),CTE 311可將其轉(zhuǎn)換成用于客戶機(jī)310的第一格式?;蛘?,簽發(fā)引擎312可簡便地產(chǎn)生用于客戶機(jī)310的適當(dāng)格式的證書,而無需再使用CTE 311來從第二格式證書轉(zhuǎn)換成第一格式證書。注意在本發(fā)明的許多實(shí)施例中,CTE 311可被配置成處理多個(gè)輸入證書類型。每種類型最好被配置成將來自簽發(fā)引擎312的第二格式證書轉(zhuǎn)換成如客戶機(jī)310所請求的各種證書類型的任一種。
在各示例性情形中,可獲益于諸如圖3C所示系統(tǒng)的使用的是客戶機(jī)設(shè)備和/或進(jìn)程的證明,來許可客戶機(jī)許可證頒發(fā)證書(CLC)請求、并特許對數(shù)字內(nèi)容的權(quán)限。
當(dāng)使用以第一格式證書操作的客戶機(jī)(“v1客戶機(jī)”)的用戶首次嘗試打開由權(quán)限管理系統(tǒng)保護(hù)的電子郵件時(shí),產(chǎn)生一示例性認(rèn)證情形。在該情形中,v1客戶機(jī)可向證書簽發(fā)系統(tǒng)313發(fā)送表示客戶機(jī)身份的目前是XrML 1.2證書的v1機(jī)器帳戶證書(MAC),以及WINDOWS域憑證。CTE 311可將MAC轉(zhuǎn)換成目前是表示客戶機(jī)身份的MPEG-REL證書的安全處理器證書(SPC),并將該SPC給予簽發(fā)引擎312。然后簽發(fā)引擎可簽發(fā)第二格式證書,例如目前是表示客戶機(jī)上用戶身份的MPEG-REL證書的權(quán)限帳戶證書(RAC),并將該RAC送給CTE 311。CTE 311然后可將RAC轉(zhuǎn)換成第一格式證書,例如目前是表示客戶機(jī)上用戶身份的XrML1.2證書的組身份證書(GIC)。該簽發(fā)系統(tǒng)313然后可用GIC向客戶機(jī)310作出回應(yīng)。
一示例性CLC請求情形是,客戶機(jī)310向簽發(fā)系統(tǒng)313發(fā)送請求以獲取授權(quán)用戶公布對離線受保護(hù)內(nèi)容的許可證的證書。在該情形中,CTE 311可將關(guān)聯(lián)于該請求的輸入RAC轉(zhuǎn)換成可由簽發(fā)引擎312處理的CLC。或者,客戶機(jī)310可發(fā)出由CTE 311轉(zhuǎn)換成SPC的GIC,且簽發(fā)器312可返回由CTE 311轉(zhuǎn)換成CLC的RAC。
諸如圖3C的系統(tǒng)可用于特許數(shù)字內(nèi)容中權(quán)限的示例性情形如下為了消費(fèi)權(quán)限受保護(hù)內(nèi)容,v1客戶機(jī)310可作出對簽發(fā)系統(tǒng)313的特許請求??蛻魴C(jī)310可向簽發(fā)系統(tǒng)313發(fā)送v1發(fā)布許可證-簽發(fā)許可證(IL),例如描述對特定保護(hù)內(nèi)容的作者指定使用權(quán)限的XrML 1.2證書,和GIC。然后CTE 311可轉(zhuǎn)換輸入的IL和RAC,并將它們給予簽發(fā)引擎312。如果簽發(fā)引擎312向客戶機(jī)310授予使用許可證(UL),例如授權(quán)特定用戶訪問特定受保護(hù)內(nèi)容的MPEG-REL證書,則CTE311也可將所簽發(fā)的UL轉(zhuǎn)換成終端用戶許可證(EUL),諸如授權(quán)特定用戶訪問特定受保護(hù)內(nèi)容的由v1客戶機(jī)310消費(fèi)的XrML 1.2證書。簽發(fā)系統(tǒng)313然后可將該UL發(fā)回客戶機(jī)310。
盡管眾多軟件設(shè)計(jì)可用來實(shí)現(xiàn)CTE 311,但如本領(lǐng)域技術(shù)人員所理解的,示例性CTE設(shè)計(jì)可包括三個(gè)組件CTE驅(qū)動器、證書轉(zhuǎn)換類和配置類。
在該設(shè)計(jì)中,CTE驅(qū)動器與服務(wù)器入口點(diǎn)301和服務(wù)器證書引擎305交互。在接收證書請求之后,驅(qū)動器創(chuàng)建相應(yīng)的證書轉(zhuǎn)換類、將配置數(shù)據(jù)傳送給轉(zhuǎn)換類、并調(diào)用轉(zhuǎn)換方法。然后證書轉(zhuǎn)換類例如使用諸如a)簽名確認(rèn),b)證書有效期間隔過期時(shí)間以及c)對該簽發(fā)器和受信任簽發(fā)器集作比較的技術(shù),來確認(rèn)所處理證書的簽名和有效期。證書轉(zhuǎn)換類還可將證書轉(zhuǎn)換成通用格式證書對應(yīng)體,并向CTE驅(qū)動器返回通用格式證書字符串、以及其它轉(zhuǎn)換-特定信息。
然后CTE驅(qū)動器使用通用格式證書來調(diào)用證書引擎305。在接收到由證書引擎305簽發(fā)的合成通用格式證書之后,CTE驅(qū)動器創(chuàng)建一證書轉(zhuǎn)換類,該類將所產(chǎn)生的通用格式證書轉(zhuǎn)換成第三格式的對應(yīng)證書,例如原始輸入證書的格式。
因而,CTE的示例性工作流可如下進(jìn)行獲得來自客戶機(jī)的證書請求按需確認(rèn)并解密所附證書將解密后的證書轉(zhuǎn)換成通用格式證書可替換某些信息(密鑰、SPC等)保存不能在通用格式證書中表示的任何信息調(diào)用證書簽發(fā)引擎獲得來自證書簽發(fā)引擎的已簽發(fā)通用格式證書按需解密已簽發(fā)的通用格式證書將解密后的已簽發(fā)通用格式證書轉(zhuǎn)換成客戶機(jī)格式證書可使用在前一步驟中保存的信息加密并簽名客戶機(jī)格式證書將客戶機(jī)格式化的證書發(fā)送給客戶機(jī)圖4示出證書簽發(fā)系統(tǒng)的簽發(fā)組件部分。一旦參照圖3A所述轉(zhuǎn)換完成,轉(zhuǎn)換后的證書表示可使用圖4所示的各種功能組件來處理。轉(zhuǎn)換組件未在圖4或圖5中示出以避免使示圖模糊。對于各個(gè)組件的示例性組合,參見圖3A。
客戶機(jī)40發(fā)送一個(gè)或多個(gè)聲明、及其對證書的請求。聲明是實(shí)體所作的任何斷定,以用來確定該實(shí)體是否有權(quán)得到證書。如果聲明經(jīng)校驗(yàn)為真,則客戶機(jī)實(shí)體40顯示它具有憑證。在向客戶機(jī)40簽發(fā)證書之前證書簽發(fā)策略最終會需要一個(gè)或多個(gè)憑證。這些憑證本身可由一個(gè)或多個(gè)證書證明。
認(rèn)證41、授權(quán)42和憑證格式化43是可由簽發(fā)組件執(zhí)行的示例性功能。如圖4所示,這些功能可按認(rèn)證41、授權(quán)42和憑證格式化43的順序連續(xù)地執(zhí)行。該順序在所有實(shí)施例中并非是必需的。取決于滿足客戶機(jī)請求的所需,41、42和43可獨(dú)立執(zhí)行,可執(zhí)行某些子組合,或者一個(gè)或多個(gè)這些功能可結(jié)合圖4中所示的有些其它功能來執(zhí)行。
當(dāng)連續(xù)執(zhí)行41、42和43時(shí),認(rèn)證過程41首先可確定聲明支持證書請求的客戶機(jī)40實(shí)際上是否是客戶機(jī)40所聲明的實(shí)體。如果這得到了證實(shí),則授權(quán)過程42可確定客戶機(jī)是否可獲得接收所請求證書的授權(quán)?;蛘?,授權(quán)過程42可簡便地確定客戶機(jī)40的授權(quán)級別,并將其記錄在所創(chuàng)建的證書中。最后,當(dāng)證書代表客戶機(jī)40產(chǎn)生時(shí),列示于證書中的客戶機(jī)40憑證可由43在所產(chǎn)生的證書中格式化。以下提供了可由證書簽發(fā)引擎44應(yīng)用的示例性算法簽發(fā)證書(用戶輸入證書,服務(wù)器簽發(fā)策略)
基于簽發(fā)策略認(rèn)證用戶輸入證書授權(quán)用于簽發(fā)證書的服務(wù)器如下構(gòu)建結(jié)果證書創(chuàng)建客戶機(jī)引擎需要認(rèn)證的創(chuàng)建簽發(fā)策略所允許的許可授權(quán)許可簽發(fā)調(diào)用擴(kuò)展以按需授權(quán)產(chǎn)生許可調(diào)用擴(kuò)展以按需產(chǎn)生許可的一部分構(gòu)建作為許可的用戶權(quán)限簽名所產(chǎn)生的證書返回該證書作為執(zhí)行認(rèn)證41、授權(quán)42和憑證格式化43功能的一部分,通用策略語言解析和實(shí)現(xiàn)引擎44可應(yīng)用證書簽發(fā)策略45。簽發(fā)組件在要實(shí)現(xiàn)的策略不在引擎44中表達(dá)而在由引擎44在運(yùn)行時(shí)間消費(fèi)的簽發(fā)策略45中表達(dá)的意義上,簽發(fā)組件是數(shù)據(jù)驅(qū)動的。
盡管現(xiàn)有技術(shù)證書簽發(fā)系統(tǒng)在產(chǎn)生證書時(shí)應(yīng)用并實(shí)現(xiàn)一策略,但該策略在現(xiàn)有技術(shù)簽發(fā)器中可用證書簽發(fā)系統(tǒng)二進(jìn)制碼表達(dá)為經(jīng)過編譯的算法,或者表達(dá)為配置參數(shù)的經(jīng)具體建模的“脆弱”集合。結(jié)果,改變該實(shí)現(xiàn)策略需要重新編碼、重新編譯、并重新使用新的證書簽發(fā)系統(tǒng)。換言之,所傳送的簽發(fā)器受限于實(shí)現(xiàn)證書簽發(fā)系統(tǒng)編程人員所預(yù)想的策略集。
證書簽發(fā)引擎44應(yīng)幾乎不或不包括預(yù)想策略結(jié)構(gòu)。相反,引擎44應(yīng)包含元數(shù)據(jù)驅(qū)動策略實(shí)施引擎,該引擎兌現(xiàn)它在運(yùn)行時(shí)間遭遇的來自45的特定策略數(shù)據(jù)。該策略數(shù)據(jù)45使用通用的為引擎44使用而設(shè)計(jì)的可擴(kuò)展策略表達(dá)語言。
引擎44最好用單一的通用策略表達(dá)語言來操作,并基于45中的可用策略和數(shù)據(jù)作授權(quán)判定。通過在同類策略表達(dá)語言格式上執(zhí)行該處理,引擎44的邏輯更簡單更為有效,并可優(yōu)化成選定的策略表達(dá)語言。通過數(shù)據(jù)驅(qū)動,引擎44可估算所表達(dá)策略的廣泛范圍,而不必改變引擎44的邏輯以容納新的策略、語義或結(jié)構(gòu)。如附圖所示的引擎44包括用于解析和實(shí)現(xiàn)策略45的功能組件,以及用于產(chǎn)生證書的功能組件。引擎44所產(chǎn)生的證書的形式可由策略45以及簽發(fā)策略的其它方面來管理。
用于表達(dá)策略45的策略表達(dá)語言可取各種各樣形式的任一種。所使用語言可以是諸如可擴(kuò)展標(biāo)記語言(XML)、超文本標(biāo)記語言(HTML)、或某些其它標(biāo)記語言的標(biāo)記語言。如本領(lǐng)域技術(shù)人員所理解的,可讀字和標(biāo)記的集可在這些語言中組合以精確地指定所需操作。諸如引擎44的機(jī)器進(jìn)程可被配置成在運(yùn)行時(shí)間消費(fèi)該形式的文件并實(shí)現(xiàn)所需操作。設(shè)計(jì)用于本發(fā)明的任何策略表達(dá)語言應(yīng)當(dāng)是穩(wěn)健的、可擴(kuò)展的和靈活的,以按需容納策略中的變化和語言語義的添加。標(biāo)記指字符或其它符號的序列,它們可插入文本或字處理文件中的某些地方以描述文檔的邏輯結(jié)構(gòu)。標(biāo)記指示符常常稱為“標(biāo)簽”。標(biāo)記可通過鍵入符號或通過使用編輯器并選擇預(yù)先打包的標(biāo)記符號(來保存鍵擊)而直接由文檔創(chuàng)建者插入。
XML是“可擴(kuò)展”的,因?yàn)椴幌馠TML,標(biāo)記符號是非限制和自定義的。XML實(shí)際上是標(biāo)準(zhǔn)通用標(biāo)記語言(SGML)的較簡單和便于使用的子集,SGML是如何創(chuàng)建文檔結(jié)構(gòu)的標(biāo)準(zhǔn)??深A(yù)期HTML和XML將在許多Web應(yīng)用程序中一起使用。例如,XML標(biāo)記可在HTML頁面內(nèi)顯現(xiàn)。這樣,用于本發(fā)明的特定語法可包括標(biāo)記語言的組合。
在圖4中,引擎44應(yīng)用以策略表達(dá)語言表達(dá)的并以數(shù)字格式存儲的策略45。策略45可顯現(xiàn)為一個(gè)或多個(gè)數(shù)字文件、或數(shù)據(jù)庫、或任何其它存儲的數(shù)據(jù)格式。本領(lǐng)域技術(shù)人員認(rèn)為數(shù)字文件可轉(zhuǎn)換成任何形式其各方面可被插入數(shù)據(jù)庫的各個(gè)字段,或者文件可從一格式轉(zhuǎn)換成另一格式。因而,盡管期望至少在開始時(shí)策略最好由人用文本編輯器可使用的數(shù)字格式,諸如通用文本(.txt)或文檔(.doc)格式的文件來創(chuàng)建,但這種初始數(shù)字文件可在存儲到45中之前轉(zhuǎn)換成任意數(shù)量的形式。不管數(shù)據(jù)的格式如何,如果客戶機(jī)有權(quán)得到所請求的證書,則在此表達(dá)的簽發(fā)策略45必須由客戶機(jī)40滿足。策略45還可管理所產(chǎn)生證書的格式,即它可包括用于證書格式化的策略。
簽發(fā)策略45最好由至少以下組成客戶機(jī)認(rèn)證要求客戶機(jī)授權(quán)要求證書簽發(fā)服務(wù)的授權(quán)要求授權(quán)實(shí)現(xiàn)指令為了再次將流行的MICROSOFT WINDOWSRights Management Server簽發(fā)器用作證書簽發(fā)系統(tǒng)的示例,本領(lǐng)域技術(shù)人員認(rèn)為該簽發(fā)器可用來實(shí)現(xiàn)用于受保護(hù)文檔和電子郵件的“信息權(quán)限管理”特征,例如MICROSOFTOffice 2003的信息權(quán)限管理特征。作為方案的一部分,WINDOWSRights Management Server的現(xiàn)有版本使用包括預(yù)想的硬編碼的脆弱簽發(fā)策略定義的簽發(fā)器。只可實(shí)現(xiàn)固定的眾所周知的簽發(fā)策略集-例如什么是受信任的應(yīng)用程序?什么用戶是具體排除的?什么實(shí)體受信任來簽發(fā)用戶標(biāo)識證書?權(quán)限管理軟件的什么版本必須由用戶在其桌面上運(yùn)行?
相反,WINDOWSRights Management Server的現(xiàn)有版本不能實(shí)現(xiàn)新的簽發(fā)策略,諸如什么是受用戶公司部門信任的應(yīng)用程序?哪類用戶是具體排除的(例如其網(wǎng)絡(luò)密碼將在少于7天內(nèi)過期的所有人)?什么特定證書是證書簽發(fā)系統(tǒng)信任要產(chǎn)生的?通過重新結(jié)構(gòu)化WINDOWSRights Management證書簽發(fā)服務(wù)的現(xiàn)有版本來實(shí)現(xiàn)在此所述的系統(tǒng)和方法,產(chǎn)品可用靈活的策略表達(dá)語言來理解和實(shí)現(xiàn)策略,且無需更改所使用的簽發(fā)器就可容納以上列示的新簽發(fā)策略以及任何其它可能簽發(fā)策略。只有45中的表達(dá)策略需要進(jìn)行改變。
證書簽發(fā)系統(tǒng)可發(fā)布其簽發(fā)策略45以及可用簽發(fā)證書格式集,以便于客戶機(jī)40發(fā)現(xiàn)過程、辨析等。以下是為進(jìn)行說明的一示例性簽發(fā)策略<r:license licenseId="f34e026a-836c-4557-97db-4368b3eddd14"xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS">
<r:title>RightsAccountCertificateIssuancePolicyRoot-Public</r:title>
<r:inventory>
<r:forAll licensePartId="LP0"varName="ValidityInterval">
<r:anXmlExpression>/r:validityInterval</r:anXmlExpression>
</r:forAll>
<r:forAll licensePartId="LP1"varName="AccountEncryptionPublicKey"/>
<r:keyHolder licensePartId="LP2">
<r:info>
<KeyNamexmlns="http://www.w3.org/2000/09/xmldsig#">RACIssuancePolicyRoot</KeyName>
<KeyValue xmlns="http://www.w3.org/2000/09/xmldsig#">
<RSAKeyValue><Modulus>rrREhbeyebCOsKWeVh7KSc6oFJj6zZX8vJQQDKWxpDjwm7EvbSSgwt/3/ZVN5QJa8vclZ061gkp5hRGCslVvJzSVs+duOcaz519uQXTCXft0tVuQkv7LCktbT5aKOpUuoDs26Hs/Vw4Cg4IJwbMAmyuAZ27o6ngd1LlVm7o/rr0=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</KeyValue>
</r:info>
</r:keyHolder>
<r:forAll licensePartId="LP3"varName="PrivateKey">
<r:anXmlExpression>/tm:privateKey/xkms:RSAKeyValue</r:anXmlExpression>
</r:forAll>
<r:forAll licensePartId="LP4"varName="Licensor">
<r:propertyPossessor>
<trustedLicensor xmlns="tm"/>
<r:trustedRootIssuers>
<r:keyHolder licensePartIdRef="LP2"/>
</r:trustedRootIssuers>
</r:propertyPossessor>
</r:forAll>
<r:forAll licensePartId="LP5"varName="SidPrincipal">
<r:anXmlExpression>/tm:sidPrincipal</r:anXmlExpression>
</r:forAll>
</r:inventory>
<r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP1"/>
<r:forAll licensepartIdRef="LP0"/>
<r:forAll varName="AccountInfo">
<r:anXmlExpression>/tm:account/tm:identity[@type="urn:msft:tm:identity:rfc822"andcontains("microsoft.com")]</r:anXmlExpression>
</r:forAll>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:keyHolder varRef="AccountEncryptionPublicKey"/>
<r:possessProperty/>
<account varRef="AccountInfo"xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2"/>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant>
<r:validityInterval>
<r:notBefore>2004-05-20T09:48:49Z</r:notBefore>
<r:notAfter>2004-05-20T09:48:49Z</r:notAfter>
</r:validityInterval></r:grant><r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP1"/>
<r:forAll licensePartIdRef="LP0"/>
<r:forAll varName="KeyUsageInfo">
<r:anXmlExpression>/tm:keyUsage[@uri="urn:msft:tm:keyUsage:encryption"or@uri="urn:msft:tm:keyUsage:signing"]</r:anXmlExpression>
</r:forAll>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:keyHolder varRef="AccountEncryptionPublicKey"/>
<r:possessProperty/>
<keyUsage varRef="KeyUsageInfo"xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2"/>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant></r:grant><r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP1"/>
<r:forAll licensePartIdRef="LP0"/>
<r:forAll varName="BindingPrincipalInfo">
<r:anXmlExpression>/tm:bindingPrincipals/r:allPrincipals/tm:sidPrincipal</r:anXmlExpression>
</r:forAll>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:keyHolder varRef="AccountEncryptionPublicKey"/>
<r:possessProperty/>
<bindingPrincipals varRef="BindingPrincipalInfo"xmlns=″http://www.microsoft.com/DRM/XrML2/TM/v2"/>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant></r:grant><r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP1"/>
<r:forAll licensePartIdRef="LP0"/>
<r:forAll varName="CertificationPrincipalInfo"><r:anXmlExpression>/tm:ceerificationPrincipals/r:allPrincipals/tm:sidPrincipal</r:anXmlExpression>
</r:forAll>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:keyHolder varRef="AccountEncryptionPublicKey"/>
<r:possessProperty/>
<certificationPrincipals varRef="CertificationPrincipalInfo"xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2"/>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant>
</r:grant>
<r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP1"/>
<r:forAll licensePartIdRef="LP0"/>
<r:forAll varName="TrustedSecurityProcessor">
<r:propertyPossessor>
<trustedSecurityProcessor xmlns="tm"/>
<r:trustedRootIssuers>
<r:keyHolder licensePartIdRef="LP2"/>
</r:trustedRootIssuers>
</r:propertyPossessor>
</r:forAll>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:keyHolder varRef="TrustedSecurityProcessor"/>
<r:possessProperty/>
<holdsPrivateKey xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2">
<r:keyHolder varRef="AccountEncryptionPublicKey"/>
</holdsPrivateKey>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant>
</r:grant>
<r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP1"/>
<r:forAll licensePartIdRef="LP0"/>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:forAll varName="TrustedSecurityProcessor">
<r:propertyPossessor>
<trustedSecurityProcessor xmlns="tm"/>
<r:trustedRootIssuers>
<r:keyHolder licensePartIdRef="LP2"/>
</r:trustedRootIssuers>
</r:propertyPossessor>
</r:forAll>
<r:principal varRef="TrustedSecurityProcessor"/>
<receivePrivateKey xmlns="tm"/>
<r:keyHolder varRef="AccountEncryptionPublicKey"/>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant>
</r:grant>
<r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP3"/>
<r:forAll licensePartIdRef="LP5"/>
<r:forAll licensePartIdRef="LP0"/>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:allPrincipals>
<sidPrincipal varRef="SidPrincipal"xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2"/>
</r:allPrincipals>
<decryptWithPrivateKey xmlns="tm"/>
<privateKey varRef="PrivateKey"xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2"/>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant>
</r:grant>
<r:grant>
<r:forAll licensePartIdRef="LP4"/>
<r:forAll licensePartIdRef="LP3"/>
<r:forAll licensePartIdRef="LP5"/>
<r:forAll licensePartIdRef="LP0"/>
<r:principal varRef="Licensor"/>
<r:issue/>
<r:grant>
<r:allPrincipals>
<sidPrincipal varRef="SidPrincipal"xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2"/>
</r:allPrincipals>
<signWithPrivateKey xmlns="tm"/>
<privateKey varRef="PrivateKey"xmlns="http://www.microsoft.com/DRM/XrML2/TM/v2"/>
<r:validityInterval varRef="ValidityInterval"/>
</r:grant>
</r:grant>
<r:issuer xmlns:r="urn:mpeg:mpeg21:2003:01-REL-R-NS">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.microsoft.com/xrml/lwc14n"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-shal"/>
<Reference>
<Transforms>
<Transform Algorithm="urn:mpeg:mpeg21:2003:01-REL-R-NS:licenseTransform"/>
<Transform Algorithm="http://www.microsoft.com/xrml/lwc14n"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#shal"/>
<DigestValue>ZYG/bsCMxs5FhAT/atoXYGRuQ6Y=</DigestValue>
</Reference>
</SignedInfo><SignatureValue>Jd72Kt3h1fTYigxaYlrjaES+RLzmMZjr7bJBb9236GD7tty90zmZQxpYqTrA9D/qmrca5k84BGzefXodP8uLokDxUkpdXEI4aVurCDjP7cHwtOnZdMR5ATMvSgPn4kLHZ6E0g2pX7gjAm8jItvmD49Sa2D9CKjOtORq5zEkQMLc=</SignatureValue>
<KeyInfo>
<KeyValue>
<RSAKeyValue><Modulus>rrREhbeyebCOsKWeVh7KSc6oFJj6zZX8vJQQDKWxpDjwm7EvbSSgwt/3/ZVN5QJa8vclZ061gkp5hRGCslVvJzSVs+duOcaz519uQXTCXft0tVuQkv7LCktbT5aKOpUuoDs26Hs/Vw4Cg4IJwbMAmyuAZ27o6ngd1Ll Vm7o/rr0=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
</KeyValue>
</KeyInfo>
</Signature>
<r:details>
<r:timeOflssue>2004-05-20T09:48:49Z</r:timeOflssue>
</r:details>
</r:issuer>
<r:otherInfo>
<tm:infoTables xmlns:tm="http://www.microsoft.com/DRM/XrML2/TM/v2">
<tm:infoList tag="#LicenseType">
<tm:infoStr name="licenseRole">RightsAccountCertificateIssuancePolicy</tm:infoStr>
<tm:infoStr name="licenseVersion">1.0</tm:infoStr>
<tm:infoStrname="licenseType">RightsAccountCertificateIssuancePolicy-Public</tm:infoStr>
<tm:infoStr name="licensorUrl">http://rms.microsoft.com/rms/certification</tm:infoStr>
</tm:infoList>
</tm:info Tables>
</r:otherInfo></r:license>
圖5示出一種系統(tǒng)和方法,用于擴(kuò)展簽發(fā)組件以應(yīng)用和實(shí)現(xiàn)策略表達(dá)語言和/或策略語言解析和實(shí)現(xiàn)引擎56不會自然支持的新簽發(fā)策略。當(dāng)策略語言語法通過組合附加數(shù)據(jù)59和簽發(fā)策略數(shù)據(jù)58而得到擴(kuò)展時(shí),處理擴(kuò)展后策略表達(dá)語言結(jié)構(gòu)的語義的插件邏輯55可被添加到實(shí)現(xiàn)引擎56中。當(dāng)例如通過將通配符替代模式數(shù)據(jù)60添加到簽發(fā)策略數(shù)據(jù)58來使用自然策略語言通配符時(shí),處理擴(kuò)展通配符替換模式60的插件邏輯57可被添加到實(shí)現(xiàn)引擎56中。
數(shù)據(jù)驅(qū)動的策略評估引擎56可被設(shè)計(jì)成預(yù)測它不理解或不打算處理的證書的語義。這些證書語義的可擴(kuò)展性機(jī)制可被呈現(xiàn),從而可詢問用于該證書的諸如55或57的定制邏輯,以用良好定義的方式來提供值、執(zhí)行定制處理、或以其它方式處理未知語義。該處理的結(jié)果可反饋到策略估算引擎56中并可能影響確定對證書權(quán)利的最終結(jié)果。
估計(jì)至少有兩種機(jī)制可用于擴(kuò)展簽發(fā)組件。首先通過在上面建立可擴(kuò)展策略表達(dá)語言(例如發(fā)揮XML可擴(kuò)展性的語言),并提供適當(dāng)?shù)闹T如55的插件機(jī)制,證書簽發(fā)系統(tǒng)可支持對其客戶的定制可擴(kuò)展性。其次,通過將通配符替換模式的概念包括在其策略表達(dá)語言中并提供諸如57的適當(dāng)插件機(jī)制,簽發(fā)器可支持對其客戶的定制可擴(kuò)展性。
從用于擴(kuò)展簽發(fā)組件的第一所述選項(xiàng)開始,策略表達(dá)語言語法在較佳實(shí)施例中是可擴(kuò)展的,策略實(shí)現(xiàn)引擎56可預(yù)先配置成“知道”如何兌現(xiàn)策略表達(dá)語言的原始方面的語義含義。然而,如果策略表達(dá)語言的語義得到擴(kuò)展,則必須也擴(kuò)展引擎56。
策略表達(dá)語言的擴(kuò)展可在引擎56可訪問的數(shù)字?jǐn)?shù)據(jù)59中陳述。這種擴(kuò)展可表現(xiàn)為一個(gè)或多個(gè)文件、或數(shù)據(jù)庫、或任何其它已存儲的數(shù)據(jù)格式。盡管擴(kuò)展最好由人用文本編輯器可使用的格式,諸如通用文本(.txt)或文檔(.doc)格式的文件來創(chuàng)建,但這種初始文件可在存儲之前轉(zhuǎn)換成任意數(shù)量的形式。不管數(shù)據(jù)的格式如何,在此表達(dá)的簽發(fā)策略擴(kuò)展59可由定制邏輯55訪問,以使用擴(kuò)展后的策略表達(dá)語法59來應(yīng)用并實(shí)現(xiàn)所表達(dá)策略。
為了完成它,引擎56可被配置成允許諸如55的擴(kuò)展后邏輯(“插件”)進(jìn)行登記。插件55可提供對策略表達(dá)語言的任何新語法擴(kuò)展59的語義支持。因而非預(yù)期的客戶要求無需檢查引擎56本身或策略表達(dá)語言的原始使用語法就可得到解決。策略表達(dá)語言被理想地設(shè)計(jì)成語法支持?jǐn)U展。
一示例可有助于闡明使用插件55的引擎的可擴(kuò)展性。假設(shè)證書簽發(fā)系統(tǒng)與包含表示用戶PKI身份的元素的XML策略表達(dá)語言一起發(fā)送……可能它看起來如下所示<user>
<name>George Washington</name>
<publickey>1234567890</publickey>
</user>
證書簽發(fā)系統(tǒng)可能想要擴(kuò)展用戶的概念,以包括用戶的企業(yè)低權(quán)重目錄訪問協(xié)議(LDAP)身份。包括LDAP語法的策略語言擴(kuò)展可在需要時(shí)用對證書簽發(fā)系統(tǒng)數(shù)據(jù)庫執(zhí)行LDAP查詢的代碼來支持。在該情形中,擴(kuò)展后的策略語言結(jié)構(gòu)看起來如下所示<user>
<name>George Washington</name>
<publickey>1234567890</publickey>
<extension:ldapid>georgewashington</extension:ldapid>
</user>
此外,稱為插件55的用LDAP查詢校驗(yàn)用戶的代碼將進(jìn)行編碼,并向證書簽發(fā)系統(tǒng)進(jìn)行登記。該插件55將在遇到擴(kuò)展后策略表達(dá)語言語法時(shí)由引擎56調(diào)用。注意,在某些實(shí)施例中,使用擴(kuò)展后語法而不登記插件是可能的。這可通過將系統(tǒng)的擴(kuò)展后語法添加到輸入/輸出證書以及由引擎揭示的簽發(fā)策略中來完成。
現(xiàn)在參看用于擴(kuò)展簽發(fā)組件的第二部分,所使用的策略表達(dá)語言可包括通配符替代參數(shù)。通配符替代參數(shù)可在原始簽發(fā)策略58中陳述,或者通過使附加數(shù)據(jù)60可用于補(bǔ)充原始策略58來添加到策略中。
通配符替換模式60可表現(xiàn)為一個(gè)或多個(gè)文件、或數(shù)據(jù)庫、或任何其它已存儲的數(shù)據(jù)格式。盡管初始替換模式最好由人用文本編輯器可使用的格式,諸如通用文本(.txt)或文檔(.doc)格式的文件來創(chuàng)建,但這種初始文件可在存儲到60中之前轉(zhuǎn)換成任意數(shù)量的形式。不管數(shù)據(jù)的格式如何,在此表達(dá)的通配符替換模式60可由定制邏輯57訪問,以使用定制邏輯57指示的方式來應(yīng)用并實(shí)現(xiàn)通配符。
如果策略表達(dá)語言包括其語法內(nèi)的通配符定義60,且引擎56提供一機(jī)制來登記選擇特定所需值的定制邏輯57,則這向證書簽發(fā)系統(tǒng)提供可擴(kuò)展性的另一途徑。
再一次,一示例可有助于闡明。示例性證書簽發(fā)系統(tǒng)可包含定義已簽發(fā)格式的策略。例如,服務(wù)可包含表述服務(wù)可向客戶機(jī)簽發(fā)“受信任雇員證書”的證書簽發(fā)策略。因?yàn)楹灠l(fā)者必須對客戶機(jī)的動態(tài)世界作出響應(yīng),通配符證書簽發(fā)策略可被結(jié)構(gòu)化為證書簽發(fā)系統(tǒng)可向它認(rèn)為適當(dāng)?shù)娜魏慰蛻魴C(jī)簽發(fā)“受信任雇員證書”。
然后證書簽發(fā)系統(tǒng)所有人可定義并登記例如57的邏輯,它填入客戶機(jī)“認(rèn)為適當(dāng)”的說明書中。邏輯57可確定在特定服務(wù)調(diào)用期間應(yīng)向哪些客戶機(jī)簽發(fā)“受信任雇員證書”。該理解57可在遇到證書簽發(fā)策略中更一般的通配符定義從句時(shí)由證書簽發(fā)系統(tǒng)來調(diào)用。
按照可根據(jù)圖1和2中提供的一般框架建立的不同計(jì)算環(huán)境,在此提供的系統(tǒng)和方法不能解釋為以任何方式受限于特定計(jì)算框架。相反,本發(fā)明不應(yīng)解釋為限于任何單個(gè)實(shí)施例,而相反應(yīng)根據(jù)所附權(quán)利要求在寬度和范圍內(nèi)進(jìn)行解釋。
權(quán)利要求
1.一種用于響應(yīng)于客戶機(jī)請求產(chǎn)生證書的證書簽發(fā)系統(tǒng),包括轉(zhuǎn)換組件,用于接收第一格式的第一證書并將所述第一證書轉(zhuǎn)換成第二格式;簽發(fā)組件,用于通過對來自所述第一證書的信息和證書簽發(fā)策略作比較,來確定所述客戶機(jī)是否有權(quán)得到第二證書,并用于在所述第一證書確定所述客戶機(jī)具有所述證書簽發(fā)策略所需的至少一個(gè)憑證時(shí)產(chǎn)生所述第二證書。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述第二證書由所述簽發(fā)組件以所述第二格式產(chǎn)生。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述簽發(fā)組件包括用于與實(shí)現(xiàn)證書簽發(fā)策略的一般表達(dá)的定制組件通信的接口。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述簽發(fā)組件包括用于與實(shí)現(xiàn)證書簽發(fā)策略的擴(kuò)展的定制組件通信的接口。
5.如權(quán)利要求1所述的系統(tǒng),還包括用于向所述客戶機(jī)傳送所述證書簽發(fā)策略的組件。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述客戶機(jī)身份在所述第一證書確定所述客戶機(jī)具有所述至少一個(gè)憑證時(shí)得到認(rèn)證。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述客戶機(jī)授權(quán)在所述第一證書確定所述客戶機(jī)具有所述至少一個(gè)憑證時(shí)得到確定。
8.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述證書簽發(fā)策略包括對所述第二證書的形式的要求,且其中所述簽發(fā)組件根據(jù)所述形式產(chǎn)生所述第二證書。
9.一種用于向客戶機(jī)簽發(fā)安全證書的方法,包括將第一證書從第一格式轉(zhuǎn)換成第二格式;通過對來自所述第一證書的信息和證書簽發(fā)策略作比較,來確定所述客戶機(jī)是否有權(quán)得到第二證書;以及如果所述第一證書確定所述客戶機(jī)具有證書簽發(fā)策略所需的至少一個(gè)憑證,則產(chǎn)生所述第二證書。
10.如權(quán)利要求9所述的方法,其特征在于,所述第二證書以所述第二格式產(chǎn)生。
11.如權(quán)利要求10所述的方法,還包括將所述第二證書從第二格式轉(zhuǎn)換成第三格式,其中所述第三格式和所述第一格式可以是相同的格式。
12.如權(quán)利要求9所述的方法,還包括與定制軟件組件通信,以實(shí)現(xiàn)所述證書簽發(fā)策略的擴(kuò)展。
13.如權(quán)利要求9所述的方法,其特征在于,客戶機(jī)身份在所述第一證書確定所述客戶機(jī)具有至少一個(gè)憑證時(shí)得到認(rèn)證。
14.如權(quán)利要求9所述的方法,其特征在于,產(chǎn)生所述第二證書包括從所述證書簽發(fā)策略中確定對所述第二證書的形式的至少一個(gè)要求。
15.一種具有用于向客戶機(jī)簽發(fā)安全證書的指令的計(jì)算機(jī)可讀介質(zhì),包括用于將第一證書從第一格式轉(zhuǎn)換成第二格式的指令;用于通過對來自所述第一證書的信息和證書簽發(fā)策略作比較,來確定所述客戶機(jī)是否有權(quán)得到第二證書的指令;以及用于當(dāng)所述第一證書確定所述客戶機(jī)具有證書簽發(fā)策略所需的憑證時(shí)產(chǎn)生所述第二證書的指令。
16.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述第二證書以所述第二格式產(chǎn)生。
17.如權(quán)利要求16所述的計(jì)算機(jī)可讀介質(zhì),還包括用于將所述第二證書從第二格式轉(zhuǎn)換成第三格式的指令,其中所述第三格式和所述第一格式可以是相同的格式。
18.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),還包括用于與定制軟件組件通信,以實(shí)現(xiàn)所述證書簽發(fā)策略的擴(kuò)展的指令。
19.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,客戶機(jī)身份在所述第一證書確定所述客戶機(jī)具有至少一個(gè)憑證時(shí)得到認(rèn)證。
20.如權(quán)利要求15所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,用于產(chǎn)生所述第二證書的指令包括從所述證書簽發(fā)策略中確定對所述第二證書的形式的至少一個(gè)要求的指令。
全文摘要
一種經(jīng)改進(jìn)的證書簽發(fā)系統(tǒng)可包括一證書轉(zhuǎn)換引擎,該證書轉(zhuǎn)換引擎用于將輸入的證書和證書請求從第一格式轉(zhuǎn)換成第二格式。證書簽發(fā)引擎然后可用通用格式在輸入請求上進(jìn)行操作。簽發(fā)引擎可根據(jù)其證書簽發(fā)策略向客戶機(jī)簽發(fā)證書。該策略可用策略表達(dá)語言表達(dá)為可在運(yùn)行時(shí)間消費(fèi)的數(shù)據(jù),它提供簽發(fā)策略的靈活和有效改變。所簽發(fā)的證書可被轉(zhuǎn)換回由請求客戶機(jī)消費(fèi)的格式。這種轉(zhuǎn)換可在將證書傳送給請求客戶機(jī)之前由轉(zhuǎn)換引擎執(zhí)行。
文檔編號H04L9/32GK1832395SQ20061000447
公開日2006年9月13日 申請日期2006年2月13日 優(yōu)先權(quán)日2005年3月11日
發(fā)明者C·F·羅斯三世, G·科斯塔爾, M·帕拉馬斯萬姆, R·N·潘迪亞, S·C·科特里勒, V·K·拉弗拉, V·亞爾莫萊恩克, 鐘昱暉 申請人:微軟公司