午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

用于升級(jí)到基于證書的認(rèn)證而不打斷現(xiàn)有ssl會(huì)話的方法和系統(tǒng)的制作方法

文檔序號(hào):7607178閱讀:177來源:國知局
專利名稱:用于升級(jí)到基于證書的認(rèn)證而不打斷現(xiàn)有ssl會(huì)話的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種改進(jìn)的數(shù)據(jù)處理系統(tǒng),特別涉及一種用于多計(jì)算機(jī)數(shù)據(jù)傳輸?shù)姆椒ê脱b置。更具體地說,本發(fā)明提供了一種用于使用加密技術(shù)的多計(jì)算機(jī)通信的方法和裝置。
背景技術(shù)
電子商務(wù)網(wǎng)站和萬維網(wǎng)應(yīng)用代表用戶在計(jì)算機(jī)網(wǎng)絡(luò)上執(zhí)行事務(wù)。為了安全起見,用戶通常必須通過認(rèn)證過程,以便在適當(dāng)?shù)目煽考?jí)別上證實(shí)用戶的身份。
很多計(jì)算機(jī)系統(tǒng)針對(duì)不同的安全級(jí)別具有不同類型的認(rèn)證。例如,在成功完成由用戶提供正確的用戶名和密碼組合的第一級(jí)認(rèn)證之后,系統(tǒng)可以提供對(duì)網(wǎng)站上的特定一組資源的訪問。第二級(jí)認(rèn)證可能要求用戶提供例如智能卡的硬件令牌(token),此后用戶被提供對(duì)網(wǎng)站上的受到更嚴(yán)格控制的資源的訪問。第三級(jí)認(rèn)證可能要求用戶提供某種形式的生物測(cè)量數(shù)據(jù),例如通過指紋掃描或視網(wǎng)膜掃描,此后系統(tǒng)提供對(duì)網(wǎng)站上的非常敏感或機(jī)密的資源的訪問。
從一個(gè)認(rèn)證級(jí)別上升到下一個(gè)級(jí)別的處理稱為“升級(jí)認(rèn)證”。換句話說,為了獲得對(duì)更敏感的資源的訪問,用戶按照系統(tǒng)的要求從一個(gè)認(rèn)證級(jí)別升級(jí)到更高的級(jí)別。
在基于萬維網(wǎng)的電子商務(wù)環(huán)境中,計(jì)算機(jī)系統(tǒng)通常將認(rèn)證服務(wù)實(shí)現(xiàn)為用于訪問網(wǎng)站的前門或崗哨口的形式。這些認(rèn)證服務(wù)位于應(yīng)用程序的前端,即,在用戶和應(yīng)用程序之間,以便確保用戶在獲得對(duì)任何資源的訪問之前被認(rèn)證。可以將這些認(rèn)證服務(wù)實(shí)現(xiàn)為萬維網(wǎng)服務(wù)器的插件、反向代理、或其它類似技術(shù)。關(guān)于這些認(rèn)證服務(wù)的潛在問題是它們通常使用用戶名/密碼認(rèn)證并且不能升級(jí)到使用基于客戶端的證書的認(rèn)證方法。一般認(rèn)為基于證書的認(rèn)證過程實(shí)現(xiàn)了比基于用戶名/密碼的認(rèn)證過程更高的安全級(jí)別。
基于證書的認(rèn)證涉及使用公開/私有非對(duì)稱加密密鑰對(duì);數(shù)字證書將被證明用戶的身份與公開加密密鑰綁定在一起。在基于證書的認(rèn)證過程期間,用戶將他或她的數(shù)字證書提供給認(rèn)證服務(wù),并且用戶被要求證實(shí)該用戶具有對(duì)與公開密鑰相對(duì)應(yīng)的私有加密密鑰的訪問權(quán)。例如,認(rèn)證服務(wù)將某種形式的詢問數(shù)據(jù)提供給用戶的客戶端計(jì)算機(jī),然后該客戶端計(jì)算機(jī)用用戶的私有加密密鑰對(duì)詢問數(shù)據(jù)進(jìn)行簽名,并且認(rèn)證服務(wù)可以用用戶的公開密鑰來驗(yàn)證數(shù)字簽名。如果認(rèn)證服務(wù)確定了以用戶的私有密鑰對(duì)詢問數(shù)據(jù)進(jìn)行了正確的簽名,則由于私有密鑰應(yīng)當(dāng)總是由其身份被存儲(chǔ)在證書中的用戶保密,因此認(rèn)證服務(wù)在很高的程度上驗(yàn)證了用戶的身份。
升級(jí)到基于證書的認(rèn)證過程的操作通常是不可能的。出現(xiàn)問題的典型原因是為了較低級(jí)別的非基于證書的認(rèn)證如用戶名/密碼組合而在客戶端和服務(wù)器之間已經(jīng)建立了相互認(rèn)證的SSL會(huì)話。如果需要基于證書的認(rèn)證過程的認(rèn)證服務(wù)不能控制SSL堆棧,這對(duì)于大多數(shù)可購得產(chǎn)品而言都是如此,例如,它可能以某種方式被嵌入到操作系統(tǒng)中,則認(rèn)證服務(wù)不能強(qiáng)制建立新的SSL會(huì)話。因此,認(rèn)證服務(wù)不能在保持活動(dòng)的SSL會(huì)話的同時(shí),從在活動(dòng)的SSL會(huì)話上已經(jīng)發(fā)生的基于用戶名/密碼的認(rèn)證過程升級(jí)到基于證書的認(rèn)證過程。
因此,具有這樣一種方法和系統(tǒng)將是有利的,其能夠從非基于證書的認(rèn)證過程升級(jí)到基于證書的認(rèn)證過程而無需退出或重新協(xié)商先前建立的SSL會(huì)話,以便為了某種目的而獲得由認(rèn)證服務(wù)要求的較高的安全級(jí)別。

發(fā)明內(nèi)容
提出了一種用于執(zhí)行認(rèn)證操作的方法。當(dāng)客戶端向服務(wù)器請(qǐng)求資源時(shí),在服務(wù)器和客戶端之間通過SSL(安全套接字層)會(huì)話來執(zhí)行非基于證書的認(rèn)證操作。當(dāng)客戶端請(qǐng)求另一資源時(shí),服務(wù)器確定要升級(jí)到具有更大限制性的認(rèn)證級(jí)別,并且通過SSL會(huì)話執(zhí)行基于證書的認(rèn)證操作,而無需在完成基于證書的認(rèn)證操作之前退出或重新協(xié)商SSL會(huì)話。在基于證書的認(rèn)證過程期間,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端,此后服務(wù)器通過SSL會(huì)話接收在客戶端由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名。響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,服務(wù)器提供對(duì)所請(qǐng)求資源的訪問。


