背景
本申請總體上涉及使用加密協(xié)議的安全的基于網(wǎng)絡(luò)的通信。
相關(guān)技術(shù)的簡要描述
分布式計算機(jī)系統(tǒng)在現(xiàn)有技術(shù)中是眾所周知的。一個這樣的分布式計算機(jī)系統(tǒng)是由服務(wù)提供商操作和管理的“內(nèi)容傳遞網(wǎng)絡(luò)”(cdn)或“覆蓋網(wǎng)絡(luò)”。服務(wù)提供商通常代表使用服務(wù)提供商的共享基礎(chǔ)設(shè)施的第三方(客戶)提供內(nèi)容傳遞服務(wù)。這種類型的分布式系統(tǒng)通常是指通過一個網(wǎng)絡(luò)或多個網(wǎng)絡(luò)連同被設(shè)計為促進(jìn)各種服務(wù)的軟件、系統(tǒng)、協(xié)議和技術(shù)(諸如內(nèi)容傳遞、web應(yīng)用加速或外包原產(chǎn)地基礎(chǔ)設(shè)施的其他支持)鏈接的自主計算機(jī)的集合。cdn服務(wù)提供商通常通過數(shù)字屬性(例如網(wǎng)站)提供服務(wù)傳遞,這些數(shù)字屬性(如網(wǎng)站)在客戶門戶中提供,然后部署到網(wǎng)絡(luò)。數(shù)字屬性通常綁定到允許服務(wù)提供商考慮流量并向其客戶收費(fèi)的一個或多個邊緣配置。
傳輸層安全(tls)及其前身安全套接字層(ssl)是提供internet通信安全性的加密協(xié)議。它們使用用于身份驗證和密鑰交換的非對稱加密技術(shù)、用于機(jī)密性的對稱加密、以及消息完整性的消息認(rèn)證碼。tls/ssl在會話層初始化,然后在表示層工作。具體地,首先會話層具有使用建立密碼設(shè)置的非對稱密碼和關(guān)于該會話的共享密鑰進(jìn)行的握手。此后,表示層使用對稱密碼和該會話密鑰對通信的其余部分進(jìn)行加密。在這兩個模型中,tls和ssl代表底層傳輸層工作,其段承載加密數(shù)據(jù)。tls是在rfc5246和rfc6176中定義的ietf標(biāo)準(zhǔn)跟蹤協(xié)議。
http請求充實(enrichment)是internet服務(wù)提供商(isp)將客戶端智能傳遞給http服務(wù)器的有用和低開銷技術(shù)。通??梢越柚軌蜃R別http請求、向它們插入文本并在客戶端和服務(wù)器之間正確偏移tcp流的序列號的深度包檢測(dpi)框來實現(xiàn)。但是,對于https請求,此功能不能存在,因為中間框無法將任何東西插入ssl流。
作為額外的背景,許多移動網(wǎng)絡(luò)運(yùn)營商使用透明代理和在線轉(zhuǎn)碼或轉(zhuǎn)換設(shè)備來在高流量時段內(nèi)例如基于其網(wǎng)絡(luò)中的實時狀況控制流量。這些方法對運(yùn)營商非常有用,但由于ssl流的增長,它們變得越來越不相關(guān)。
簡述
描述了https請求充實的方法。在一個實施例中,該方法使用特殊形式的充實記錄,并且利用處理充實記錄的tcp和ssl/tls之間的軟件層以及ssl/tls層和應(yīng)用層可以使用的該層的應(yīng)用編程接口(api)。本文的技術(shù)還提供了充實能力的發(fā)現(xiàn)和用于充實的安全通信的密鑰協(xié)商。
上述已經(jīng)概述了所公開主題的一些更相關(guān)的特征。這些特征應(yīng)被解釋為僅僅是說明性的。通過以不同的方式應(yīng)用所公開的主題或通過修改將要描述的主題可以獲得許多其它有益的結(jié)果。
附圖簡述
為了對本主題及其優(yōu)點的更徹底理解,現(xiàn)在參考結(jié)合附圖進(jìn)行的下面的描述,其中:
圖1示出可以實踐本公開的技術(shù)的覆蓋網(wǎng)絡(luò),例如內(nèi)容遞送網(wǎng)絡(luò)(cdn);
圖2示出覆蓋網(wǎng)絡(luò)的邊緣服務(wù)器的架構(gòu);
圖3示出用于ssl/tls記錄的標(biāo)準(zhǔn)記錄格式;
圖4示出在客戶端和服務(wù)器之間的傳統(tǒng)的ssl記錄交換;
圖5示出用于本公開的請求充實技術(shù)的代表性實現(xiàn);
圖6示出可以由圖5中的充實層來實現(xiàn)的各種功能;
圖7示出在一個實施例中如何將ssl請求充實度合并到消息流中;
圖8示出在另一個實施例中如何將ssl請求充實度合并到消息流中;
圖9示出用于實現(xiàn)充實層功能的優(yōu)選軟件分層方法;
圖10示出根據(jù)本公開的在移動網(wǎng)絡(luò)環(huán)境中如何使用ssl充實;
圖11示出如何可以在移動網(wǎng)絡(luò)環(huán)境中使用服務(wù)發(fā)現(xiàn)協(xié)議來討論服務(wù)api以及協(xié)商加密密鑰;以及
圖12示出使用ssl記錄封裝協(xié)議插入充實的替代方法。
詳細(xì)描述
圖1示出了已知的分布式計算機(jī)系統(tǒng),(如下所述)該已知的分布式計算機(jī)系統(tǒng)通過本文的技術(shù)進(jìn)行擴(kuò)展,以提供具有以廣播觀眾的規(guī)模將在線hd視頻傳遞到最流行的運(yùn)行時環(huán)境和在固定線路和移動環(huán)境中的最新的設(shè)備的能力的單個基于http的平臺。
在已知的系統(tǒng)中,如圖1所示,分布式計算機(jī)系統(tǒng)100被配置為cdn,并且假設(shè)具有在互聯(lián)網(wǎng)周圍分布的一組機(jī)器102a-n。通常,大多數(shù)機(jī)器是位于互聯(lián)網(wǎng)邊緣附近(即位于終端用戶接入網(wǎng)絡(luò)或相鄰的終端用戶接入網(wǎng)絡(luò))的服務(wù)器。網(wǎng)絡(luò)操作指揮中心(nocc)104管理在系統(tǒng)中的各種機(jī)器的操作。諸如網(wǎng)站106的第三方站點將內(nèi)容(例如,html、嵌入頁面對象、流媒體、軟件下載等)的傳遞卸載到分布式計算機(jī)系統(tǒng)100,特別是卸載到“邊緣”服務(wù)器。通常,內(nèi)容提供商通過將給定的內(nèi)容提供商域或子域進(jìn)行別名(例如,通過dnscname)來將其內(nèi)容傳遞卸載到由服務(wù)提供商的權(quán)威域名服務(wù)管理的域。期望內(nèi)容的終端用戶被引導(dǎo)到分布式計算機(jī)系統(tǒng)以更可靠和高效地獲得該內(nèi)容。盡管未詳細(xì)示出,但是分布式計算機(jī)系統(tǒng)還可以包括其他基礎(chǔ)設(shè)施,諸如分布式數(shù)據(jù)收集系統(tǒng)108,其收集來自邊緣服務(wù)器的使用情況和其他數(shù)據(jù),集合跨越一個區(qū)域或一組區(qū)域的該數(shù)據(jù)并將該數(shù)據(jù)傳到其他后端系統(tǒng)110、112、114和116,以便于監(jiān)視、記錄、警報、計費(fèi)、管理和其他操作和管理功能。分布式網(wǎng)絡(luò)代理118監(jiān)視網(wǎng)絡(luò)以及服務(wù)器負(fù)載,并向dns查詢處理機(jī)構(gòu)115提供網(wǎng)絡(luò)、流量和負(fù)載數(shù)據(jù),dns查詢處理機(jī)構(gòu)115有權(quán)針對由cdn管理的內(nèi)容域。分布式數(shù)據(jù)傳輸機(jī)構(gòu)120可以用于向邊緣服務(wù)器分發(fā)控制信息(例如,用于管理內(nèi)容、促進(jìn)負(fù)載平衡等的元數(shù)據(jù))。
如圖2所示,給定機(jī)器200包括運(yùn)行支持一個或多個應(yīng)用程序206a-n的操作系統(tǒng)內(nèi)核(例如,linux或變體)204的商用硬件(例如,intelpentium處理器)202。為了促進(jìn)內(nèi)容傳遞服務(wù),例如,給定的機(jī)器通常運(yùn)行一組應(yīng)用程序,例如,http代理207(有時稱為“全局主機(jī)”或“ghost”進(jìn)程)、名稱服務(wù)器208、本地監(jiān)視過程210、分布式數(shù)據(jù)收集過程212等。對于流媒體,如由所支持的媒體格式要求的,該機(jī)器通常包括一個或多個媒體服務(wù)器,例如,windowsmediaserver(wms)或flash服務(wù)器。
cdn邊緣服務(wù)器被配置為優(yōu)選地使用分發(fā)到使用配置系統(tǒng)的邊緣服務(wù)器的配置文件來提供一個或多個擴(kuò)展內(nèi)容傳遞特征,優(yōu)選地基于特定域的、特定客戶。給定的配置文件優(yōu)選地是基于xml的,并且包括一組促進(jìn)一個或多個高級內(nèi)容處理特征的內(nèi)容處理規(guī)則和指令。配置文件可以經(jīng)由數(shù)據(jù)傳輸機(jī)構(gòu)傳遞到cdn邊緣服務(wù)器。美國專利第7,111,057號示出了用于傳遞和管理邊緣服務(wù)器內(nèi)容控制信息的有用的基礎(chǔ)設(shè)施,并且這個和其他邊緣服務(wù)器控制信息可以由cdn服務(wù)提供商本身提供,或者(經(jīng)由外部網(wǎng)等)由操作原始服務(wù)器的內(nèi)容提供者客戶提供。
cdn可以包括存儲子系統(tǒng),例如,在美國專利第7,472,178號中描述的存儲子系統(tǒng),該專利的公開內(nèi)容通過引用并入本文。
cdn可以操作服務(wù)器緩存層級以提供客戶內(nèi)容的中間緩存;在美國專利第7,376,716號中描述了一個這樣的緩存層級子系統(tǒng),該專利的公開內(nèi)容通過引用并入本文。
cdn可以以在美國公布第20040093419號中描述的方式在客戶端瀏覽器、邊緣服務(wù)器和客戶源服務(wù)器之間提供安全的內(nèi)容傳遞。如本文所述,安全的內(nèi)容傳遞一方面在客戶端和邊緣服務(wù)器過程之間執(zhí)行基于ssl的鏈接以及另一方面在邊緣服務(wù)器過程和源服務(wù)器過程之間執(zhí)行基于ssl的鏈接。這使得ssl保護(hù)的網(wǎng)頁和/或其組件能夠經(jīng)由邊緣服務(wù)器傳遞。
作為覆蓋層,cdn資源可用于促進(jìn)在企業(yè)數(shù)據(jù)中心(可能是私有管理)和第三方軟件即服務(wù)(saas)提供商之間的廣域網(wǎng)(wan)加速服務(wù)。
在典型的操作中,內(nèi)容提供者識別其期望由cdn服務(wù)的內(nèi)容提供商域或子域。cdn服務(wù)提供商(例如,通過規(guī)范名稱或cname)將內(nèi)容提供者域與邊緣網(wǎng)絡(luò)(cdn)主機(jī)名相關(guān)聯(lián),并且cdn提供商然后將該邊緣網(wǎng)絡(luò)主機(jī)名提供給內(nèi)容提供者。當(dāng)在內(nèi)容提供商的域名服務(wù)器處收到對內(nèi)容提供商域或子域的dns查詢時,這些服務(wù)器通過返回邊緣網(wǎng)絡(luò)主機(jī)名來進(jìn)行響應(yīng)。邊緣網(wǎng)絡(luò)主機(jī)名指向cdn,然后通過cdn名稱服務(wù)解析該邊緣網(wǎng)絡(luò)主機(jī)名。為此,cdn名稱服務(wù)返回一個或多個ip地址。然后,請求的客戶端瀏覽器向與ip地址相關(guān)聯(lián)的邊緣服務(wù)器進(jìn)行內(nèi)容請求(例如,經(jīng)由http或https)。請求包括含原始內(nèi)容提供商域或子域的主機(jī)頭。在接收到具有主機(jī)頭的請求時,邊緣服務(wù)器檢查其配置文件以確定所請求的內(nèi)容域或子域是否實際上正由cdn處理。如果是這樣,邊緣服務(wù)器如其配置中所指定的應(yīng)用其關(guān)于該域或子域的內(nèi)容處理規(guī)則和指令。這些內(nèi)容處理規(guī)則和指令可能位于基于xml的“元數(shù)據(jù)”配置文件中。
作為額外的背景,在現(xiàn)有技術(shù)中已知的是提供所謂的http請求充實。下文提供了這種技術(shù)的細(xì)節(jié)。首先,考慮通過連接客戶端和服務(wù)器的網(wǎng)絡(luò)進(jìn)行的http(非ssl)請求/響應(yīng)的流程。從理論上講,這樣的流程可能被中間的諸如透明代理、網(wǎng)關(guān)、七層交換機(jī)等的網(wǎng)元攔截。網(wǎng)元可以選擇向http請求中自主地插入額外的報頭以將關(guān)于請求的附加輔助信息傳送到服務(wù)器。這是http請求充實的過程。此外,服務(wù)器可以將關(guān)于響應(yīng)的附加輔助信息添加到一些報頭中,然后中間的網(wǎng)元在將其發(fā)送給客戶端之前可以從響應(yīng)報頭中讀取和提取。這種http請求充實作為許多商業(yè)上可用的網(wǎng)元中的簡單特征可用。例如,juniper網(wǎng)絡(luò)移動網(wǎng)絡(luò)網(wǎng)關(guān)包括充實來自具有設(shè)備的msisdn號碼的移動設(shè)備的每個http請求使得服務(wù)器可以識別用戶的特征。
http是一種基于文本的協(xié)議,且其不會通過諸如校驗和等的機(jī)制來嘗試保留請求/響應(yīng)報頭的真實性。http報頭充實在這個(非基于https的)環(huán)境中起作用,因為網(wǎng)元能夠看到在線上的數(shù)據(jù)流中的請求和響應(yīng)結(jié)構(gòu),并且還因為信息的插入/提取不會破壞任何安全機(jī)制。
https請求充實
https是使用加密進(jìn)行通信的協(xié)議。ssl/tls是基本技術(shù)。加密技術(shù)使得中間人的觀察者不可能知道加密密鑰。在這種環(huán)境中,中間的網(wǎng)元不能破譯加密的通信,它們也不能將任何數(shù)據(jù)插入加密流。因此,中間的網(wǎng)元無法以類似于http的方式充實https請求。
例如在服務(wù)器和客戶端-服務(wù)器流程中間的網(wǎng)元之間傳輸通信充實信息的一種替代方案是使用“帶外”方法。在這種方法中,網(wǎng)元可以在單獨的連接上向網(wǎng)頁服務(wù)器發(fā)送關(guān)于正在進(jìn)行的https連接的充實信息。作為一個具體的例子,如果ip地址ip1處的移動設(shè)備連接到ip地址ip2處的服務(wù)器,則可以通過從網(wǎng)元到服務(wù)器的單獨的https請求來實現(xiàn)上述示例的充實,該單獨的https請求向ip2處的服務(wù)器發(fā)送一對<ip1,一些數(shù)據(jù)>。然后可能需要服務(wù)器將充實信息應(yīng)用于正確的客戶端請求,例如通過針對所接收的所有充實檢查客戶端的ip/端口。雖然這種方法適用于某些網(wǎng)絡(luò)環(huán)境,但是在網(wǎng)絡(luò)實體和服務(wù)器之間的網(wǎng)絡(luò)地址轉(zhuǎn)換(nat)設(shè)備存在的情況下,此類型的解決方案無法運(yùn)行。在這種場景下,客戶端的ip地址可能被網(wǎng)絡(luò)實體視為ip1(前nat地址),且被服務(wù)器視為ip3(后nat地址)。為了在nat存在的情況下成功地充實請求,網(wǎng)絡(luò)實體或服務(wù)器必須具有在同一客戶端的兩個ip地址之間進(jìn)行實時轉(zhuǎn)換的方法。當(dāng)網(wǎng)元在移動元素內(nèi)部并且服務(wù)器位于公共互聯(lián)網(wǎng)上時,幾乎總是遇到nat問題。特別地,移動網(wǎng)關(guān)使用的nat機(jī)制通常沒有用于轉(zhuǎn)換(在本例中為
本公開的主題涉及這個問題,如現(xiàn)在描述的。
該技術(shù)為https請求提供ssl充實機(jī)制。
這種方法使得網(wǎng)元(在中間)可將充實注入到ssl連接中,并將其引出。這個網(wǎng)元有時在這里被稱為“中間框”。在分層軟件架構(gòu)的環(huán)境中,此解決方案優(yōu)選地由在ssl連接的兩個端點處在ssl層下和tcp套接字層之上運(yùn)行的庫來實現(xiàn)。然而,這種實現(xiàn)并不旨在限制。
如將會看到的,這種方法具有幾個有吸引力的特性。特別是因為將充實注入到ssl連接的數(shù)據(jù)流中,所以該方法不受nat問題的影響。以這種方式將充實注入數(shù)據(jù)流也比帶外充實方法更有效。因為在優(yōu)選實施例中,庫優(yōu)選地在ssl層之下,所以該實現(xiàn)不需要對ssl層(例如,openssl包)的任何改變。相反,實際上,就ssl協(xié)議而言,該庫是一個中間人(mitm)實體。在協(xié)議棧中的這個位置,充實層與中間的其他實體(如wifi設(shè)備、防火墻,交換機(jī)、路由器、dpi框等)具有相同的有利的點。充實層與任何這些實體一樣,既不能訪問ssl連接的會話密鑰,也不影響用于協(xié)商它們的機(jī)制。它對會話密鑰的無知阻止了該層破譯加密通信的內(nèi)容和/或?qū)⒄_加密數(shù)據(jù)寫入代表任一端點的連接。此外,該層對于其在連接的端點或中間的網(wǎng)元中的操作不需要ssl證書。憑借上述特性,這種方法很容易被證明沒有引入安全風(fēng)險。
下文中進(jìn)一步詳細(xì)說明充實方法。
作為背景,為了與服務(wù)器建立ssl連接,客戶端首先與服務(wù)器建立tcp連接;它然后繼續(xù)進(jìn)行ssl握手,其中發(fā)送和接收諸如客戶端-問候(hello)、服務(wù)器-問候、證書等各種類型的消息。在握手結(jié)束時,建立會話(主)密鑰,且加密的有效載荷開始在兩個方向通過ssl連接。消息以及加密的有效載荷以ssl/tls記錄的形式進(jìn)行組織。記錄格式被標(biāo)準(zhǔn)化,并且由圖3中的記錄300示出。該記錄格式包括內(nèi)容類型(或類型)字段、主要版本字段、次要版本字段、壓縮長度字段、明文和消息地址碼(mac)字段。明文和mac字段可以被加密。眾所周知,在客戶端402和服務(wù)器404之間的記錄400的交換通常如圖4所示進(jìn)行。
對本公開的方案中進(jìn)行工作的充實數(shù)據(jù)的內(nèi)容和格式?jīng)]有嚴(yán)格的要求。在非?;镜膶用嫔?,該方案只要求注入的數(shù)據(jù)不會改變ssl記錄的原始內(nèi)容,并且兩個端點必須能夠區(qū)分原始記錄和注入的充實數(shù)據(jù)。為了簡單地進(jìn)行設(shè)計,優(yōu)選地,將充實數(shù)據(jù)插入兩個ssl/tls記錄之間的連接(在任一方向上),而不是直接插入任何原始記錄的主體。此外,優(yōu)選地,充實數(shù)據(jù)被表示為ssl/tls記錄。因此,充實數(shù)據(jù)有時稱為充實記錄。
為了充實數(shù)據(jù)的識別,優(yōu)選地,為充實記錄的<類型、主要版本、次要版本>選擇的值不一定是連接的合法值,例如,每個記錄的第一個字節(jié)指定記錄類型。對于sslv3,只有20-24范圍內(nèi)的值才是記錄類型的有效值。根據(jù)本文的方法,可以要求(并因此使用)任何未使用的數(shù)字用于充實記錄的類型。在一個示例性實施例(非限制性)中,-1被用作充實記錄的類型。由于充實記錄是標(biāo)準(zhǔn)ssl/tls協(xié)議的非法記錄,因此如果ssl庫在連接上看到該記錄,則ssl連接將被終止。也就是說,由于充實庫優(yōu)選在ssl層之下運(yùn)行,所以庫的責(zé)任是不要在其之上將充實記錄傳遞到ssl層。
在代表性的實施例中,如圖5所示,服務(wù)器側(cè)的軟件層通常包括(從下至上)tcp500、tcp套接字層502、本公開的充實層504、ssl層506(例如openssl)和應(yīng)用層508。圖6示出充實層504提供給應(yīng)用層508以發(fā)送/檢索充實的各種功能600。圖6中所示的功能是代表性的,并且可以組合各種操作。就應(yīng)用層而言,簡單地調(diào)用圖6所示的一個或多個功能,以便從ssl連接中獲取充實,通過該連接發(fā)送它們等。
下文提供根據(jù)該方法的代表性充實層504的另外的細(xì)節(jié)。
眾所周知,ssl層506使用tcp套接字層502進(jìn)行網(wǎng)絡(luò)通信。具體來說,ssl層506使用具有套接字的標(biāo)準(zhǔn)系統(tǒng)調(diào)用,例如open()、close()、read()、write()、listen()和accept())。根據(jù)本公開,充實層504優(yōu)選地通過使用系統(tǒng)調(diào)用封裝機(jī)制來攔截在ssl庫506和套接字層502之間的調(diào)用。特別地,系統(tǒng)調(diào)用優(yōu)選地由充實層504封裝,使得當(dāng)ssl層506進(jìn)行這些系統(tǒng)調(diào)用之一時,會調(diào)用充實層的相應(yīng)(封裝器)功能。除了執(zhí)行其他操作之外,封裝器功能還可以然后喚起原始系統(tǒng)調(diào)用。
因此,例如,當(dāng)ssl層調(diào)用read()從網(wǎng)絡(luò)接收數(shù)據(jù)時,將會調(diào)用充實層的讀取封裝器。這個函數(shù)又喚起原始系統(tǒng)調(diào)用read()函數(shù)來從網(wǎng)絡(luò)接收數(shù)據(jù)。然后檢查數(shù)據(jù)的ssl記錄結(jié)構(gòu),并將其中發(fā)現(xiàn)的任何充實記錄都取出;來自這些記錄的充實數(shù)據(jù)優(yōu)選地存儲在用于到來的充實的存儲表中,對應(yīng)于它們被讀取的套接字。然后將剩余的數(shù)據(jù)作為read()調(diào)用的一部分傳遞到ssl層。
當(dāng)應(yīng)用程序調(diào)用圖6的其他api功能時,如獲取ssl充實計數(shù)(getsslenrichmentcount())、讀取ssl充實大小(readsslenrichmentsize())、讀取ssl充實(readsslenrichment())等,充實層使用為每個套接字存儲這些充實的表來響應(yīng)調(diào)用。
當(dāng)應(yīng)用層調(diào)用寫入ssl充實功能(writesslenrichment())時,優(yōu)選地將結(jié)果存儲到另一個存儲每個套接字的輸出充實的表中。當(dāng)ssl層在套接字上進(jìn)行write()調(diào)用時,將會調(diào)用充實層的寫入封裝器。這個函數(shù)又喚起原始系統(tǒng)調(diào)用write()函數(shù)來向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。在任何ssl記錄的邊界寫入套接字之后,從給定套接字的表中的傳出充實數(shù)據(jù)構(gòu)建一個充實幀,并將其寫入套接字。
優(yōu)選地,用于系統(tǒng)調(diào)用accept()和close()的封裝器執(zhí)行管家任務(wù)。
下文描述位于中間的網(wǎng)元(最好是移動網(wǎng)元)的作用,特別是如何使用ssl充實來充實ssl請求。在這個例子中,充實是用于終端用戶設(shè)備的實時帶寬向?qū)А_@只是一個代表性的例子,并不是為了限制使用這種方案可以實現(xiàn)的充實類型。在該示例場景中,并且參考圖7,中間的網(wǎng)元700用作在客戶端702和服務(wù)器704之間的透明tcp代理。移動網(wǎng)絡(luò)的管理員可以配置網(wǎng)絡(luò)路由,以便將發(fā)往服務(wù)器偵聽端口(443)的所有用戶的數(shù)據(jù)包發(fā)送到tcp代理。通常,代理700終止tcp連接,盡管這不是必需的。在邏輯上,如上所述,代理不是ssl端點;而是,它是ssl連接的中間人。它識別服務(wù)器ip地址,并單獨連接到ssl端口上的服務(wù)器ip地址。因此,代理700充當(dāng)該對連接之間的兩個方向上的數(shù)據(jù)的轉(zhuǎn)發(fā)器。此代理還鏈接充實庫以用于請求充實操作。為此,在連接對壽命期間的任何時間點,代理可以調(diào)用writesslenrichment()api函數(shù)來將其客戶端帶寬向?qū)У闹R插入到與服務(wù)器704的ssl連接中。這在圖7中示出,其顯示了上述場景下的ssl記錄流。在該示例中,充實記錄705緊接在來自客戶端702的第一ssl記錄(即客戶機(jī)-問候記錄)之后。如果具有這樣的通信的需求,則也可以在相反方向(即從服務(wù)器804向中間的網(wǎng)元800)發(fā)送充實805,然后再發(fā)送到客戶端802。圖8說明了這個選項。
當(dāng)然,在ssl連接的路徑中可具有多個網(wǎng)元,其每個可插入、提取或讀取并轉(zhuǎn)發(fā)充實。
由于充實記錄的記錄類型不一定是合法的ssl/tls記錄類型,所以不應(yīng)由任何發(fā)送者發(fā)送充實記錄,除非確信接收者和中間的所有網(wǎng)元都可以無誤地處理它們。發(fā)現(xiàn)路徑和目的地是否“能夠充實”優(yōu)選地需要單獨的方法。實現(xiàn)此功能的一種簡單方法是通過設(shè)備配置。網(wǎng)元可以簡單地采取接受充實作為其配置的服務(wù)器的列表。在單管理員環(huán)境中,這種類型的方法是有效的。然而,當(dāng)多個管理域涉及通信時,則一個更自動的發(fā)現(xiàn)機(jī)制是有根據(jù)的。在這種場景下可以使用以下發(fā)現(xiàn)協(xié)議。
特別地,網(wǎng)元優(yōu)選地觀察通過其到所有與客戶端形成連接的服務(wù)器ip地址的流量。網(wǎng)元然后發(fā)起與它們中的每一個的發(fā)現(xiàn)連接。作為發(fā)現(xiàn)連接的一部分,網(wǎng)元發(fā)起ssl握手,并在握手完成之前將充實記錄插入其中。該充實記錄識別發(fā)送者,并且它要求接收實體(或多個實體)識別自身。當(dāng)目的地服務(wù)器或中間的網(wǎng)元不具有充實層時,其ssl層會看到充實記錄,這導(dǎo)致其終止錯誤的連接。因此,網(wǎng)元知道服務(wù)器或到其的路徑尚未準(zhǔn)備好進(jìn)行充實。當(dāng)路徑上的每個網(wǎng)元和目標(biāo)服務(wù)器都能夠處理充實記錄時,然后通過將識別自身的充實記錄添加到朝向發(fā)送者的ssl連接中來進(jìn)行響應(yīng)。如果與服務(wù)器的ssl握手成功完成,則網(wǎng)元可以斷定到服務(wù)器和服務(wù)器本身的路徑是能夠充實的。網(wǎng)元還可以從接收自連接的充實中檢索路徑上的每個實體的識別。當(dāng)發(fā)現(xiàn)過程根據(jù)需要完成時,網(wǎng)元可以將充實注入客戶端到此服務(wù)器的ssl連接,如上所述。
上述方法能夠在到目的地的路徑中發(fā)現(xiàn)可充實的網(wǎng)元的存在,即使目的服務(wù)器本身不能夠充實。
對于充實數(shù)據(jù)沒有嚴(yán)格的加密要求。然而,在使用公共互聯(lián)網(wǎng)的系統(tǒng)中,應(yīng)實施充實數(shù)據(jù)的安全性。對于公共互聯(lián)網(wǎng)上的服務(wù)器,接收到的充實數(shù)據(jù)通常不能信任,除非其來源是可信賴的,并且保證在數(shù)據(jù)發(fā)送后路徑上的任何網(wǎng)絡(luò)實體未篡改服務(wù)器。優(yōu)選地,在這種情況下,充實數(shù)據(jù)應(yīng)該用僅對兩個端點已知的密鑰來進(jìn)行加密。
設(shè)備配置是為設(shè)備想要發(fā)送充實信息的任何網(wǎng)元和服務(wù)器提供公共密鑰的簡單方法??蛇x地,對于跨越多個管理域的系統(tǒng),可以使用用于運(yùn)行時的密鑰協(xié)商的以下設(shè)計。假設(shè)服務(wù)器提供網(wǎng)元可以用來協(xié)商密鑰的可公開訪問的安全url。可為此目的擴(kuò)展發(fā)現(xiàn)連接。除了要求服務(wù)器或網(wǎng)元識別自身之外,發(fā)現(xiàn)連接中的充實記錄則也用于請求服務(wù)器揭示其密鑰協(xié)商機(jī)制(即上述url)的細(xì)節(jié)。在接收到充實記錄中的查詢后,服務(wù)器返回在相同連接上發(fā)送給網(wǎng)元的充實記錄中的url。在接收到安全url之后,網(wǎng)絡(luò)實體向url提供單獨的請求,提供其自己的識別(例如,客戶端證書)。服務(wù)器然后驗證身份。如果服務(wù)器想要接受來自網(wǎng)絡(luò)實體的充實,那么它返回作為響應(yīng)的一部分的密鑰到實體。網(wǎng)元現(xiàn)在可以為到服務(wù)器的任何連接創(chuàng)建加密的和/或簽名的充實。可以按照相同的程序,隨時間根據(jù)需要再協(xié)商多次密鑰。如上一節(jié)所述,即使服務(wù)器本身不能夠充實,該方法也可以發(fā)現(xiàn)到目的服務(wù)器的路徑中的能夠充實的網(wǎng)元。在這種場景下,上述可以用于不涉及服務(wù)器的通信網(wǎng)元對的密鑰的協(xié)商。
圖9進(jìn)一步示出了本公開的優(yōu)選軟件分層方法,并且特別地,中間框900中的充實層906如何與在ssl通信的每端處的層相互操作。在本實施例中,客戶端902是連接到邊緣服務(wù)器http代理904的移動設(shè)備(ue)。
圖10示出了移動網(wǎng)絡(luò)中ssl充實的各種應(yīng)用。在該實施例中,各種網(wǎng)絡(luò)服務(wù)被鏈接并且可以彼此交互。在該表示性的但非限制性的操作場景中,期望從邊緣服務(wù)器1000向請求的移動設(shè)備(用戶設(shè)備(ue))1002傳遞超頂(ott)自適應(yīng)比特率流。中間框1004位于無線電接入網(wǎng)元(例如,enodeb應(yīng)用程序)1006和邊緣服務(wù)器1000之間。上述ssl充實是在所識別的服務(wù)中提供雙向通信信道的方式。例如,這里網(wǎng)絡(luò)向邊緣服務(wù)器傳輸各種無線電條件(例如,推薦的bw限制),且邊緣服務(wù)器向網(wǎng)絡(luò)通知所選擇的流帶寬。邊緣服務(wù)器還通知中間框和enodeb應(yīng)用程序它們應(yīng)該在epc中和無線電上使用什么tcp優(yōu)化設(shè)置。邊緣服務(wù)器向ue的os平臺通知流帶寬。當(dāng)然,這些只是表示性的https請求充實。
上述示例描述了本公開的技術(shù)如何提供無線電感知的ssl充實。無線電狀態(tài)信息被收集,然后使用ssl充實作為ssl連接的一部分被發(fā)送到覆蓋網(wǎng)絡(luò)。通過獲取該信息,覆蓋網(wǎng)絡(luò)可以適應(yīng)和優(yōu)化用于cdn中移動傳遞的內(nèi)容,從而提供更好的移動用戶體驗、更高的網(wǎng)絡(luò)利用率和更低的網(wǎng)絡(luò)擁塞。
因此,本公開的技術(shù)提供了通過將充實記錄注入ssl連接來提供充實數(shù)據(jù),以及通過移除充實記錄并將原始記錄流發(fā)送到ssl層來檢索充實數(shù)據(jù)。
實現(xiàn)所描述的功能的中間框的特定功能并不旨在是限制性的。通常,如上所述,充實隨著數(shù)據(jù)包通過設(shè)備轉(zhuǎn)發(fā)而被添加(例如,吞吐量信息)。
圖11示出了如何可將服務(wù)發(fā)現(xiàn)協(xié)議1100(例如,在該示例中在邊緣服務(wù)器1102中操作)并且如上所述用于發(fā)現(xiàn)具有能夠充實的設(shè)備和其他服務(wù)api以及協(xié)商加密密鑰。
可以看出,上述的充實技術(shù)依賴于ssl記錄類型和版本號以在一方面原始的ssl記錄(由連接的端點編寫)和另一方面充實記錄(由中間實體插入)之間進(jìn)行區(qū)分。區(qū)分的這種具體方法并不旨在為限制性的。
對ssl的本文中的引用不應(yīng)被視為限制性的,因為該方法也適用于傳輸層安全(tls)連接。因此,為了本文的目的,ssl和tls是可互換的。
因此,且如圖5所示,介紹了tcp和ssl或tls之間的新層(即,圖5中的充實層504)。憑借協(xié)議棧中的這個位置,充實層能夠?qū)⑷魏畏较蛏系膕sl/tls連接上流動的數(shù)據(jù)識別為一系列結(jié)構(gòu)化ssl/tls記錄。在一個實施例中,為了傳達(dá)數(shù)據(jù)的目的,新類型的ssl/tls記錄(本文中有時也稱為aux記錄)然后被提供并優(yōu)選地存在于在網(wǎng)絡(luò)服務(wù)和其他服務(wù)器(例如,http服務(wù)器)之間的層處。如上所述,優(yōu)選地,網(wǎng)絡(luò)服務(wù)和服務(wù)器以aux記錄的形式直接將其數(shù)據(jù)插入到ssl/tls連接中,并且檢索它們。
圖5中的充實層可以被實現(xiàn)為用戶級庫,例如在編譯時與應(yīng)用鏈接的用戶級庫。因此,優(yōu)選地,本文中的方法以應(yīng)用層機(jī)制進(jìn)行操作,然而這不是限制。如上所述,優(yōu)選地,充實層提供用于應(yīng)用程序的api,以便通過機(jī)制發(fā)送或檢索輔助數(shù)據(jù)。
優(yōu)選地,aux記錄不被插入到連接中,除非發(fā)送者確定它們不會在其預(yù)期目的地或任何中間網(wǎng)元處造成錯誤。另外,插入數(shù)據(jù)的實體必須知道目的地預(yù)期它到達(dá)的格式。
本領(lǐng)域技術(shù)人員將理解,本文描述的機(jī)制提供了用于端到端加密流量但是不以任何方式干擾加密的帶內(nèi)數(shù)據(jù)通信。優(yōu)選地,該機(jī)制允許ssl/tls連接的任一端點或介入的中間框?qū)⑤o助數(shù)據(jù)插入/檢索/刪除到連接的tcp流中。
作為選項,可以通過使通信實體以明文、簽名明文或用輔助密鑰加密的方式交換數(shù)據(jù)來保護(hù)在aux記錄中交換的數(shù)據(jù)本身。
優(yōu)選地,并且因為在表示性的實施例中,aux記錄基本上是無效的ssl/tls記錄,所以它們不被允許到達(dá)在tls連接的任一端點處的tls層。為了支持任一端點處的aux記錄,如先前示出和描述的,優(yōu)選地,在這種端點處的應(yīng)用具有夾在tcp和ssl/tls層之間的記錄處理層(例如,圖5中的充實層504)。優(yōu)選地,充實層負(fù)責(zé)處理aux記錄,并保持它們達(dá)到tls層。
下文提供了有關(guān)可通過機(jī)制實現(xiàn)的表示性的發(fā)現(xiàn)和協(xié)商協(xié)議的另外的細(xì)節(jié)。為了描述的目的,協(xié)議的步驟在客戶端向互聯(lián)網(wǎng)上的服務(wù)器(s)發(fā)出https請求且數(shù)據(jù)流通過中間的網(wǎng)元(ne)的環(huán)境的上下文中呈現(xiàn)。該協(xié)議描述了ne應(yīng)該做什么以啟動與s的元數(shù)據(jù)通信。如下所示,充實層支持被稱為“tls-aux”。
發(fā)現(xiàn)協(xié)議
1.如果s想向ne發(fā)送元數(shù)據(jù)和/或從ne接收元數(shù)據(jù),那么它應(yīng)該公開發(fā)布tls-aux支持,例如通過其ssl證書中的兩個自定義選項。
·tls-aux-support選項可能具有send、receive或sendrecefe的值,指示服務(wù)器是否僅對發(fā)送元數(shù)據(jù)、僅接收元數(shù)據(jù)或兩者感興趣。
·選項tls-aux-negotiationurl可以包含url,其中任何感興趣的ne可以協(xié)商用于(如果適用)aux記錄的有效載荷的元數(shù)據(jù)和加密密鑰的格式。
2.如果ne具有觀察流量的能力,那么它可以從證書或握手的sni部分中發(fā)現(xiàn)服務(wù)于從ne到客戶端下游的tls流量的所有服務(wù)器ip以及由它們托管的域名。此外,ne可以識別在其服務(wù)器證書中發(fā)布tls-aux支持的服務(wù)器的子集。對于tlsv1.2或以下的版本,ne應(yīng)通過觀察在線上的服務(wù)器證書來實現(xiàn)。對于tlsv1.3或以上的版本,服務(wù)器發(fā)送的證書被加密,因此不能被ne檢查。在這種情況下,ne應(yīng)該為由s服務(wù)的每個已知域名明確地發(fā)起與sni到s的tls握手。因此,它應(yīng)從s檢索所有域的證書,并檢查它們以發(fā)現(xiàn)哪些域支持tls-aux。ne中配置的業(yè)務(wù)規(guī)則可能用于進(jìn)一步初步列選ne應(yīng)參與的與其的tls-aux通信的服務(wù)器。協(xié)商協(xié)議
一旦ne決定向服務(wù)器s發(fā)送和/或從服務(wù)器s接收元數(shù)據(jù),則ne應(yīng)該發(fā)起協(xié)商協(xié)議。優(yōu)選地,該協(xié)議是來自實時用戶流量的帶外運(yùn)行的。
1.所有協(xié)議協(xié)商都必須發(fā)生在ne向s發(fā)起的tls連接上。在建立tls連接之后,ne必須在進(jìn)行任何進(jìn)一步的通信之前將零長度的tls-aux記錄插入此連接。如果此記錄的插入會引起tls錯誤,那么ne必須斷定s或到s的網(wǎng)絡(luò)路徑上的不可見網(wǎng)元不支持tls-aux。協(xié)議失敗,且ne不可將任何tls-aux記錄插入目的地為s的連接中。
2.如果步驟2沒有失敗,則ne應(yīng)該向服務(wù)器證書中提供的協(xié)商url發(fā)出post請求。在post主體中,ne必須包含對服務(wù)器支持的元數(shù)據(jù)方案和加密方法的請求。
3.從ne接收到post請求主體后,s必須決定它是否參與和ne的元數(shù)據(jù)通信。為了拒絕,它必須使用http403(禁止)響應(yīng)進(jìn)行響應(yīng)。如果s決定接受此請求,則它應(yīng)創(chuàng)建用于在ne和s之間的元數(shù)據(jù)交換的新tls-aux會話。為了通知接受,它必須以http狀態(tài)200(ok)進(jìn)行響應(yīng)。在響應(yīng)主體中,s必須提供會話id、它要發(fā)送和/或接收的元數(shù)據(jù)類型、加密算法、密鑰和密鑰的到期時間。密鑰是用于作為會話一部分交換的tls-aux記錄的有效載荷的加密。ne和s都必須將密鑰與會話相關(guān)聯(lián)。如果s想要tls-aux記錄的有效載荷在明文中,那么加密算法應(yīng)該是這樣指示的,且密鑰將是無關(guān)緊要的。
4.如果ne的post請求指示它可能想從s接收元數(shù)據(jù),那么在發(fā)送響應(yīng)之前,s必須在此連接中包含零長度的tls-aux記錄。
5.在接收到http200響應(yīng)后,ne必須識別其想要向發(fā)送和/或接收的服務(wù)器的元數(shù)據(jù)類型的子集。然后它必須向同相同的url發(fā)出第二個post請求,識別會話中的發(fā)送和接收方向上的感興趣的子集。
6.在接收到第二個post后,s必須用http200(ok)來確認(rèn)或者用http403(禁止)來拒絕,結(jié)束協(xié)商。
在完成協(xié)商協(xié)議的步驟后,s和ne具有建立的tls-aux會話,其具有加密方案、會話密鑰和到期時間的共同知識。元數(shù)據(jù)的發(fā)送者應(yīng)使用密鑰對通過tls-aux記錄發(fā)送的元數(shù)據(jù)進(jìn)行加密或簽名。在到期日期后無法使用密鑰。任何時間可以由ne重新協(xié)商tls-aux會話以獲得有效的密鑰。
互聯(lián)網(wǎng)路由不穩(wěn)定并可以隨時間變化。這意味著任何新的不兼容網(wǎng)元可能會在現(xiàn)有tls-aux會話的生命周期內(nèi)被引入到在ne和s之間的路徑中,這可能會阻止流量,直到建立的會話的生命周期結(jié)束。到期后會話的重新協(xié)商將補(bǔ)救這種情況??梢哉J(rèn)為,檢查tls記錄結(jié)構(gòu)的網(wǎng)元可能存在于連接的端點附近(例如,移動網(wǎng)絡(luò)的gi-lan中的服務(wù)或在托管服務(wù)器的數(shù)據(jù)中心里的安全設(shè)備),而不是在公共互聯(lián)網(wǎng)路徑中。因此,與在端點附近網(wǎng)絡(luò)配置的變化相比,互聯(lián)網(wǎng)上的路徑變化遠(yuǎn)不太可能引起這種情況。由于網(wǎng)絡(luò)和服務(wù)器是tls-aux會話中的有意參與者,因此它們可被預(yù)期通過其操作流程避免這種情況。
會話識別
只要在ne和s之間存在有效的tls-aux會話,它們可以將tls-aux記錄插入用戶的數(shù)據(jù)流中/從用戶的數(shù)據(jù)流中刪除。然而,網(wǎng)絡(luò)中間框通常是透明的或位于私有網(wǎng)絡(luò)空間中,這使得它們對s不可見。因此,當(dāng)用戶的tls連接到達(dá)s時,其可能不可能辨別其可能屬于哪個tls-aux會話,這是定位用于破譯包含在tls-aux記錄中的元數(shù)據(jù)和知道哪些元數(shù)據(jù)參數(shù)已經(jīng)為該會話協(xié)商的解密密鑰所需的。為了幫助s識別會話,如果ne打算與s交換用于任何tls連接的元數(shù)據(jù),那么它應(yīng)該向s發(fā)送tls-aux記錄,其在tls連接建立開始時發(fā)送一個包含session-id。s不能在任何連接上發(fā)送任何tls-aux記錄,除非它能夠識別連接所屬的tls-aux會話。
雖然協(xié)議在上文中在一個ne和一個s的背景中進(jìn)行了描述,但是對于具有沿著客戶端和s之間的路徑的多個ne的環(huán)境是可擴(kuò)展的。在這樣的環(huán)境中,每個ne必須與服務(wù)器協(xié)商其自身的tls-aux會話,且客戶端與服務(wù)器之間的tls連接可能屬于多個tls-aux會話。下面的庫描述假定用于每個連接的單個tls-aux會話。支持多個會話的擴(kuò)展是明確的。
下文提供了關(guān)于在一個實施例中的tls-aux庫的實現(xiàn)的另外細(xì)節(jié)。如上所述,在終止tls連接的任何實體處,在aux記錄能到達(dá)tls層之前,必須處理和刪除它們。下文是用于實現(xiàn)參考的庫的方法。它是一個用戶級庫,其在編譯時與應(yīng)用程序鏈接,并具有幾個特定的系統(tǒng)調(diào)用封裝器選項。為了識別連接的tls-aux會話并在連接上發(fā)送/接收元數(shù)據(jù),應(yīng)用程序應(yīng)調(diào)用api函數(shù)并提供tls連接的文件描述符。在tls-aux記錄中處理加密或元數(shù)據(jù)簽名的任何責(zé)任優(yōu)選地位于庫中,并且應(yīng)用程序被期望使用未加密的元數(shù)據(jù)。
系統(tǒng)調(diào)用封裝
諸如openssl的tls庫是用戶空間庫,且它們?yōu)榫W(wǎng)絡(luò)通信使用tcp套接字。它使用具有底層套接字的標(biāo)準(zhǔn)系統(tǒng)調(diào)用,例如open()、close()、read()、readv()、write()、writev()、listen()和accept())。tls-aux層通過使用系統(tǒng)調(diào)用封裝的機(jī)制來攔截tls庫和套接字之間的調(diào)用。tls-aux庫劫持所有上述系統(tǒng)調(diào)用,從而使得當(dāng)tls庫進(jìn)行這些系統(tǒng)調(diào)用的其中一個時,會調(diào)用tls-aux層的相應(yīng)功能。如下文所述,除了執(zhí)行其他操作之外,該層然后可喚起原始系統(tǒng)調(diào)用。
接收元數(shù)據(jù)
當(dāng)tls層調(diào)用read()從網(wǎng)絡(luò)接收數(shù)據(jù)時,tls-aux層的讀取封裝器函數(shù)被調(diào)用。這個功能反過來喚起原始系統(tǒng)調(diào)用read()來從網(wǎng)絡(luò)接收數(shù)據(jù)。read()封裝器函數(shù)然后對從網(wǎng)絡(luò)接收到的數(shù)據(jù)進(jìn)行操作,將tls-aux記錄與原始的tls記錄分開。從任何tls連接上的tls-aux記錄接收的元數(shù)據(jù)被解密或存儲在與該連接相對應(yīng)的存儲器表中。然后將剩余的數(shù)據(jù)作為read()調(diào)用的一部分傳遞到tls層。當(dāng)應(yīng)用程序調(diào)用api函數(shù),如get_tlsaux_item_count()、read_tlsaux_item_size()、read_tlsaux_item()等時,tls-aux層使用為每個連接存儲這些項目的表來響應(yīng)調(diào)用。
發(fā)送元數(shù)據(jù)
如前所述,元數(shù)據(jù)可能不會在tls連接上被發(fā)送,除非可以識別其tls-aux會話。當(dāng)其被發(fā)現(xiàn)并且應(yīng)用層調(diào)用write_tlsaux_item()時,其被存儲到存儲用于每個文件描述符的輸出元數(shù)據(jù)的另一個表中。當(dāng)tls層在連接上進(jìn)行write()調(diào)用時,tls-aux層的寫入封裝器函數(shù)被調(diào)用。此功能反過來負(fù)責(zé)將tls-aux記錄寫入連接,接著是作為write()函數(shù)的自變量來接收的原始加密的tls記錄。
處理aux幀有效載荷的加密
一旦tls-aux會話由具有ne的應(yīng)用程序建立,則其可以使用setsessiondetails()函數(shù)在庫中設(shè)置會話的加密細(xì)節(jié)。然后,庫可以使用加密方法和密鑰來解密tls-aux消息中的元數(shù)據(jù),或者檢查簽名的有效性。
所描述的機(jī)制的應(yīng)用程序有很多。
典型的用例是其中移動網(wǎng)絡(luò)想向位于公共互聯(lián)網(wǎng)上的媒體服務(wù)器(cdn或其他)發(fā)送元數(shù)據(jù)從而可以優(yōu)化媒體傳遞的一個用例。
另一種用例是其中移動網(wǎng)絡(luò)將元數(shù)據(jù)發(fā)送到位于公共互聯(lián)網(wǎng)上的媒體服務(wù)器以優(yōu)化網(wǎng)絡(luò)資源的使用并為其訂閱者提供更好的qoe的一個用例。
又一種用例是其中公共互聯(lián)網(wǎng)上的網(wǎng)頁服務(wù)器想向位于移動網(wǎng)絡(luò)的私有網(wǎng)絡(luò)空間內(nèi)的代理發(fā)送元數(shù)據(jù)的一個用力。當(dāng)然這些只是表示性的例子。
現(xiàn)在描述用于插入充實的替代方法。在這種方法中,中間框上的充實庫和連接的兩個端點支持ssl記錄封裝協(xié)議。記錄封裝器的結(jié)構(gòu)以例子的方式在圖12中示出。在一個實施例中,封裝器1200具有兩個報頭字段(版本和類型),并且意圖將ssl記錄作為其有效載荷封裝。報頭字段的值優(yōu)選地識別封裝器是否包含ssl記錄,或者其是否包含與ssl記錄不同的信息。例如,封裝器類型0可以用于指示封裝器的有效載荷是原始的ssl記錄,而封裝器類型1可以指示有效載荷是充實信息。這些只是表示性的類型值。
下文描述參與者(連接的中間框或任一端點)如何在此替代技術(shù)中讀取和寫入充實。首先描述寫入充實場景。特別地,在相關(guān)流程的每個參與者,優(yōu)選地,充實庫觀察每個ssl連接上的記錄流。記錄可以是原始的ssl記錄,或者它們可以由另一個實體封裝。如果記錄沒有被封裝,優(yōu)選地,當(dāng)它們通過時庫將它們封裝。然后,在任何封裝的ssl記錄結(jié)束之后插入將要插入連接的任何充實數(shù)據(jù)。在該示例中,可以將充實數(shù)據(jù)作為類型1的封裝器的有效載荷插入。然后讀取充實可以如下進(jìn)行。在每個參與者處,充實庫都觀察記錄流。記錄可以作為常規(guī)ssl記錄到達(dá),或者它們可以作為封裝記錄到達(dá)?;诜庋b器類型字段,庫識別充實,并從數(shù)據(jù)流中取出相關(guān)記錄。如果庫恰好位于任一端點上,那么在將封裝的ssl記錄傳遞到ssl庫之前,庫也優(yōu)選地將它們打開。
更一般地,本文描述的技術(shù)是使用一起促進(jìn)或提供上述描述的功能的一組一個或多個計算相關(guān)實體(系統(tǒng)、機(jī)器、過程、程序、庫、功能等)來提供的。在典型的實現(xiàn)中,在其上執(zhí)行軟件的表示性的機(jī)器包括提供給定系統(tǒng)或子系統(tǒng)的功能的商用硬件、操作系統(tǒng)、應(yīng)用程序運(yùn)行時環(huán)境以及一組應(yīng)用或過程和相關(guān)聯(lián)的數(shù)據(jù)。如所描述的,功能可以在獨立的機(jī)器中或跨分布式的機(jī)器組實現(xiàn)。該功能可以作為服務(wù)提供,例如作為saas解決方案。
雖然上面描述了由本發(fā)明的某些實施例執(zhí)行的操作的特定順序,但是應(yīng)當(dāng)理解,這種順序是示例性的,而替代實施例可以以不同的順序執(zhí)行操作,組合某些操作,重疊某些操作等。本說明書中對給定實施例的參考指示所描述的實施方案可包括特定特征、結(jié)構(gòu)或特性,但是每個實施方案可以不必包括該特定特征、結(jié)構(gòu)或特性。
雖然已經(jīng)在方法或過程的上下文中描述了所公開的主題,但主體公開還涉及用于執(zhí)行本文操作的裝置。該裝置可以由于需要的目的而被特殊地構(gòu)造,或者其可以包括由存儲在計算機(jī)中的計算機(jī)程序選擇性地激活或重新配置的通用計算機(jī)。這樣的計算機(jī)程序可以被存儲在計算機(jī)可讀存儲媒介中,例如,但不限于,包括光盤、cd-rom以及磁光盤的任何類型的盤、只讀存儲器(rom)、隨機(jī)存取寄存器(ram)、磁性或光學(xué)卡或者適于存儲電子指令且均耦合至計算機(jī)系統(tǒng)總線的任意類型的媒介。雖然已經(jīng)分別描述了系統(tǒng)的給定組件,但是普通技術(shù)人員將會理解,一些功能可以在給定的指令、程序序列、代碼部分等中組合或共享。
優(yōu)選地,功能在應(yīng)用層解決方案中實現(xiàn),然而這不是限制,因為所識別的功能的部分可以內(nèi)置到操作系統(tǒng)等中。
該功能可以使用除了https之外的其他應(yīng)用層協(xié)議(例如sslvpn)或具有類似操作特性的任何其他協(xié)議來實現(xiàn)。
對于可以實現(xiàn)連接的客戶端側(cè)或服務(wù)器側(cè)的計算實體的類型沒有限制。任何計算實體(系統(tǒng)、機(jī)器、設(shè)備、程序、過程、實用程序等)可以充當(dāng)客戶端或服務(wù)器。