用于隱藏使用中繼穿越網(wǎng)絡(luò)地址轉(zhuǎn)換連接的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開的技術(shù)一般涉及使用中繼穿越網(wǎng)絡(luò)地址轉(zhuǎn)換(TURN)連接,并且特別地,涉及增強(qiáng)TURN客戶端與TURN服務(wù)器之間的TURN連接的隱私。
【背景技術(shù)】
[0002]位于網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備或系統(tǒng)后面的主機(jī)(例如,連接到網(wǎng)絡(luò)的計算設(shè)備)可能希望與其它主機(jī)通信,該其它主機(jī)中的一些也可能位于NAT的后面。為了做到這一點,主機(jī)可以使用“打孔”技術(shù),嘗試發(fā)現(xiàn)通過介入NAT和/或路由器將一個計算設(shè)備連接到另一個、但是不穿越任何中繼的直接通信路徑。然而,如果一個或兩個主機(jī)位于被配置有與直接通信路徑不兼容的映射行為的NAT的后面,則打孔技術(shù)可能失敗。作為非限制性示例,例如,被配置有“地址依賴映射”或“地址和端口依賴映射”的映射行為的NAT可能阻礙主機(jī)之間的直接通信路徑。
[0003]當(dāng)不能找到直接通信路徑時,可能必須利用中間主機(jī)來在兩個主機(jī)之間中繼通信?;ヂ?lián)網(wǎng)工程任務(wù)組(IETF)請求注解(RFC) 5766(在例如http://tools, ietf.0rg/search/rfc5766可在線獲得)中所描述的用于中繼通信的一種協(xié)議被稱之為使用中繼穿越NAT (TURN)。該TURN協(xié)議允許主機(jī)(在本文中稱為“TURN客戶端”)請求TURN服務(wù)器充當(dāng)用于中繼到其它主機(jī)(稱為“TURN對等端(peer)”)和來自該其它主機(jī)的通信的中間主機(jī)。為了實現(xiàn)這一點,TURN客戶端從TURN服務(wù)器獲得TURN中繼傳輸?shù)刂?。該TURN中繼傳輸?shù)刂钒ňW(wǎng)絡(luò)通信通過其可以在TURN客戶端與TURN對等端之間被傳遞的TURN服務(wù)器上的互聯(lián)網(wǎng)協(xié)議(IP)地址和端口。例如,TURN對等端發(fā)送到TURN中繼傳輸?shù)刂返耐ㄐ疟籘URN服務(wù)器發(fā)送到TURN客戶端。TURN客戶端發(fā)送到TURN中繼傳輸?shù)刂返耐ㄐ磐ㄟ^使用TURN中繼傳輸?shù)刂纷鳛樵吹刂繁籘URN服務(wù)器發(fā)送到TURN對等端。
[0004]然而,TURN服務(wù)器的使用可能引起關(guān)于TURN客戶端的隱私的擔(dān)心。盡管TURN服務(wù)器的使用隱蔽了 TURN客戶端連接的網(wǎng)絡(luò)的拓?fù)?,但是可能潛在地?fù)p害TURN客戶端的隱私的信息可能在TURN連接的設(shè)置期間和/或因TURN客戶端與TURN服務(wù)器之間的TURN連接的特性泄漏。例如,TURN對等端可以能夠基于在連接設(shè)置期間從TURN客戶端接收的候選地址來確定TURN服務(wù)器正被使用,并因此確定TURN客戶端可能正試圖隱蔽或混淆(obfuscate)其地址。類似地,如果TURN對等端可檢測到TURN服務(wù)器被用于多個通信會話,則TURN對等端可以能夠確定該多個通信會話與同一個TURN客戶端相關(guān)聯(lián)。
【發(fā)明內(nèi)容】
[0005]【具體實施方式】中所公開的實施例提供了通過隱藏使用中繼穿越網(wǎng)絡(luò)地址轉(zhuǎn)換(TURN)連接來增強(qiáng)隱私。還公開了相關(guān)的方法、系統(tǒng)和計算機(jī)可讀介質(zhì)。在這方面,在一個實施例中,提供了用于隱藏TURN連接的方法。所述方法包括由在第一計算設(shè)備上運行的TURN客戶端獲得與所述TURN客戶端相關(guān)聯(lián)的一個或多個候選地址,所述一個或多個候選地址包括TURN服務(wù)器提供的TURN中繼傳輸?shù)刂?。所述方法進(jìn)一步包括基于所述一個或多個候選地址產(chǎn)生偽裝的候選列表,在所述偽裝的候選列表中,所述TURN中繼傳輸?shù)刂繁浑[藏。所述方法還包括產(chǎn)生連接設(shè)置消息以及將所述連接設(shè)置消息發(fā)送到第二計算設(shè)備,所述連接設(shè)置消息包括所述偽裝的候選列表并且被定向到在所述第二計算設(shè)備上運行的TURN對等端。
[0006]在另一實施例中,提供了用于隱藏TURN連接的方法。所述方法包括由在計算設(shè)備上運行的TURN服務(wù)器從TURN客戶端接收對于提供第一 TURN服務(wù)的請求以連接到TURN對等端。所述方法進(jìn)一步包括由所述TURN服務(wù)器對于所述TURN對等端掩飾所述TURN服務(wù)器的存在。所述方法還包括由所述TURN服務(wù)器基于所述掩飾在所述TURN客戶端與所述TURN對等端之間中繼通信。
[0007]在另一實施例中,提供了用于隱藏TURN連接的系統(tǒng)。所述系統(tǒng)包括在第一計算設(shè)備上運行的TURN客戶端。所述TURN客戶端通信地耦合到TURN服務(wù)器,并且被配置為獲得與所述TURN客戶端相關(guān)聯(lián)的一個或多個候選地址,所述一個或多個候選地址包括所述TURN服務(wù)器提供的TURN中繼傳輸?shù)刂?。所述TURN客戶端被進(jìn)一步配置為基于所述一個或多個候選地址產(chǎn)生偽裝的候選列表,在所述偽裝的候選列表中,所述TURN中繼傳輸?shù)刂繁浑[藏。所述TURN客戶端還被配置為產(chǎn)生連接設(shè)置消息并且將所述連接設(shè)置消息發(fā)送到第二計算設(shè)備,所述連接設(shè)置消息包括所述偽裝的候選列表并且被定向到TURN對等端。
[0008]在另一實施例中,提供了用于隱藏TURN連接的系統(tǒng)。所述系統(tǒng)包括在第一計算設(shè)備上運行的TURN服務(wù)器。所述TURN服務(wù)器通信地耦合到TURN客戶端,并且被配置為從所述TURN客戶端接收對于提供第一 TURN服務(wù)的請求以連接到TURN對等端。所述TURN服務(wù)器被進(jìn)一步配置為對于所述TURN對等端掩飾所述TURN服務(wù)器的存在。所述TURN服務(wù)器還被配置為基于所述掩飾在所述TURN客戶端與所述TURN對等端之間中繼通信。
[0009]在另一實施例中,提供了具有存儲在其上的計算機(jī)可執(zhí)行指令的非暫態(tài)計算機(jī)可讀介質(zhì),所述計算機(jī)可執(zhí)行指令使處理器實現(xiàn)用于隱藏TURN連接的方法。所述計算機(jī)可執(zhí)行指令所實現(xiàn)的方法包括由在第一計算設(shè)備上運行的TURN客戶端獲得與所述TURN客戶端相關(guān)聯(lián)的一個或多個候選地址,所述一個或多個候選地址包括TURN服務(wù)器提供的TURN中繼傳輸?shù)刂贰K鲇嬎銠C(jī)可執(zhí)行指令所實現(xiàn)的方法進(jìn)一步包括基于所述一個或多個候選地址產(chǎn)生偽裝的候選列表,在所述偽裝的候選列表中,所述TURN中繼傳輸?shù)刂繁浑[藏。所述計算機(jī)可執(zhí)行指令所實現(xiàn)的方法還包括產(chǎn)生連接設(shè)置消息以及將所述連接設(shè)置消息發(fā)送到第二計算設(shè)備,所述連接設(shè)置消息包括所述偽裝的候選列表并且被定向到在所述第二計算設(shè)備上運行的TURN對等端。
[0010]在另一實施例中,提供了具有存儲在其上的計算機(jī)可執(zhí)行指令的非暫態(tài)計算機(jī)可讀介質(zhì),所述計算機(jī)可執(zhí)行指令使處理器實現(xiàn)用于隱藏TURN連接的方法。所述計算機(jī)可執(zhí)行指令所實現(xiàn)的方法包括由在計算設(shè)備上運行的TURN服務(wù)器從TURN客戶端接收對于提供第一 TURN服務(wù)的請求以連接到TURN對等端。所述計算機(jī)可執(zhí)行指令所實現(xiàn)的方法進(jìn)一步包括由所述TURN服務(wù)器對于所述TURN對等端掩飾所述TURN服務(wù)器的存在。所述計算機(jī)可執(zhí)行指令所實現(xiàn)的方法還包括由所述TURN服務(wù)器基于所述掩飾在所述TURN客戶端與所述TURN對等端之間中繼通信。
【附圖說明】
[0011]合并在本說明書中并且形成本說明書的一部分的附圖示出了本公開的數(shù)個方面,并且與描述一起用于解釋本公開的原理。
[0012]圖1是示出用于通過隱藏TURN連接來增強(qiáng)隱私的包括TURN客戶端和TURN服務(wù)器的交互使用中繼穿越網(wǎng)絡(luò)地址轉(zhuǎn)換(TURN)系統(tǒng)的概念圖;
[0013]圖2是示出可以由圖1的TURN客戶端產(chǎn)生以混淆偽裝的候選列表中的TURN中繼傳輸?shù)刂返氖纠缘膫窝b的候選列表的示圖;
[0014]圖3是示出用于隱藏TURN連接的圖1的TURN客戶端的示例性操作的流程圖;
[0015]圖4是示出用于產(chǎn)生偽裝的候選列表的圖1的TURN客戶端的進(jìn)一步示例性操作的流程圖;
[0016]圖5是示出用于隱藏TURN連接的圖1的TURN服務(wù)器的示例性操作的流程圖;
[0017]圖6是示出用于對于TURN對等端掩飾TURN服務(wù)器的存在的圖1的TURN服務(wù)器的進(jìn)一步示例性操作的流程圖;
[0018]圖7是示出用于通過基于第一 TURN中繼傳輸?shù)刂愤x擇第二 TURN中繼傳輸?shù)刂穪黼[藏隨后的TURN連接的圖1的TURN服務(wù)器的進(jìn)一步示例性操作的流程圖;和
[0019]圖8是可以包括圖1的TURN客戶端和/或TURN服務(wù)器的示例性的基于處理器的系統(tǒng)的框圖。
【具體實施方式】
[0020]現(xiàn)在參照附圖,描述本公開的若干示例性實施例。詞語“示例性”在本文中被用于意指“用作示例、實例或說明”。本文中被描述為“示例性”的任何實施例不一定要被理解為相對于其它實施例優(yōu)選的或者有利的。
[0021]【具體實施方式】中所公開的實施例提供通過隱藏使用中繼穿越網(wǎng)絡(luò)地址轉(zhuǎn)換(TURN)連接來增強(qiáng)隱私。還公開了相關(guān)的方法、系統(tǒng)和計算機(jī)可讀介質(zhì)。在這方面,在一個實施例中,提供了用于隱藏TURN連接的方法。該方法包括由在第一計算設(shè)備上運行的TURN客戶端獲得與該TURN客戶端相關(guān)聯(lián)的一個或多個候選地址,所述一個或多個候選地址包括TURN服務(wù)器提供的TURN中繼傳輸?shù)刂?。該方法進(jìn)一步包括基于所述一個或多個候選地址產(chǎn)生偽裝的候選列表,在該偽裝的候選列表中,TURN中繼傳輸?shù)刂繁浑[藏。該方法還包括產(chǎn)生連接設(shè)置消息并且將該連接設(shè)置消息發(fā)送到第二計算設(shè)備,該連接設(shè)置消息包括偽裝的候選列表并且被定向到在第二計算設(shè)備上運行的TURN對等端。
[0022]在另一實施例中,提供了用于隱藏TURN連接的方法。該方法包括由在計算設(shè)備上運行的TURN服務(wù)器從要連接到TURN對等端的TURN客戶端接收對于提供第一 TURN服務(wù)的請求。該方法進(jìn)一步包括由TURN服務(wù)器對于TURN對等端掩飾該TURN服務(wù)器的存在。該方法還包括由TURN服務(wù)器將第一 TURN服務(wù)提供給TURN客戶端。
[0023]圖1示出了如本文中所公開的通過隱藏TURN連接來提供增強(qiáng)的隱私的示例性TURN交互系統(tǒng)10。特別地,示例性TURN交互系統(tǒng)10提供TURN客戶端12和TURN服務(wù)器16,該TURN客戶端12在計算設(shè)備14上運行,該TURN服務(wù)器16在計算設(shè)備18上運行。TURN服務(wù)器16可以在TURN客戶端12與在計算設(shè)備22上運行的TURN對等端20之間中繼通信。以這種方式,可以通過使用TURN服務(wù)器16提供的TURN服務(wù)來穿越可能阻礙TURN客戶端12與TURN對等端20之間的直接通信路徑的諸如網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)系統(tǒng)或設(shè)備(未示出)的障礙。
[0024]要理解,計算設(shè)備14、18和22可以全都位于同一個公共或私有網(wǎng)絡(luò)內(nèi),或者可以位于單獨的、通信地耦合的公共或私有網(wǎng)絡(luò)內(nèi)。圖1的TURN