被認(rèn)為是本發(fā)明的特征的具有新穎性的特征在所附權(quán)利要求中加以闡述。通過參考下面結(jié)合附圖閱讀的詳細(xì)描述,將最佳地理解本發(fā)明本身、及其另外的目的和優(yōu)點(diǎn),其中圖1A示出了典型的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò),其中每個(gè)數(shù)據(jù)處理系統(tǒng)都可以實(shí)現(xiàn)本發(fā)明;圖1B示出了可以在可實(shí)現(xiàn)本發(fā)明的數(shù)據(jù)處理系統(tǒng)中使用的典型計(jì)算機(jī)架構(gòu);圖1C示出了當(dāng)客戶端企圖訪問服務(wù)器上的受保護(hù)資源時(shí)可以使用的典型認(rèn)證處理的數(shù)據(jù)流圖;圖1D示出了用于包括多個(gè)認(rèn)證服務(wù)器的企業(yè)域的典型數(shù)據(jù)處理系統(tǒng)的方框圖;圖2示出了根據(jù)本發(fā)明的已被擴(kuò)展為包括升級(jí)認(rèn)證處理的認(rèn)證服務(wù)的方框圖;圖3示出了用于在保持活動(dòng)的、相互認(rèn)證的SSL會(huì)話的同時(shí),從較低級(jí)別、非基于證書的認(rèn)證過程升級(jí)到較高級(jí)別、基于證書的認(rèn)證過程的處理的流程圖;圖4示出了根據(jù)本發(fā)明實(shí)施例的基于證書的升級(jí)認(rèn)證操作在服務(wù)器上的具體處理的更多詳情的流程圖;以及圖5示出了根據(jù)本發(fā)明實(shí)施例的基于證書的升級(jí)認(rèn)證操作在客戶端上的處理的流程圖。
具體實(shí)施例方式
一般而言,可以包括或涉及本發(fā)明的設(shè)備包括多種數(shù)據(jù)處理技術(shù)。因此,作為背景,在更詳細(xì)描述本發(fā)明之前,描述在分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件和軟件組件的典型組織。
現(xiàn)在參考附圖,圖1A示出了典型的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò),其中每個(gè)數(shù)據(jù)處理系統(tǒng)可以實(shí)現(xiàn)本發(fā)明的一部分。分布式數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)101,其是可以用來在分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)連接在一起的各種設(shè)備和計(jì)算機(jī)之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)101可以包括諸如電線或光纜的永久連接、或通過電話或無線通信而創(chuàng)建的臨時(shí)連接。在所示例子中,服務(wù)器102和服務(wù)器103隨同存儲(chǔ)單元104一起連接到網(wǎng)絡(luò)101。此外,客戶端105-107也連接到網(wǎng)絡(luò)101??蛻舳?05-107和服務(wù)器102-103可以由各種計(jì)算設(shè)備來代表,例如大型機(jī)、個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字助手(PDA)等。分布式數(shù)據(jù)處理系統(tǒng)100可以包括未示出的附加的服務(wù)器、客戶端、路由器、其它設(shè)備、以及對(duì)等架構(gòu)。
在所示例子中,分布式數(shù)據(jù)處理系統(tǒng)100可包括因特網(wǎng),其中網(wǎng)絡(luò)101代表使用各種協(xié)議相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全球集合,例如,輕量級(jí)目錄訪問協(xié)議(LDAP)、傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)、超文本傳輸協(xié)議(HTTP)、無線應(yīng)用協(xié)議(WAP)等。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100還可包括大量不同類型的網(wǎng)絡(luò),例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。例如,服務(wù)器102直接支持客戶端109和包括無線通信鏈路的網(wǎng)絡(luò)110。支持網(wǎng)絡(luò)的電話111通過無線鏈路112連接到網(wǎng)絡(luò)110,并且PDA 113通過無線鏈路114連接到網(wǎng)絡(luò)110。電話111和PDA 113還可使用適當(dāng)?shù)募夹g(shù)如藍(lán)牙TM無線技術(shù)跨越無線鏈路115相互直接傳輸數(shù)據(jù),以創(chuàng)建所謂的個(gè)人區(qū)域網(wǎng)(PAN)或個(gè)人專用網(wǎng)。以類似的方式,PDA 113可通過無線通信鏈路116傳輸數(shù)據(jù)到PDA 107。
本發(fā)明可在各種硬件平臺(tái)上實(shí)現(xiàn);圖1A旨在作為異構(gòu)計(jì)算環(huán)境的示例,而不作為對(duì)本發(fā)明的架構(gòu)限制。
現(xiàn)在參考圖1B,其是示出了可實(shí)現(xiàn)本發(fā)明的如圖1A所示的數(shù)據(jù)處理系統(tǒng)的典型計(jì)算機(jī)架構(gòu)的圖。數(shù)據(jù)處理系統(tǒng)120包含一個(gè)或多個(gè)連接到內(nèi)部系統(tǒng)總線123的中央處理單元(CPU)122,其中內(nèi)部系統(tǒng)總線123互連隨機(jī)存取存儲(chǔ)器(RAM)124、只讀存儲(chǔ)器126和輸入/輸出適配器128,輸入/輸出適配器128支持各種I/O設(shè)備如打印機(jī)130、盤單元132,或者未示出的其它設(shè)備如音頻輸出系統(tǒng)等。系統(tǒng)總線123還連接通信適配器134,其提供對(duì)通信鏈路136的訪問。用戶接口適配器148連接各種用戶設(shè)備如鍵盤140和鼠標(biāo)142或者未示出的其它設(shè)備如觸摸屏、輸入筆、麥克風(fēng)等。顯示適配器144將系統(tǒng)總線123連接到顯示設(shè)備146。
本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,圖1B中的硬件可根據(jù)系統(tǒng)實(shí)現(xiàn)而變化。例如,該系統(tǒng)可具有一個(gè)或多個(gè)處理器,如基于IntelPentium的處理器和數(shù)字信號(hào)處理器(DSP),以及一種或多種類型的易失性和非易失性存儲(chǔ)器。作為圖1B所示的硬件的補(bǔ)充或替代,可使用其它外圍設(shè)備。所示例子并不意味著作為對(duì)本發(fā)明的架構(gòu)限制。
除了能夠在各種硬件平臺(tái)上實(shí)現(xiàn)之外,本發(fā)明還可在各種軟件環(huán)境中實(shí)現(xiàn)。典型的操作系統(tǒng)可用來控制每個(gè)數(shù)據(jù)處理系統(tǒng)內(nèi)的程序執(zhí)行。例如,一個(gè)設(shè)備可運(yùn)行Unix操作系統(tǒng),而另一個(gè)設(shè)備包含簡(jiǎn)單Java運(yùn)行時(shí)環(huán)境。代表性計(jì)算機(jī)平臺(tái)可包括瀏覽器,其是用于訪問采用各種格式和語言的超文本文檔如圖形文件、字處理文件、可擴(kuò)展標(biāo)記語言(XML)、超文本標(biāo)記語言(HTML)、手持設(shè)備標(biāo)記語言(HDML)、無線標(biāo)記語言(WML)以及各種其它格式和類型的文件的公知軟件應(yīng)用程序。
本發(fā)明可在各種硬件和軟件平臺(tái)上實(shí)現(xiàn),如上面參照?qǐng)D1A和圖1B所述。更具體地說,本發(fā)明針對(duì)一種改進(jìn)的認(rèn)證服務(wù)。在詳細(xì)描述該改進(jìn)的認(rèn)證服務(wù)之前,首先描述一種典型的認(rèn)證服務(wù)。
附圖描述在此包括客戶端設(shè)備或客戶端設(shè)備用戶的特定操作。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,到/從客戶端的響應(yīng)/請(qǐng)求有時(shí)由用戶發(fā)起,而有時(shí)由客戶端通常代表客戶端用戶自動(dòng)發(fā)起。因此,當(dāng)在附圖描述中提到客戶端或客戶端用戶時(shí),應(yīng)當(dāng)理解,術(shù)語“客戶端”和“用戶”可通用而不嚴(yán)重影響所述處理的含義。
現(xiàn)在參考圖1C,一個(gè)數(shù)據(jù)流圖示出了當(dāng)客戶端企圖訪問服務(wù)器上的受保護(hù)資源時(shí)可以使用的典型認(rèn)證處理。如圖所示,客戶端工作站150的用戶通過在客戶端工作站上執(zhí)行的用戶的萬維網(wǎng)瀏覽器,試圖在計(jì)算機(jī)網(wǎng)絡(luò)上訪問服務(wù)器151上的受保護(hù)資源。受保護(hù)資源是指對(duì)其的訪問受到控制或限制的資源(應(yīng)用程序、對(duì)象、文檔、頁面、文件、可執(zhí)行代碼、或其它計(jì)算資源、通信類型的資源等)。受保護(hù)資源由統(tǒng)一資源定位器(URL)標(biāo)識(shí),或者更一般地由統(tǒng)一資源標(biāo)識(shí)符(URI)標(biāo)識(shí),其只能被經(jīng)認(rèn)證和授權(quán)的用戶訪問。如圖1A或1B所示,計(jì)算機(jī)網(wǎng)絡(luò)可以是因特網(wǎng)、內(nèi)聯(lián)網(wǎng)或其它網(wǎng)絡(luò),并且服務(wù)器可以是萬維網(wǎng)應(yīng)用服務(wù)器(WAS)、服務(wù)器應(yīng)用程序、小服務(wù)程序(servlet)處理等。
當(dāng)用戶請(qǐng)求服務(wù)器側(cè)受保護(hù)資源如域“ibm.com”內(nèi)的網(wǎng)頁(步驟152)時(shí),啟動(dòng)該處理。術(shù)語“服務(wù)器側(cè)”和“客戶端側(cè)”分別是指在網(wǎng)絡(luò)化環(huán)境內(nèi)服務(wù)器或客戶端處的操作或?qū)嶓w。萬維網(wǎng)瀏覽器(或相關(guān)聯(lián)的應(yīng)用程序或小應(yīng)用程序)生成被發(fā)送到駐留(host)域“ibm.com”的萬維網(wǎng)服務(wù)器的HTTP請(qǐng)求(步驟153)。術(shù)語“請(qǐng)求”和“響應(yīng)”應(yīng)當(dāng)被理解成包括數(shù)據(jù)格式化,其適于在特定操作中所涉及的信息的傳輸,例如消息、通信協(xié)議信息或其它關(guān)聯(lián)信息。
服務(wù)器確定它沒有客戶端的活動(dòng)會(huì)話(步驟154),從而服務(wù)器啟動(dòng)并且完成在服務(wù)器和客戶端之間建立SSL(安全套接字層)會(huì)話(步驟155),這需要在客戶端和服務(wù)器之間的多個(gè)信息傳輸。在建立SSL會(huì)話之后,在SSL會(huì)話內(nèi)傳輸隨后的通信消息;由于SSL會(huì)話內(nèi)的通信消息經(jīng)過加密,因此任何秘密信息都保持安全。
然而,在允許用戶具有對(duì)受保護(hù)資源的訪問權(quán)之前,服務(wù)器需要確定用戶的身份,從而服務(wù)器通過向客戶端發(fā)送某種類型的認(rèn)證詢問來要求用戶執(zhí)行認(rèn)證處理(步驟156)。認(rèn)證詢問可以為諸如HTML形式的各種形式。然后,用戶提供所請(qǐng)求或所要求的信息(步驟157),例如用戶名或其它類型的用戶標(biāo)識(shí)符以及相關(guān)聯(lián)的密碼或其它形式的秘密信息。
將認(rèn)證響應(yīng)信息發(fā)送到服務(wù)器(步驟158),此時(shí),服務(wù)器例如通過檢索先前提交的注冊(cè)信息并且將所提供的認(rèn)證信息與用戶的所存儲(chǔ)信息相匹配,認(rèn)證用戶或客戶端(步驟159)。假定認(rèn)證成功,則為已認(rèn)證的用戶或客戶端建立活動(dòng)會(huì)話。
然后,服務(wù)器檢索原先請(qǐng)求的網(wǎng)頁并且將HTTP響應(yīng)消息發(fā)送到客戶端(步驟160),從而完成用戶對(duì)受保護(hù)資源的原先請(qǐng)求。此時(shí),用戶可以通過點(diǎn)擊瀏覽器窗口內(nèi)的超文本鏈接來請(qǐng)求“ibm.com”,內(nèi)的另一頁面(步驟161),并且瀏覽器將另一HTTP請(qǐng)求消息發(fā)送到服務(wù)器(步驟162)。此時(shí),服務(wù)器識(shí)別到用戶具有活動(dòng)會(huì)話(步驟163),并且服務(wù)器在另一HTTP響應(yīng)消息中將所請(qǐng)求的網(wǎng)頁發(fā)送回到客戶端(步驟164)。
現(xiàn)在參考圖1D,一個(gè)方框圖示出了用于包括多個(gè)認(rèn)證服務(wù)器的企業(yè)域的典型數(shù)據(jù)處理系統(tǒng)。如同在典型的公司計(jì)算環(huán)境或基于因特網(wǎng)的計(jì)算環(huán)境中一樣,企業(yè)域170駐留受控資源,其可以由用戶171例如通過網(wǎng)絡(luò)174、使用客戶端設(shè)備173上的瀏覽器應(yīng)用程序172來訪問。應(yīng)用服務(wù)器175通過基于萬維網(wǎng)的應(yīng)用程序或包括傳統(tǒng)應(yīng)用程序的其它類型的應(yīng)用程序來支持可訪問資源。認(rèn)證服務(wù)器176支持各種認(rèn)證機(jī)制,例如用戶名/密碼、X.509證書、或安全令牌。企業(yè)域170支持多個(gè)服務(wù)器。代理服務(wù)器177執(zhí)行用于企業(yè)域170的多種功能??梢酝ㄟ^配置文件和企業(yè)策略數(shù)據(jù)庫178來管理性地配置代理服務(wù)器177,以控制代理服務(wù)器177的功能性,例如緩存網(wǎng)頁以便鏡像來自應(yīng)用服務(wù)器的內(nèi)容,或者通過輸入數(shù)據(jù)流過濾器單元179和輸出數(shù)據(jù)流過濾器單元180來過濾進(jìn)入和外出的數(shù)據(jù)流。輸入數(shù)據(jù)流過濾器單元179可以對(duì)進(jìn)入的請(qǐng)求執(zhí)行多重檢查,而外出數(shù)據(jù)流過濾器單元180可以對(duì)外出的響應(yīng)執(zhí)行多重檢查;可以根據(jù)在各種企業(yè)策略內(nèi)所指定的目標(biāo)和條件來執(zhí)行每個(gè)檢查。
企業(yè)域170包括授權(quán)服務(wù)器181。授權(quán)服務(wù)器181的授權(quán)策略管理單元182在用戶注冊(cè)表183和訪問控制列表(ACL)數(shù)據(jù)庫184內(nèi)管理信息。策略管理單元182通過以下方式確定用戶是否被授權(quán)訪問在域170內(nèi)由應(yīng)用服務(wù)器175提供的特定服務(wù),即通過針對(duì)對(duì)這些服務(wù)的用戶請(qǐng)求檢查策略。應(yīng)當(dāng)注意,雖然這里的例子假定在用戶已被認(rèn)證之后,用戶被授權(quán)訪問所有受控資源,但是本發(fā)明的各個(gè)實(shí)施例可以加入可選的認(rèn)證處理,而不影響本發(fā)明的范圍。
企業(yè)域170內(nèi)的上述實(shí)體代表很多計(jì)算環(huán)境內(nèi)的典型實(shí)體。如圖1C所示,基于萬維網(wǎng)的應(yīng)用程序可以利用各種手段提示用戶輸入認(rèn)證信息,其通常是HTML表單內(nèi)的用戶名/密碼組合。在圖1D所示的例子中,在客戶端173可以具有對(duì)資源的訪問權(quán)之前,可以要求用戶171進(jìn)行認(rèn)證,此后以類似于上面在圖1C中所述的方式為客戶端173建立會(huì)話。在圖1D中,在從客戶端173接收到進(jìn)入的請(qǐng)求之后,輸入數(shù)據(jù)流過濾器單元179可以確定客戶端173是否已經(jīng)建立會(huì)話;如果否,則可以調(diào)用認(rèn)證服務(wù)器176上的認(rèn)證服務(wù),以便認(rèn)證用戶171。如果客戶端173已經(jīng)建立了會(huì)話,則在準(zhǔn)予訪問受控資源之前,可以對(duì)進(jìn)入的請(qǐng)求執(zhí)行附加檢查;可以在企業(yè)認(rèn)證策略中指定該附加檢查。
現(xiàn)在轉(zhuǎn)向本發(fā)明,上面提到了一些系統(tǒng)需要執(zhí)行升級(jí)認(rèn)證過程。然而,還提到了在認(rèn)證服務(wù)和用戶瀏覽器或類似客戶端應(yīng)用程序之間保持活動(dòng)的、相互認(rèn)證的SSL會(huì)話的同時(shí),從較低級(jí)別、非基于證書的認(rèn)證過程升級(jí)到較高級(jí)別、基于證書的認(rèn)證過程的操作是不可能的,其中,SSL會(huì)話是針對(duì)較低級(jí)別、非基于證書的認(rèn)證過程例如用戶名/密碼組合而在客戶端和服務(wù)器之間建立的。本發(fā)明通過使服務(wù)器側(cè)認(rèn)證服務(wù)通過現(xiàn)有的SSL會(huì)話對(duì)用戶或用戶的客戶端設(shè)備執(zhí)行基于證書的認(rèn)證過程,從而提供了對(duì)該問題的解決方案。下面參照其余的附圖對(duì)本發(fā)明進(jìn)行更詳細(xì)的描述。
現(xiàn)在參考圖2,一個(gè)方框圖示出了根據(jù)本發(fā)明的已被擴(kuò)展成包括升級(jí)認(rèn)證處理的認(rèn)證服務(wù)。以類似于上面參照?qǐng)D1D所述的方式,客戶端200執(zhí)行萬維網(wǎng)瀏覽器應(yīng)用程序202或類似的客戶端應(yīng)用程序,其用于從各種萬維網(wǎng)應(yīng)用程序訪問資源和服務(wù)。瀏覽器202支持運(yùn)行時(shí)環(huán)境204,其可以包括虛擬機(jī);運(yùn)行時(shí)環(huán)境204可以執(zhí)行各種類型的可下載、可執(zhí)行的軟件模塊,例如小應(yīng)用程序或插件。瀏覽器202和所支持的小應(yīng)用程序/插件可以訪問密鑰數(shù)據(jù)存儲(chǔ)庫206,其中客戶端維護(hù)用戶的數(shù)字證書和/或加密密鑰。另外,瀏覽器202和所支持的可執(zhí)行模塊可以訪問簽名日志208,其包含在客戶端200處已經(jīng)生成的簽名的日志。簽名日志208還可以包含響應(yīng)于來自客戶端200的簽名提交而從萬維網(wǎng)服務(wù)器返回的簽名記錄/收據(jù)。
域210包括應(yīng)用服務(wù)器和認(rèn)證服務(wù)器,其中至少一個(gè)支持認(rèn)證服務(wù)212,該認(rèn)證服務(wù)212包括用于實(shí)現(xiàn)本發(fā)明的升級(jí)認(rèn)證功能性的升級(jí)認(rèn)證處理單元214。如下面更詳細(xì)說明的那樣,認(rèn)證服務(wù)212還支持?jǐn)?shù)字簽名驗(yàn)證單元216和簽名日志218,其中數(shù)字簽名驗(yàn)證單元216用于驗(yàn)證從客戶端接收的數(shù)字簽名,并且簽名日志218用于存儲(chǔ)所接收的簽名的記錄,其是響應(yīng)于來自認(rèn)證服務(wù)212的要求而從客戶端返回的。
現(xiàn)在參考圖3,一個(gè)流程圖示出了用于在保持活動(dòng)、相互認(rèn)證的SSL會(huì)話的同時(shí),從較低級(jí)別、非基于證書的認(rèn)證過程升級(jí)到較高級(jí)別、基于證書的認(rèn)證過程的處理。如上面參照?qǐng)D1C所述,響應(yīng)于接收到訪問受保護(hù)資源的用戶請(qǐng)求,例如作為響應(yīng)于客戶端設(shè)備上的瀏覽器應(yīng)用程序中的用戶操作而生成的HTTP請(qǐng)求消息形式的網(wǎng)頁請(qǐng)求的結(jié)果,在服務(wù)器上可能發(fā)生典型的非基于證書的認(rèn)證操作(步驟302)。在客戶端和服務(wù)器之間建立相互認(rèn)證的SSL會(huì)話之后,服務(wù)器通過SSL會(huì)話來執(zhí)行非基于證書的認(rèn)證操作(步驟304),例如詢問客戶端/用戶,以提供有效的用戶名/密碼組合或某種其它秘密信息。假定成功完成非基于證書的認(rèn)證操作,則服務(wù)器例如通過返回響應(yīng)消息或執(zhí)行某種其它操作而將原先請(qǐng)求的資源提供給客戶端(步驟306)。
不過,圖3與圖1C的不同之處在于圖1C僅示出了非基于證書的認(rèn)證操作,而圖3繼續(xù)示出了本發(fā)明提供用于升級(jí)到通過基于證書的認(rèn)證操作而提供的較高安全級(jí)別的處理的方式。
在完成了非基于證書的認(rèn)證操作并且服務(wù)器在由先前的非基于證書的認(rèn)證操作保護(hù)的客戶端會(huì)話期間提供了受保護(hù)資源之后的某個(gè)時(shí)間點(diǎn),服務(wù)器接收對(duì)由較高安全級(jí)別控制的受保護(hù)資源的請(qǐng)求(步驟308),即,對(duì)特定資源的訪問更加受限。作為響應(yīng),服務(wù)器通過在服務(wù)器和客戶端之間先前建立的SSL會(huì)話對(duì)客戶端執(zhí)行基于證書的認(rèn)證操作(步驟310);這是在不打斷當(dāng)前SSL會(huì)話、重新協(xié)商當(dāng)前SSL會(huì)話或退出當(dāng)前SSL會(huì)話的情況下完成的。假定成功完成了基于證書的認(rèn)證操作,則服務(wù)器例如通過返回響應(yīng)消息或執(zhí)行某種其它操作,將更受限的資源提供給客戶端(步驟312),并且該處理結(jié)束。以這種方式,通過與先前用于非基于證書的認(rèn)證操作的SSL會(huì)話相同的SSL會(huì)話來發(fā)生基于證書的認(rèn)證操作。
應(yīng)當(dāng)注意,術(shù)語“非基于證書的認(rèn)證操作”的使用是指這樣的事實(shí),即用于確定用戶/客戶端身份的第一認(rèn)證操作沒有采用數(shù)字證書。使用客戶端側(cè)數(shù)字證書以便建立SSL會(huì)話(其可以用來安全地傳送在非基于證書的認(rèn)證操作中采用的秘密信息例如密碼)在此不被視為在非基于證書的認(rèn)證操作中使用證書。
現(xiàn)在參考圖4,一個(gè)流程圖示出了根據(jù)本發(fā)明實(shí)施例的基于證書的升級(jí)認(rèn)證操作在服務(wù)器上的具體處理的更多詳情。圖4所示的處理主要提供了圖3中的步驟308-312的更多詳情。圖4的處理中的步驟發(fā)生在服務(wù)器側(cè)數(shù)據(jù)處理系統(tǒng)中,例如,與圖2所示的分布式數(shù)據(jù)處理系統(tǒng)類似的系統(tǒng);雖然該處理可以跨越多個(gè)服務(wù)器、應(yīng)用程序、和/或設(shè)備而實(shí)現(xiàn),但是為了易于描述起見,將該處理描述成似乎整個(gè)處理都發(fā)生在一個(gè)服務(wù)器內(nèi)一樣。雖然這些例子描述了HTTP消息和HTML頁面的使用,但是本發(fā)明可以被實(shí)現(xiàn)為支持其它協(xié)議和消息/文檔格式。
該處理以這樣的步驟開始,即在通過SSL會(huì)話發(fā)生了非基于證書的認(rèn)證操作,例如,如圖3的步驟302-306所示的非基于證書的認(rèn)證操作之后,服務(wù)器從客戶端接收資源請(qǐng)求(步驟402)。因此,服務(wù)器識(shí)別出該資源請(qǐng)求是從已經(jīng)與服務(wù)器建立了活動(dòng)會(huì)話的客戶端接收到的,并且與圖1C相反,服務(wù)器繼續(xù)響應(yīng)請(qǐng)求而不是立即詢問客戶端以完成認(rèn)證操作。
然后,服務(wù)器確定對(duì)所請(qǐng)求資源的訪問是否要求可以由基于證書的認(rèn)證操作提供的較高安全級(jí)別,而不是由先前已經(jīng)與客戶端完成的非基于證書的認(rèn)證操作提供的較低安全級(jí)別(步驟404)。服務(wù)器可以通過各種處理來執(zhí)行該確定,而不影響本發(fā)明的范圍。作為一個(gè)例子,進(jìn)入的資源請(qǐng)求可以由諸如圖2中的服務(wù)器177的代理服務(wù)器過濾或掃描。在從進(jìn)入的請(qǐng)求消息提取所請(qǐng)求的URI之后,匹配所提取的URL和與所提取URI相關(guān)聯(lián)的策略。相關(guān)聯(lián)的策略表示應(yīng)當(dāng)被執(zhí)行以便適當(dāng)?shù)仨憫?yīng)URI的適當(dāng)操作,包括任何認(rèn)證要求或其它安全過程。如果該策略表示在響應(yīng)請(qǐng)求之前,必須成功完成基于證書的認(rèn)證操作,并且如果尚未與請(qǐng)求客戶端完成基于證書的認(rèn)證操作,則啟動(dòng)用于升級(jí)認(rèn)證級(jí)別的過程,如圖4所示的處理的其余步驟所示。在本例中,應(yīng)用服務(wù)器不知道認(rèn)證要求,但是其它實(shí)施例可以以某種方式涉及應(yīng)用服務(wù)器,而不影響本發(fā)明的范圍。
然后,服務(wù)器繼續(xù)將軟件模塊從服務(wù)器下載到客戶端并且/或者觸發(fā)在客戶端處執(zhí)行軟件模塊(步驟406)。下載或觸發(fā)軟件模塊以便執(zhí)行的方式可以變化。在第一實(shí)施例中,例如,通過將Java小應(yīng)用程序嵌入到HTML網(wǎng)頁內(nèi),服務(wù)器將小應(yīng)用程序或插件下載到諸如瀏覽器的客戶端應(yīng)用程序,其中該HTML網(wǎng)頁是作為對(duì)來自客戶端的原始請(qǐng)求即已被確定為要求基于證書的認(rèn)證操作的請(qǐng)求的HTTP響應(yīng)消息的內(nèi)容有效荷載而返回的。作為響應(yīng),瀏覽器作為其正常解釋和處理網(wǎng)頁的一部分而裝載該小應(yīng)用程序。
在可選實(shí)施例中,服務(wù)器可以將消息主體返回給客戶端,其中該消息主體表示它包含具有特定MIME類型(多用途因特網(wǎng)郵件擴(kuò)充)的內(nèi)容。作為響應(yīng),客戶端的瀏覽器應(yīng)用程序裝載先前已向?yàn)g覽器注冊(cè)為能夠處理該特定MIME類型的適當(dāng)插件。在某些情況下,如果沒有為該特定MIME類型注冊(cè)插件,則瀏覽器提示用戶查找適當(dāng)?shù)牟寮?。以這樣的方式,瀏覽器可能已經(jīng)具有能夠執(zhí)行如下所述的處理步驟的軟件模塊,從而不要求服務(wù)器將軟件模塊下載到客戶端。
無論如何,發(fā)送對(duì)受保護(hù)資源的請(qǐng)求的客戶端應(yīng)用程序都還保持先前激活的SSL會(huì)話,并且服務(wù)器通過SSL會(huì)話將適當(dāng)?shù)南l(fā)送到客戶端應(yīng)用程序,以便使客戶端應(yīng)用程序執(zhí)行將執(zhí)行用于基于證書的認(rèn)證過程的客戶端側(cè)步驟的軟件模塊;在某些情況下,服務(wù)器還可以下載軟件模塊,并且在其它情況下,軟件模塊可能已經(jīng)存在于客戶端處。由于本發(fā)明遵循標(biāo)準(zhǔn)的因特網(wǎng)相關(guān)協(xié)議和規(guī)范,因此本發(fā)明提供了升級(jí)認(rèn)證操作的方式,而沒有假定客戶端應(yīng)用程序具有用于響應(yīng)服務(wù)器側(cè)認(rèn)證要求的內(nèi)置功能性。服務(wù)器能夠通過公知的因特網(wǎng)相關(guān)技術(shù)和萬維網(wǎng)相關(guān)技術(shù),利用瀏覽器和類似客戶端應(yīng)用程序的可擴(kuò)展性,向軟件模塊提供所需功能性。
繼續(xù)圖4,服務(wù)器然后下載要由軟件模塊數(shù)字簽名的詢問數(shù)據(jù)(步驟408)。詢問數(shù)據(jù)是某種類型的數(shù)據(jù)項(xiàng),其可以用作客戶端的小應(yīng)用程序、插件或其它軟件模塊內(nèi)的數(shù)字簽名算法的輸入,其中,該數(shù)字簽名算法在詢問數(shù)據(jù)上生成數(shù)字簽名。詢問數(shù)據(jù)的格式可以取決于所采用的數(shù)字簽名算法,并且本發(fā)明可以支持一個(gè)或多個(gè)標(biāo)準(zhǔn)或私有的數(shù)字簽名算法。
服務(wù)器可以隨同所下載的小應(yīng)用程序一起下載詢問數(shù)據(jù),或者可以在后繼的消息中發(fā)送詢問數(shù)據(jù)??蛇x地,客戶端的小應(yīng)用程序、插件或其它軟件模塊可以請(qǐng)求詢問數(shù)據(jù),并且作為響應(yīng),服務(wù)器返回詢問數(shù)據(jù)。可選地,客戶端可能已經(jīng)擁有詢問數(shù)據(jù),例如先前由服務(wù)器返回給客戶端的已緩存網(wǎng)頁。
在隨后的某個(gè)時(shí)間點(diǎn),服務(wù)器從客戶端接收數(shù)字簽名(步驟410),并且服務(wù)器用用戶/客戶端的適當(dāng)公開密鑰證書驗(yàn)證數(shù)字簽名(步驟412)。該服務(wù)器可以從目錄檢索公開密鑰證書,或者公開密鑰證書可以伴隨來自客戶端的具有數(shù)字簽名的消息;公開密鑰證書的真實(shí)性可通過證書主管機(jī)構(gòu)和各種證書廢除機(jī)構(gòu)來驗(yàn)證。如果數(shù)字簽名被驗(yàn)證,則客戶端示出了它擁有非對(duì)稱公開/私有加密密鑰對(duì)中與公開密鑰相對(duì)應(yīng)的私有密鑰,從而確定了客戶端/用戶的身份,這是因?yàn)橹挥性谟行У墓_密鑰證書中表示的個(gè)人/實(shí)體才應(yīng)當(dāng)擁有對(duì)應(yīng)于公開密鑰的私有密鑰。假定成功驗(yàn)證了數(shù)字簽名,則服務(wù)器可以例如通過以數(shù)字簽名的拷貝、可驗(yàn)證的時(shí)間戳、以及從其接收到數(shù)字簽名的IP地址生成數(shù)據(jù)庫記錄,把數(shù)字簽名的接收記入日志,以便用于非否認(rèn)的目的(步驟414)。數(shù)字簽名的成功驗(yàn)證完成了基于證書的認(rèn)證操作,結(jié)果,服務(wù)器提供對(duì)在服務(wù)器企圖基于證書的認(rèn)證操作之前由客戶端請(qǐng)求的資源的訪問(步驟416),從而結(jié)束圖4所示的處理。
現(xiàn)在參考圖5,一個(gè)流程圖示出了根據(jù)本發(fā)明實(shí)施例的基于證書的升級(jí)認(rèn)證操作在客戶端上的處理。與示出了服務(wù)器側(cè)處理的圖4相反,圖5示出了客戶端側(cè)處理。該處理以這樣的步驟開始,即在客戶端已經(jīng)與服務(wù)器建立了SSL會(huì)話并且已經(jīng)成功地完成了與服務(wù)器的非基于證書的認(rèn)證操作之后,客戶端將對(duì)資源的請(qǐng)求消息發(fā)送到服務(wù)器(步驟502_)。響應(yīng)于該請(qǐng)求,客戶端接收響應(yīng)消息,其包含軟件模塊或者觸發(fā)支持基于證書的認(rèn)證操作的軟件模塊的執(zhí)行(步驟504)??蛻舳丝梢越邮湛稍谟芍T如瀏覽器的客戶端應(yīng)用程序支持的虛擬機(jī)內(nèi)執(zhí)行的小應(yīng)用程序,例如Java小應(yīng)用程序??蛇x地,客戶端可以接收包含特定MTME類型的內(nèi)容的消息,從而觸發(fā)客戶端應(yīng)用程序啟動(dòng)處理具有所表示的MIME類型的對(duì)象的插件。
此外,客戶端應(yīng)用程序可以接收在生成數(shù)字簽名時(shí)要被使用的詢問數(shù)據(jù)(步驟506)。可選地,客戶端應(yīng)用程序可能已經(jīng)擁有可用作數(shù)字簽名算法的輸入的數(shù)據(jù)項(xiàng)。無論如何,由客戶端使用的到數(shù)字簽名算法的輸入數(shù)據(jù)必須為服務(wù)器所知,以便讓服務(wù)器驗(yàn)證在輸入數(shù)據(jù)上生成的數(shù)字簽名。因此,數(shù)字簽名算法的輸入數(shù)據(jù)可以由客戶端選擇,并且隨后例如通過SSL會(huì)話與所生成的數(shù)字簽名一起傳遞給服務(wù)器。
在被觸發(fā)以生成數(shù)字簽名之后或者在確定了生成數(shù)字簽名之后的某個(gè)隨后時(shí)間點(diǎn),客戶端應(yīng)用程序生成數(shù)字簽名(步驟508)并且將數(shù)字簽名發(fā)送到服務(wù)器(步驟510)。此外,客戶端應(yīng)用程序可以將數(shù)字簽名的生成與時(shí)間戳和可能幫助非否認(rèn)過程的可能其它信息一起記入日志(步驟512)。假定正確地生成了數(shù)字簽名,則客戶端通過先前建立的SSL會(huì)話成功地完成了基于證書的升級(jí)認(rèn)證操作,然后,客戶端例如通過接收網(wǎng)頁來接收對(duì)所請(qǐng)求資源的訪問(步驟514),從而結(jié)束客戶端側(cè)的處理。
生成并驗(yàn)證數(shù)字簽名的方式可以根據(jù)公知標(biāo)準(zhǔn)或私有處理而變化,而不影響本發(fā)明的范圍。例如,當(dāng)響應(yīng)于服務(wù)器確定通過先前建立的SSL會(huì)話來執(zhí)行基于證書的升級(jí)認(rèn)證處理,客戶端上的瀏覽器接收帶有嵌入的小應(yīng)用程序的HTML頁面時(shí),可以發(fā)生客戶端側(cè)處理。瀏覽器處理該網(wǎng)頁并且執(zhí)行小應(yīng)用程序,這可能提示用戶輸入密鑰數(shù)據(jù)存儲(chǔ)庫的標(biāo)識(shí)符如客戶端上的文件,以及對(duì)密鑰數(shù)據(jù)存儲(chǔ)庫進(jìn)行解鎖的密碼。小應(yīng)用程序提示用戶或者以其它方式操作的機(jī)制可以根據(jù)本發(fā)明的實(shí)現(xiàn)而變化。小應(yīng)用程序可以通過在瀏覽器窗口內(nèi)提供說明需要為未決請(qǐng)求產(chǎn)生數(shù)字簽名的網(wǎng)頁來提示用戶,并且所提供的網(wǎng)頁可以具有允許用戶同意或不同意對(duì)數(shù)字簽名的請(qǐng)求的確定按鈕和取消按鈕。此外,所提供的網(wǎng)頁可以回顯正被簽名的詢問數(shù)據(jù),以便用戶可以查閱詢問數(shù)據(jù)。
典型地,密鑰數(shù)據(jù)存儲(chǔ)庫保存用于非對(duì)稱加密功能的私有/公開密鑰對(duì)的私有密鑰。密鑰數(shù)據(jù)存儲(chǔ)庫可以由各種實(shí)體例如瀏覽器應(yīng)用程序、小應(yīng)用程序或客戶端操作系統(tǒng)管理。瀏覽器可以遵循關(guān)于加密信息使用的各種標(biāo)準(zhǔn)。例如,“PKCS#7加密消息語法”、RFC(請(qǐng)求注釋)2315、因特網(wǎng)工程任務(wù)組(IETF)是PKCS(公開密鑰加密系統(tǒng))規(guī)范,其描述了被施加有對(duì)其的加密的數(shù)據(jù)的一般語法,例如數(shù)字簽名和數(shù)字信封。作為另一例子,“PKCS#11加密令牌(token)接口標(biāo)準(zhǔn)”、RSA安全公司是描述了用于保存加密信息并執(zhí)行加密功能的應(yīng)用編程接口(API)的PKCS規(guī)范。
在用戶輸入了所請(qǐng)求的信息并且表示了用戶同意使用用戶的私有密鑰之后,小應(yīng)用程序優(yōu)選地以由萬維網(wǎng)協(xié)會(huì)(W3C)標(biāo)準(zhǔn)化的XML數(shù)字簽名的形式生成數(shù)字簽名。通過將適當(dāng)?shù)暮灻惴☉?yīng)用于隨后要被驗(yàn)證的一組數(shù)據(jù)項(xiàng),即所謂的“被簽名信息”,從而創(chuàng)建數(shù)字簽名;在這個(gè)場(chǎng)景中,被簽名的數(shù)據(jù)最少將要包括詢問數(shù)據(jù)。XML簽名還包括所謂的“密鑰信息”,其可以包括應(yīng)當(dāng)用于驗(yàn)證數(shù)字簽名的用戶公開密鑰證書。然后,小應(yīng)用程序?qū)ML簽名發(fā)送到萬維網(wǎng)服務(wù)器,并且完成生成數(shù)字簽名的處理。
鑒于上面提供的詳細(xì)描述,本發(fā)明的優(yōu)點(diǎn)應(yīng)當(dāng)變得清楚。本發(fā)明提供了一種用于在認(rèn)證服務(wù)和用戶的瀏覽器或類似的客戶端應(yīng)用程序之間保持相互認(rèn)證的活動(dòng)SSL會(huì)話的同時(shí),從較低級(jí)別的非基于證書的認(rèn)證過程升級(jí)到較高級(jí)別的基于證書的認(rèn)證過程的認(rèn)證操作,其中SSL會(huì)話是針對(duì)諸如用戶名/密碼組合的較低級(jí)別、非基于證書的認(rèn)證過程而在客戶端和服務(wù)器之間建立的。
本發(fā)明通過使服務(wù)器側(cè)認(rèn)證服務(wù)通過現(xiàn)有的SSL會(huì)話對(duì)用戶或用戶的客戶端設(shè)備執(zhí)行基于證書的認(rèn)證過程,從而提供了對(duì)此問題的解決方案。必要時(shí),認(rèn)證服務(wù)通過現(xiàn)有的SSL會(huì)話將可執(zhí)行模塊下載到客戶端。然后,可執(zhí)行模塊使用客戶端側(cè)數(shù)字證書而生成數(shù)字簽名,并且通過先前建立的SSL會(huì)話返回?cái)?shù)字簽名。在認(rèn)證服務(wù)驗(yàn)證了數(shù)字簽名之后,完成了基于證書的認(rèn)證過程。以這種方式,認(rèn)證服務(wù)可以升級(jí)到基于證書的認(rèn)證而無需退出或重新協(xié)商現(xiàn)有的SSL會(huì)話。
值得注意的是,雖然本發(fā)明是在全功能數(shù)據(jù)處理系統(tǒng)的上下文中描述的,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的處理能夠以計(jì)算機(jī)可讀介質(zhì)中的指令的形式和各種其它形式分發(fā),而不管實(shí)際用來執(zhí)行分發(fā)的信號(hào)承載介質(zhì)的特定類型。計(jì)算機(jī)可讀介質(zhì)的例子包括諸如EPROM、ROM、磁帶、紙、軟盤、硬盤驅(qū)動(dòng)器、RAM和CD-ROM的介質(zhì)以及諸如數(shù)字和模擬通信鏈路的傳輸型介質(zhì)。
方法一般地被表達(dá)為自相容的產(chǎn)生期望結(jié)果的步驟序列。這些步驟需要對(duì)物理量的物理操縱。通常但不一定,這些量采取能夠被存儲(chǔ)、傳輸、組合、比較和按照其它方式操縱的電或磁信號(hào)的形式。主要是由于常用的原因,有時(shí)將這些信號(hào)稱作位、值、參數(shù)、項(xiàng)目、元素、對(duì)象、符號(hào)、字符、術(shù)語、數(shù)字等是方便的。然而,應(yīng)當(dāng)注意的是,所有這些術(shù)語和類似術(shù)語要與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并且它們僅是應(yīng)用于這些量的方便標(biāo)注。
本發(fā)明的描述是為了示例說明的目的而提供的,而不旨在是徹底無遺漏的,或者局限于所公開的實(shí)施例。很多修改和變更對(duì)于本領(lǐng)域的普通技術(shù)人員將是清楚的。選擇這些實(shí)施例是為了說明本發(fā)明的原理及其實(shí)際應(yīng)用,并且使得本領(lǐng)域的其他普通技術(shù)人員能夠理解本發(fā)明,以便實(shí)現(xiàn)可能適于其它預(yù)期用途的具有各種修改的各種實(shí)施例。
權(quán)利要求
1.一種用于執(zhí)行認(rèn)證操作的方法,該方法包括在服務(wù)器和客戶端之間通過SSL(安全套接字層)會(huì)話執(zhí)行非基于證書的認(rèn)證操作;以及在執(zhí)行非基于證書的認(rèn)證操作之后,在服務(wù)器和客戶端之間通過SSL會(huì)話執(zhí)行基于證書的認(rèn)證操作,而無需在完成基于證書的認(rèn)證操作之前退出或重新協(xié)商SSL會(huì)話。
2.如權(quán)利要求1所述的方法,其中SSL會(huì)話的協(xié)商使用來自客戶端的第一數(shù)字證書,其中基于證書的認(rèn)證操作使用來自客戶端的第二數(shù)字證書,并且其中第一數(shù)字證書和第二數(shù)字證書不相同。
3.如權(quán)利要求1或2所述的方法,還包括與非基于證書的認(rèn)證操作相關(guān)聯(lián)地由服務(wù)器向客戶端提供對(duì)第一資源的訪問。
4.如權(quán)利要求3所述的方法,其中提供對(duì)第一資源的訪問的步驟還包括在服務(wù)器處接收來自客戶端的第一資源請(qǐng)求;響應(yīng)于確定第一資源請(qǐng)求要求在響應(yīng)第一資源請(qǐng)求之前完成非基于證書的認(rèn)證操作,在服務(wù)器和客戶端之間建立SSL(安全套接字層)會(huì)話;以及響應(yīng)于通過SSL會(huì)話在服務(wù)器和客戶端之間成功地執(zhí)行非基于證書的認(rèn)證操作,將第一資源響應(yīng)從服務(wù)器發(fā)送到客戶端。
5.如權(quán)利要求1到4中的任一項(xiàng)所述的方法,還包括與基于證書的認(rèn)證操作相關(guān)聯(lián)地由服務(wù)器向客戶端提供對(duì)第二資源的訪問。
6.如權(quán)利要求5所述的方法,其中提供對(duì)第二資源的訪問的步驟還包括在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求;響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端;在服務(wù)器處接收在客戶端處由可執(zhí)行模塊使用數(shù)字證書生成的數(shù)字簽名;以及響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端。
7.如權(quán)利要求5所述的方法,其中提供對(duì)第二資源的訪問的步驟還包括在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求;響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,由服務(wù)器通過SSL會(huì)話觸發(fā)在客戶端處執(zhí)行可下載的軟件模塊;在服務(wù)器處接收在客戶端處通過使用數(shù)字證書執(zhí)行可下載的軟件模塊而生成的數(shù)字簽名;以及響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端。
8.如權(quán)利要求1到7中的任一項(xiàng)所述的方法,還包括與基于證書的認(rèn)證操作相關(guān)聯(lián)地由客戶端獲得對(duì)服務(wù)器上的第二資源的訪問。
9.如權(quán)利要求8所述的方法,其中獲得對(duì)第二資源的訪問的步驟還包括通過SSL會(huì)話將第二資源請(qǐng)求從客戶端發(fā)送到服務(wù)器;在客戶端處通過SSL會(huì)話從服務(wù)器接收可執(zhí)行模塊,其中可執(zhí)行模塊包括用于執(zhí)行基于證書的認(rèn)證操作的功能性;通過SSL會(huì)話將在客戶端處由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名發(fā)送到服務(wù)器;以及在客戶端處從服務(wù)器接收第二資源響應(yīng)。
10.如權(quán)利要求8所述的方法,其中獲得對(duì)第二資源的訪問的步驟還包括通過SSL會(huì)話將第二資源請(qǐng)求從客戶端發(fā)送到服務(wù)器;在客戶端處通過SSL會(huì)話從服務(wù)器接收具有帶有關(guān)聯(lián)內(nèi)容類型指示符的內(nèi)容的響應(yīng)消息;響應(yīng)于確定內(nèi)容的內(nèi)容類型,在客戶端處執(zhí)行可下載軟件模塊;通過SSL會(huì)話將在客戶端處由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名發(fā)送到服務(wù)器;以及在客戶端處從服務(wù)器接收第二資源響應(yīng)。
11.一種用于執(zhí)行認(rèn)證操作的裝置,該裝置包括用于在服務(wù)器和客戶端之間通過SSL(安全套接字層)會(huì)話執(zhí)行非基于證書的認(rèn)證操作的部件;以及用于在執(zhí)行非基于證書的認(rèn)證操作之后,在服務(wù)器和客戶端之間通過SSL會(huì)話執(zhí)行基于證書的認(rèn)證操作,而無需在完成基于證書的認(rèn)證操作之前退出或重新協(xié)商SSL會(huì)話的部件。
12.如權(quán)利要求11所述的裝置,其中SSL會(huì)話的協(xié)商使用來自客戶端的第一數(shù)字證書,其中基于證書的認(rèn)證操作使用來自客戶端的第二數(shù)字證書,并且其中第一數(shù)字證書和第二數(shù)字證書不相同。
13.如權(quán)利要求11或12所述的裝置,還包括用于與非基于證書的認(rèn)證操作相關(guān)聯(lián)地由服務(wù)器向客戶端提供對(duì)第一資源的訪問的部件。
14.如權(quán)利要求13所述的裝置,其中用于提供對(duì)第一資源的訪問的部件還包括用于在服務(wù)器處接收來自客戶端的第一資源請(qǐng)求的部件;用于響應(yīng)于確定第一資源請(qǐng)求要求在響應(yīng)第一資源請(qǐng)求之前完成非基于證書的認(rèn)證操作,在服務(wù)器和客戶端之間建立SSL(安全套接字層)會(huì)話的部件;以及用于響應(yīng)于通過SSL會(huì)話在服務(wù)器和客戶端之間成功地執(zhí)行非基于證書的認(rèn)證操作,將第一資源響應(yīng)從服務(wù)器發(fā)送到客戶端的部件。
15.如權(quán)利要求11到14中的任一項(xiàng)所述的裝置,還包括用于與基于證書的認(rèn)證操作相關(guān)聯(lián)地由服務(wù)器向客戶端提供對(duì)第二資源的訪問的部件。
16.如權(quán)利要求15所述的裝置,其中用于提供對(duì)第二資源的訪問的部件還包括用于在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求的部件;用于響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端的部件;用于在服務(wù)器處接收在客戶端處由可執(zhí)行模塊使用數(shù)字證書生成的數(shù)字簽名的部件;以及用于響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端的部件。
17.如權(quán)利要求15所述的裝置,其中用于提供對(duì)第二資源的訪問的部件還包括用于在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求的部件;用于響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,由服務(wù)器通過SSL會(huì)話觸發(fā)在客戶端處執(zhí)行可下載的軟件模塊的部件;用于在服務(wù)器處接收在客戶端處通過使用數(shù)字證書執(zhí)行可下載的軟件模塊而生成的數(shù)字簽名的部件;以及用于響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端的部件。
18.如權(quán)利要求11到17中的任一項(xiàng)所述的裝置,還包括用于與基于證書的認(rèn)證操作相關(guān)聯(lián)地由客戶端獲得對(duì)服務(wù)器上的第二資源的訪問的部件。
19.如權(quán)利要求18所述的裝置,其中用于獲得對(duì)第二資源的訪問的部件還包括用于通過SSL會(huì)話將第二資源請(qǐng)求從客戶端發(fā)送到服務(wù)器的部件;用于在客戶端處通過SSL會(huì)話從服務(wù)器接收可執(zhí)行模塊的部件,其中可執(zhí)行模塊包括用于執(zhí)行基于證書的認(rèn)證操作的功能性;用于通過SSL會(huì)話將在客戶端處由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名發(fā)送到服務(wù)器的部件;以及用于在客戶端處從服務(wù)器接收第二資源響應(yīng)的部件。
20.如權(quán)利要求18所述的裝置,其中用于獲得對(duì)第二資源的訪問的部件還包括用于通過SSL會(huì)話將第二資源請(qǐng)求從客戶端發(fā)送到服務(wù)器的部件;用于在客戶端處通過SSL會(huì)話從服務(wù)器接收具有帶有關(guān)聯(lián)內(nèi)容類型指示符的內(nèi)容的響應(yīng)消息的部件;用于響應(yīng)于確定內(nèi)容的內(nèi)容類型,在客戶端處執(zhí)行可下載軟件模塊的部件;用于通過SSL會(huì)話將在客戶端處由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名發(fā)送到服務(wù)器的部件;以及用于在客戶端處從服務(wù)器接收第二資源響應(yīng)的部件。
21.一種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,用于數(shù)據(jù)處理系統(tǒng)中,以便執(zhí)行認(rèn)證操作,該計(jì)算機(jī)程序產(chǎn)品包括用于在服務(wù)器和客戶端之間通過SSL(安全套接字層)會(huì)話執(zhí)行非基于證書的認(rèn)證操作的單元;以及用于在執(zhí)行非基于證書的認(rèn)證操作之后,在服務(wù)器和客戶端之間通過SSL會(huì)話執(zhí)行基于證書的認(rèn)證操作,而無需在完成基于證書的認(rèn)證操作之前退出或重新協(xié)商SSL會(huì)話的單元。
22.如權(quán)利要求21所述的計(jì)算機(jī)程序產(chǎn)品,其中SSL會(huì)話的協(xié)商使用來自客戶端的第一數(shù)字證書,其中基于證書的認(rèn)證操作使用來自客戶端的第二數(shù)字證書,并且其中第一數(shù)字證書和第二數(shù)字證書不相同。
23.如權(quán)利要求21或22所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于與非基于證書的認(rèn)證操作相關(guān)聯(lián)地由服務(wù)器向客戶端提供對(duì)第一資源的訪問的單元。
24.如權(quán)利要求23所述的計(jì)算機(jī)程序產(chǎn)品,其中用于提供對(duì)第一資源的訪問的單元還包括用于在服務(wù)器處接收來自客戶端的第一資源請(qǐng)求的單元;用于響應(yīng)于確定第一資源請(qǐng)求要求在響應(yīng)第一資源請(qǐng)求之前完成非基于證書的認(rèn)證操作,在服務(wù)器和客戶端之間建立SSL(安全套接字層)會(huì)話的單元;以及用于響應(yīng)于通過SSL會(huì)話在服務(wù)器和客戶端之間成功地執(zhí)行非基于證書的認(rèn)證操作,將第一資源響應(yīng)從服務(wù)器發(fā)送到客戶端的單元。
25.如權(quán)利要求21到24中的任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于與基于證書的認(rèn)證操作相關(guān)聯(lián)地由服務(wù)器向客戶端提供對(duì)第二資源的訪問的單元。
26.如權(quán)利要求25所述的計(jì)算機(jī)程序產(chǎn)品,其中用于提供對(duì)第二資源的訪問的單元還包括用于在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求的單元;用于響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端的單元;用于在服務(wù)器處接收在客戶端處由可執(zhí)行模塊使用數(shù)字證書生成的數(shù)字簽名的單元;以及用于響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端的單元。
27.如權(quán)利要求25所述的計(jì)算機(jī)程序產(chǎn)品,其中用于提供對(duì)第二資源的訪問的單元還包括用于在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求的單元;用于響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,由服務(wù)器通過SSL會(huì)話觸發(fā)在客戶端處執(zhí)行可下載的軟件模塊的單元;用于在服務(wù)器處接收在客戶端處通過使用數(shù)字證書執(zhí)行可下載的軟件模塊而生成的數(shù)字簽名的單元;以及用于響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端的單元。
28.如權(quán)利要求21到27中的任一項(xiàng)所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于與基于證書的認(rèn)證操作相關(guān)聯(lián)地由客戶端獲得對(duì)服務(wù)器上的第二資源的訪問的單元。
29.如權(quán)利要求28所述的計(jì)算機(jī)程序產(chǎn)品,其中用于獲得對(duì)第二資源的訪問的單元還包括用于通過SSL會(huì)話將第二資源請(qǐng)求從客戶端發(fā)送到服務(wù)器的單元;用于在客戶端處通過SSL會(huì)話從服務(wù)器接收可執(zhí)行模塊的單元,其中可執(zhí)行模塊包括用于執(zhí)行基于證書的認(rèn)證操作的功能性;用于通過SSL會(huì)話將在客戶端處由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名發(fā)送到服務(wù)器的單元;以及用于在客戶端處從服務(wù)器接收第二資源響應(yīng)的單元。
30.如權(quán)利要求28所述的計(jì)算機(jī)程序產(chǎn)品,其中用于獲得對(duì)第二資源的訪問的單元還包括用于通過SSL會(huì)話將第二資源請(qǐng)求從客戶端發(fā)送到服務(wù)器的單元;用于在客戶端處通過SSL會(huì)話從服務(wù)器接收具有帶有關(guān)聯(lián)內(nèi)容類型指示符的內(nèi)容的響應(yīng)消息的單元;用于響應(yīng)于確定內(nèi)容的內(nèi)容類型,在客戶端處執(zhí)行可下載軟件模塊的單元;用于通過SSL會(huì)話將在客戶端處由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名發(fā)送到服務(wù)器的單元;以及用于在客戶端處從服務(wù)器接收第二資源響應(yīng)的單元。
31.一種用于執(zhí)行認(rèn)證操作的方法,該方法包括在服務(wù)器處接收來自客戶端的第一資源請(qǐng)求;響應(yīng)于確定第一資源請(qǐng)求要求在響應(yīng)第一資源請(qǐng)求之前完成非基于證書的認(rèn)證操作,在服務(wù)器和客戶端之間建立SSL(安全套接字層)會(huì)話;通過SSL會(huì)話執(zhí)行非基于證書的認(rèn)證操作;響應(yīng)于成功地執(zhí)行非基于證書的認(rèn)證操作,將第一資源響應(yīng)從服務(wù)器發(fā)送到客戶端;在執(zhí)行非基于證書的認(rèn)證操作之后,在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求;響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端;在服務(wù)器處通過SSL會(huì)話接收在客戶端處由可執(zhí)行模塊使用數(shù)字證書生成的數(shù)字簽名;以及響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端。
32.一種用于執(zhí)行認(rèn)證操作的裝置,該裝置包括用于在服務(wù)器處接收來自客戶端的第一資源請(qǐng)求的部件;用于響應(yīng)于確定第一資源請(qǐng)求要求在響應(yīng)第一資源請(qǐng)求之前完成非基于證書的認(rèn)證操作,在服務(wù)器和客戶端之間建立SSL(安全套接字層)會(huì)話的部件;用于通過SSL會(huì)話執(zhí)行非基于證書的認(rèn)證操作的部件;用于響應(yīng)于成功地執(zhí)行非基于證書的認(rèn)證操作,將第一資源響應(yīng)從服務(wù)器發(fā)送到客戶端的部件;用于在執(zhí)行非基于證書的認(rèn)證操作之后,在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求的部件;用于響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端的部件;用于在服務(wù)器處通過SSL會(huì)話接收在客戶端處由可執(zhí)行模塊使用數(shù)字證書生成的數(shù)字簽名的部件;以及用于響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端的部件。
33.一種計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品,用于數(shù)據(jù)處理系統(tǒng)中,以便執(zhí)行認(rèn)證操作,該計(jì)算機(jī)程序產(chǎn)品包括用于在服務(wù)器處接收來自客戶端的第一資源請(qǐng)求的單元;用于響應(yīng)于確定第一資源請(qǐng)求要求在響應(yīng)第一資源請(qǐng)求之前完成非基于證書的認(rèn)證操作,在服務(wù)器和客戶端之間建立SSL(安全套接字層)會(huì)話的單元;用于通過SSL會(huì)話執(zhí)行非基于證書的認(rèn)證操作的單元;用于響應(yīng)于成功地執(zhí)行非基于證書的認(rèn)證操作,將第一資源響應(yīng)從服務(wù)器發(fā)送到客戶端的單元;用于在執(zhí)行非基于證書的認(rèn)證操作之后,在服務(wù)器處通過SSL會(huì)話接收來自客戶端的第二資源請(qǐng)求的單元;用于響應(yīng)于確定第二資源請(qǐng)求要求基于證書的認(rèn)證過程,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端的單元;用于在服務(wù)器處通過SSL會(huì)話接收在客戶端處由可執(zhí)行模塊使用數(shù)字證書生成的數(shù)字簽名的單元;以及用于響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,將第二資源響應(yīng)從服務(wù)器發(fā)送到客戶端的單元。
全文摘要
本發(fā)明公開了一種用于執(zhí)行認(rèn)證操作的方法。當(dāng)客戶端向服務(wù)器請(qǐng)求資源時(shí),在服務(wù)器和客戶端之間通過SSL(安全套接字層)會(huì)話來執(zhí)行非基于證書的認(rèn)證操作。當(dāng)客戶端請(qǐng)求另一資源時(shí),服務(wù)器確定要升級(jí)到具有更大限制性的認(rèn)證級(jí)別,并且通過SSL會(huì)話執(zhí)行基于證書的認(rèn)證操作,而無需在完成基于證書的認(rèn)證操作之前退出或重新協(xié)商SSL會(huì)話。在基于證書的認(rèn)證過程期間,通過SSL會(huì)話將可執(zhí)行模塊從服務(wù)器下載到客戶端,此后服務(wù)器通過SSL會(huì)話接收在客戶端由可執(zhí)行模塊使用數(shù)字證書而生成的數(shù)字簽名。響應(yīng)于在服務(wù)器處成功驗(yàn)證了數(shù)字簽名,服務(wù)器提供對(duì)所請(qǐng)求資源的訪問。
文檔編號(hào)H04L9/00GK1823513SQ200480020312
公開日2006年8月23日 申請(qǐng)日期2004年7月9日 優(yōu)先權(quán)日2003年7月17日
發(fā)明者保羅·A·阿施利, 斯里達(dá)·穆匹迪, 馬克·范登瓦尤沃 申請(qǐng)人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1