趙睿斌,張道德,楊紹亮,江偉玉
1.國(guó)家信息中心,北京 100045
2.華為技術(shù)有限公司,北京 100095
近年來(lái),隱私的關(guān)注度持續(xù)在上升。根據(jù)Global Web Index的調(diào)查結(jié)果顯示,在2018年全球有大約四分之一的網(wǎng)民使用VPN技術(shù)來(lái)保護(hù)自己的上網(wǎng)隱私[1]。 除此之外,匿名P2P、Tor、Freenet技術(shù)使用需求也在逐年上升。 特別是隨著歐盟的《通用數(shù)據(jù)保護(hù)條例》[2](General Data Protection Regulation,GDPR)、美國(guó)的《加利福尼亞州消費(fèi)者隱私法》[3]和我國(guó)的《中華人民共和國(guó)網(wǎng)絡(luò)安全法》的發(fā)布,個(gè)人信息隱私保護(hù)越來(lái)越受到重視。歐盟的GDPR,美國(guó)的消費(fèi)者隱私法,中國(guó)的網(wǎng)絡(luò)安全法都關(guān)注個(gè)人隱私,違反個(gè)人隱私保護(hù)的數(shù)據(jù)控制者和處理者將面臨巨額罰款。例如,2019年1月Google被法國(guó)開(kāi)出5000萬(wàn)美元的罰款[4]。
基于IP協(xié)議的網(wǎng)絡(luò)作為數(shù)據(jù)世界的管道,在構(gòu)建萬(wàn)物互聯(lián)的世界中扮演重要角色。在IP協(xié)議中,IP地址作為一種網(wǎng)絡(luò)主機(jī)標(biāo)識(shí)符,常常跟主機(jī)綁定(比如,IPV4地址中的主機(jī)號(hào)以及IPV6地址中接口標(biāo)識(shí)符)而主機(jī)常常和用戶(hù)進(jìn)行綁定,從而IP地址蘊(yùn)含著用戶(hù)的身份隱私。IP地址不僅攜帶了用戶(hù)的身份隱私,即在同一時(shí)間段內(nèi)可以在全網(wǎng)唯一標(biāo)識(shí)一臺(tái)主機(jī),而且還攜帶位置信息,比如IPV4地址的網(wǎng)絡(luò)號(hào)以及IPV6地址的前綴信息都蘊(yùn)含著主機(jī)所在的網(wǎng)絡(luò)位置。除此之外,出于路由尋址目的不得不隨包攜帶IP地址,造成鏈路上所有途徑的網(wǎng)絡(luò)設(shè)備、鏈路竊聽(tīng)者以及目的網(wǎng)站都可以輕而易舉地獲得該標(biāo)識(shí)符。
由于IP地址的易獲取性以及IP地址蘊(yùn)含著大量的隱私信息,鏈路上的非法監(jiān)聽(tīng)者以及不可信的目標(biāo)網(wǎng)站很容易獲取該信息并加以利用從而來(lái)分析用戶(hù)隱私。 常見(jiàn)的隱私分析方式有以下幾種:(1)位置隱私分析。比如,用戶(hù)Alice某日登錄了某款應(yīng)用程序APP_B,并且使用IP地址IP1填寫(xiě)了家庭住址。此時(shí)如果應(yīng)用程序APP_B是惡意的話,它很容易可以得出IP1屬于XX鎮(zhèn)或者XX校區(qū),IP1的地理范圍跟Alice的家庭住址范圍一致。如果用戶(hù)Alice用IP地址IP1訪問(wèn)應(yīng)用程序APP_B時(shí),說(shuō)明用戶(hù)Alice在家。除此之外,當(dāng)Alice在日常生活中不經(jīng)意地在不同地點(diǎn)使用不同的IP地址訪問(wèn)APP_B時(shí),應(yīng)用程序APP_B可以很容易地刻畫(huà)出Alice的生活軌跡。(2)身份隱私分析。比如,用戶(hù)沒(méi)有使用用戶(hù)賬號(hào)訪問(wèn)某網(wǎng)站時(shí),用戶(hù)依然可能會(huì)被網(wǎng)站識(shí)別,網(wǎng)站可以根據(jù)IP地址將用戶(hù)過(guò)去的網(wǎng)絡(luò)活動(dòng)和當(dāng)前的網(wǎng)絡(luò)活動(dòng)進(jìn)行關(guān)聯(lián),分析用戶(hù)隱私,向用戶(hù)定向推送垃圾廣告或者不良信息,或者根據(jù)IP地址可以關(guān)聯(lián)該用戶(hù)在其他網(wǎng)站的注冊(cè)信息。 再比如,目前在瀏覽器訪問(wèn)的網(wǎng)頁(yè)中,通常除了訪問(wèn)的主網(wǎng)頁(yè)以外,還嵌入了多個(gè)第三方鏈接,多個(gè)服務(wù)器可以根據(jù)數(shù)據(jù)包中提取的IP地址進(jìn)行關(guān)聯(lián)分析。用戶(hù)A手機(jī)在某段時(shí)刻使用IP地址訪問(wèn)W1網(wǎng)站,并且在同一時(shí)間段使用相同IP地址訪問(wèn)W2網(wǎng)站,如果W1和W2屬于同一母公司或者W1和W2的提供商是共享數(shù)據(jù)的合作方,那么用戶(hù)在W1和W2中的行為就可以被關(guān)聯(lián)。如果用戶(hù)在W1中注冊(cè)了實(shí)名身份信息,那么W2根據(jù)IP地址就可以關(guān)聯(lián)出用戶(hù)的真實(shí)身份信息,從而帶來(lái)隱私泄露問(wèn)題。
IP地址作為個(gè)人信息的一部分,其隱私保護(hù)技術(shù)在工業(yè)界和學(xué)術(shù)界得到了普遍的關(guān)注。盡管網(wǎng)絡(luò)隱私保護(hù)被研究了多年,并提出了眾多的IP地址隱私保護(hù)技術(shù),但是依然存在諸多不足。例如,Passport[5]和ISP[6]隱私方案能夠提供源 IP 地址的隱私,但是不能隱藏發(fā)送者ISP的位置信息。Mailbox[7]通過(guò)提供多個(gè)代理位置來(lái)為多個(gè)IP地址接收數(shù)據(jù)分組,可以隱藏接收者的真實(shí)IP地址,但是并沒(méi)有提供發(fā)送者的隱私保護(hù)。為應(yīng)對(duì)IPv4地址空間不足而生的網(wǎng)絡(luò)地址轉(zhuǎn)換技術(shù)NAT雖然也提供了一定的隱私保護(hù)特性,但是NAT技術(shù)需要維護(hù)逐流的狀態(tài),開(kāi)銷(xiāo)比較大。另外NAT技術(shù)沒(méi)有提供前綴隱私,攻擊者依然可以根據(jù)IP包中的IP地址獲得主機(jī)的位置信息,而且NAT沒(méi)辦法處理外部網(wǎng)絡(luò)主機(jī)主動(dòng)發(fā)起的流量。基于洋蔥路由的Tor[8]匿名網(wǎng)絡(luò)對(duì)數(shù)據(jù)包的源和目的地址進(jìn)行了隱藏,洋蔥網(wǎng)絡(luò)的每一個(gè)節(jié)點(diǎn)只知道傳輸數(shù)據(jù)包的上一個(gè)節(jié)點(diǎn)和數(shù)據(jù)包將被轉(zhuǎn)發(fā)的下一個(gè)節(jié)點(diǎn),從而提供了很好的IP隱私保護(hù)。但是洋蔥網(wǎng)絡(luò)需要源主機(jī)提前規(guī)劃好洋蔥路由的路徑,并且層層加密的方式開(kāi)銷(xiāo)較大,經(jīng)過(guò)的洋蔥路由節(jié)點(diǎn)越多,帶來(lái)的延遲就會(huì)越大。另外,其加密的地址需要放在應(yīng)用層數(shù)據(jù)中,而洋蔥路由不能根據(jù)直接網(wǎng)絡(luò)層IP地址進(jìn)行轉(zhuǎn)發(fā),上層協(xié)議的解密同樣也會(huì)帶來(lái)延遲。對(duì)于出口節(jié)點(diǎn),同樣需要維護(hù)狀態(tài)。IETF也有多項(xiàng)針對(duì)IPV6地址隱私保護(hù)的工作,但是大部分工作(如臨時(shí)地址[9,11-13]、基于公鑰的密碼方案CGA[14]、無(wú)狀態(tài)接口方案[10,15]等)聚焦在后64位的接口標(biāo)識(shí)符隱私,沒(méi)有考慮前綴隱私,并且其方案無(wú)法做到逐流的隱私保護(hù)。即,在同一段時(shí)間內(nèi),鏈路竊聽(tīng)者以及目標(biāo)網(wǎng)站依然可以根據(jù)IP地址關(guān)聯(lián)用戶(hù)在不同網(wǎng)站的活動(dòng)、以及在不同時(shí)間的網(wǎng)絡(luò)活動(dòng)。而實(shí)際上,5G網(wǎng)絡(luò)的IPV6 PDU Session使用唯一的前綴作為發(fā)送者的標(biāo)識(shí)符,并且在共用同一IPV6前綴的用戶(hù)比較少的情況下,前綴隱私同樣需要提供保護(hù)。
綜上所述,暴露在數(shù)據(jù)包頭部中的源IP地址存在身份隱私泄露和位置隱私泄露的雙重安全威脅。為了解決上述問(wèn)題,在本文中提出了一種終端設(shè)備與網(wǎng)絡(luò)設(shè)備協(xié)同的IP隱私保護(hù)技術(shù)方案。在該方案中,網(wǎng)絡(luò)設(shè)備對(duì)IP地址等隱私信息進(jìn)行實(shí)時(shí)混淆,能夠達(dá)到逐包級(jí)的IP隱私保護(hù),防止隱私好奇者通過(guò)竊聽(tīng)或收集IP報(bào)文來(lái)實(shí)施隱私攻擊。該技術(shù)在同時(shí)兼顧隱私保護(hù)、路由高效尋址、審計(jì)追蹤等需求的情況下,不但消除當(dāng)前IP地址耦合身份和位置雙重語(yǔ)義的障礙,而且還對(duì)身份標(biāo)識(shí)符和位置標(biāo)識(shí)符分別進(jìn)行加密保護(hù)。
(1)對(duì)于身份標(biāo)識(shí)符的加密保護(hù)。對(duì)于源主機(jī)身份ID的加密保護(hù),主要由接入設(shè)備和邊界網(wǎng)絡(luò)設(shè)備(如邊界路由器,核心交換機(jī)等)來(lái)執(zhí)行實(shí)時(shí)的加密混淆。該技術(shù)對(duì)源ID實(shí)現(xiàn)完全隱私保護(hù),源ID被加密保護(hù),發(fā)往不同目的地的相同來(lái)源的源ID不可關(guān)聯(lián),被加密的ID僅可以被源域少數(shù)執(zhí)行安全功能的網(wǎng)絡(luò)節(jié)點(diǎn)(接入設(shè)備,審計(jì)設(shè)備,邊界路由器等)解密出真實(shí)ID,而鏈路上的竊聽(tīng)者、目的接收者無(wú)法根據(jù)IP報(bào)文頭部的源ID信息推斷源端主機(jī)的身份信息。
(2)對(duì)于位置標(biāo)識(shí)符的加密保護(hù)。 對(duì)于locator實(shí)現(xiàn)層次化加密保護(hù),為了兼顧路由尋址,數(shù)據(jù)包不完全暴露完整位置信息,僅暴露部分用于路由尋址的前綴信息,由邊界設(shè)備執(zhí)行實(shí)時(shí)的加密混淆,使得隱私分析者無(wú)法根據(jù)IP報(bào)文頭部暴露的位置信息推斷出真實(shí)的小范圍位置信息,也無(wú)法推斷出兩個(gè)數(shù)據(jù)包是否來(lái)自相同局域網(wǎng)。該技術(shù)可以做到同一個(gè)主機(jī)在不同時(shí)間發(fā)往不同目的地的IP地址是不一樣的,從而防止攻擊者根據(jù)IP地址來(lái)獲得用戶(hù)具體的位置信息,并且防止攻擊者推斷出同一局域網(wǎng)的兩個(gè)IP報(bào)文屬于相同的地理位置,從而很好的保護(hù)了用戶(hù)的位置隱私。
除此之外,將技術(shù)方案可以應(yīng)用到兩種源IP地址隱私需要保護(hù)的場(chǎng)景中,一個(gè)場(chǎng)景是面向運(yùn)營(yíng)商的用戶(hù)IPV6地址隱私保護(hù)場(chǎng)景,另一個(gè)是面向云服務(wù)的租戶(hù)IP隱私保護(hù)場(chǎng)景,并針對(duì)此兩個(gè)場(chǎng)景給出具體的詳細(xì)的方案介紹。
文章組織結(jié)構(gòu)如下:在第1章節(jié)中,主要介紹IP地址隱私保護(hù)技術(shù)的系統(tǒng)方案設(shè)計(jì);在第2章節(jié)中,會(huì)將IP地址隱私保護(hù)技術(shù)應(yīng)用到兩個(gè)使用場(chǎng)景中,一個(gè)場(chǎng)景是IPV6地址的隱私保護(hù)場(chǎng)景,另一個(gè)是面向云服務(wù)的租戶(hù)IP地址隱私保護(hù)場(chǎng)景;最后,第3章節(jié)是對(duì)全文的總結(jié)。
本文主要解決的是IP頭部隱私泄露問(wèn)題,即:解決如何讓目標(biāo)網(wǎng)站不能根據(jù)IP地址分析源主機(jī)的身份隱私和位置隱私。 涉及源終端主機(jī)、終端側(cè)路由器、邊界路由器(或靠近目的端路由器)以及目的端主機(jī)(一般為服務(wù)器)等設(shè)備。源終端主機(jī)在發(fā)送IP數(shù)據(jù)包到目的服務(wù)器的過(guò)程中,其源IP地址會(huì)經(jīng)過(guò)路由器無(wú)狀態(tài)轉(zhuǎn)換,主要包括兩個(gè)轉(zhuǎn)換操作:(1)終端側(cè)路由器對(duì)主機(jī)標(biāo)識(shí)符進(jìn)行加密混淆,使得同一主機(jī)發(fā)往不同的目的服務(wù)器的源IP地址中的主機(jī)標(biāo)識(shí)符不一樣。(2)邊界路由器(或靠近目的端的路由器)對(duì)含有位置信息的內(nèi)部定位符進(jìn)行加密混淆,并使用自身的定位符作為新的外部可見(jiàn)定位符,從而可以防止不可信目的端設(shè)備分析得到源主機(jī)的位置隱私。
本方案的主要目的是保護(hù)源IP地址的隱私,防止不可信網(wǎng)絡(luò)設(shè)備或者竊聽(tīng)者分析出終端主機(jī)隱私。終端主機(jī)、路由器、服務(wù)器三類(lèi)設(shè)備(見(jiàn)圖1)相互合作來(lái)達(dá)到保護(hù)源IP地址隱私的目的,具體工作如下:

圖1 技術(shù)方案涉及的設(shè)備Fig.1 The devices involved in the solution
(1)源主機(jī)與終端側(cè)路由器建立安全連接,加密傳輸數(shù)據(jù)包,如采用二層加密,數(shù)據(jù)包的IP地址被隱藏,從而可以防止源終端主機(jī)到終端側(cè)路由器這段鏈路的竊聽(tīng)者分析終端隱私。
(2)終端側(cè)路由器在收到數(shù)據(jù)包時(shí),對(duì)源主機(jī)的主機(jī)標(biāo)識(shí)符進(jìn)行混淆,從而能夠防止終端側(cè)路由器到邊界路由器之間的鏈路竊聽(tīng)者識(shí)別終端并進(jìn)行關(guān)聯(lián)。
(3)邊界路由器在收到數(shù)據(jù)包時(shí),對(duì)源定位符和主機(jī)標(biāo)識(shí)符同時(shí)進(jìn)行加密隱藏,從而能夠防止邊界路由器到達(dá)目的服務(wù)器鏈路上的竊聽(tīng)者以及目的服務(wù)器識(shí)別主機(jī)、獲取終端主機(jī)的位置信息,對(duì)主機(jī)網(wǎng)絡(luò)活動(dòng)進(jìn)行關(guān)聯(lián)。
本文中的核心設(shè)備為主要是路由器,但是不限于路由器,也可以使具備數(shù)據(jù)包轉(zhuǎn)發(fā)功能的交換機(jī)、接入網(wǎng)關(guān)等網(wǎng)絡(luò)設(shè)備。核心裝置需要增加支持常用的密碼算法,能夠使用密碼算法對(duì)IP地址進(jìn)行處理。
接下來(lái)以核心設(shè)備是路由器為例,來(lái)具體介紹的。流程主要體現(xiàn)在IP數(shù)據(jù)包的轉(zhuǎn)發(fā)過(guò)程中。方案中將數(shù)據(jù)包的主機(jī)標(biāo)識(shí)分成定位符和主機(jī)標(biāo)識(shí)符,定位符和主機(jī)標(biāo)識(shí)符可以作為數(shù)據(jù)面的主機(jī)標(biāo)識(shí)。數(shù)據(jù)面的數(shù)據(jù)包頭部字段包括源定位符SrcLoc和源主機(jī)標(biāo)識(shí)符SrcID、目的定位符DstLoc和目的主機(jī)標(biāo)識(shí)符DstID。
對(duì)于終端主機(jī)發(fā)出的數(shù)據(jù)包,由數(shù)據(jù)包途徑的源域的網(wǎng)絡(luò)設(shè)備對(duì)IP數(shù)據(jù)包頭部進(jìn)行處理,大致分為三個(gè)部分:主機(jī)構(gòu)造數(shù)據(jù)包發(fā)送數(shù)據(jù)包給終端側(cè)路由器Router1,終端側(cè)路由器轉(zhuǎn)發(fā)數(shù)據(jù)包給邊界路由器Router2,以及邊界路由器轉(zhuǎn)發(fā)數(shù)據(jù)包。具體流程請(qǐng)參考圖2。

