亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

在計算機(jī)系統(tǒng)之間建立用于傳遞消息的安全上下文的制作方法

文檔序號:7633371閱讀:168來源:國知局
專利名稱:在計算機(jī)系統(tǒng)之間建立用于傳遞消息的安全上下文的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種改進(jìn)的數(shù)據(jù)處理系統(tǒng),并且尤其涉及一種用于進(jìn)行多計算機(jī)數(shù)據(jù)傳送的方法和設(shè)備。更特別地,本發(fā)明還提供了一種通過使用密碼學(xué)技術(shù)來進(jìn)行多計算機(jī)通信的方法和設(shè)備。
背景技術(shù)
電子商務(wù)網(wǎng)站和其他類型的應(yīng)用代表用戶和客戶端在計算機(jī)網(wǎng)絡(luò)上執(zhí)行事務(wù)處理。在代表客戶端執(zhí)行所請求的操作之前,出于安全目的,客戶端往往必須通過一個驗證過程,以便在恰當(dāng)?shù)目尚哦燃墑e上證實客戶端身份。
很多數(shù)據(jù)處理系統(tǒng)都是通過通用安全服務(wù)應(yīng)用編程接口(GSS-API)來支持客戶端驗證操作的,并且其中在以下文獻(xiàn)中對這種接口進(jìn)行了描述Linn所著的“Generic Security ServicesApplication Program Interface”(Internet Engineering Task Force(IETF)Request for Comments(RFC)1508,1993年9月,已由Linn廢止),以及“Generic Security Services Application Program Interface,Version 2”(IETF RFC 2078,1997年1月)。如這些文獻(xiàn)中所述,GSS-API是以一種常規(guī)方式來為調(diào)用者提供安全服務(wù)的。GSS-API通過規(guī)定的服務(wù)和原語(primitive)來支持一系列的底層機(jī)制和技術(shù),由此允許應(yīng)用對于不同的操作和編程語言環(huán)境的源級可移植性。
在Adams于1996年10月發(fā)表于IETF RFC 2025上的“TheSimple Public-Key GSS-API Mechanism(SPKM)”以及Eisler于2000年6月發(fā)表于IETF RFC 2847的“LIPKEY-A Low InfrastructurePublic Key Mechanism Using SPKM”中,介紹了可選的現(xiàn)有GSS-API機(jī)制。如這些文獻(xiàn)中所述,SPKM在使用公鑰基礎(chǔ)設(shè)施的聯(lián)機(jī)分布式應(yīng)用環(huán)境中提供了驗證、密鑰建立、數(shù)據(jù)完整性以及數(shù)據(jù)保密性。通過遵循GSS-API,任何使用GSS-API調(diào)用的應(yīng)用都可以使用SPKM來訪問安全服務(wù)。作為選擇,LIPKEY還提供了一種用于在客戶端與服務(wù)器之間提供安全通道的方法。LIPKEY與傳輸層安全性(TLS)的公共低基礎(chǔ)設(shè)施使用有些相似,該使用是用于實現(xiàn)諸如驗證、數(shù)據(jù)完整性以及數(shù)據(jù)保密性之類的安全功能的GSS-API的一種替換方法;在Dierks等人于1999年1月發(fā)表于IETF RFC 2246上的“The TLSProtocol,Version 1.0”一文中對TLS進(jìn)行了描述。LIPKEY利用(leverage)SPKM作為層疊在SPKM上的獨(dú)立的GSS-API機(jī)制。
在假定忙時服務(wù)器系統(tǒng)的計算需求的情況下,需要執(zhí)行靈活輕便的安全操作。因此,較為有利的是具有一種能夠處理多種客戶端驗證形式的與GSS-API相兼容的機(jī)制。

發(fā)明內(nèi)容
在這里給出了一種用于在客戶端與服務(wù)器之間建立用于傳遞消息的安全上下文的方法、數(shù)據(jù)處理系統(tǒng)、設(shè)備以及計算機(jī)程序產(chǎn)品,其中所述方法、數(shù)據(jù)處理系統(tǒng)、設(shè)備以及計算機(jī)程序產(chǎn)品與通用安全服務(wù)應(yīng)用編程接口(GSS-API)相兼容??蛻舳讼蚍?wù)器發(fā)送一個第一消息,其中包含了由客戶端生成的第一對稱秘密密鑰以及驗證令牌;所述第一消息由公鑰保護(hù),其中該公鑰來源于與服務(wù)器相關(guān)聯(lián)的公鑰證書。假設(shè)服務(wù)器能夠根據(jù)驗證令牌來驗證客戶端,那么客戶端將會從服務(wù)器接收第二消息,所述第二消息由第一對稱秘密密鑰保護(hù),并且該消息包含了第二對稱秘密密鑰??蛻舳撕头?wù)器使用第二對稱秘密密鑰來保護(hù)在客戶端與服務(wù)器之間發(fā)送的后續(xù)消息。驗證令牌可以是與客戶端相關(guān)聯(lián)的公鑰證書、用戶名-密碼對或安全票據(jù)。


