專利名稱:對代碼轉換代理主機中的多個源服務器的動態連接的制作方法
技術領域:
本發明一般涉及網絡保密協議,特別涉及把客戶機與一個或多個源服務器之間的保密話路(secure session)的保密性擴展到中介(例如,代碼轉換代理主機)的方法。
背景技術:
網絡保密協議,例如網景的加密套接字層協議(SSL)以及互聯網工程任務組(IETF)傳輸層保密協議(TLS)提供通信設備之間的保密性和數據完整性。這些協議例如是保證互聯網上的電子商務交易的保密所通用的協議。
最近,計算機產業對通常被認為不同于傳統計算機的其它設備添加了計算機處理和通信能力。這種設備相當廣泛,并且例如包括個人數字處理(PDA)、商務管理器(business organizer)(例如,IBM的WorkPad、以及3Com的PalmPilot)、小型電話(smartphone)、移動電話、其它手持設備等等。為了方便,這些設備作為一類產品有時被稱為“分布式計算(pervasive computing)”客戶機,因為它們是設計為無論其位置在何處都可以與計算機網絡中的服務器相連接的設備并且用于計算。
但是,分布式計算客戶機一般不支持HTML基于視窗的客戶機的全套功能。結果,一般需要代碼轉換服務來把要顯示在該分布式客戶機上的信息從一種源標志語言(例如,HTML)轉換為另一種(例如,HDML或者手持設備標識語言)。但是,在保密網絡連接上提供代碼轉換服務存在者問題。特別是,在保密和代碼轉換服務之間存在本質的沖突,因為例如SSL和TLS這樣的傳統保密協議正好是設計來用于防止第三者干預客戶機與服務器之間的通信的。
在其它應用中,限制第三者干預保密話路也存在問題。例如,如果客戶機位于防火墻后面,則到外側網絡中的服務器的SSL/TLS不容易被旁聽或者監聽。因此,數據記錄或者其它敏感信息可以從客戶機發送,而可能沒有得到管理授權。作為另一個例子,與服務器在保密連接上進行通信的客戶機不能夠獲得第三者緩存或者預取機制的優點,該優點在減小網絡資源需求以及促進設備之間的通信是有用的。
需要提供一種機制,使得客戶機通過該機制能夠把足夠的保密信息委派給代理主機(proxy),使得該代理主機執行給定的功能(例如,為該客戶機進行代碼轉換、審核、監控、緩存、預取、加密/解密,等等),而不削弱網絡協議的保密性。另外,還需要使得代理主機為客戶機的請求提供服務過程中保證來自另一個源服務器的數據的安全。
發明內容
使用網絡保密協議(例如,SSL或TLS)與一個源服務器進行通信的客戶機允許一個代理主機參與該話路,而不改變該話路的保密特性。根據本發明,提供一種協議,使得客戶機與一個源服務器協商話路主要秘密(session master secret),并且把該秘密安全地傳送到代理主機。代理主機使用該主要秘密來對在客戶機和服務器之間傳送的數據進行加密和解密。如果在對給定客戶機的請求提供服務時,該代理主機要求來自第二個源服務器的其它保密數據,則該代理主機要求該客戶機重復該協議,以獲得另一個(與第二個源服務器協商的)話路主要秘密,然后把該秘密傳送到該代理主機,用于獲得來自第二源服務器的數據。
本發明使得給定的第三方中介或代理服器參與一個客戶機與一個或多個源服務器之間的保密話路。最好,該第三方參與其中而沒有明確得知給定的源服務器。結果,該方法不需要對源服務器作出改變,或者對用于在該話路秘密的協商中所使用的握手協議。
本發明在根據網絡保密協議進行通信時能夠使得保密性和其它服務(例如,為客戶機進行的代碼轉換、緩存、監控、加密/解密等等)能夠共存。
更加具體來說,當一個分布式計算客戶機與一個或多個源服務器在保密鏈路上進行通信時,本發明能夠使得代理主機提供代碼轉換服務。
本發明還能夠使代理主機為客戶機執行緩存或其它管理服務,該客戶機利用網絡保密協議與一個或多個服務器進行通信。
本發明能夠使代理主機為客戶機執行加密/解密,該客戶機使用網絡服務器協議與一個或多個源服務器進行通信。
在一個優選實施例中,代理主機參與客戶機與第一服務器之間的保密通信。該方法開始時首先在客戶機與代理主機之間建立第一保密話路。在確認該第一保密話路之后,該方法接著在該客戶機和代理主機之間建立第二保密話路。在第二保密話路中,客戶機要求代理主機作為通向第一服務器的通道。在此之后,客戶機與第一服務器協商第一話路主要秘密。使用第一保密話路,由客戶機把該第一話路主要秘密提供代理主機,使得代理主機參與該客戶機與第一服務器之間的保密通信。在接收第一話路主要秘密之后,代理主機產生密碼信息,使它為客戶機提供給定的服務(例如,代碼轉換、監控、加密/解密、緩存等等),并且不需要該服務器的參與。在這種通信過程中,在客戶機與代理主機之間保持第一保密話路。
根據本發明的一個特征,如果代理主機要求來自第二服務器的數據,以處理給定客戶機的請求,則重復上述協議。特別地,該代理主機向客戶機發出請求,以再次通過該代理主機建立與第二服務器之間的另外一條連接。如上文所述,該協議使得該客戶機與第二服務器之間建立第二話路主要秘密,按照上述方式把該秘密與該代理主機共享。然后,該代理主機繼續通過利用該第二秘密進行它的服務操作(例如代碼轉換),以從第二服務器獲得保密數據。
因此,一旦在客戶機與給定的源服務器之間建立基本的隧道協議(tunneling protocol),則按照客戶機的要求重復該協議,以使得代理主機能夠從多達“n”個其它源服務器獲得保密數據,同時把給定客戶機的請求傳送到給定的源服務器。
附圖簡述現在將參照附圖通過舉例描述本發明,其中
圖1為使用網絡保密協議的已有客戶機-服務器網絡環境的示意圖;圖2為一種客戶機-服務器網絡環境的簡化示意圖,其中第三方中介或代理主機參與到保密話路中;圖3為基本隧道方法的詳細流程圖;圖4為本發明的簡化方框圖,其中在客戶機最初把保密信息委派給代理主機之后,該代理主機要求該客戶機通過開隧道經過該代理主機到達“n”個其它源服務器,以建立一個或多個其它保密連接;以及圖5為一種采用本發明的分布式計算客戶機-服務器構架的方框圖。
具體實施例方式
圖1示出一種現有技術的常規客戶機-服務器網絡構架。在該圖中,客戶機10通過網絡14與服務器12進行通信,該網絡可能是互聯網、內部網、廣域網、局域網等等。客戶機10和服務器12使用一種網絡保密協議進行通信,例如網景的加密套接字層協議(SSL)以及IETF傳輸層保密協議(TLS)。一般來說,客戶機是發起建立到服務器的TLS或SSL的連接的任何應用實體。服務器是接受連接以通過發送返回響應而對請求提供服務的任何應用實體或程序。任何給定的程序可以稱為客戶機和服務器。服務器和客戶機之間的主要操作差別在于該服務器通常被認證,而客戶機僅僅是可選地進行認證。具有給定資源或者創造給定資源的服務器在本文中有時被稱為源服務器。
客戶機和服務器參與一個保密話路中。SSL或TLS話路是由握手協議創建的在客戶機與服務器之間的連接。話路定義一組密碼保密參數,該參數可以在多個連接之間共享。它們被用于避免在每次連接對新的保密參數進行協商。在SSL或TLS中,話路標識符是一個由服務器所產生的數值,其識別定的話路。為了建立一個SSL或TLS話路,客戶機和服務器執行握手操作,該操作是建立該實體之間的事務處理的參數的初始協商。一旦創建一個話路,則在一條連接上進行客戶機與服務器之間的通信,該連接是提供適當類型的服務的(在OSI分層模型定義中的)傳輸層。對于SSL和TLS,這種連接是對等關系的。該連接是暫時性的,并且每個連接與一個話路相關聯。一般來說,在該連接上的通信是利用公鑰加密技術而保證保密的,該技術是一種采用雙密鑰密碼的加密技術。用公鑰加密的信息僅僅可以用相關的私鑰來解密。相反,用私鑰簽署的消息可以用公鑰來驗證。
一旦建立該話路,則該客戶機具有由源服務器所發出的用于向源服務器認證該客戶機的證書。該客戶機還要求源服務器提供一個證書,使得它可以認證該源服務器有效。認證是一個實體確定另一個實體的身份的能力。一般來說,作為X.509協議的一部分(a/k/a ISO認證構架),證書由一個收信人的證書授權機構來頒發,并且使當事人的身份(或者一些其它屬性)與其公鑰緊密結合。
上述功能是本領域所公知的。該功能例如在符合IETF TLS 1.0版和SSL 2.0/3.0版的協議中實現。這些協議非常類似,它們包括兩個層記錄協議和握手協議。如下文所述,本發明利用擴展這些類型的保密協議的方法的優點,來把話路的保密性延伸到第三方中介或代理主機。最好,本發明與客戶機和代理主機之間的握手協議一同應用,如下文所述該協議是在保密話路之上的層面。該延伸不改變在記錄協議層的保密連接的基本特性。盡管該技術在TLS和SSL的上下文中描述,但是這不是對本發明的限制。
現在參照圖2,該基本方法使得利用SSL或TLS作為保密協議來與一個或多個源服務器12’a-n進行通信的客戶機10’允許一個代理主機15參與該話路,而不改變該話路的保密特性。如上文所述,本方法獨立于由客戶機10’和給定源服務器12’所使用來進行相互認證的加密強度或步驟本發明具有與TLS/SSL相同的優點在于,它擴展該協議,但仍然允許較高層協議處于其上方。這種高層協議例如包括應用協議(例如,HTTP,TELNET,FTP和SMTP),該協議通常是緊接著在傳輸層(例如TCP/IP)之上的層面。
圖3為示出在本發明中有用的一種保密代理協議的操作。根據該協議,客戶機10’在每次需要建立于給定源服務器的連接時設置兩個(2)完全不同的話路。第一個保密話路設置在客戶機10’與代理主機15之間,并且該話路被用作為在客戶機與代理主機之間傳送秘密信息的管道或通道。第一保密話路由該流程圖的前兩列所表示。另外,客戶機10還設置與代理主機之間的第二保密話路,由該流程圖的后三列所表示,但是,在該話路中,代理主機15被用于隧道通向該源服務器12’。隧道是一種中介程序,其作為兩個連接之間的盲中介。一旦激活,隧道不被認為是給定通信的一方(例如,HTTP請求或響應),盡管該隧道可能已經由該通信所啟動。
在所示實施例中,假設該客戶機希望訪問一個源服務器(有時稱為第一服務器),以檢索給定內容,但是希望使用該代理主機來正確地顯示這些內容。對該請求的服務可能還需要從一個或多個源服務器檢索給定的對象。如上文所述,根據SSL/TLS協議,該客戶機具有由一個源服務器所頒布用于向該源服務器認證該客戶機的證書,并且該客戶機還要求源服務器提供一個證書,從而它可以認證該源服務器為有效。如下文所述,在客戶機向代理主機寫入一個話路主要秘密之前,該客戶機還要求代理主機提供由該客戶機所認證的證書。
該例程以步驟20為開始,該客戶機請求建立與代理主機之間的保密話路。這是上文所述的第一保密話路。如流程圖中所示,該客戶機必須要求來自該代理主機的證書,因為它要代表其保密屬性。這是主要話路,通過該話路客戶機將把任何源服務器的協商秘密與一個內部話路標識符一同發送到該代理主機。一般來說,該標識符與SSL/TLS話路標識符不同。它將在下文的步驟中更加具體描述。
在步驟22,客戶機認證由該代理主機接收的證收的有效性,結果,這滿足它具有與該代理主機之間的保密話路的條件。然后,該例程進行到步驟24,該客戶機開啟到該代理主機的第二連接。這是上述的第二保密話路。如上文所述,該客戶機要求隧道通向給定的源服務器(例如,對一個請求使用HTTP連接方法)。作為通過代理主機的隧道請求的一部分,該客戶機把一個報頭添加到該HTTP請求,通知該代理主機要產生一個內部話路標識符。該報頭意味著該客戶機要在將來把主要秘密轉發到該代理主機。
在步驟26,該代理主機產生一個唯一的內部話路標識符,并且把該信息返回到客戶機。內部話路標識符的數值被附加到該保密HTTP答復上。這是該客戶機要在把話路主要秘密轉發到代理主機時將使用的數值。在步驟28,該代理主機建立與源服務器之間的連接,并且允許數據在客戶機與源服務器之間流動。在這一點,該代理主機作為一個隧道。如下文所述,直到該客戶機轉發該話路主要秘密時為止,該代理主機才變為一個“有效代理主機”。在步驟30,該客戶機與源服務器執行握手操作,以協商一個話路主要秘密。
然后,繼續到步驟32。在這一點,客戶機把內部話路標識符與話路主要秘密一同發送到代理主機。如圖所示,該信息是在主要話路上發送的。在步驟34,該代理主機接收內部話路標識符和該話路主要秘密。它使用該信息來產生必要的密碼信息,用于對源服務器的答復進行解密,以修改所提供的內容,和/或在把數據發送到客戶機之前進行加密。然后,該代理主機切換到“有效代理主機”,用于與源服務器的當前連接。
在步驟36,該客戶機發送用于獲得在源服務器上的資源的保密HTTP請求。可選地,在步驟38,該代理主機可以對該請求解密,并且按照需要改變該請求,然后對新的請求加密并把其發送到其服務器。在步驟40,該源服務器滿足該請求,并且把答復數據發送回該代理主機。請注意,該源服務器甚至沒有意識到代理主機活動的參與。在步驟42,該代理主機接收該內容,對該數據進行解密和修改,以滿足客戶機的代碼轉換需要。可選地,在步驟44,代理主機可以建立與源服務器的另一條連接(如果源服務器支持話路恢復的話)用于獲得其它數據和/或改進性能。如果建立多個連接,使用密碼鏈接(CBC)來調節該密碼。如果,該代理主機沒有建立另外的連接作為該話路的一部分,則它必須通過發送關于主要話路與話路標識符的通知而把該密碼標準改變的情況通知給客戶機。該處理在步驟46中示出,并且需要允許該客戶機在將來的時間恢復與源服務器之間的話路。
根據本發明,在處理到初始源服務器的給定客戶機請求過程中,該代理主機可能要求到其它源服務器的其它保密話路。因此,例如,如果該代理主機要求到其它源服務器的其它保密話路,例如用于對該當前請求進行代碼轉換,它把一個通知發送到該客戶機,要求該客戶機建立與每個其它所要求的源服務器之間的新話路。這一般在步驟48中示出。最后,該代理主機對最終的代碼轉換后的內容進行加密,并且把它發送到客戶機。這是步驟50。
圖4更加詳細地示出該代理主機如何啟動到其它源服務器的一個或多個其它保密話路。在該例子中,客戶機10”按照上文所述的方式,與代碼轉換代碼代理主機15”以及第一源服務器12”協作。如圖中所示。話路1表示該客戶機與該代理主機之間建立的初始話路,并且話路2表示該客戶機與第一源服務器之間建立的保密話路。在圖中所示的步驟(1)-(12)對應于在圖3的流程圖中所述的步驟。如果在所示的代碼轉換操作過程中,該代理主機15”確定它要求來自第二源服務器17”的保密數據,則該代理主機要求客戶機10”建立與服務器17”之間的第二鏈接,特別地,通過再次隧道經過該代理主機而建立。這使得該客戶機建立與第二服務器17”之間的一個主要秘密。該主要秘密有時被稱為第二主要秘密,以使它區別于該客戶機隧道經過代理主機到達第一源服務器而產生的第一話路主要秘密。特別地,在圖4中的步驟(13)示出向客戶機10”發出請求的代理主機15”。然后,按照上文所述的方式對第二源服務器17”重復步驟(3)-(7)。
該代理主機15”具有按照需要使主要秘密保持隔離的能力,以便于一方面能夠保證與客戶機之間的保密通信,另一方面保證與各個源服務器之間的保密通信。因此,在原始客戶機請求的情況下,該客戶機和代理主機使用于每個源服務器話路的主要秘密保持隔離。這使得代理主機為客戶訪問并使用多個源服務器的數據。如果需要的話,該客戶機可以把該話路主要秘密在相同的保密話路(例如,如圖1中所示的話路1)上,或者通過使用不同的保密話路傳送到該代理主機。
如上文所示,給定的源服務器和代理主機都共享一個重要話路秘密。特別地,一旦客戶機與給定的源服務器對一個重要話路秘密達成協議,該秘密被通過以前在客戶機與代理主機之間產生的一個保密話路提供到該代理主機。換句話說,該客戶機在建立(客戶機與代理主機之間的)主要(即,第一)話路之后,它釋放該主要話路密鑰(到該代理主機)。但是,源服務器不需要得知(并且一般也不會知道)該代理主機正在做一些工作或者參與到該保密連接中。
如上文所述,支持該保密代理所需的改變是很小的,并且僅僅影響該客戶機和代理主機,而不會對需要處理給定客戶機請求的給定源服務器造成影響。并且,該方法不需要該客戶機泄露與其私鑰相關的信息,或者泄露向該源服務器認證該客戶機所用的方法。另外,由于該客戶機能夠建立到一個源服務器的其它連接,因此它可以改變密碼標準或結束該話路,因此限制了該代理主機為該客戶機建立到源服務器的其它連接的能力。
總結所需的改變,該客戶機需要能夠對與一個或多個源服務器分別協商的一個或多個話路主要秘密進行保密,并且把它們安全地傳送到代理主機。該代理主機需要能夠從客戶機的主要秘密產生必須的加密信息,使其開始參與到該客戶機的話路中。上述方法不需要對在話路秘密協商中所用的握手協議作任何改變。對整個網絡業務量的額外負擔為最小,因為在客戶機與代理主機之間僅僅有一個額外的話路,而該客戶機要求來自該代理主機的服務。不需要對源服務器作出改變。
客戶機與代理主機之間的主要話路可以被認為是異步的,因為對每個到來的記錄都有一個話路標識符。從客戶機到代理主機的寫入可能獨立于代理主機對客戶機的寫入,因為在此不需要確認。當然,在此假設下層的傳輸層采用了可靠的傳輸方法。代理主機要求客戶機建立新的連接(到其它源服務器),最好使用零*話路標識符,因為當客戶機要求隧道通信時,可以由該代理主機隨后指定一個標識符。為了提高性能,該代理主機不必把密碼標準改變的情況通知給客戶機,基于這種理解,該客戶機將被強制執行完全認證握手操作,因為它將不與給定的源服務器相同步。這意味著在初始話路建立過程中對源服務器具有較大的有效負荷,但是如果代理主機建立新的連接或者向給定的源服務器或者一些其它源服務器發送其它請求,則減少了無意義的通信。
現在有許多關于代理主機的應用。下面是幾個代表性的例子。
代理主機的一種這樣應用是減小對客戶機執行加密/解密所要求的計算能力。例如,如果客戶機處于防火墻背后,使用該代理主機,則該客戶機可以僅僅一次執行認證步驟,然后無加密地在它與代理主機之間實際發送和接收數據,因此把加密有效負荷轉移到代理主機。另外,在該代理主機可以與源服務器交換任何實際數據記錄之前,它通過允許(或者要求)該客戶機傳遞該話路秘密,而提供對防火墻配置審查的能力。在這種情況下,該代理主機不要求客戶機傳送任何關于它本身或源服務器的秘密/特權信息。在另一個例子中,該代理主機通過允許緩存代理主機參與該話路中而不改變客戶機與源服務器之間的話路的保密特性,來提高客戶機的性能。另外,該代理主機可以用于為該客戶機預取內容(通過在以后重新啟動話路),而不需要該代理主機明確知道該客戶機的私鑰。在這種情況下,該代理主機例如可以在非繁忙時間過程中定期地更新該用戶的預定內容。這些例子僅僅是說明性的而不是對本發明的范圍的限制。
因此,如上文所述,本發明的另一個應用是使得第三方能夠參與涉及分布式計算客戶機設備的保密話路中。代表性的設備包括分布式客戶機,即,基于x86-,PowerPc或者RISC(精簡指令集計算機)的客戶機,其包括一種實時的操作系統,例如,WindRiver VXWorksTM、QSSLQNXNeutrinoTM或者Microsoft Windows CE,并且其可以包括網絡瀏覽器。該應用沒有在下文中更加詳細描述。
現在參見圖5,一種代表性的分布式計算設備包括客戶機堆棧140,其中包括多個部件,例如,客戶機應用程序構架143、虛擬機144、語音引擎146以及工業上應用的實時操作系統(RTOS)148。該客戶機應用程序構架142一般包括瀏覽器150、用戶界面152、分布式計算客戶應用程序類庫154、標準Java類庫156以及通信堆棧158。分布式計算客戶機通過連接服務162連接到服務器平臺160。
在其下層,該連接服務62包括提供壓縮和加密功能的網關164。該網關采用網絡保密協議,該協議已經被根據本發明的方法而擴展。連接服務162的上層是代理主機166,其提供一種或多種不同的功能,例如代碼轉換、過濾、優先排列以及鏈接到設備管理。
該服務器平臺160,即給定的源服務器,可以是幾種不同的類型。該平臺160可以是網絡/應用程序服務器170(同步請求響應型服務器)或者數據同步服務器172 174(異步隊列通信型服務器)。在此說明每種服務器的基本功能。另外,該平臺160可以是一種增值服務器,其提供附加的服務,例如LDAP目錄/檔案管理、警告和通知、網絡管理、設備使用壽命周期管理、用戶和設備登記或者編制帳單。
保密代理協議提供多種比現有技術更優越的性能。如上文所述,協議擴展不改變在記錄協議的保密連接的基本特性。另外,對代理主機的連接是秘密,并且對稱的密碼技術(例如,DES、RC4等等)可以用于數據加密。用于該對稱加密的密鑰最好是對每次連接唯一產生的,并且基于通過另一種協議所協商的秘密(例如TLS或者SSL握手協議)。另外,到代理主機的連接是可靠的。消息傳輸一般包括使用鍵控的MAC的消息完整性檢查。最好,保密散列函數(例如,SHA、MD5等等)被用于MAC計算。
握手協議提供具有幾個基本特征的保密性。對等身份可以使用不對稱密碼技術(例如,RSA、DSS等等)來認證,即使用公鑰進行認證。該認證是可選的,但是一般需要至少一個對等機。另外,共享秘密的協商是保密的。協商的秘密不被竊聽,并且對任何認證的連接,該秘密甚至不能被置身于該連接中的攻擊者所獲得。另外,與代理主機的協商是可靠的。沒有攻擊者能夠改變協商的通信而不被通信方所檢測。
如上文所述,保密協議使得代理主機參與到客戶機與一組源服務器之間的保密話路中,而不改變該話路的屬性。該方法還獨立于加密強度或者所用的認證技術。
本發明可以在處理器中用可執行軟件實現,例如,作為駐留在計算機的隨機存取存儲器的代碼模塊中的一組指令(程序代碼)。直到由計算機所要求,該組指令才可以存儲在另一個計算機存儲器中,例如存儲在硬盤驅動器中,或者存儲在可移動存儲器中,或者通過互聯網或其它計算機網絡下載。
另外,盡管所述的各種方法在由軟件選擇激活或重新配置的普通計算機中實現,但是本領域內的專業人員,可以認識到這種方法可以在硬件、固件或者在被構造用于執行所需方法步驟的更加專用的裝置中執行。
權利要求
1.一種使代理主機(15)參與到客戶機(10’)和第一源服務器(12a’)之間的保密通信中的方法,其中包括如下步驟(a)在客戶機與代理主機之間建立(20、22)第一保密話路;(b)在確認第一保密話路之后,在客戶機與代理主機之間建立(24、26)第二保密話路,該第二保密話路要求該代理主機作為通向第一源服務器的管道;(c)使該客戶機與第一源服務器協商(30)話路主要秘密;(d) 使該客戶機利用第一保密話路把該話路主要秘密傳送(32)到該代理主機,使得該代理主機參與到該保密通信中;(e)響應對第一源服務器的客戶機請求,重復執行步驟(a)-(b),以使得該代理主機作為通向第二源服務器的管道;(f)使得該客戶機與第二源服務器協商新的話路主要秘密;以及(g)使得該客戶機利用在步驟(e)中產生的第一保密話路來把新的話路主要秘密傳送到該代理主機。
2.根據權利要求1所述的方法,其特征在于,進一步包括如下步驟使得該代理主機(15)使用該話路主要秘密和新的話路主要秘密來產生給定的密碼信息。
3.根據權利要求2所述的方法,其特征在于,進一步包括如下步驟使得代理主機(15)在步驟(d)中接收到該話路主要秘密之后進入有效工作狀態。
4.根據權利要求3所述的方法,其特征在于,該代理主機(15)在該有效工作狀態中為該客戶機(10’)執行給定的服務。
5.根據權利要求4所述的方法,其特征在于,該給定服務是代碼轉換。
6.根據權利要求1所述的方法,其特征在于,第一和第二保密話路符合網絡保密協議。
7.根據權利要求1所述的方法,其特征在于,該服務器(12a’)是一種網絡服務器,并且該客戶機(10’)是一種分布式計算客戶機。
8.一種使代理主機(15)參與到客戶機(10’)和服務器(12a’)之間的保密通信中的方法,其中包括如下步驟(a)對于1至“n”的一組服務器中的每一個(1)使得該客戶機請求(20、22)到該代理主機的第一保密連接;(2)在認證來自該代理主機的證書的有效性之后,使客戶機請求(24、26)到代理主機的第二保密連接,該第二保密連接要求該代理主機作為通向該服務器的管道;(3)使該客戶機與服務器通過該管道協商(30)各個話路主要秘密;(4)在完成協商之后,使該客戶機利用第一保密連接把該各個話路主要秘密傳送(32)到該代理主機;以及(b)使得該代理主機使用各個話路主要秘密來產生給定的密碼信息,該信息對于參與該保密通信是有用的。
9.根據權利要求8所述的方法,其特征在于,進一步包括如下步驟使得代理主機(15)為該客戶機執行給定的服務,該給定的服務是從一組服務中選擇的,其中包括代碼轉換、緩存、加密、解密、監控、過濾和預取。
10.一種使代理主機(15)參與保密通信的方法,其中包括如下步驟(a)把來自客戶機的請求發送到(20)代理主機,以建立第一保密話路;(b)把來自該客戶機的請求發送到(24)該代理主機,以建立在該客戶機和該代理主機之間的第二保密話路,該第二保密話路要求該代理主機作為通向源服務器的管道;(c)利用第一保密話路把來自客戶機的話路主要秘密發送到(32)該代理主機,使該代理主機參與該保密通信;(d)響應在該客戶機接收的來自該代理主機的請求,重復執行步驟(a)-(b),以使得代理主機作為通向另一個源服務器的管道;以及(e)把新的話路主要秘密從該客戶機發送到代理主機。
11.根據權利要求10所述的方法,其特征在于,該新的重要話路秘密在第一保密話路上發送。
12.一種使代理主機(15)參與到保密通信中的方法,其中包括如下步驟(a)在代理主機接收(20)來自客戶機的請求,以在該客戶機和代理主機之間建立第一保密話路;(b)在該代理主機接收(24)來自該客戶機的請求,以在該客戶機和代理主機之間建立第二保密話路,該第二保密話路要求該代理主機作為通向源服務器的管道;(c)在該代理主機接收(32)從該客戶機利用第一保密話路發送的話路主要秘密;(d)在把來自該代理主機的給定請求發送到該客戶機之后,重復步驟(a)-(c),以使得該代理主機作為通向另一個源服務器的管道;以及(e)在該代理主機接收從該客戶機發送的新的話路主要秘密。
13.根據權利要求12所述的方法,其特征在于,進一步包括如下步驟使該代理主機(15)利用該話路主要秘密和新的話路主要秘密來產生給定的密碼信息。
14.一種使代理主機(15)參與到客戶機(10’)和第一源服務器(12a’)之間的保密通信中的方法,其中包括如下步驟通過該代理主機,執行(20、22、24、26、30)該客戶機與第一源服務器之間的保密握手程序,以產生第一話路密鑰;使該客戶機把第一話路密鑰發送到該代理主機,使得該代理主機可以在該話路過程中參與到客戶機與第一源服務器之間的通信中;以及隨著該通話的繼續,執行該客戶機與第二源服務器之間的保密握手程序,以產生第二話路密鑰;以及使該客戶機把第一話路密鑰發送到該代理主機,從而該代理主機可以從第二源服務器獲得數據,用于對該客戶機向第一源服務器提出的請求來提供服務。
15.根據權利要求14所述的方法,其特征在于,每個話路密鑰被從客戶機(10’)通過不同的保密連接發送到代理主機(15)。
16.根據權利要求14所述的方法,其特征在于,每個話路密鑰被從客戶機(10’)通過相同的保密連接發送到該代理主機(15)。
17.一種密碼系統,其中包括客戶機(10’);一組服務器(12a’、12b’);代理主機(15);用于使該客戶機與每個服務器在一條保密連接上進行通信的網絡協議服務;一種計算機程序,(i)用于控制該客戶機請求到該代理主機的第一保密連接;(ii)在認證來自該代理主機的證書的有效性之后,控制該客戶機請求到代理主機的第二保密連接,該第二保密連接要求該代理主機作為通向一個給定服務器的管道;(iii)控制該客戶機與該給定服務器通過該管道進行協商,以獲得一個話路主要秘密;以及(iv)在完成協商之后,控制該客戶機利用第一保密連接把該話路主要秘密傳送到該代理主機;以及一種計算機程序,(i)用于控制該客戶機利用該話路主要秘密來產生給定密碼信息;(ii)用于控制該代理主機請求該客戶機有選擇地建立與另一個代理主機之間的獨立保密連接;以及(iii)用于在該代理主機參與到該客戶機與給定服務器之間的通信的過程中,把該代理主機切換為有效工作狀態。
18.根據權利要求17所述的方法,其特征在于,該代理主機(15)包括用于為該客戶機(10’)提供代碼轉換服務的裝置。
19.根據權利要求18所述的方法,其特征在于,該代理主機包括用于為該客戶機(10’)提供加密/解密服務的裝置。
20.根據權利要求17所述的方法,其特征在于,該代理主機包括用于為該客戶機(10’)提供緩存服務的裝置。
21.根據權利要求17所述的方法,其特征在于,該代理主機包括用于為該客戶機(10’)提供監控服務的裝置。
22.一種在用于密碼系統的計算機可讀介質中的計算機程序產品,該密碼系統包括客戶機(10’)、一組服務器(12a’、12b’)以及代理主機(15),其中包括第一例程,(i)用于控制該客戶機請求到該代理主機的第一保密連接;(ii)在認證來自該代理主機的證書的有效性之后,控制該客戶機請求到代理主機的第二保密連接,該第二保密連接要求該代理主機作為通向一個給定服務器的管道;(iii)控制該客戶機與該給定服務器通過該管道進行協商,以獲得一個話路主要秘密;以及(iv)在完成協商之后,控制該客戶機利用第一保密連接把該話路主要秘密傳送到該代理主機;以及第二例程,(i)用于控制該客戶機利用該話路主要秘密來產生給定密碼信息;(ii)用于控制該代理主機請求該客戶機有選擇地建立與另一個代理主機之間的獨立保密連接;以及(iii)用于在該代理主機參與到該客戶機與給定服務器之間的通信的過程中,把該代理主機切換為有效工作狀態。
23.一種計算機程序產品,其具有在用于客戶機(10’)中的可用介質上的計算機可讀程序代碼,用于使代理主機(15)參與保密通信中,其中包括用于把來自客戶機的請求發送到代理主機,以建立第一保密話路的方法;用于把來自該客戶機的請求發送到該代理主機,以建立在該客戶機和該代理主機之間的第二保密話路的方法,該第二保密話路要求該代理主機作為通向源服務器的管道;用于利用第一保密話路把來自客戶機的話路主要秘密發送到該代理主機,使該代理主機參與該保密通信的方法;在用于在控制客戶機的保密通信過程中響應在該客戶機接收的來自該代理主機的請求,以獲得新的話路主要秘密的方法;以及用于把新的話路主要秘密從該客戶機發送到代理主機的方法。
24.一種計算機程序產品,其具有在用于代理主機(15)中的可用介質上的計算機可讀程序代碼,用于使代理主機參與保密通信中,其中包括用于在代理主機接收來自客戶機的請求,以在該客戶機和代理主機之間建立第一保密話路的方法;在該代理主機接收來自該客戶機的請求,以在該客戶機和代理主機之間建立第二保密話路的方法,該第二保密話路要求該代理主機作為通向源服務器的管道;在該代理主機接收從該客戶機利用第一保密話路發送的話路主要秘密的方法;在保密通信過程中響應給定事件,用于把給定給定請求從改代理主機發送到該客戶機的方法;以及在該代理主機接收從該客戶機發送的新的話路主要秘密的方法。
25.根據權利要求24所述的計算機程序產品,其特征在于,進一步包括用于利用話路主要秘密和新的話路秘密來產生給定的密碼信息的方法。
全文摘要
使代理主機參與客戶機與第一服務器之間的保密通信的方法。該方法開始時在客戶機與代理主機之間建立第一保密話路。在確認該第一保密話路之后,該方法接著在該客戶機和代理主機之間建立第二保密話路。在第二保密話路中,客戶機要求代理主機作為通向第一服務器的通道。在此之后,客戶機與第一服務器協商第一話路主要秘密。使用第一保密話路,由客戶機把該第一話路主要秘密提供代理主機,使得代理主機參與該客戶機與第一服務器之間的保密通信。在接收第一話路主要秘密之后,代理主機產生密碼信息,使它為客戶機提供給定的服務(例如,代碼轉換),并且不需要該服務器的參與。如果在給定客戶機向第一服務器發出請求過程中要求來自第二服務器的數據,則該代理主機向客戶機發出一個請求,以利用相同的協議把該請求通過該代理主機返回到第二服務器。
文檔編號H04L29/08GK1358386SQ00809589
公開日2002年7月10日 申請日期2000年6月28日 優先權日1999年6月30日
發明者托馬斯·A·貝爾伍德, 克里斯蒂安·利塔, 馬休·F·魯特科斯基 申請人:國際商業機器公司