圖2 數(shù)據(jù)包轉(zhuǎn)發(fā)流程Fig.2 Packets transferring process
(1)終端主機(jī)構(gòu)造數(shù)據(jù)包,其中IP數(shù)據(jù)包頭頭部含四個(gè)字段,即,SrcLoc、SrcID、DstLoc以及DstID。其中,源定位符SrcLoc=LocE,長(zhǎng)度為x位,可以根據(jù)SrcLoc找到連接終端主機(jī)的路由器。SrcID=HIDE是主機(jī)標(biāo)識(shí)符,長(zhǎng)度為y位,可以由靠近主機(jī)的終端側(cè)路由器根據(jù)該標(biāo)識(shí)符確定對(duì)應(yīng)的主機(jī)。DstLoc=LocS是目的主機(jī)的定位符,DstID=HIDS是目的主機(jī)的標(biāo)識(shí)符,DstLoc和DstID連接起來(lái)可以是目的主句的IP地址(即,LocS||HIDS)。終端設(shè)備發(fā)送構(gòu)造的數(shù)據(jù)包給終端側(cè)路由器Router1。
(2)當(dāng)終端側(cè)路由器Router1收到終端設(shè)備發(fā)送的數(shù)據(jù)包時(shí),終端側(cè)路由器Router1會(huì)對(duì)出向流量中數(shù)據(jù)包的處理如下:終端側(cè)路由器Router1收到數(shù)據(jù)包后,提取出IP包頭中的源主機(jī)標(biāo)識(shí)符SrcID=HIDE,利用秘密參數(shù)SK1以及DstLoc和DstID對(duì)SrcID進(jìn)行混淆從而得到混淆后的主機(jī)標(biāo)識(shí)符EHID, EHID的長(zhǎng)度也是y位。使用EHID替換掉數(shù)據(jù)包中的SrcID字段的數(shù)值。轉(zhuǎn)發(fā)數(shù)據(jù)包。
(3)當(dāng)邊界路由器Router2收到Router1轉(zhuǎn)發(fā)的終端設(shè)備發(fā)送的數(shù)據(jù)包時(shí),邊界路由器Router2會(huì)對(duì)出向流量中數(shù)據(jù)包的處理如下:邊界路由器Router2在收到數(shù)據(jù)包后,提取出數(shù)據(jù)包中的源定位符SrcLoc和源主機(jī)標(biāo)識(shí)符SrcID(即EHID),利用其秘密參數(shù)SK2對(duì)SrcLoc||SrcID進(jìn)行混淆從而得到EIP,其中EIP的長(zhǎng)度為x+y位。 添加外部定位符OutLoc,從而構(gòu)造新的源標(biāo)識(shí)符=OutLoc||EIP,將OutLoc和EIP作為新的源標(biāo)識(shí)符(定位符和主機(jī)標(biāo)識(shí)符)放在數(shù)據(jù)包頭部對(duì)應(yīng)的字段。轉(zhuǎn)發(fā)數(shù)據(jù)包。
對(duì)于目的服務(wù)器返回給終端主機(jī)的數(shù)據(jù)包,主要包括兩個(gè)部分:邊界路由器Router2轉(zhuǎn)發(fā)數(shù)據(jù)包給終端側(cè)路由器,終端側(cè)路由器Router1轉(zhuǎn)發(fā)數(shù)據(jù)包給終端主機(jī)。
(1)邊界路由器Router2在收到數(shù)據(jù)包后,提取目的主機(jī)標(biāo)識(shí)字段的EIP,使用SK2對(duì)EIP進(jìn)行解混淆,得到解混淆后的消息,并從中提取出x位數(shù)值作為目的定位符DstLoc=LocE,提取出目的主機(jī)標(biāo)識(shí)符DstID=EHID,將DstLoc和DstID分別放在數(shù)據(jù)包頭部的目的定位符和目的主機(jī)標(biāo)識(shí)字段中組成目的地址innerLoc=LocE||EHID,根據(jù)innerLoc標(biāo)識(shí)轉(zhuǎn)發(fā)數(shù)據(jù)給終端側(cè)路由器Router1。
(2)終端路由器Router1在收到數(shù)據(jù)包后,從數(shù)據(jù)包中提取源主機(jī)標(biāo)識(shí)字段SrcLoc=LocS和SrcID=HIDS,以及目的主機(jī)標(biāo)識(shí)字段DstID=EHID。接著利用秘密參數(shù)SK1以及輔助輸入LocS和HIDS對(duì)DstID進(jìn)行解混淆從而可以得到新的DstID=HIDE。將數(shù)據(jù)包中目的主機(jī)標(biāo)識(shí)字段的更新為計(jì)算得到的HIDE。轉(zhuǎn)發(fā)數(shù)據(jù)包。
截止目前有眾多的IP地址隱私保護(hù)方案,我們的方案與這些方案的不同之處如下所述:
(1)Mailbox代理方案:Mailbox通過(guò)提供多個(gè)代理地址來(lái)為多個(gè) IP 地址接收數(shù)據(jù),從而隱藏接收者的真實(shí)IP地址。而我們的方案中,不需要維護(hù)多個(gè)代理地址。
(2)NAT技術(shù):NAT對(duì)所有流經(jīng)NAT設(shè)備的出向流量進(jìn)行處理,將數(shù)據(jù)包源地址字段的地址(內(nèi)網(wǎng)地址)替換成公網(wǎng)可路由的外部地址,并分配一個(gè)源端口號(hào)、替換掉數(shù)據(jù)包的源端口號(hào)。NAT需要維護(hù)逐流的狀態(tài),即需要維護(hù)轉(zhuǎn)換前內(nèi)網(wǎng)地址、端口號(hào)以及轉(zhuǎn)換后的外網(wǎng)地址及端口號(hào)的映射關(guān)系,以便在收到返回?cái)?shù)據(jù)包時(shí),能夠正確轉(zhuǎn)換。而我們的技術(shù)不需要維護(hù)映射關(guān)系表,而是維護(hù)一個(gè)秘密參數(shù),分別對(duì)數(shù)據(jù)中的數(shù)據(jù)進(jìn)行混淆。
(3)ISP隱私方案[6]:與NAT技術(shù)類(lèi)似,不再贅述。
(4)洋蔥路由的Tor匿名網(wǎng)絡(luò):洋蔥網(wǎng)絡(luò)對(duì)數(shù)據(jù)包的源和目的地址進(jìn)行了隱藏,洋蔥網(wǎng)絡(luò)的每一個(gè)節(jié)點(diǎn)只知道傳輸數(shù)據(jù)包的上一個(gè)節(jié)點(diǎn)和數(shù)據(jù)包將被轉(zhuǎn)發(fā)的下一個(gè)節(jié)點(diǎn)。僅洋蔥網(wǎng)絡(luò)的入口節(jié)點(diǎn)知道源主機(jī)的IP,但是不知道目的IP。僅出口節(jié)點(diǎn)知道數(shù)據(jù)包的目的IP,但是不知道源IP。洋蔥路由依賴(lài)于洋蔥網(wǎng)絡(luò)的節(jié)點(diǎn)對(duì)數(shù)據(jù)包進(jìn)行層層加密和解密。而我們的方案中,我們只需要對(duì)源地址中的部分字段進(jìn)行加密,而對(duì)數(shù)據(jù)不加密。
(5)IPV6地址隱私[16-17]保護(hù)的工作:工作聚焦在后64位的接口標(biāo)識(shí)符隱私,沒(méi)有考慮前綴隱私。而我們的技術(shù)對(duì)接口標(biāo)識(shí)符隱私和前綴隱私都進(jìn)行了保護(hù)。
本文介紹的技術(shù)方案可以應(yīng)用到多種IP地址隱私需要保護(hù)的場(chǎng)景,在此章節(jié)中介紹兩個(gè)場(chǎng)景:一個(gè)場(chǎng)景是IPV6地址的隱私保護(hù)場(chǎng)景,另一個(gè)是面向云服務(wù)的IP隱私保護(hù)場(chǎng)景,并針對(duì)此兩個(gè)場(chǎng)景給出具體的技術(shù)方案。
本技術(shù)方案可以應(yīng)用在IPv6地址的隱私保護(hù)方面,源主機(jī)所在運(yùn)營(yíng)商網(wǎng)絡(luò)的路由設(shè)備負(fù)責(zé)對(duì)IPv6地址進(jìn)行轉(zhuǎn)換,從而提供隱私保護(hù)能力。其中,終端側(cè)路由器可以是第一跳路由器或者接入網(wǎng)關(guān)設(shè)備,邊界路由器可以是邊界路由器或者域內(nèi)靠近目的主機(jī)的路由器。將128bit的IPv6地址分成四個(gè)部分:外部定位符位(x bit)、內(nèi)部定位符位(y1 bit)、主機(jī)標(biāo)識(shí)符位(y2 bit)、標(biāo)記位(z bit)。
當(dāng)運(yùn)營(yíng)商網(wǎng)絡(luò)的路由設(shè)備接收到終端主機(jī)發(fā)出的出向流量的數(shù)據(jù)包時(shí),運(yùn)營(yíng)商網(wǎng)絡(luò)的路由設(shè)備進(jìn)行如下處理(見(jiàn)圖3):