現(xiàn)在將參考下列附圖通過舉例來詳細(xì)描述本發(fā)明的優(yōu)選實施例,其中圖1A描述了典型的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò),其中每一個數(shù)據(jù)處理系統(tǒng)都可以實現(xiàn)本發(fā)明的優(yōu)選實施例;圖1B描述了可以在能夠?qū)崿F(xiàn)本發(fā)明優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)中使用的典型的計算機(jī)體系結(jié)構(gòu);圖2描述的是顯示了個人獲取數(shù)字證書的典型方式的框圖;圖3描述的是顯示了實體可以使用將被數(shù)據(jù)處理系統(tǒng)驗證的數(shù)字證書的典型方式的框圖;圖4描述的是顯示了用于在客戶端與服務(wù)器之間建立安全通信上下文的與GSS-API相兼容的典型機(jī)制的數(shù)據(jù)流程圖;以及圖5描述的是顯示了依照本發(fā)明實施例在客戶端與服務(wù)器之間建立安全通信上下文的與GSS-API相兼容的典型機(jī)制的數(shù)據(jù)流程圖。
具體實施例方式
通常,對于可能包含或涉及本發(fā)明優(yōu)選實施例的設(shè)備來說,這些設(shè)備包含了多種數(shù)據(jù)處理技術(shù)。因此,在更詳細(xì)地描述本發(fā)明的優(yōu)選實施例之前,作為背景技術(shù),先對分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件和軟件組件的典型組織結(jié)構(gòu)進(jìn)行描述。
現(xiàn)在參考附圖,圖1A描述了典型的數(shù)據(jù)處理系統(tǒng)網(wǎng)絡(luò),其中每一個系統(tǒng)都可以實現(xiàn)本發(fā)明的優(yōu)選實施例的一部分。分布式數(shù)據(jù)處理系統(tǒng)100包括網(wǎng)絡(luò)101,它是一種可以用于在分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)部連接在一起的各種設(shè)備和計算機(jī)之間提供通信鏈路的媒介。所述網(wǎng)絡(luò)101既可以包括諸如有線或光纖電纜之類的永久性連接,也可以包括借助電話或無線通信建立的臨時連接。在所描述的實例中,服務(wù)器102和服務(wù)器103連同存儲單元104一起都與網(wǎng)絡(luò)101相連。此外,客戶端105~107也與網(wǎng)絡(luò)101相連??蛻舳?05~107以及服務(wù)器102~103可以由各種計算設(shè)備表示,計算設(shè)備可以是例如大型機(jī)、個人計算機(jī)、個人數(shù)字助理(PDA)等。此外,分布式數(shù)據(jù)處理系統(tǒng)100還可以包括另外的未顯示的服務(wù)器、客戶端、路由器、其他設(shè)備以及對等體系結(jié)構(gòu)。
在所描述的實例中,分布式數(shù)據(jù)處理系統(tǒng)100可以包括因特網(wǎng),其中網(wǎng)絡(luò)101代表使用各種協(xié)議來進(jìn)行相互通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的全球性集合,所述協(xié)議可以是輕量級目錄訪問協(xié)議(LDAP)、傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)、超文本傳輸協(xié)議(HTTP)、無線應(yīng)用協(xié)議(WAP)等。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100還可以包括多個不同類型的網(wǎng)絡(luò),諸如例如企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。舉例來說,服務(wù)器102直接支持客戶端109以及引入了無線通信鏈路的網(wǎng)絡(luò)110。網(wǎng)絡(luò)啟用的(network-enabled)電話111通過無線鏈路112連接到網(wǎng)絡(luò)110,并且PDA 113通過無線鏈路114連接到網(wǎng)絡(luò)110。此外,電話111和PDA 113還可以使用諸如BluetoothTM(藍(lán)牙)無線技術(shù)之類的恰當(dāng)技術(shù)、經(jīng)由無線鏈路115在其間直接傳送數(shù)據(jù),以便創(chuàng)建所謂的個人局域網(wǎng)(PAN)或個人特設(shè)(ad-hoc)網(wǎng)絡(luò)。以類似的方式,PDA 113可以借助無線通信鏈路116向PDA 107傳送數(shù)據(jù)。
本發(fā)明的優(yōu)選實施例可以在不同的硬件平臺上實現(xiàn);圖1A旨在作為異構(gòu)計算環(huán)境的一個實例,而不是在體系結(jié)構(gòu)上對本發(fā)明的優(yōu)選現(xiàn)在參考圖1B,該圖描述了如圖1A所示的可以實現(xiàn)本發(fā)明的優(yōu)選實施例的數(shù)據(jù)處理系統(tǒng)的典型計算機(jī)體系結(jié)構(gòu)。數(shù)據(jù)處理系統(tǒng)120包括一個或多個與內(nèi)部系統(tǒng)總線123相連的中央處理單元(CPU)122,該總線還互連了隨機(jī)存取存儲器(RAM)124、只讀存儲器126以及輸入/輸出適配器128,其中所述輸入/輸出適配器128支持多種I/O設(shè)備,該I/O設(shè)備可以是諸如打印機(jī)130、盤單元132或是其他沒有顯示的設(shè)備,例如音頻輸出設(shè)備等。系統(tǒng)總線123還連接了通信適配器134,該適配器提供了對通信鏈路136的訪問。用戶接口適配器148連接各種用戶設(shè)備,該設(shè)備可以是諸如鍵盤140和鼠標(biāo)142,或是其他沒有顯示的設(shè)備,例如觸摸屏、指示筆、麥克風(fēng)等。顯示適配器144將系統(tǒng)總線123連接到顯示設(shè)備146。
本領(lǐng)域技術(shù)人員將會了解,圖1B中的硬件有可能會隨著系統(tǒng)實施方式的不同而改變。例如,該系統(tǒng)可以具有一個或多個處理器,所述處理器可以是基于IntelPentium的處理器以及數(shù)字信號處理器(DSP),此外,該系統(tǒng)還可以具有一種或多種類型的易失和非易失性存儲器。作為對圖1B中所描述的硬件的補(bǔ)充或替換,可以使用其他的外圍設(shè)備。所描述的實例并不意味著對本發(fā)明的優(yōu)選實施例進(jìn)行體系結(jié)構(gòu)方面的限制。
除了能在各種硬件平臺上實現(xiàn)之外,本發(fā)明的優(yōu)選實施例也可以在各種軟件環(huán)境中實現(xiàn)。在每一個數(shù)據(jù)處理系統(tǒng)內(nèi)部,可以使用典型的操作系統(tǒng)來控制程序執(zhí)行。舉例來說,一個設(shè)備可以運(yùn)行Unix操作系統(tǒng),而另一個設(shè)備則包含了簡單的Java運(yùn)行時間環(huán)境。典型的計算機(jī)平臺可以包括瀏覽器,它是一種用于訪問多種格式的超文本文檔的公知的軟件應(yīng)用,其中舉例來說,所述文檔可以是圖形文件、字處理文件、可擴(kuò)展標(biāo)記語言(XML)、超文本標(biāo)記語言(HTML)、手持設(shè)備標(biāo)記語言(HDML)、無線標(biāo)記語言(WML)以及各種其他格式和類型的文件。
這里關(guān)于附圖的描述包含了由客戶端設(shè)備或是客戶端設(shè)備用戶所執(zhí)行的某些操作。本領(lǐng)域技術(shù)人員應(yīng)該理解,來自/去往客戶端的響應(yīng)和/或請求有時是由用戶發(fā)起的,而在其他時候則通常是由客戶端代表客戶端的用戶自動發(fā)起的。由此,應(yīng)該理解,當(dāng)在關(guān)于附圖的描述中提及客戶端或客戶端用戶的時候,術(shù)語“客戶端”和“用戶”是可以互換使用的,而這并不會對所描述的處理的含意造成顯著的影響。
如上文中結(jié)合圖1A和1B所述,本發(fā)明的優(yōu)選實施例可以在各種硬件和軟件平臺上實現(xiàn)。更特別地,本發(fā)明的優(yōu)選實施例涉及的是一種改進(jìn)的、用于在客戶端與服務(wù)器之間建立用于通信的安全上下文的基于公鑰的機(jī)制,該機(jī)制與通用安全服務(wù)應(yīng)用編程接口(GSS-API)是兼容的;安全上下文包含了兩個或多個通信實體之間在通信會話持續(xù)期間所共享的信息,其中在所述通信會話過程中,在通信實體之間可以交換多個安全消息。不過,在更詳細(xì)地描述本發(fā)明的優(yōu)選實施例之前,在這里首先將會提供關(guān)于數(shù)字證書的某些背景技術(shù)信息,以便評估本發(fā)明優(yōu)選實施例的操作效率和其他優(yōu)點。
數(shù)字證書為公鑰密碼學(xué)技術(shù)提供了支持,其中在公鑰密碼學(xué)技術(shù)中,通信或事務(wù)處理中涉及的每一方都具有一個被稱為公鑰和私鑰的密鑰對。每一方的公鑰都是公開的,而私鑰則是保密的。公鑰是與特定實體相關(guān)聯(lián)的數(shù)字,并且使所述公鑰為每一個需要與該實體進(jìn)行可信交互的每一個人所知。私鑰是假設(shè)只為特定實體所知的數(shù)字,也就是說,私鑰是保密的。在典型的非對稱密碼系統(tǒng)中,私鑰與一個公鑰是完全對應(yīng)的。
在公鑰密碼學(xué)技術(shù)系統(tǒng)內(nèi)部,由于所有通信都只涉及公鑰并且從未傳送或共享私鑰,因此只要使用公共信息就可以產(chǎn)生保密消息,并且只要使用預(yù)定接收方獨(dú)有的私鑰就可以解密該信息。此外,公鑰密碼學(xué)技術(shù)還可以用于驗證,也就是數(shù)字簽名,此外也可以用于保密,也就是加密。
加密是將數(shù)據(jù)變換成不能被任何沒有秘密的解密密鑰的人所讀取的形式;加密通過針對非預(yù)定的個人、甚至是可以看到經(jīng)過加密的數(shù)據(jù)的那些人隱藏信息內(nèi)容來確保保密性。驗證是一種可供數(shù)字消息接收方用以確信發(fā)送方的身份和/或消息的完整性的處理。
舉例來說,在發(fā)送方加密消息的時候,接收方的公鑰被用于把原始消息內(nèi)的數(shù)據(jù)變換成加密消息的內(nèi)容。發(fā)送方使用預(yù)定接收方的公鑰來加密數(shù)據(jù),而接收方則使用其私鑰來對加密消息進(jìn)行解密。
在驗證數(shù)據(jù)時,通過使用簽名方的私鑰從數(shù)據(jù)中計算出一個數(shù)字簽名,可以對數(shù)據(jù)進(jìn)行簽名。一旦對數(shù)據(jù)進(jìn)行了數(shù)字簽名,就可以將其與簽名方的身份以及用于證實該數(shù)據(jù)來源于簽名方的簽名保存在一起。簽名方使用其私鑰來對數(shù)據(jù)進(jìn)行簽名,并且接收方使用簽名方的公鑰來檢驗簽名。
證書是一個數(shù)字文檔,它可以保證實體的身份以及密鑰所有權(quán),其中舉例來說,該實體可以是個人、計算機(jī)系統(tǒng)、在系統(tǒng)上運(yùn)行的特定服務(wù)器等。證書是由認(rèn)證機(jī)構(gòu)發(fā)布的。認(rèn)證機(jī)構(gòu)(CA)是一個受到委托來為其他人員或?qū)嶓w提供簽名或發(fā)布證書的實體,并且對某一個事務(wù)處理來說,其通常是一個可信的第三方。CA通常具有某種保證公鑰及其所有者之間的綁定(binding)的法定職責(zé),這種職責(zé)允許某一方信任那些對證書進(jìn)行簽名的實體。目前已經(jīng)有很多的商業(yè)認(rèn)證機(jī)構(gòu);在發(fā)布證書的時候,這些機(jī)構(gòu)將會負(fù)責(zé)檢驗實體的身份以及密鑰所有權(quán)。
如果某個認(rèn)證機(jī)構(gòu)為實體發(fā)布了一個證書,那么該實體必須提供一個公鑰以及關(guān)于實體的某些信息。軟件工具、例如專門配備的Web(萬維網(wǎng))瀏覽器可以對該信息進(jìn)行數(shù)字簽名,并且將其發(fā)送到認(rèn)證機(jī)構(gòu)。該認(rèn)證機(jī)構(gòu)可以是一個提供可信的第三方認(rèn)證機(jī)構(gòu)服務(wù)的商業(yè)公司。然后,認(rèn)證機(jī)構(gòu)將會產(chǎn)生證書并且返回該證書。該證書可以包括其他信息,例如序列號以及證書有效日期。認(rèn)證機(jī)構(gòu)所提供的一部分價值在于它充當(dāng)了一個部分地基于其檢驗需求的中立并且可信的介紹服務(wù),其中所述檢驗需求是在其證書服務(wù)實踐(Certification ServicePractices,CSP)中公開發(fā)布的。
CA通過嵌入發(fā)出請求的實體的公鑰以及其他標(biāo)識信息,然后使用CA的私鑰來對數(shù)字證書進(jìn)行簽名,來創(chuàng)建新的數(shù)字證書。然后,在事務(wù)處理或通信期間接收到數(shù)字證書的任何人都可以使用CA的公鑰來檢驗證書中經(jīng)過簽名的公鑰。意圖是將CA的簽名用作數(shù)字證書上的防篡改的封印,由此確保證書中數(shù)據(jù)的完整性。
證書處理的其他方面同樣也被標(biāo)準(zhǔn)化了。證書請求消息格式(RFC 2511)規(guī)定了一種在信賴方正在向CA請求證書的時候推薦使用的格式。此外,還發(fā)布了用于傳送證書的證書管理協(xié)議。本發(fā)明的優(yōu)選實施例在于使用數(shù)字證書的分布式數(shù)據(jù)處理系統(tǒng)中;圖2~3的描述提供了與涉及數(shù)字證書的典型操作有關(guān)的背景技術(shù)信息。
現(xiàn)在參考圖2,該框圖描述了個人獲取數(shù)字證書的典型方式。對操作某種類型客戶端計算機(jī)的用戶202來說,該用戶先前已經(jīng)獲取或產(chǎn)生了一個公鑰/私鑰對,例如用戶公鑰204和用戶私鑰206。用戶202產(chǎn)生一個包含用戶公鑰204的證書請求208,并且將該請求發(fā)送到擁有CA公鑰212以及CA私鑰214的認(rèn)證機(jī)構(gòu)210。認(rèn)證機(jī)構(gòu)210以某種方式對用戶202的身份進(jìn)行檢驗,并且產(chǎn)生包含用戶公鑰218的X.509數(shù)字證書216。整個證書用CA私鑰214進(jìn)行簽名;該證書包含用戶公鑰、與用戶相關(guān)聯(lián)的名稱以及其他屬性。用戶202接收新近產(chǎn)生的數(shù)字證書216,然后,用戶202可以在必要的時候給出數(shù)字證書216,以便進(jìn)行可信的事務(wù)處理或可信的通信。從用戶202那里接收到數(shù)字證書216的實體可以通過使用CA公鑰212來檢驗CA的簽名,其中所述CA公鑰212是公開發(fā)布的并且可以被進(jìn)行檢驗的實體所得到。
現(xiàn)在參考圖3,該框圖描述了一種實體可以使用將被數(shù)據(jù)處理系統(tǒng)驗證的數(shù)字簽名的典型方式。用戶302擁有X.509數(shù)字證書304,該證書將被傳送到主機(jī)系統(tǒng)308上的因特網(wǎng)或內(nèi)部網(wǎng)應(yīng)用306;應(yīng)用306包含用于處理和使用數(shù)字證書的X.509功能。用戶302用其私鑰對他發(fā)送到應(yīng)用306的數(shù)據(jù)進(jìn)行簽名或加密。
接收到證書304的實體可以是一個應(yīng)用、系統(tǒng)、子系統(tǒng)等。證書304包含用于向應(yīng)用306標(biāo)識用戶302的主體(subject)名稱或主體標(biāo)識符,該應(yīng)用306可以為用戶302執(zhí)行某種類型的服務(wù)。在使用與來自用戶302的經(jīng)過簽名或加密的數(shù)據(jù)有關(guān)的證書之前,使用證書304的實體將會檢驗該證書的真實性。
主機(jī)系統(tǒng)308還可以包括系統(tǒng)注冊庫(registry)310,它被用于授權(quán)用戶302訪問系統(tǒng)308內(nèi)部的服務(wù)和資源,也就是使用戶的身份與用戶的特權(quán)相一致。舉例來說,系統(tǒng)管理員可以對用戶的身份進(jìn)行配置,以使之歸屬于某個安全性群組,而用戶則會受到限制,從而只能訪問那些被配置成可以總體上為所述安全性群組所獲取的資源。在系統(tǒng)內(nèi)部,可以使用各種用于實施授權(quán)方案的公知方法。
為了恰當(dāng)?shù)卮_認(rèn)或檢驗數(shù)字證書,應(yīng)用必須檢查該證書是否已被撤銷。當(dāng)認(rèn)證機(jī)構(gòu)發(fā)布證書的時候,認(rèn)證機(jī)構(gòu)將會產(chǎn)生一個唯一的用以標(biāo)識證書的序列號,并且這個序列號將會保存在X.509證書的“序列號(Serial Number)”字段內(nèi)部。通常,已被撤銷的X.509證書是借助證書的序列號而被標(biāo)識在CRL內(nèi)部的;對于已被撤銷的證書而言,該證書的序列號會出現(xiàn)在CRL內(nèi)部的序列號列表中。
為了確定證書304是否仍舊有效,應(yīng)用306從CRL儲存庫312中獲取證書撤銷列表(CRL)并且確認(rèn)所述CRL。應(yīng)用306將證書304內(nèi)部的序列號與所檢取的CRL內(nèi)部的序列號列表進(jìn)行比較,并且如果沒有匹配的序列號,那么應(yīng)用306確認(rèn)該證書304。如果CRL具有匹配的序列號,那么證書304應(yīng)當(dāng)被拒絕,并且應(yīng)用306可以采用恰當(dāng)措施來拒絕要求訪問任何受控資源的用戶請求。
然而,圖3描述的是一種供客戶端使用數(shù)字證書來訪問服務(wù)器的常規(guī)方法。圖4描述了在客戶端與服務(wù)器之間傳送信息以便建立安全通信上下文的細(xì)節(jié),在圖3中并未就此進(jìn)行描述。
現(xiàn)在參考圖4,該數(shù)據(jù)流程圖描述了一種典型的與GSS-API相兼容的、用于在客戶端與服務(wù)器之間建立安全通信上下文的機(jī)制。該處理是以客戶端402向服務(wù)器發(fā)送一個請求得到服務(wù)器的公鑰證書的請求開始的(步驟406)。服務(wù)器對這個請求進(jìn)行處理,并且產(chǎn)生一個包含或附有服務(wù)器的公鑰證書副本的響應(yīng)(步驟408),該響應(yīng)將會被返回到發(fā)出請求的客戶端(步驟410)。
客戶端對服務(wù)器的公鑰證書進(jìn)行驗證,并且產(chǎn)生一個會話密鑰(步驟412);優(yōu)選地,該會話密鑰是一個對稱的秘密密鑰。然后,客戶端將會話密鑰安全地發(fā)送到服務(wù)器(步驟414)。舉例來說,客戶端可以使用先前從服務(wù)器的公鑰證書中提取的服務(wù)器公鑰來加密會話密鑰。然后,經(jīng)過加密的會話密鑰被置入一則用客戶端的私鑰進(jìn)行數(shù)字簽名的消息中。服務(wù)器能夠用客戶端的公鑰來檢驗消息上的數(shù)字簽名,以確保該消息是由所述客戶端創(chuàng)建和簽名的,而會話密鑰則只能由服務(wù)器進(jìn)行解密。關(guān)于數(shù)字信封和數(shù)字簽名的可適用格式的描述可以參見“PKCS#7Cryptographic Message Syntax Standard”(Version 1.5,RSA Laboratories Technical Note,11/01/1993)。
隨后,在檢驗了客戶端的數(shù)字簽名以及解密了會話密鑰之后,服務(wù)器接受該會話密鑰,之后產(chǎn)生一個安全響應(yīng)(步驟416),并且該響應(yīng)被返回到客戶端(步驟418)。然后,客戶端將會產(chǎn)生和加密一個客戶端驗證令牌(步驟420),并且將這個客戶端驗證令牌安全地發(fā)送到服務(wù)器(步驟422)。在從接收到的消息中提取了客戶端驗證令牌之后,服務(wù)器對客戶端進(jìn)行驗證,并且產(chǎn)生一個響應(yīng)(步驟424),并且該響應(yīng)被安全地返回到客戶端(步驟426)。然后,客戶端對這個響應(yīng)進(jìn)行分析,以便確定服務(wù)器是否肯定地驗證了客戶端或者服務(wù)器是否拒絕了客戶端的驗證請求(步驟428),然后該處理結(jié)束。
如上所述,圖4描述了依照已知的與GSS-API兼容的機(jī)制來建立安全通信上下文的典型方法。與之相反,本方法涉及的是一種改進(jìn)的用于建立安全通信上下文的基于公鑰的與GSS-API相兼容的方法,在下文中參考剩余的附圖對其進(jìn)行了描述。
現(xiàn)在參考圖5,該數(shù)據(jù)流程圖描述了依照本發(fā)明的實施例在客戶端與服務(wù)器之間建立安全通信上下文的典型的與GSS-API相兼容的機(jī)制。該處理是以客戶端502向服務(wù)器504發(fā)送一個請求獲取服務(wù)器的公鑰證書的請求開始的(步驟506),例如在客戶端嘗試綁定到服務(wù)器應(yīng)用的時候開始。當(dāng)接收到該請求的時候,服務(wù)器對該請求進(jìn)行處理,并且產(chǎn)生一個包含或附有服務(wù)器的公鑰證書副本的響應(yīng)(步驟508),該響應(yīng)被返回給發(fā)出請求的客戶端(步驟510)。
在接收到服務(wù)器的數(shù)字證書之后,客戶端確認(rèn)服務(wù)器的公鑰證書,以確保該證書是由可信的認(rèn)證機(jī)構(gòu)簽名的(步驟512)。應(yīng)該指出的是,客戶端可能認(rèn)定它先前已經(jīng)確認(rèn)并存儲了這個服務(wù)器的公鑰證書的副本,由此允許客戶端通過從本地高速緩存中檢取服務(wù)器的證書來獲取所述服務(wù)器證書。作為選擇,服務(wù)器的公鑰證書也可以用其他方式提供給客戶端,例如通過由客戶端從目錄或相似的數(shù)據(jù)存儲器(datastore)中檢取服務(wù)器的公鑰證書來提供。
假設(shè)服務(wù)器證書已經(jīng)得到了肯定確認(rèn),那么客戶端將會從證書中提取服務(wù)器公鑰,并且對其進(jìn)行高速緩存。然后,客戶端產(chǎn)生一個隨機(jī)的對稱秘密密鑰以及一個驗證令牌(步驟514);在這里,這個特定的秘密密鑰被稱為傳輸密鑰。驗證令牌可以包括用戶名-密碼對、來自主要驗證器(authenticator)的標(biāo)記了時戳的安全票據(jù)、與客戶端相關(guān)聯(lián)的公鑰證書或是某些其他可驗證信息;在恰當(dāng)?shù)臅r候,客戶端僅僅通過復(fù)制諸如安全票據(jù)之類的數(shù)據(jù)項,就可以產(chǎn)生驗證令牌。
然后,客戶端將傳輸密鑰以及驗證令牌安全地發(fā)送到服務(wù)器(步驟516)。從客戶端向服務(wù)器傳送傳輸密鑰以及驗證令牌的處理是以某種通過使用服務(wù)器的公鑰進(jìn)行加密的方式來保護(hù)的。舉例來說,傳輸密鑰和驗證令牌可以使用服務(wù)器公鑰進(jìn)行加密,以便在發(fā)送到服務(wù)器的消息上形成一個數(shù)字信封。作為選擇,傳輸密鑰和驗證令牌還可以被單獨(dú)加密,以便包含在一則傳送到服務(wù)器的消息中。
一旦接收到來自客戶端的安全消息,服務(wù)器就會用服務(wù)器的私鑰來解密數(shù)字信封。然后,服務(wù)器使用一個與發(fā)送到服務(wù)器的驗證令牌的類型相適合的處理,也就是說,基于客戶端發(fā)送到服務(wù)器的驗證令牌的類型,來驗證客戶端或是客戶端用戶(步驟518)。例如,服務(wù)器可以為用戶名-密碼對執(zhí)行LDAP查找,或者可以確認(rèn)一個安全票據(jù),例如Kerberos票據(jù)。如果驗證令牌是客戶端證書,則在服務(wù)器用由客戶端公鑰(數(shù)字信封)加密的隨機(jī)會話密鑰做出響應(yīng)的時候,實現(xiàn)驗證,其中只有正確的客戶端才可以使用與客戶端證書中的公鑰相關(guān)聯(lián)的私鑰來解密所述隨機(jī)會話密鑰;所述數(shù)字信封仍然是依據(jù)由客戶端發(fā)送到服務(wù)器的傳輸密鑰以加密形式發(fā)送的,由此防止個人進(jìn)行中途攻擊。假設(shè)客戶端已經(jīng)通過驗證,那么服務(wù)器將會產(chǎn)生一個隨機(jī)的對稱秘密密鑰(步驟520),該密鑰將被用于保護(hù)在客戶端與服務(wù)器之間創(chuàng)建的通信上下文內(nèi)部的消息;在這里,這個特定的秘密密鑰被稱為會話密鑰。
然后,服務(wù)器將會話密鑰安全地發(fā)送到客戶端(步驟522)。從服務(wù)器向客戶端傳送會話密鑰的處理是用某種通過使用傳輸密鑰進(jìn)行加密的方式來保護(hù)的。舉例來說,服務(wù)器可以將會話密鑰置入會話令牌中,其中服務(wù)器用傳輸密鑰來加密這個會話令牌;然后,服務(wù)器可以將經(jīng)過加密的會話令牌置入一則消息中,其中服務(wù)器使用客戶端的公鑰來密封這則消息,然后使用傳輸密鑰來加密所得到的信封。作為選擇,在將經(jīng)過加密的會話密鑰置入將被發(fā)送給客戶端的消息中之前,服務(wù)器可以單獨(dú)使用傳輸密鑰來加密會話密鑰。作為產(chǎn)生安全消息的處理的另一個實例,服務(wù)器可以使用傳輸密鑰在包含了會話密鑰的消息上產(chǎn)生數(shù)字信封。
在接收到消息之后,客戶端使用傳輸密鑰來解密消息中的恰當(dāng)部分,并且提取會話密鑰(步驟524),由此結(jié)束處理。根據(jù)所使用的驗證機(jī)制,服務(wù)器可以產(chǎn)生不同格式的消息;因此,客戶端可以直接從會話令牌中獲取會話密鑰,或者如果服務(wù)器還使用客戶端公鑰來加密會話密鑰或是加密包含會話密鑰的消息的一部分,那么客戶端可能需要使用客戶端私鑰來解密會話密鑰。此外,客戶端與服務(wù)器之間的消息可以包括一個序列號,用于進(jìn)行保護(hù)以免遭受重放(replay)攻擊。
在結(jié)束處理之后,客戶端和服務(wù)器都擁有了會話密鑰副本,隨后,所述會話密鑰副本可以用于保護(hù)客戶端與服務(wù)器之間的消息,由此安全地保證了客戶端與服務(wù)器之間的通信上下文的數(shù)據(jù)保密性和數(shù)據(jù)完整性。舉例來說,客戶端可以使用會話密鑰將請求消息安全地發(fā)送到服務(wù)器,以便訪問受服務(wù)器控制的資源。本領(lǐng)域技術(shù)人員應(yīng)該理解,會話密鑰可以用于客戶端與服務(wù)器之間的指定通信會話,并且在由本發(fā)明優(yōu)選實施例中的與GSS-API兼容的機(jī)制所提供的安全上下文內(nèi)部,或者在某些其他機(jī)制所提供的安全上下文內(nèi)部,客戶端與服務(wù)器之間的指定通信會話可能和客戶端與服務(wù)器之間的其它安全通信會話是同時進(jìn)行的,此外,指定的通信會話可以在允許其他那些同時進(jìn)行的會話繼續(xù)進(jìn)行的同時被終止。
依據(jù)上文中提供的詳細(xì)描述,這種方法的優(yōu)點將是顯而易見的。與現(xiàn)有技術(shù)中用于建立安全通信會話的與GSS-API兼容的機(jī)制相比,本發(fā)明的優(yōu)選實施例提供了根據(jù)需要從用戶名-密碼類型的客戶端-服務(wù)器驗證操作擴(kuò)展到完整的公鑰基礎(chǔ)設(shè)施(PKI)解決方案的能力,同時繼續(xù)使用與先前實施的用戶名-密碼解決方案相同的與GSS-API相兼容的機(jī)制。此外,本發(fā)明的優(yōu)選實施例還允許客戶端使用公鑰證書來進(jìn)行驗證,而LIPKEY則不允許這種操作。另外,本發(fā)明的優(yōu)選實施例允許多種客戶端驗證機(jī)制,例如用戶名-密碼、安全票據(jù)或公鑰證書,而SPKM則不支持它們。而且,與LIPKEY相比,本發(fā)明的優(yōu)選實施例使網(wǎng)絡(luò)業(yè)務(wù)量以及密碼操作得以最小化,例如,在客戶端與服務(wù)器之間交換四則消息,而不是LIPKEY中的六則消息。
非常重要的是,應(yīng)該指出,雖然在完全發(fā)揮功能的數(shù)據(jù)處理系統(tǒng)的情況下對本發(fā)明的優(yōu)選實施例進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員應(yīng)該理解,無論用于實現(xiàn)分配的信號承載介質(zhì)具有怎樣的特定類型,本發(fā)明優(yōu)選實施例的處理都可以以計算機(jī)可讀介質(zhì)中的指令的形式以及多種其他形式來進(jìn)行分配。計算機(jī)可讀介質(zhì)的實例包括諸如EPROM、ROM、磁帶、紙張、軟盤、硬盤驅(qū)動器、RAM、CD-ROM之類的介質(zhì),以及諸如數(shù)字和模擬通信鏈路之類的傳輸類型的介質(zhì)。
方法通??梢员灰暈槭且粋€導(dǎo)致產(chǎn)生預(yù)期結(jié)果的自相容步驟序列。這些步驟需要對物理量執(zhí)行物理操作。通常,這些物理量具有能夠被存儲、傳送、組合、比較以及以其他方式被操作的電或磁信號的形式,但這并不是必需的。非常便利的是,主要是為了共同使用的目的,有時也會將這些信號稱為比特、值、參數(shù)、項目、元素、對象、符號、字符、條目、數(shù)字等。然而,應(yīng)該指出的是,所有這些術(shù)語以及類似術(shù)語都是與恰當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián)的,并且僅僅是應(yīng)用于這些物理量的便利性標(biāo)記。
已經(jīng)為了舉例說明的目的而給出了關(guān)于本發(fā)明優(yōu)選實施例的描述,但是該描述并不是窮舉的,并且也打算將其局限于所公開的實施例。對本領(lǐng)域普通技術(shù)人員來說,許多的修改和改變都將會是顯而易見的。
權(quán)利要求
1.一種用于在第一系統(tǒng)與第二系統(tǒng)之間建立用于傳遞消息的安全上下文的方法,該方法包括由第二系統(tǒng)獲取第一系統(tǒng)的第一公鑰證書,其中第二系統(tǒng)能夠確認(rèn)包含公鑰的第一公鑰證書;由第二系統(tǒng)產(chǎn)生傳輸密鑰,其中所述傳輸密鑰是對稱的秘密密鑰;由第二系統(tǒng)將傳輸密鑰以及驗證令牌置入用所述公鑰保護(hù)的第一消息中;將第一消息從第二系統(tǒng)發(fā)送到第一系統(tǒng);響應(yīng)于向第一系統(tǒng)發(fā)送第一消息的處理,在第二系統(tǒng)上接收來自第一系統(tǒng)的用所述傳輸密鑰保護(hù)的第二消息;由第二系統(tǒng)從第二消息中提取會話密鑰,其中所述會話密鑰是對稱的秘密密鑰;以及使用會話密鑰來保護(hù)由第二系統(tǒng)發(fā)送到第一系統(tǒng)的后續(xù)消息。
2.根據(jù)權(quán)利要求1的方法,其中驗證令牌包括第二系統(tǒng)的第二公鑰證書,并且第一系統(tǒng)能夠確認(rèn)第二公鑰證書。
3.根據(jù)權(quán)利要求2的方法,還包括由第二系統(tǒng)使用與第二公鑰證書相關(guān)聯(lián)的私鑰來解密包含會話密鑰的第二消息中的數(shù)字信封,其中所述數(shù)字信封是由第一系統(tǒng)使用第二公鑰證書中包含的公鑰創(chuàng)建的。
4.根據(jù)權(quán)利要求1的方法,其中驗證令牌包含用戶名-密碼對。
5.根據(jù)權(quán)利要求1的方法,其中驗證令牌包括安全票據(jù)。
6.一種用于在第一系統(tǒng)和第二系統(tǒng)之間建立用于傳遞消息的安全上下文的方法,該方法包括由第一系統(tǒng)提供與第一系統(tǒng)相關(guān)聯(lián)的公鑰證書,其中第二系統(tǒng)能夠確認(rèn)所述公鑰證書;在第一系統(tǒng)上接收來自第二系統(tǒng)的第一消息,其中所述第一消息是用來源于與第一系統(tǒng)相關(guān)聯(lián)的公鑰證書的公鑰保護(hù)的,并且其中第一消息包含傳輸密鑰和驗證令牌,其中所述傳輸密鑰是對稱的秘密密鑰;由第一系統(tǒng)根據(jù)驗證令牌來驗證第二系統(tǒng);由第一系統(tǒng)產(chǎn)生會話密鑰,其中所述會話密鑰是對稱的秘密密鑰;由第一系統(tǒng)將會話密鑰置入用傳輸密鑰保護(hù)的第二消息中;響應(yīng)于對第一消息的接收,將第二消息從第一系統(tǒng)發(fā)送到第二系統(tǒng);以及在第一系統(tǒng)上接收來自第二系統(tǒng)的用會話密鑰保護(hù)的后續(xù)消息。
7.根據(jù)權(quán)利要求6的方法,其中驗證令牌包括與第二系統(tǒng)相關(guān)聯(lián)的公鑰證書。
8.根據(jù)權(quán)利要求7的方法,還包括由第一系統(tǒng)使用與第二系統(tǒng)相關(guān)聯(lián)的公鑰證書中所包含的公鑰來創(chuàng)建包含會話密鑰的第二消息中的數(shù)字信封。
9.根據(jù)權(quán)利要求6的方法,其中驗證令牌包括用戶名-密碼對。
10.根據(jù)權(quán)利要求6的方法,其中驗證令牌包括安全票據(jù)。
11.一種計算機(jī)可讀介質(zhì)上的計算機(jī)程序產(chǎn)品,該產(chǎn)品在第二系統(tǒng)中使用,以便在第一系統(tǒng)和第二系統(tǒng)之間建立用于傳遞消息的安全上下文,所述計算機(jī)程序產(chǎn)品包括用于獲取包含與第一系統(tǒng)相關(guān)聯(lián)的公鑰的公鑰證書的裝置;用于產(chǎn)生傳輸密鑰的裝置,其中所述傳輸密鑰是對稱的秘密密鑰;用于將傳輸密鑰以及驗證令牌置入用所述公鑰保護(hù)的第一消息中的裝置;用于將第一消息發(fā)送到第一系統(tǒng)的裝置;用于響應(yīng)于將第一消息發(fā)送到第一系統(tǒng)的處理而接收來自第一系統(tǒng)的用傳輸密鑰保護(hù)的第二消息的裝置;用于從第二消息中提取會話密鑰的裝置,其中所述會話密鑰是對稱的秘密密鑰;以及用于使用會話密鑰來保護(hù)發(fā)送到第一系統(tǒng)的后續(xù)消息的裝置。
12.根據(jù)權(quán)利要求11的計算機(jī)程序產(chǎn)品,其中驗證令牌包括與第二系統(tǒng)相關(guān)聯(lián)的第二公鑰證書、用戶名-密碼對或者安全票據(jù)。
13.一種計算機(jī)可讀介質(zhì)上的計算機(jī)程序產(chǎn)品,該產(chǎn)品在第一系統(tǒng)中使用,以便在第一系統(tǒng)和第二系統(tǒng)之間建立用于傳遞消息的安全上下文,所述計算機(jī)程序產(chǎn)品包括用于提供與第一系統(tǒng)相關(guān)聯(lián)的公鑰證書的裝置;用于接收來自第二系統(tǒng)的第一消息的裝置,其中所述第一消息是用來自與第一系統(tǒng)相關(guān)聯(lián)的公鑰證書的公鑰保護(hù)的,并且其中所述第一消息包含傳輸密鑰和驗證令牌,其中所述傳輸密鑰是對稱的秘密密鑰;用于根據(jù)驗證令牌來驗證第二系統(tǒng)的裝置;用于產(chǎn)生會話密鑰的裝置,其中所述會話密鑰是對稱的秘密密鑰;用于將會話密鑰置入用傳輸密鑰保護(hù)的第二消息中的裝置;用于響應(yīng)于對第一消息的接收而將第二消息發(fā)送到第二系統(tǒng)的裝置;以及用于接收來自第二系統(tǒng)的用會話密鑰保護(hù)的后續(xù)消息的裝置。
14.根據(jù)權(quán)利要求13的計算機(jī)程序產(chǎn)品,其中驗證令牌包括與第二系統(tǒng)相關(guān)聯(lián)的公鑰證書、用戶名-密碼對或者安全票據(jù)。
15.一種用于在第一系統(tǒng)和第二系統(tǒng)之間建立用于傳遞消息的安全上下文的設(shè)備,該設(shè)備包括用于獲取包含與第一系統(tǒng)相關(guān)聯(lián)的公鑰的公鑰證書的裝置;用于產(chǎn)生傳輸密鑰的裝置,其中所述傳輸密鑰是對稱的秘密密鑰;用于將傳輸密鑰以及驗證令牌置入用所述公鑰保護(hù)的第一消息的裝置;用于將第一消息發(fā)送到第一系統(tǒng)的裝置;用于響應(yīng)于將第一消息發(fā)送到第一系統(tǒng)的處理而接收來自第一系統(tǒng)的用傳輸密鑰保護(hù)的第二消息的裝置;用于從第二消息中提取會話密鑰的裝置,其中所述會話密鑰是對稱的秘密密鑰;以及用于使用會話密鑰來保護(hù)發(fā)送到第一系統(tǒng)的后續(xù)消息的裝置。
16.根據(jù)權(quán)利要求15的設(shè)備,其中驗證令牌包括與第二系統(tǒng)相關(guān)聯(lián)的公鑰證書、用戶名-密碼對或者安全票據(jù)。
17.一種用于在第一系統(tǒng)和第二系統(tǒng)之間建立用于傳遞消息的安全上下文的設(shè)備,該設(shè)備包括用于提供與第一系統(tǒng)相關(guān)聯(lián)的公鑰證書的裝置;用于接收來自第二系統(tǒng)的第一消息的裝置,其中所述第一消息是用來源于與第一系統(tǒng)相關(guān)聯(lián)的公鑰證書的公鑰保護(hù)的,并且其中所述第一消息包含傳輸密鑰和驗證令牌,其中所述傳輸密鑰是對稱的秘密密鑰;用于根據(jù)驗證令牌來驗證第二系統(tǒng)的裝置;用于產(chǎn)生會話密鑰的裝置,其中所述會話密鑰是對稱的秘密密鑰;用于將會話密鑰置入用傳輸密鑰保護(hù)的第二消息中的裝置;用于響應(yīng)于對第一消息的接收而將第二消息發(fā)送到第二系統(tǒng)的裝置;以及用于接收來自第二系統(tǒng)的用會話密鑰保護(hù)的后續(xù)消息的裝置。
18.根據(jù)權(quán)利要求17的設(shè)備,其中驗證令牌包括與第二系統(tǒng)相關(guān)聯(lián)的公鑰證書、用戶名-密碼對或者安全票據(jù)。
全文摘要
提供了一種用于在客戶端與服務(wù)器之間建立用于傳遞消息的安全上下文的方法,其中該方法是與通用安全服務(wù)應(yīng)用編程接口(GSS-API)相兼容的。客戶端向服務(wù)器發(fā)送第一消息,其中該消息包含由客戶端產(chǎn)生的第一對稱秘密密鑰以及驗證令牌;所述第一消息是用來自服務(wù)器的公鑰證書的公鑰保護(hù)的(516)。在服務(wù)器根據(jù)驗證令牌驗證了客戶端(518)之后,客戶端接收到來自服務(wù)器的第二消息(522),該消息是用第一對稱秘密密鑰保護(hù)的,并且該消息包含第二對稱秘密密鑰??蛻舳撕头?wù)器使用第二對稱秘密鑰來保護(hù)在客戶端與服務(wù)器之間發(fā)送的后續(xù)消息。所述驗證令牌可以是與客戶端相關(guān)聯(lián)的公鑰證書、用戶名-密碼對或者安全票據(jù)。
文檔編號H04L9/32GK1906886SQ200580001864
公開日2007年1月31日 申請日期2005年1月5日 優(yōu)先權(quán)日2004年1月8日
發(fā)明者保羅·安托尼·阿什利, 羅伯特·安德魯·菲非, 邁克爾·詹姆斯·托馬斯 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1