圖3 終端發(fā)送IPV6數(shù)據(jù)包時(shí)各設(shè)備處理流程Fig.3 Process of each device when the terminal sends IPV6 packet
(1)主機(jī)在發(fā)送數(shù)據(jù)包時(shí),在源IP地址中設(shè)置標(biāo)記位Flag,用于指示網(wǎng)絡(luò)設(shè)備該流量的源IP地址是一個(gè)動(dòng)態(tài)隱私IP。假設(shè)終端主機(jī)標(biāo)識(shí)符為HIDE。主機(jī)發(fā)送的數(shù)據(jù)包的源IPv6地址字段中外部定位符可以使用padding進(jìn)行填充,內(nèi)部定位符為SrcLoc=LocE,主機(jī)標(biāo)識(shí)符SrcID=HIDE。目的地址為DstIP=IPS。轉(zhuǎn)發(fā)數(shù)據(jù)包。
(2)終端側(cè)路由器在收到數(shù)據(jù)包后,對(duì)數(shù)據(jù)包的源IP地址進(jìn)行處理:提取出源地址字段和目的地址字段,如果源IP地址中的標(biāo)記位Flag被設(shè)置,并且Flag指示為需要對(duì)源IP地址加密,則提取出源主機(jī)標(biāo)識(shí)符SrcID=HIDE,進(jìn)行混淆計(jì)算分為兩步:C=E(SK1, DstIP)=E(SK1, IPS), EHID=截取C的y2位數(shù)值⊕HIDE,其中E (·,·)是一個(gè)基于密碼學(xué)的混淆算法,可以完全隱藏IPS, 其中SK1是終端側(cè)路由器的密鑰, DstIP=IPS是數(shù)據(jù)包中的目的IP地址,⊕是異或算法。將數(shù)據(jù)包中的源主機(jī)標(biāo)識(shí)符SrcID值設(shè)置為EHID。轉(zhuǎn)發(fā)數(shù)據(jù)包。
(3)邊界路由器或者域內(nèi)靠近目的主機(jī)的路由器對(duì)源IP地址進(jìn)行處理:如果標(biāo)記位Flag被設(shè)置為隱私地址,則對(duì)源定位符SrcLoc=LocE和源主機(jī)標(biāo)識(shí)符SrcID=HIDE進(jìn)行處理,計(jì)算得到EIP=F(SK2,SrcLoc||EHID),其中F(·, ·)是一個(gè)基于密碼學(xué)的混淆算法,可以完全隱藏SrcLoc||EHID。其中,SK2是邊界路由器的秘密參數(shù)。使用EIP替換數(shù)據(jù)包源IP地址的內(nèi)部定位符和主機(jī)標(biāo)識(shí)符的數(shù)值,使用該路由器的定位符OutLoc作為數(shù)據(jù)包源IP地址的外部標(biāo)識(shí)符。轉(zhuǎn)發(fā)數(shù)據(jù)包。
當(dāng)運(yùn)營(yíng)商網(wǎng)絡(luò)的路由設(shè)備接收到返回給終端主機(jī)的入向流量的數(shù)據(jù)包時(shí),運(yùn)營(yíng)商網(wǎng)絡(luò)的路由設(shè)備會(huì)進(jìn)行處理:
(1)邊界路由器或者域內(nèi)靠近目的主機(jī)的路由器對(duì)數(shù)據(jù)包的目的IP地址進(jìn)行處理:如果目的地址字段中的標(biāo)記位Flag被設(shè)置為隱私地址,則提取內(nèi)部定位符和內(nèi)部主機(jī)標(biāo)識(shí)符的混淆字段EIP,使用SK2對(duì)EIP進(jìn)行解混淆,得到P= F-1(SK2, EIP)=SrcLoc||EHID,F(xiàn)-1為F的逆運(yùn)算,將數(shù)據(jù)包目的IP地址中EIP字段替換成明文P=SrcLoc||EHID、將外部定位符字段設(shè)置成填充值,即,padding。轉(zhuǎn)發(fā)數(shù)據(jù)包。
(2)終端側(cè)路由器在收到數(shù)據(jù)包時(shí),對(duì)目的IP地址進(jìn)行處理:如果目的地址字段中的標(biāo)記位Flag被設(shè)置為隱私地址,則提取出目的地址字段中的主機(jī)標(biāo)識(shí)符EHID。使用SK1對(duì)EHID進(jìn)行解混淆,C=E(SK1, SrcIP)=E(SK1, IPS),HIDE=截取C的y2位數(shù)值⊕EHID。將數(shù)據(jù)包目的主機(jī)標(biāo)識(shí)符字段的數(shù)據(jù)EHID變?yōu)镠IDE。轉(zhuǎn)發(fā)數(shù)據(jù)包。
在IPv6地址的隱私保護(hù)方面,該技術(shù)方案具有以下優(yōu)點(diǎn):(1)提供IP地址隱私保護(hù)功能,對(duì)終端主機(jī)的IP數(shù)據(jù)包,不僅能夠提供位置隱私保護(hù)能力,還可以提供身份隱私保護(hù)能力。不同的目的主機(jī)看到的同一源主機(jī)的地址是不一樣的,不能通過(guò)合謀關(guān)聯(lián)分析出同一源主機(jī)訪問(wèn)不同目的主機(jī)的流量。方案對(duì)定位符進(jìn)行了隱藏,非法攻擊者(如,目的端主機(jī)、外部鏈路竊聽(tīng)者等)無(wú)法根據(jù)IP地址分析出源終端主機(jī)的位置信息。除此之外,來(lái)自同一局域網(wǎng)的主機(jī)(相同明文定位符)即使擁有相同的內(nèi)部定位符,得到的內(nèi)部定位符密文是不一樣的。目的端或外部鏈路竊聽(tīng)者無(wú)法通過(guò)同一局域網(wǎng)淪陷的主機(jī)位置信息及IP地址分析出兩臺(tái)主機(jī)來(lái)自同一局域網(wǎng)。(2)相比于傳統(tǒng)的IPv4 NAT翻譯技術(shù),該技術(shù)方案無(wú)需維護(hù)逐流狀態(tài),無(wú)需維護(hù)逐主機(jī)狀態(tài)。(3)相比于IPv6 前綴翻譯技術(shù),該技術(shù)方案可以抵抗關(guān)聯(lián)分析,A和B屬于同一局域網(wǎng),但是目標(biāo)服務(wù)器不能根據(jù)A的位置獲得B的位置。
本文提出的技術(shù)方案可以應(yīng)用在云環(huán)境中,部署了大量邊緣節(jié)點(diǎn)的云服務(wù)提供商可以為其用戶(hù)提供IP隱私保護(hù)能力。即在運(yùn)營(yíng)商不提供隱私保護(hù)能力的情況下,用戶(hù)可以選擇提供IPv6地址的隱私保護(hù)能力的云服務(wù)為其轉(zhuǎn)發(fā)數(shù)據(jù)流量、并提供數(shù)據(jù)流量的IP地址隱私保護(hù)功能。如圖4所示,云服務(wù)提供商部署了大量的邊緣節(jié)點(diǎn),有些邊緣節(jié)點(diǎn)靠近終端用戶(hù),稱(chēng)為近源端節(jié)點(diǎn),有些邊緣節(jié)點(diǎn)靠近網(wǎng)站服務(wù)器,稱(chēng)為近目的端節(jié)點(diǎn)。終端用戶(hù)設(shè)備(IPUE)在發(fā)送數(shù)據(jù)到目標(biāo)網(wǎng)站(IPS1)時(shí),可以選擇云服務(wù)提供商的邊緣節(jié)點(diǎn)為其提供服務(wù),主要包括以下步驟:

圖4 云服務(wù)的租戶(hù)IP隱私保護(hù)原理圖Fig.4 IP privacy protection scheme for cloud service
(1)終端用戶(hù)設(shè)備使用離其最近的節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包(近源端節(jié)點(diǎn)IP地址為IPHW0),與該節(jié)點(diǎn)建立安全通道(如IPsec通道),將其所有外發(fā)的數(shù)據(jù)包通過(guò)該IPsec通道發(fā)送給近源端節(jié)點(diǎn)。其中,IP包內(nèi)層IP頭部的源地址字段包含隱私標(biāo)識(shí)位Flag以及終端標(biāo)識(shí)符HIDUE、目的地址字段為目標(biāo)網(wǎng)站IP地址IPs1,IP包外層IP頭部的源地址為終端用戶(hù)設(shè)備的地址IPUE、目標(biāo)地址為IPHW0。
(2)近源端節(jié)點(diǎn)在收到數(shù)據(jù)包時(shí),先解封裝IPsec數(shù)據(jù)包,獲得內(nèi)層IP頭部的目的地址IPs1,根據(jù)目的地址IPs1選擇離該目標(biāo)網(wǎng)站最近的云服務(wù)提供商節(jié)點(diǎn),即近目的端節(jié)點(diǎn)(IP地址為IPHW1),對(duì)內(nèi)層的數(shù)據(jù)包進(jìn)行IPsec封裝,得到新的數(shù)據(jù)包:外層IP頭部的源IP地址為IPHW0、目的地址為IPHW1,IP包內(nèi)層IP頭部不變,其源地址字段為終端標(biāo)識(shí)符HIDUE、目的地址字段為目標(biāo)網(wǎng)站IP地址IPs1。封裝完成后轉(zhuǎn)發(fā)數(shù)據(jù)包。
(3)近目的端節(jié)點(diǎn)在收到數(shù)據(jù)包時(shí),先解封裝IPsec數(shù)據(jù)包,得到內(nèi)層IP數(shù)據(jù)包,并對(duì)內(nèi)層IP包的源IP地址進(jìn)行加密保護(hù):①將對(duì)HIDUE進(jìn)行混淆計(jì)算,計(jì)算分為兩步:C=E(SK1, IPs1), EHID=截取C的y位數(shù)據(jù)⊕HIDUE,其中E(·, ·)是一個(gè)基于密碼學(xué)的混淆算法,可以完全隱藏IPs1,⊕是異或算法,sk1是近目的端節(jié)點(diǎn)的秘密參數(shù)。最終得到混淆后的源主機(jī)標(biāo)識(shí)符EHID。②查詢(xún)定位符索引映射表,獲得IPHW0對(duì)應(yīng)的索引index0。對(duì)EHID||index0進(jìn)行混淆運(yùn)算,計(jì)算得到EIP=F(SK2, EHID||index0),其中F(·, ·)是一個(gè)基于密碼學(xué)的混淆算法,可以完全隱藏EHID||index0。其中,||是連接符,SK2是近目的端節(jié)點(diǎn)的秘密參數(shù)。使用EIP替換數(shù)據(jù)包的源IP地址的后y1+y2位。并使用可以定位到近目的端節(jié)點(diǎn)的定位符替換掉源IP的前綴,即前x位。轉(zhuǎn)發(fā)數(shù)據(jù)包。內(nèi)層源IP地址的轉(zhuǎn)換前后如圖4所示。
當(dāng)目標(biāo)網(wǎng)站受到數(shù)據(jù)包后,會(huì)發(fā)送返回包給近目的端節(jié)點(diǎn),近目的端節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包給近源端節(jié)點(diǎn),近源端節(jié)點(diǎn)最后會(huì)將數(shù)據(jù)包正確轉(zhuǎn)發(fā)給終端用戶(hù)設(shè)備。近目的端節(jié)點(diǎn)的處理流程主要有以下四個(gè)步驟:(1)近目的端節(jié)點(diǎn)提取出數(shù)據(jù)包中的目的IP地址字段,使用SK2解混淆目的IP地址的后y1+y2位(即EIP),F(xiàn)-1(SK2, EIP)= EHID||index0。接下來(lái)利用SK1以及源地址SrcIP= IPs1進(jìn)行運(yùn)算C=E(SK1,IPs1)以及HIDUE=截取C的y位數(shù)據(jù)⊕EHID。從而可以得到HIDUE。(2)根據(jù)Index0,查詢(xún)定位符索引映射表,獲得索引index0對(duì)應(yīng)的近源端節(jié)點(diǎn)的地址IPHW0。(3)將HIDUE||padding替換掉目的IP地址的后y1+y2位,將前x位替換成約定的填充位。設(shè)置Flag為隱私地址標(biāo)識(shí)位。(4)采用IPsec封裝目的地址轉(zhuǎn)換后的數(shù)據(jù)包,發(fā)送給近源端節(jié)點(diǎn)。
在云服務(wù)的IP隱私保護(hù)方面,該技術(shù)方案具有以下優(yōu)點(diǎn):(1)可部署性強(qiáng)。該技術(shù)結(jié)合現(xiàn)有的IPSec技術(shù),將IP地址隱私保護(hù)作為一種安全服務(wù),由云服務(wù)提供商對(duì)終端主機(jī)的流量中的源IP地址進(jìn)行加密隱藏。(2)提供了終端主機(jī)的位置隱私。目的主機(jī)看到的流量都是來(lái)自最靠近目的主機(jī)的云服務(wù)提供商的邊緣節(jié)點(diǎn),而無(wú)法得到終端主機(jī)的位置,具備非常好的位置隱私保護(hù)能力。(3)該技術(shù)保護(hù)終端主機(jī)的身份隱私,能夠防止關(guān)聯(lián)分析。每個(gè)目的端看到的同一終端主機(jī)標(biāo)識(shí)符都是不一樣的,無(wú)法將同一主機(jī)的不同網(wǎng)絡(luò)行為進(jìn)行關(guān)聯(lián)。
在本文中,針對(duì)暴露在數(shù)據(jù)包頭部中的源IP地址存在身份隱私泄露和位置隱私泄露的問(wèn)題,提出了一種保護(hù)源IP地址隱私的方法。該方法可以防止不可信網(wǎng)絡(luò)設(shè)備或者竊聽(tīng)者分析出終端主機(jī)隱私,包括終端主機(jī)IP地址包含的用戶(hù)身份隱私以及位置隱私。基于身份(ID)與位置(locator)分離技術(shù),設(shè)計(jì)了標(biāo)識(shí)符加密混淆技術(shù)。該技術(shù)在同時(shí)兼顧隱私保護(hù)、路由高效尋址、審計(jì)追蹤等需求的情況下,不但消除當(dāng)前IP地址耦合身份和位置雙重語(yǔ)義的障礙,而且還對(duì)身份標(biāo)識(shí)符和位置標(biāo)識(shí)符分別進(jìn)行加密保護(hù)。除此之外,將技術(shù)可以應(yīng)用到兩種源IP地址隱私需要保護(hù)的場(chǎng)景中,一個(gè)場(chǎng)景是IPV6地址的隱私保護(hù)場(chǎng)景,另一個(gè)是面向云服務(wù)的租戶(hù)IP隱私保護(hù)場(chǎng)景,并針對(duì)此兩個(gè)場(chǎng)景給出具體的詳細(xì)的介紹。
利益沖突聲明
所有作者聲明不存在利益沖突關(guān)系。