日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【NDN安全】Security Scalability of Content-Centric Networking 全文翻译

發布時間:2023/12/31 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NDN安全】Security Scalability of Content-Centric Networking 全文翻译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Security &Scalability of Content-Centric Networking 內容中心網絡的安全性和可擴展性

?

Tobias Lauinger

Technische University Darmstadt

碩士畢業論文

2010.9

?

摘要

? ? ? 徹底清除當前體系結構的方法導致當前網絡的巨變,并冒著引進新的攻擊的可能。這些攻擊的范圍從新形式的拒絕服務攻擊到攻擊其他用戶的隱私。在這篇論文中,我們從安全角度分析以內容為中心的網絡體系結構。

? ? ? 一個對CCN的安全起決定性作用的特征是對多用途的緩存的引進,這個緩存被一小部分的用戶所共享。我們顯示了攻擊者怎樣利用這些緩存來模擬用戶將取回什么內容。更通常的是,我們認為在網絡效率和用戶隱私間應該有一個折衷。基于緩存的隱私攻擊的應對策略需要仔細考慮這個權衡。

?

?

目錄

? ? ? 摘要(iii)

? ? ? 插圖列表(vii)

? ? ? 表格列表(ix)

? ? ? 1 ?引言(1)

? ? ? 2? 內容中心網絡(3)

? ? ? ? ?2.1? CCN的狀態藝術(3)

? ? ? ? ?2.2? CCN的研究議程(4)

? ? ? ? ? ? ? 2.2.1? 可擴展性研究議題(4)

? ? ? ? ? ? ? 2.2.2? 與安全相關的研究議題(8)

? ? ? ? ?2.3? 結論(11)

? ? ? 3? CCN的安全性(13)

? ? ? ? ?3.1? 系統模型(13)

? ? ? ? ?3.2? 威脅分析(13)

? ? ? ? ? ? ? 3.2.1? 相較于TCP/IP的體系結構方面的冒險(14)

? ? ? ? ? ? ? 3.2.2? 拒絕服務攻擊的攻擊樹(15)

? ? ? ? ?3.3? 已知的攻擊(16)

? ? ? ? ? ? ? 3.3.1? 通過強制昂貴的計算的對路由器進行的拒絕服務攻擊(16)

? ? ? ? ? ? ? 3.3.2? 針對內容源的拒絕服務攻擊(16)

? ? ? ? ? ? ? 3.3.3? 擁有特殊比特位的拒絕服務攻擊(17)

? ? ? ? ?3.4? 新的攻擊(17)

? ? ? ? ? ? ? 3.4.1? 緩存無用或非法數據(17)

? ? ? ? ? ? ? 3.4.2? 通過減少緩存效率的拒絕服務攻擊(18)

? ? ? ? ? ? ? 3.4.3? 通過填充一個路由器的可用內存的拒絕服務攻擊(19)

? ? ? ? ? ? ? 3.4.4? 緩存窺探:列出緩存內容,模擬對象通路(使用路徑),復制會話(19)

? ? ? ? ?3.5? 結論(20)

? ? ? 4? 緩存窺探(23)

? ? ? ? ?4.1? 相關工作(24)

? ? ? ? ?4.2? 系統模型(26)

? ? ? ? ?4.3? 攻擊目標(27)

? ? ? ? ?4.4? 拓撲智能(28)

? ? ? ? ? ? ? 4.4.1? 時延測量(28)

? ? ? ? ? ? ? 4.4.2? 緩存生存期測量(29)

? ? ? ? ?4.5? 攻擊I:列出緩存內容(30)

? ? ? ? ?4.6? 攻擊II:探測具體名字(31)

? ? ? ? ? ? ? 4.6.1? 插入和取出時間探測(31)

? ? ? ? ? ? ? 4.6.2? 推斷訪問速率(32)

? ? ? ? ?4.7? 攻擊III:克隆會話(33)

? ? ? ? ?4.8? 應對策略(34)

? ? ? ? ?4.9? 結論(36)

? ? ? 5? 評價(37)

? ? ? ? ?5.1? CCN模擬器(37)

? ? ? ? ?5.2? 方案(38)

? ? ? ? ?5.3? 評估結果(39)

? ? ? ? ?5.4? 攻擊流量(40)

? ? ? ? ?5.5? 結論和未來工作(41)

? ? ? 6 ?結束語(43)

? ? ? 術語表(45)

? ? ? 參考文獻(47)

?

? ? ? 插圖列表

? ? ? 3.1? CCN中拒絕服務攻擊的攻擊樹(21)

? ? ? 4.1? 在不同請求結點中CCN的消息交換(26)

? ? ? 4.2? 第一個CCN緩存的時延測量(28)

? ? ? 4.3? 緩存的特征時間估計(30)

? ? ? 4.4? 三塊的并行探測(32)

? ? ? 4.5? LRU緩存的請求速率測量(33)

? ? ? 5.1? Youtube科學技術分類中的視頻文件流行度和長度(38)

? ? ? 5.2? 從緩存中替換出的每對象緩存命中率的CCDF數量(39)

? ? ? 5.3? 緩存的CDF特征時間(39)

? ? ? 5.4? 特征時間的測量算法進展(40)

?

? ? ?表格列表

? ? ?3.1? 攻擊者類型(14)

?

1.? 引言

? ? ? 當因特網被最初創建的時候,設計者主要關心的是連接和共享像大型計算機這樣的昂貴資源。從那以后,因特網由一個學術的研究網絡向一個被用作商業和娛樂的全球的基礎設施進化。按字節來說,因特網今天主要的用途是內容檢索。盡管真正的端到端協議,比如VoIP,SSH和chat僅僅只占流量的一小部分,因特網的機制和基礎仍然是為在固定位置的終端系統尋找最優化尋址方式,而不是為不受位置約束的內容提供所需。

? ? ? 科學世界通過怎樣處理以下情形來被劃分:一部分支持使用進化的方法,認為當前的因特網應該被以增量形式改進并向后兼容;另一部分贊同使用徹底清除當前體系結構的方法,支持硬性轉變到一個不受約束的下一代互聯網體系結構。

? ? ? 在這些硬性清除當前體系結構的方法中,內容中心網絡(CCN)是一個最近的最被強烈討論的提議。CCN建議把網絡的主要機制聚焦在內容的名字而不是內容的位置,遵循一個基于接收者的通訊模型,并在每個網絡設備中引進緩存。論文的第2部分給出了CCN的介紹,評論當前的研究現狀,確定與CCN的可擴展性和安全性相關的研究方向。

? ? ? 改變網絡的體系結構有引進新的攻擊的風險。例如,CCN路由器需要保持每個通訊狀態,然而這個通訊狀態可能會被拒絕服務攻擊濫用。緩存包含能夠被攻擊者提取的潛在的敏感信息痕跡,從而危及用戶的隱私。在第3部分,我們調查了CCN的體系結構特征在網絡安全上的作用。我們利用這些新奇的特征舉例說明了我們對網絡攻擊方面的發現。

? ? ? 在論文的主要部分,我們聚焦于攻擊者怎樣利用靠近用戶的網絡層緩存。CCN把任何形式的會話分解成獨立的,可以被緩存的以內容命名的對象。即使這些內容對象可能被加密,隱私信息仍然可能通過其他方式泄露,比如內容的名字,測定的時間和內容對象的大小。因為僅僅很少的用戶分享這樣一個緩存,通過通訊軌跡揭露的個人信息的數量可能會非常多。為了證實我所說的威脅,我們在第4部分解釋了攻擊者可以怎樣列出一個緩存的內容,監視一個特定內容對象的請求,復制兩個客戶端通過緩存進行的會話。更一般地,我們認為對這個隱私威脅的應對措施需要仔細地在通信隱私和網絡性能之間做權衡。當我們在CCN環境下考慮這樣的攻擊時,我們相信這個問題可以應用在所有存在被一小部分用戶所共享的緩存的網絡體系結構中。

? ? ? 這些基于緩存的攻擊的可行性依賴于緩存可以承載多少攻擊流量,攻擊者可以得出多么精確的結論。在第5部分,我們用一個方案評估這種攻擊,這個方案由100個連接到同樣的數字用戶線接入復用器的用戶組成,這些用戶同時下載和觀看類似于Youtube那樣的視頻。我們發現需要模擬一個視頻請求的攻擊流量很小以至于攻擊能夠被擴展到可以同時模擬大數量級的視頻。

? ? ? 我們工作的總體目標是確定基本構件和概念怎樣影響未來網絡體系結構的安全性和可擴展性,使用CCN作為未來網絡體系結構的研究實例。我們希望在我們工作中得到的經驗教訓能夠對提高現有的和未來的網絡體系結構提議有用。在結尾,這篇論文的貢獻可以被總結如下:

? ? ? (1)我們確定了幾個在CCN環境下的安全性和可擴展性方面有前途的研究問題。

? ? ? (2)我們通過描述一系列的利用體系結構的特征的攻擊,分析了體系結構的特征和設計決定在網絡安全方面的影響。特別地,我們認為更加強大的路由器(依據每個會話的狀態、計算能力和緩存大小)增加了網絡攻擊的覆蓋面,我們顯示了緩存怎樣被誤用作存儲器、拒絕服務和與隱私相關的攻擊。

? ? ? (3)在隱私攻擊方面,我們提出了一個算法,該算法利用定時側信道來持續地模擬對象請求,即使精確的緩存特征和它的環境以前并不知道。在我們的Youtube/DSLAM方案中,這個算法需要僅僅37.3bit/s的攻擊流量。

?

?

2.? 內容中心網絡

? ? ? 這一章給出了一個對CCN的研究現狀。我們首先回顧一下現在已有的關于CCN的文獻,然后我們討論在現在的研究中還沒有提出的問題。

2.1? CCN的狀態藝術

? ? ? CCN是一個新的通信范型,被設計為一種新的網絡體系結構來補充、最終代替現有的網絡。更特別的是,與現在的TCP/IP體系結構和通信模型做對比,CCN在以下方面不同:

? ? ? (1)基于接收者的通信模型:接收者通過發送興趣包拉取信息。最多會對一個興趣包發送一個響應數據包。通信是不可靠的,和軟狀態的。如果之前的興趣包超時了,接收方的應用程序不得不重新發送基于內容的興趣包。

? ? ? (2)層次化內容命名規則:CCN不是基于主機的地址,而是基于與位置無關的內容對象。可以給定內容一個任意的,以類似于URL的層次化的用戶定義的名字。興趣包和內容匹配,或者通過最長前綴匹配可以路由到興趣包所請求的內容。因為這些特性,接收者可以用當前還不存在的名字,以命名的方式表示興趣包。這些興趣包將會被路由到能夠生成響應內容的數據源。

? ? ? (3)基于緩存的體系結構:系統中的每一個參與者,比如端結點和路由器,能夠緩存內容對象,并用以響應未來的請求。

? ? ? (4)內容安全:每個在CCN中交換的內容包都是經過數字簽名的。用這種方式,內容發布者證實內容和名字之間的綁定,并用來確保內容包的完整性和真實性。如果需要確保機密性,也可以使用加密。

? ? ? (5)狀態化的,更強大的路由器:CCN中的內容路由器需要保持每個興趣包的狀態來避免路由環路和以與興趣包到來時同樣的路徑返回數據包。路由器能夠核實內容對象的簽名來避免內容欺騙攻擊。CCN也支持一種路由器必須實現的限定的查詢語言。

? ? ? 當一個CCN結點接收到興趣包,它首先嘗試用本地內容緩存里的內容滿足興趣包。典型的,這樣一個緩存用最近最少使用(LRU)算法或者最近最不頻繁使用(LFU)算法的替換策略。

? ? ? 如果沒有發現合適的內容,興趣包將會被轉發。類似于路由表,FIB表被用來找到轉發的出接口。FIB表可能包含到運行在相同主機上的應用程序的路由,或者是到物理接口的路由。CCN支持對同樣的內容前綴的平行路由的多個連接。

? ? ? 每個已經發出的興趣包被記錄到PIT表中,以便返回的數據包知道興趣包進來的接口,和避免多次轉發相同的興趣包。在CCN拓撲中,這個興趣包的集合被用來確保效率和避免環路。

? ? ? 策略層被使用來適應CCN對不同傳輸介質和范型的不同參數和行為,比如固定網絡、無線網絡或延遲可容忍網絡(DTN)。

? ? ? CCNx項目,由PARC資助,開發了一個CCN的開源實現。這個早期的原型實現了CCN結點的基本功能,包括FIB、PIT、主要的內容緩存和靜態路由的轉發,也支持內容簽名和簽名驗證,密鑰管理、可選加密和解密。這個原型也包括一個持久穩固的基于磁盤的內容倉庫,它可以用來保存文件和一些例子程序,比如CCN的語音實現,聊天應用,和用于數據傳輸的一些命令行工具。

2.2? CCN的研究議程

? ? ? 當前CCN的研究論文呈現了CCN一般的體系原則和定義了API的CCNx原型,以及CCN的本地通信。CCN能夠在很大程度上有利于應用程序的使用,在這方面對CCN大規模的評價和路由選擇的提議將是未來的工作。

? ? ? 這一部分通過討論在設計中被提出的想法,概括了開放的CCN研究中存在的問題和需要未來調查研究的新思想。許多這樣的問題都是互相關聯的。首先,我們討論為了使CCN廣泛使用的與CCN可擴展性相關的問題,然后我們聚焦于與安全相關的研究問題。

2.2.1? 可擴展性研究問題

? ? ? CCN的路由器需要保持它所轉發的每個興趣包的狀態。CCN結點可能一次把興趣包轉發到多個結點,并依據內容的名字路由而不是位置。所有這些與TCP/IP的不同可能對CCN的可擴展性產生影響并激發研究。這一部分討論的研究問題涉及匹配的應用程序,路由選擇,路由器設計和一些CCN的協議細節。

應用程序

? ? ? CCN的部署需要對設備、網絡工程師和程序員的教育進行重大投資。除了節省帶寬,CCN期望能夠使大量新的應用程序利用CCN靈活的命名尋址和發現機制。未來的研究應該識別這些應用程序。

? ? ? 至于已經存在的應用程序,我們假定面向內容的應用程序能夠工作在CCN之上,并且受益于CCN。CCN上的語音實現(Voice-over-CCN)原型聚焦于顯示傳統的面向會話的協議,并能夠在CCN上被移植。假設在會話中兩邊的用戶都通過一個全球唯一的前綴可達,比如/domain/user。假定Alice想要給Bob打電話,下面的步驟將被執行用來建立電話通信。

? ? ? (1)一個SIP Invite消息被用來請求電話。在VoCCN中,Alice向Bob發送一個請求包,并將SIP Invite消息編入請求包的名字。為了確保機密,名字可以被加密如下:/domain/sip/bob/encoded-invite-message。

? ? ? (2)Bob在響應數據包中發送SIPresponse和請求的名字。

? ? ? (3)實時傳輸協議(RTP)聲音數據流被封裝在CCN的數據包中。Alice發送Interest包來請求來自Bob的聲音數據,反過來也一樣。Interest包遵循方案:/domain/user/call-id/rtp/sequence-number。

? ? ? 當方案顯示端到端的會話是可行的同時,方案也顯示出了在CCN中,推送數據不是一個容易的工作。如果通過把數據編碼成名字的方式,數據被推送到了目的地,目的地不能簡單地發送數據包響應Interest包,因為數據包將會發送回所有數據作為它名字的一部分。因而,推的場景需要兩邊在一個全局唯一的名字下可達。

? ? ? 第二個關于端到端協議的問題是被參與者交換的消息將會被緩存,盡管在將來有些消息不太可能有任何緩存命中。在這種情況下,那些消息使用的緩存空間如果被用作其他可能會被再度使用的消息可能會更好。如果應用程序,比如聲音或遠程登錄應該使用CCN,那么問題來了。

? ? ? 版本是在這個背景下的另一個問題。假定在/newspaper前綴下,一個擁有前頁(頭版)的報紙是可達的。明顯地,頭版將會經常改變。CCN允許內容名字承載特殊版本的標記。然而,客戶端不能提前預知最近的版本號是什么,因而,在可能仍然被緩存的舊的復制中需要有一個算法來找出最近的版本號。

? ? ? 在CCNx郵件列表中,一個算法被提出,我們列出了一個稍稍修改的版本。

? ? ? (1)請求內容沒有版本標記,或者有客戶端知道的最近版本號。

? ? ? (2)從回復中接收的最近的版本號加1,再次請求同樣的內容。

? ? ? (3)反復迭代直到不會發現任何內容,這樣最高可用的版本號就被確定了。

? ? ? 這個解決方案似乎不是令人滿意的,因為它可能是效率低的,特別是當算法不得不頻繁運行的時候。此外,以一種方式,這種方式提供一種保證使得最近的版本號真正被發現,以這種方式來實現這個算法是有挑戰性的。如果被客戶端請求的版本號太高,內容源不得不以“內容不可用”消息回復,這個消息有非常短的生存期,以至于重放攻擊是不可行的。在沒有這種響應的情況下,客戶端不能區分是一個簡單的超時還是其他情況。

? ? ? 廣播或者多播協議,比如哪些用作IPTV的協議,關于它們能夠怎樣在CCN上被實現需要更多的調查研究。默認的,僅當一個Interest包被發送后,一個CCN結點才可能接受一個數據回復包。一個連接到廣播鏈路的CCN結點能夠無意中聽到被其他結點發送的Interest包,并抑制自己的Interest包來減少流量。然而,這仍然意味著為了發送每個數據信息到多播組,必須先發送每個興趣包,相比較于基于IP的協議,這增加了開銷。

體系結構

? ? ? 通常,關于基于內容和緩存的路由,一個重要的問題是在哪一層這個功能被最好的實現。在CCN上運行任何協議,例如替換IP協議,具有提供一個通用的緩存基礎設施的優勢。另一方面,一些應用程序可能不會從緩存中受益,像上面所討論的端到端通信,可能不會比有IP層更加有效。

? ? ? 或者,CCN可以運行在IP上面,僅僅被選擇的應用程序可以利用CCN。這將提出一個問題,相比較于傳統的內容分發網絡和冗余消除技術,CCN將多大地提高效率。

路由

? ? ? 在CoNext文獻中,Jacobson等人顯示了一個例子,CCN將怎樣映射到已存在的路由協議:內部路由協議中的鏈路狀態路由協議使用本地資源前綴,比如持久穩固的內容倉庫,和鄰居連接來創建拓撲,對域間路由協議來說,作者建議在CCN的增量部署場景內在能夠使用CCN的區域之間建立隧道,一個區域的網關能夠尋找請求的CCN的名字的第一個組成部分作為DNS的名字。結果將會是其他區域的內容路由器的IP地址,這樣一個UDP隧道就建立了。對一個全部使用CCN的部署,作者建議把CCN的前綴整合進BGP的公告中。然而,現在仍不清楚路由表會增長到多大,而且這個方案將會支持多少內容源的移動性。

? ? ? 上面總結的路由方法是相當保守的,它最接近當前互聯網上的路由。然而,CCN可以容忍環路,并且支持多路徑路由,向請求者回送至多一個數據響應包,因而CCN更加靈活。CCN的許多不同的路由協議是可以想象的,它們的選擇主要依賴于系統的適應能力:支持內容源的可移動性,能夠斷開的操作,或者在系統的任何地方尋找緩存內容,而不是遵循到內容源的默認路徑。

? ? ? 一種路由方法認為受歡迎的內容可能被在附近的路由緩存中找到,因此類似洪泛的路由協議是合適的。然而,這種方法很難定位不受歡迎的內容,并定位最初的內容來源。

? ? ? 更傳統的方法反對的是,相較于總體的內容大小,主要基于內存的路由器緩存可能相對較小,因此它們可能不是一個可靠的內容來源,而是一個動態的可能短期的存儲。因而,可能更需要去尋找一個相對穩定的位置,比如最初的內容生產者。

? ? ? 為了節省傳輸帶寬,ISP能夠建造一個擁有許多磁盤存儲的大的服務器場地,依據他們的緩存策略來服務緩存的內容。因為這將在整個區域內發生,ISP能夠按照它們的意愿配置這個系統從而強迫用戶使用它。然而,相較于從數據在主存中的遠程內容源直接獲取內容,基于磁盤的緩存可能引起一個較高的延遲。

? ? ? CDN不可能被淘汰,因為希望減少延遲的內容提供者可能需要接近他們的客戶來配置應用程序。CCN的緩存不能提供自定義的應用程序邏輯和動態的內容創建。然而,CCN的內容名字路由能夠被配置得比當前因特網更透明地包容CDN。

緩存

? ? ? 緩存是CCN體系結構的中心元素。CCN不僅能承載用戶之間共享的靜態內容,而且能夠承載動態的非共享的內容。鑒于這些情況,我們可以識別下面這些關于緩存的研究問題。

? ? ? (1)緩存的內容,比如緩存怎樣合作和緩存怎樣組織(層次,網狀)。

? ? ? (2)每個擁有線速功能的緩存的大小,或者它們在層次結構中的位置。

? ? ? (3)緩存的替換策略。

? ? ? (4)怎樣評估緩存中數據的效用,例如,什么數據該緩存,什么數據不緩存。例如,動態內容不應該被緩存。

? ? ? (5)緩存和路由算法怎樣相互作用,哪些內容向外部公布,緩存怎樣跨區域或跨ISP合作。

? ? ? (6)當緩存插入和刪除內容時,緩存應該知道CCN怎樣把大的文件分割成塊。

網絡和傳輸協議問題

? ? ? CCN在網絡層最初的工作是提供不可靠的內容路由。研究需要為興趣包轉發定義策略,為特定流量定義優先級,以確保在所有的參與者之間共享網絡資源。

? ? ? 迄今為止,CCN缺少一種傳輸協議來確保可靠性和公平性。一些CCNx工具以流水線方式傳輸數據包來獲得一個更高的吞吐率,與TCP相似,但是,仍然需要正確定義一個協議。

? ? ? 如果沒有在一個給定的窗口時間接收到回復,Interest包將超時。現在還不清楚這些超時時間怎樣選擇,哪個結點需要重傳超時的Interest包。相比較于初始請求者重新發出Interest包,如果中間路由器重傳了,協議可能會更加有效。然而,這也將使最初請求者為整個過程設置一個超時時間更加困難。

路由器設計

? ? ? CCN需要比IP更加強大的路由器。CCN的路由器需要認證簽名,處理擁有復雜查詢特征的Interest包和為每個等待Interest包保存狀態。路由器可能也必須運行算法來檢測和防止拒絕服務攻擊。更重要的是,CCN路由器必須以不差于今天的IP路由器的速度工作。

? ? ? 迄今為止,還不確定這樣的路由器應該被怎樣建造,這將會花費多少。解決這個目標的一個中間問題是為線速功能的CCN路由器決定處理能力和內存需求。特別地,Interest包的聚集和緩存命中怎樣影響PIT需要的內存數量?這個問題是需要特別關注的,因為CCN路由器的狀態與轉發的Interest包的數量成比例。除了可能阻礙可擴展性,路由器的狀態也提出了與安全相關的挑戰,因為它可能被拒絕服務攻擊濫用,就像我們在3.4.3部分中討論的那樣。

? ? ? 更多地,如果CCN包含的加密算法被破解或接近生存周期結束,它將會被替代。這提出了用硬件或軟件怎樣實現它們的問題。

? ? ? 依據緩存的目標大小,CCN路由器可能需要相當大的數量的RAM,把主存用一個大的但是更慢的磁盤備份可能是必需的。相比較于從遠程的但是數據在內存中的內容源,這提出了怎樣不增加總體請求延時,而將磁盤整合進體系結構中的問題。(對CCN內容路由器來說,主存和緩存是怎么配合的?)

能源效率

? ? ? 在文獻中,Lee,Rimac,Hilt比較了內容分發網絡(CDN和CCN的區別?)、nano數據中心和CCN體系結構的能量損耗。他們主要發現了CCN體系結構減少了跳數,因此減少了能量損耗。然而,作者使用了一個簡化的系統模型,雖然增加了計算需求,但路由器沒有消耗任何額外的電力。而且,作者假定了一個相當大的緩存,假定請求數據總是被緩存的。

? ? ? 我們相信這些假設被過渡簡化了。CCN路由器需要額外的計算能力來認證簽名,處理特殊的Interest包查詢功能。此外,如果緩存基于主存實現來避免基于硬件磁盤的實現所帶來的延遲增加,緩存的大小可能十分有限。(基于主存實現緩存和基于磁盤實現緩存有什么區別?)不同的路由協議可能對能源效率也有影響。我們相信所有這些原因激發了一個對CCN的能源效率的更加差異化的調查研究。

統計基礎設施

? ? ? 內容提供者對他們的內容被怎樣訪問和被怎樣的用戶群體訪問的統計感興趣。這樣的信息對決定廣告的價格和優化他們對用戶提供的服務必不可少。因為CCN不在Interest包中提供端結點認證,多個Interest包可以被聚集,內容可以從緩存中而不是內容源獲取,所以內容提供者很難建立這樣的統計。

? ? ? 一個解決方法是內容的數字版權管理系統,它需要用戶與內容源交互來獲取能夠解密請求內容的密鑰。反過來,內容也可以從緩存中得到服務。我們在下面的2.2.2部分詳細說明。?

? ? ? 如果內容源需要他的用戶的地理信息,他需要用戶來注冊,并且在訪問內容之前提供這個信息。然而,內容提供者也需要通過輔助渠道來核實這個信息。特別是對地理位置上受限制的內容,比如體育賽事,這種方式被視為足夠安全,足夠高效。在這種情況下,CCN的實現能夠強迫用戶用包括地理信息的key來標記他們的Interest包。信息的正確性能夠被用戶的ISP來認證,這種方法在下面的2.2.2部分討論。

2.2.2? 與安全相關的研究課題

? ? ? 被CCN運用的體系結構和通信范式的改變也改變了網絡安全的許多方面。這一部分聚焦于一個高層系統的未解決的問題和設計觀點,攻擊將會在第三章更加詳細地討論。

密碼學的應用

? ? ? 密碼學技術的廣泛應用是CCN的核心。因為內容與位置不綁定,所以內容必須被認證和完整地保護來避免基本的欺騙攻擊。此外,CCN的訪問控制是通過加密來提供的。攻擊者可以相當容易地獲得他感興趣的內容的加密版本。CCN的安全是基于攻擊者不能對明文內容下任何結論,并且不能利用輔助渠道。

? ? ? 然而,即使數據被加密,它仍然會泄露一些信息,比如內容大小,請求時間,內容名字。我們將在第4章更加詳細地討論這些問題。另一個密碼學的應用來源于加密算法有限的生存時間的事實,通常假定為30年左右。這個時間之后,一個可以達到的計算將會增加強力破解加密內容的能力。這意味著30年后這些加密數據仍然是有價值的,可以獲得加密數據的攻擊者可以保存這些數據供以后分析。我們將在3.4.4部分討論攻擊者怎樣克隆其他會話參與者的會話。

? ? ? 此外,一旦內容被發布,還不清楚它怎樣被取消,內容的拷貝會在網絡的很多地方被緩存。為了防止更多的用戶獲得取消的內容,路由器將會發布和執行一個取消列表。或者,內容將會被以相當短的生存時間發布,生存期過后路由器將不會再緩存內容拷貝。然而,這將意味著內容發布者的高負載,因為他不得不更加頻繁的為內容拷貝提供服務。

? ? ? 在被用作內容簽名的密鑰環境中,取消問題特別重要。例如,如果密鑰被破解了,密鑰應該被標記為不可用。這個信息必須被及時地傳播到擁有破解數據的所有消費者,甚至所有的路由器。

? ? ? 最后,密碼學的應用需要關鍵材料的交換,特別是使用信任模型。需要定義一些策略來防止多方聲明同樣的命名空間。

拒絕服務

? ? ? 網絡安全研究方面一個重復的話題是拒絕服務攻擊機制。因為攻擊者,特別是如果它們控制了大量的機器,能夠簡單的制作IP包并發送給受害者,而不論受害者的位置。這種類型的攻擊很容易實施。

? ? ? CCN有一些特性使得拒絕服務攻擊更加困難。首先,數據包沒有被路由,他總是沿著之前發送的Interest包的路徑發送,對之前的一個Interest包,每個接口最多接收一個數據包。因此,如果一個攻擊者想要用數據包淹沒遠程的受害者,他將不得不使受害者對請求興趣包生成比他能夠處理的數據更多的數據包,這是一個不可能實現的場景。

? ? ? 另一方面,Interest包是可以被路由的。如果攻擊者選擇了受害者內容源的前綴,每個興趣包都有不同的后綴,來自緩存的響應將會被避免,由此產生的興趣包將會被路由到受害者。然而,CCN的第二個特性使得應對措施可行。數據包由與興趣包同樣的路徑傳送。因此,路由器能夠觀察興趣包中不存在響應數據包的前綴部分的比例。如果這個比例很高,將會檢測出攻擊,興趣包將被丟棄。

? ? ? 這個算法將不得不被部署在中間路由器上,這個算法的有效實現和優化的攻擊檢測界限仍然有待研究。如果知道檢測算法怎樣工作,攻擊者能夠簡單的選擇一個低于攻擊檢測界限的攻擊率來避免被檢測到,但同時這個速率足夠達到攻擊的目標。這源于中間路由器不知道應用程序語義的事實,僅僅最終的目的地能夠識別是否遭到了攻擊。最后,Jacobson等建議使用攻擊域讓下游路由器抑制它們通過名字前綴轉發的興趣包的數量的機制。

? ? ? 一個至今還未討論的拒絕服務攻擊的目標是中間路由器。因為它們提供比IP路由器更加強大的功能,它們必須保存每個興趣包的狀態,CCN路由器有更多的攻擊面,并可能成為拒絕服務攻擊的受害者。我們將在第三章討論這樣的攻擊。

隱私

? ? ? CCN消息是自包含的命名對象。因此,相比較于從不透明的TCP流中獲取的IP包,它們承載更多的語義信息。因此,這些對象被臨時地保存在沒有訪問限制的緩存中,這意味著通信痕跡在所有的網絡中游蕩。

? ? ? 攻擊者可以知道是否一個給定的數據對象被緩存在一個結點中,當數據對象被請求時,這個結點可以被測量響應時間。因此,甚至加密的數據也會通過元數據,比如名字、發布者的公鑰泄露信息,或者通過輔助渠道,比如內容長度和請求時間。這種類型的攻擊叫做緩存窺探,我們將在第四章討論,并概述應對策略。

? ? ? 另一個用戶隱私的威脅是惡意的ISP。通過監聽接入路由器和記錄客戶請求什么名字,ISP可以很容易的了解客戶。現在仍然不知道如果不禁用緩存,這能夠被怎樣技術性地防范。假定一個假想密碼或者模糊構造能夠把一個明文名字的成分c映射到模糊的名字o1,o2,……on,這個構造是單方面的,意思是這n個名字可以從明文名字推斷,但反過來是不成立的。如果一個惡意的ISP看見了這樣一個名字,他不能直接推斷出這個名字的內容源是什么,因此就可以說實現了某種程度上的隱私。

? ? ? 為了允許轉發這樣一個模糊的Interest包,并能夠緩存命中,必須有一個功能能夠檢測對同樣的對象oi和oj的兩個模糊的名字的匹配。然而,如果這樣的功能存在,惡意的ISP能夠建立一個被監視的內容源的模糊名字的字典,并用字典匹配進來的興趣包。更壞的是,因為一個路由器總是看見興趣包的響應數據包,惡意的ISP能夠建立一個數據負載內容的指紋哈希的字典。這樣,數據的隱私性將會很小。另一方面,如果這樣的功能不存在,例如,如果名字和負載被每個用戶獨立地加密,數據的隱私性將會最大。這意味著緩存只在每用戶基礎上可操作,這相當大地限制了緩存的效用。

? ? ? 鑒于這些想法,研究問題就是是否可以找到一個機制使惡意ISP創建一個模糊名字字典不可行,但仍然允許轉發和緩存的前綴匹配。此外,可以調查在用戶隱私和網絡效率之間是否可以找到一個權衡。更通常地,需要研究用戶需要擁有什么隱私,他們信賴他們的ISP嗎?他們需要技術上保證隱私的強制執行嗎?他們對描繪的受歡迎內容還是不受歡迎內容的訪問更關心??????????

問責基礎設施

? ? ? 在TCP/IP體系中,如果一個主機受到攻擊,對攻擊來自哪里會有粗略估計。發送者的IP地址經常是偽造的,但是如果攻擊者需要接收響應包,地址必須至少有一定的可信度。

? ? ? 相反,CCN沒有端結點標識,當消息被接收,只有上一跳是已知的。數據響應包遵循PIT中的興趣包留下的返回路徑返回,當數據包被轉發后,這個痕跡就消失了。結果,遭受攻擊的CCN內容源不能追蹤攻擊來自哪里,他們不能選擇性地阻塞攻擊源。它們不能禁用接收有害數據包的路徑,但這將可能斷開一大群無辜的用戶。

? ? ? 問題的原因是CCN廢除了端結點標識和真正的端到端連接語義,但是仿真了相似的東西,比如動態生成的內容仍然需要訪問一個特定的物理的機器。當用戶和攻擊者可以路由興趣包到這個機器,機器不可能再識別連接的另一端。如果發生斷續的連接或者請求者移動了,這個新的通信范式更加靈活但也付出了前面提到的問題的代價。

? ? ? 執法機構能夠模擬接入路由器或者DSLAM,因為前一跳的位置就是終端用戶。然而,關聯在受害者這方觀察到的攻擊和在網絡邊緣收集到的信息不是一件容易的事。特別地,這僅工作在如果全世界所有的接入提供商都被監視的情況下。相反地,如果在接入路由器上觀察到惡意興趣包而沒有受害者的投訴,想要找到興趣包在哪里路由可能會很困難,因為網絡狀態(路由表,緩存內容)變化很快。

? ? ? 一個可能的解決方法強迫用戶對興趣包數字簽名,或者在接入路由器上自動簽名興趣包。由ISP提供簽名密鑰,密鑰會被經常改變,例如每天,來提供與現在動態IP地址相當的隱私保障。這個簽名密鑰包括例如ISP、地區或國家的名字等的聯系信息。這個解決方法允許內容源選擇性地阻塞一個特定的但是仍然匿名的用戶,或者如果發生揭露用戶身份的嚴重問題時聯系用戶的ISP并著手起訴。然而,在路由器上簽名的興趣包的聚合會更加困難,盡管它是可能的。

內容保護

? ? ? 內容提供者感興趣于在可控的環境下使他們的內容可用。例如,贊助的內容將只能呈現在他們自己的廣告頁中,并防止第三方深度連接此內容,沒有原始作者的同意不能將此內容用在其他頁面。訂閱內容的提供者需要確保此內容只在訂閱期內被查看,并只能在擁有授權軟件的授權設備上可查看。

? ? ? 在現在的萬維網上,內容提供者從他們控制的機器上服務內容,因此他們可以在接受用戶對內容的請求前強制執行一系列條件。例如,對免費的內容,他們可以檢查用戶正在請求的是否是同一個主機上托管的頁面內容,或者用戶的請求是否來自同一臺用戶登入的機器。

? ? ? 訂閱的內容,比如在iTunes上,僅僅通過授權的軟件可以被重新創造,這個軟件被內容提供者強行加入訪問限制并被強制執行。用戶支付之后,軟件可以下載被單一的主密鑰加密的內容。軟件也獲得主密鑰來解密內容,但密鑰對于用戶是隱藏的。每個文件使用單獨的加密密鑰而不是每個用戶使用單獨的加密文件減少了服務器的計算負載,促進了CDN的使用。

? ? ? 這個方案的安全性是基于僅僅授權的軟件可以被使用的假設。如果攻擊者設法理解加密方案并提取出了主解密密鑰,他們能繞過任何強加在內容上的限制。如果這樣的事件被公開,內容提供者通常改變他們的保護機制并強迫所有的合法用戶把他們的客戶端軟件更新到最新版本并拒絕舊版本的連接。

? ? ? 對于CCN網絡,緩存內容是可以沒有限制地被獲取的。對訂閱內容來說,這意味著一旦保護方案被破解,所有的被緩存在某處的內容都將不再受到保護。因此,對CCN來說,有一個切實可行的撤回緩存內容的方案是很重要的,就像在本部分內容開始討論的一樣。此外,甚至半免費(資助的)內容也需要用這樣一個數字版權管理系統來保護,以便在播放環境中執行相對松散的規則。CCN的緩存意味著內容提供者更少的數據流量,但同時他們失去了和用戶的直接通信,因此提供者也失去了某種程度上的控制。

2.3? 結論

? ? ? CCN定義了一個新的網絡體系結構的原則。CCNx項目開發了一個CCN的原型實現,許多細節需要被調查研究:

? ? ? (1)什么應用程序使用CCN?CCN應該在哪一層上操作?

? ? ? (2)CCN的路由支持什么功能?

? ? ? (3)緩存基礎設施應該被怎樣組織?

? ? ? (4)可擴展的CCN路由器怎樣被建造?

? ? ? (5)內容提供者怎樣控制他們內容的使用?怎樣獲得使用的統計信息?

? ? ? (6)CCN使得拒絕服務攻擊更加困難,但同時增強的體系結構提供了新的攻擊機會。

? ? ? (7)廣泛使用的緩存可以被攻擊者利用來提取與其他用戶隱私相關的信息。

? ? ? 在下面的章節中,我們用一個系統的安全分析方法繼續CCN的研究。

?

?

3.? CCN的安全

? ? ? 在本章中,我們系統地分析CCN的安全。我們以3.1節一個簡化的系統模型開始,并繼續與這個模型的相關的威脅分析(3.2節)。3.3節綜述已經在CCN文獻中報告的拒絕服務攻擊,然后在3.4節介紹新的攻擊,主要是拒絕服務攻擊和與緩存相關的攻擊。

?

3.1? 系統模型

? ? ? 我們的系統模型包含主要的參與者和CCN可能部署的組件。因為現在還沒有CCN的全部功能和部署的實現,我們把我們的分析聚焦于CCN新奇的體系結構和概念的弱點。實現方面的弱點,比如緩沖區溢出,不完整的參數驗證,或者有缺陷的密碼學使用,我們認為超出了討論范圍。本文分析的目的是用來預測CCN安全方面系統固有的挑戰,以便這些問題能夠在開始大規模部署前被解決。

? ? ? 參與者:

? ? ? (1)端結點:通過生成興趣包請求內容。

? ? ? (2)內容源:通過生成興趣包的響應數據包生產內容。

? ? ? (3)ISP:通過轉發興趣包和數據包連接端用戶和內容源。

? ? ? 組成部分:

? ? ? (1)端用戶設備:可能包括家用路由器和一些個人主機。為簡單起見,我們假定每個ISP的客戶對應一個單獨的設備。

? ? ? (2)路由器:轉發興趣包,回送數據響應包。他們通常假定有內置的緩存。這些緩存大小不同,實現技術不同。下面,我們假定緩存在RAM中實現。因此,他們的大小是數十GB,甚至更小。

? ? ? (3)內容源:或者內容生成者。有可用的,或者根據到來的數據包的請求生成的內容。實際上,大的服務器場所,甚至地理上分布的CDN可能被用作服務內容。我們通過假定一個單獨的機器服務所有的請求來簡化我們的模型。

? ? ? (4)鏈路:連接所有上面列出的組成部分。真實世界的鏈路在技術和速度方面不同,但我們不在我們的模型中區別。

我們想象作為一個開放的系統,CCN的部署與現在的互聯網相似,參與者不需要彼此完全信任。

?

3.2? 威脅分析

? ? ? 上面列出了所有參與者都可以成為攻擊者。在廣義上,我們使用術語攻擊者,例如,當ISP監視用戶或者泄露用戶的隱私的時候,我們認為ISP是攻擊者。因此,依據他們的類型,攻擊者可能控制上面列出的任何組件。同樣,目標受害者也可能是任何參與者。

? ? ? 表3.1列出了幾種類型的攻擊者,他們在知識、預算、功能和目標上不同。一個攻擊的風險依賴于利用的難易,比如什么攻擊者能夠施行這個攻擊,多少潛在的攻擊者存在,這些攻擊者必須做怎樣的投資。

類型

知識了解的程度

預算

功能

動機

單一用戶

很少

(使用攻擊工具)

自連接

名譽、報復、無聊

專業

攻擊者

中等至偏高

中等

僵尸網絡,黑客攻擊的路由器

錢(支付的攻擊)

惡意ISP,惡意內容源

內部人士

訪問自己的設備

錢、法律法規、

競爭優勢

網絡戰士

相當于內部人士

非常高

僵尸網絡,黑客攻擊的路由器

報復、威懾、

輿論影響

表3.1? 攻擊者類型

?

3.2.1? 與TCP/IP架構風險的比較

? ? ? 相比較于TCP/IP,CCN有不同的體系結構,最顯著的不同是CCN允許路由器中所有數據的系統緩存。然而,緩存意味著在效率和隱私兩者之間的權衡:用戶在緩存中留下通信痕跡。這些痕跡可以被任何人獲取,或者通過擁有特殊查詢特征的興趣包,或者通過探測緩存,使用及時的回復來找出是否一個數據項被緩存。特別地,很可能提取第三方在會話中交換的全部的包序列。這個實事相當大地簡化了攻擊,因為攻擊者不再需要像在TCP/IP中那樣嗅探受害者實時的鏈路。攻擊者只需要被連接在一個共同的緩存中,甚至可能進行追溯。此外,緩存需要對數據加密。然而,密碼學擁有有限的生存周期,一般認為大約30年。因此,攻擊者可能收集數據并保存到將來的某個時刻,加密算法不能再抵擋強力攻擊的時刻。

? ? ? CCN的通信模型是純粹的面向內容的。CCN依據內容尋址而不是位置,因此用戶信任內容和原作者,而不是當前的可以得到內容的緩存(這可能是一個任意的不可信的緩存)。因此,保護內容的完整性、綁定內容的名字和作者是必需的。

? ? ? 因為TCP/IP強迫與可信的內容源的直接通信,保持最新內容不是網絡中存在的問題。相反,CCN需要防止舊內容的重播,需要有一種安全的方式來保證給定的內容是作者的最近版本。

? ? ? 針對內容源的拒絕服務攻擊在CCN中更難實施,但是仍然可行:因為僅有興趣包被路由,僅有興趣包被用來淹沒內容源。(數據包總是沿著興趣包的路徑返回。)興趣包的聚合和緩存意味著攻擊者必須生成可以被路由到相同內容源的興趣包,但這要求不同的名稱。相反,互聯網上的攻擊者可以生成任意數量的都被路由到同一目的地的相同的IP包。CCN路由器的檢測算法利用這個請求和響應遵循相同路徑的事實。然而,興趣包不承載能夠識別興趣包起源的標識符的事實使這一情況更加復雜。

? ? ? 位置標識符在TCP/IP中可用,并能夠被用來防范攻擊,或者實現端到端協議。CCN的通信是單跳的,由于興趣包的聚合和缺少端結點尋址。沒有額外的機制,CCN結點不能識別查詢的起源,因為它將需要追溯到攻擊的起源。擁有端到端語義的面向會話的協議需要實現一個明確的方式來使這個信息可用。風險是這樣的,可選的額外一層可能不會被每個人接納,并可能因此被攻擊者規避來獲得一個更高層的匿名。

? ? ? CCN的路由器比IP的路由器在狀態和計算能力上更加強大。這主要是一個實現上的選擇:一個無環拓撲和引入的返回到興趣包發送者的源路由將使PIT變得多余。這一選擇對系統安全的影響是,因為網絡中更強大的設備增加了攻擊面,因而可能導致拒絕服務攻擊。

3.2.2? 拒絕服務攻擊的攻擊樹

? ? ? 21頁的圖3.1顯示了CCN中拒絕服務攻擊的攻擊樹。攻擊樹顯示了獲取攻擊目標的不同方式。樹葉代表基本的攻擊步驟,內部結點代表攻擊的子目標,樹根代表最終的攻擊目標。在這個例子中,所有的子樹都是可選的,也就是說,一個從葉子到根的路徑說明一個潛在的攻擊實例。

? ? ? 一種拒絕客戶服務的方式是使請求內容不可達。

? ? ? (1)源能夠通過洪泛被破壞,為此,攻擊者可以發送大量的到源的興趣包(3.3.2節和3.3.3節),或者攻擊者可以減少緩存效率以致正常的流量完全轉發到源并下載它。

? ? ? (2)路由選擇可能被惡意的或已被破解密碼的路由器破壞致使不能轉發請求。我們認為經濟力量使得ISP按照客戶需要轉發興趣包。我們認為防止攻擊者獲得路由器的管理權限超出了討論范圍。每個路由器中的PIT表項有超時時間,時間過后,路由器將會刪除等待興趣包并不再轉發回復包。攻擊者可以在不同的路由器上配置不同的超時時間來防止內容被獲取。然而,還不清楚攻擊者怎樣實施這樣的配置。

? ? ? (3)兩種類型的中間設備可能會被破壞:可以用大量的人造興趣包對鏈路洪泛,以致鏈路達到能力極限,合法的流量在路由器中排隊(3.3.2、3.3.3、3.4.2節)。要求路由器執行代價高昂的計算來減慢發送請求(3.3.1節)。或者,路由器的內存可能被溢出的PIT耗盡。

? ? ? 另一個拒絕客戶服務的方式是制造偽造的響應包。

? ? ? (1)有效的內容被路由器阻塞,路由器認為內容不可用。攻擊者可以重放或者生成一個“內容不存在”響應。

? ? ? (2)內容可以通過生成沒有被簽名,或者被用錯誤密鑰簽名的偽造響應包欺騙,并期望客戶接受響應。例如,客戶可能不知道內容源的正確密鑰。或者,簽署了正確密鑰的舊的內容可能被重放,或者攻擊者可能獲得了對源的簽名密鑰的訪問權限,因此便可以欺騙內容。

? ? ? 如果CCN的加密協議沒有被正確實現,或者如果客戶對密碼學機制的使用配置不安全,后來的攻擊是可能的。因為這些風險已經在現在的網絡體系結構中出現,我們不打算進一步考慮它們。

?

3.3? 已知攻擊

? ? ? 在這一部分,我們總結了一些與拒絕服務攻擊相關的攻擊和他們的應對策略。這已經在一些CCN的文獻和CCNx的郵件列表中被討論了。

3.3.1? 通過強制昂貴的計算對路由器進行的Dos攻擊

? ? ? 如果路由器驗證了內容簽名,攻擊者可以請求更多的需要路由器做昂貴計算的數據項,并對路由器向其他用戶提供的服務產生副作用。

? ? ? (1)假設:內容路由器系統地驗證了他收到的內容對象的簽名。路由器可能緩存密鑰,但并不是每個密鑰都緩存。攻擊者控制一個或更多的機器,并串通惡意的內容源。

? ? ? (2)攻擊:攻擊者從惡意內容源請求數據,每個數據項都不同,并簽署了不同的密鑰。為了驗證簽名,路由器必須從內容源指示的位置獲取密鑰。為了延遲該操作,內容源可以手工的減慢他的響應。此外,如果攻擊者知道正在被使用的加密算法和算法實現,攻擊者能夠選擇密鑰和簽名使得他們可以在最壞的情況下執行。

? ? ? (3)影響:路由器忙于驗證簽名,可能減慢傳送到合法用戶的服務。或者,路由器可能停止驗證簽名來滿足需求。

? ? ? (4)應對策略:

? ? ? 1)當負載太高時停止驗證簽名。在任何情況下,CCN接收者希望自己驗證所有簽名。

? ? ? 2)為了不允許欺騙內容被緩存,簽名必須被驗證。然而,驗證可能被延遲直到處理能力可行。或者,僅當內容被緩存了一段時間,簽名才會被驗證。例如,避免對那些立即會被丟棄出緩存的內容的計算能力做投資。

? ? ? 3)一旦出現使用了大量的可疑的不同的密鑰,就需要檢測內容源。或者不驗證這些簽名,或者僅當有充足的空閑處理能力可用時獲取和驗證密鑰。

? ? ? (5)風險:低。攻擊可能被檢測,需要有一個串通的內容源和潛在的相當大的攻擊流量(簽名驗證可能會在硬件中實現來獲得高的速度)。

3.3.2? 針對內容源的Dos攻擊????

? ? ? 攻擊者直接向源發送興趣包來避免緩存命中,目的是淹沒源,拒絕源對合法用戶提供服務。

? ? ? (1)假設:構造不存在的內容的名字,直接向內容源路由興趣包是可能的。攻擊者假定可以訪問一個或更多的機器,比如一個僵尸網絡。

? ? ? (2)攻擊:攻擊者為大量不存在的內容包構造不同的名字。這將使緩存不能命中,興趣包將會被直接路由到內容源。(怎么構造?生成隨機數?)

? ? ? (3)影響:如果許多設備在同一時間執行這個攻擊,內容源會被興趣包洪泛,以致合法用戶被拒絕服務。

? ? ? (4)應對策略:路由器記錄為每個前綴轉發的興趣包收到了多少回復包。如果路由器檢測到一大部分的可疑興趣包沒有響應,他將減慢這個前綴的興趣包的轉發速率。

? ? ? (5)風險:中等偏低。盡管可能被規避,檢測仍然是可能的。攻擊需要訪問一個僵尸網絡,并需要高的攻擊流量。

3.3.3? 利用興趣包特殊位對內容源進行DOS攻擊

? ? ? 一些特殊的興趣包比特位會被攻擊者利用造成緩存無法命中。這可能被濫用于利用興趣包來對內容源進行洪泛攻擊,以拒絕對合法用戶的服務。

? ? ? (1)假設:CCN興趣包可以指定無法從緩存中獲取到響應數據。攻擊者假定控制了一個或幾個機器,比如僵尸網絡。

? ? ? (2)攻擊:攻擊者向一個給定的內容源發送大量的興趣包,并指定響應不會從緩存中獲取。

? ? ? (3)影響:源將會遭受到興趣包的洪泛攻擊。合法用戶被拒絕服務。

? ? ? (4)應對策略:限制興趣包特殊選項的使用。例如,僅允許本地范圍的興趣包使用特殊選項(沒有超越本地機器或本地網絡轉發興趣包)。或者,僅僅數字簽名的興趣包能夠使用這個選項。希望密鑰證書能夠揭示攻擊者的身份。然而,攻擊者能夠從信任的用戶那里竊取密鑰并以一個虛假的名字實施攻擊。

? ? ? (5)風險:低。存在完美的應對策略。攻擊需要對僵尸網絡的訪問和高的攻擊流量。

?

3.4? 新的攻擊

? ? ? 在這部分,我們介紹一些還沒有在CCN環境中被討論的新的攻擊。

3.4.1? 緩存無用或非法數據

? ? ? 通過利用廣泛的路由器緩存,攻擊者可以為非法內容獲得免費的不受控制的存儲,或者在路由器緩存保存已刪除的內容。

? ? ? (1)假設:CCN廣泛使用緩存,緩存的大小可能會很大。攻擊者假定可以訪問連接到同一緩存的一個或多個機器,比如僵尸網絡。

? ? ? (2)攻擊:攻擊者持續地為文件發布興趣包,以使它保存在緩存中。這個人工的大量的請求包產生了一種假象:對路由器來說,對這個文件歡迎程度似乎比實際更高。

? ? ? 攻擊者需要在文件被緩存丟棄之前不久發送一個興趣包。比如LRU緩存,一個項目在緩存中至少保留一個緩存特征時間。這意味著請求頻率必須高于或者等于tc-1

? ? ? 如果緩存以網狀結構聚合,這便足以使攻擊者滲透一個緩存,項目將會對所有連接的客戶端可用。比如樹狀的層次網絡,攻擊者希望滲入樹根以使文件對最大數量的客戶可用。在一個LRU層次中,僅當高層緩存比低層緩存有更加嚴格的高的特征時間時,高層的緩存才有意義。這是因為LRU緩存像一個請求頻率以tc-1為截至頻率的低通濾波器(聚合)一樣工作。因此,如果攻擊者想要滲入樹根,他只需要決定根緩存的特征時間,并相應地調整請求速率。我們在4.4.2節描述測量辦法。然而,測量根的特征時間是具有挑戰性的,用根節點代替葉結點作為目標需要更低的請求速率。

? ? ? (3)影響:攻擊者可以通過使用這個技術,利用CCN的基礎設施作為內容分發網絡來保存已經從原始服務器中刪除的文件,并使他們為更廣闊范圍的用戶可用。特別地,非法內容的發布者可以從web服務器上臨時發布內容并把文件保存在CCN網絡里,這意味著關閉web服務器不足以防止內容被獲取。

? ? ? 這個攻擊的一個變體僅僅是增加合法內容的普及。例如,內容提供者把他的不受歡迎的文件鏈接到他最受歡迎的文件以致于它們可以同時下載。通過比特征時間稍微高些地增加請求頻率,項目將會被從緩存中檢索而不是被從原始服務器中獲取。因此,內容提供者可以濫用文件的廣泛性來獲得免費的內容分發服務。

? ? ? (4)應對策略:

? ? ? 1)為了防止非法內容的檢索,可以定義名稱審查列表。路由器不能傳送列表上的內容。

? ? ? 2)緩存應該被強迫定期重新驗證原始內容源的內容。然而,還不清楚緩存怎樣區別是從其他緩存得到的響應還是從內容源直接獲取的響應。

? ? ?3)偽造地址攻擊可以用啟發式算法檢測出來。

? ? ?(5)風險:低。相比較很容易獲得相同效果的方法,這個攻擊很復雜并且存在應對策略。這個攻擊可能需要高的請求頻率。

3.4.2? 通過降低緩存效率進行DOS攻擊

? ? ? 通過修改對緩存請求分布的廣泛性,攻擊者可以減少緩存效率。如果許多這樣的攻擊同時發生,增加的帶寬需求會導致對網絡基礎設施或內容源的拒絕服務。

? ? ? (1)假設:緩存可以減少相當多的帶寬。為了節省開銷,網絡或服務器基礎設施設計為以可以使用緩存的方式工作。攻擊者可以訪問一個或更多的連接到一個緩存的機器(比如僵尸網絡)。

? ? ? (2)攻擊:攻擊者選擇一系列不受歡迎的文件U,并周期性地請求他們來增加他們的受歡迎程度。U的請求頻率與真正受歡迎的文件P的請求頻率相似。U的大小被選擇以致于緩存中觀察到的全部的分布廣泛性變得相當統一。因為緩存對于保存全部內容并不是足夠大,因而緩存變得低效,而且更多的請求不得不向上游轉發,這個攻擊被稱為局部破壞攻擊。

? ? ? (3)影響:緩存的命中率減小,增加了網絡鏈路的負載(ISP的花銷),增加了直接從內容源檢索的文件數量(內容提供者的花銷)。如果基礎設施設計為以這樣功能的緩存工作,基礎設施可能變得擁塞。最終,這可能導致拒絕服務。

? ? ? (4)應對策略:

? ? ? 1)為最壞的情況,也就是為假定命中率為零的緩存提供基礎設施。然而,這可能導致很高的開銷,甚至從根本上質疑CCN的可用性。

? ? ? 2)啟發式算法可以用來檢測局部破壞攻擊。

? ? ? (5)風險:中等。僅僅啟發式檢測可行。實行攻擊需要一個僵尸網絡和高的攻擊流量,但它是可行的。

3.4.3? 通過耗盡路由器的可用內存進行DOS攻擊

? ? ? 通過填充路由器的為保存通信狀態的緩存,攻擊者降低或破壞發送給其他用戶的服務。

? ? ? (1)假設:CCN路由器需要把PIT表保存在內存中,PIT表中包含每個收到和已轉發,但沒有收到回復的興趣包。這些條目的緩存是有限的。我們假設攻擊者可以訪問一個或多個機器,比如僵尸網絡。攻擊者控制著一個串通的內容源,使其參加到攻擊中。

? ? ? (2)攻擊:基本的攻擊包含請求很大數量的不同的不存在的名字來填充PIT表。然而,很大部分的興趣包路由器不能檢測到回復。然而,通過勾結內容源,攻擊是精確的。內容源生成回復,但僅僅在路由器中的PIT表項即將超時前傳送回復。以這種方式,填充PIT表的必須的請求數量才是最小的。路由器仍然會檢測到頻繁的對串通內容源前綴的訪問,因此攻擊者可能使用一些不同的前綴來規避檢測。特別地,如果攻擊者控制僵尸網絡,他能夠使用每個機器對內容提供服務,這意味著串通內容源的數量將和請求者的數量一樣多。

? ? ? 每個等待興趣包有幾百字節大小的名字和附加區域,比如范圍。因為攻擊者控制著生成的興趣包,他可以精巧地制作興趣包來最大化內存消耗。例如,攻擊者可以通過選擇非常長的名字來加速攻擊。

? ? ? (3)影響:如果PIT表滿了,合法客戶將被拒絕服務。

? ? ? (4)應對策略:

? ? ? 1)不要在PIT表中存儲全部的請求名字,而使用哈希技術來節省內存以防止攻擊者加速攻擊。

? ? ? 2)在PIT表頭丟掉興趣包而不是表尾,也就是說,一個新的興趣包總是被接收,來代替舊的等待興趣包。這將使通過內容源延遲回復來填充PIT表更加困難。(CCN是不可靠的,因此路由器允許丟失興趣包。)

? ? ? 3)研究一個機制來檢測對少量名字前綴的大量請求包。

? ? ? 4)使用一個數據結構來實現逆向轉發,可能與布隆過濾器相似。這個數據結構在正常的條件下存儲精確信息,當達到容量限制時緩慢降低洪泛。

? ? ? 5)設計沒有PIT表項的無狀態的路由器:使用無環拓撲并為興趣包和數據包增加反向源路由標志域。

? ? ?(5)風險:中等。攻擊的目標是網絡的中心組件,因此有很大的影響。然而,它需要僵尸網絡和高的攻擊流量。

3.4.4? 緩存窺探:列出緩存內容,監視對象訪問,復制會話

? ? ? 通過像正常用戶那樣請求數據,并通過檢測是否回復包被緩存,攻擊者可以從緩存中提取與隱私相關的信息。因此,如果命名方案允許識別屬于相同信息交換的條目,克隆整個會話是可能的。

? ? ? (1)假設:緩存是CCN的核心。在一個典型的網絡中,每個執行轉發任務的設備都需要配備緩存,無論因特網核心路由器、接入路由器、DSLAM,還是全體網絡的路由器。這將意味著有些緩存特別接近端用戶,因為有限數量的用戶可以訪問這些緩存,他們將包含非常具體的內容。我們假定攻擊者直接連接到他的受害者的同一個緩存上。

? ? ? (2)攻擊:緩存窺探是一個用來確定緩存內容的技術。為了找出是否一個給定名字的條目被緩存,攻擊者向緩存發送對數據項的請求并測量響應時間。攻擊者再發送一個請求其他數據項的請求包并確保該數據沒有被緩存。比較這兩個的響應時間來確定第一個數據包來自哪里(來自被探測的緩存,來自任何中間緩存或者來自內容源)。

? ? ? 另外,找出緩存中內容的信息對攻擊者來說可能還有其他的意義。例如,CCN的前綴匹配和興趣包中的排除標識域允許攻擊者在預先不知道名字的情況下,檢索緩存的整個內容。

? ? ? 如果攻擊者可以找出在會話中用來命名后續數據項的方案,他將能夠從緩存中檢索并重新整合整個的會話。即使內容被加密,攻擊者仍然能夠從不安全的輔助渠道找到有價值的信息。

? ? ? (3)影響:可能的隱私威脅在于從找出兩個通信實體延伸到得出會話的內容。

? ? ? (4)應對策略:

? ? ? 1)對每個可訪問的緩存提供的響應使用最小的回復延遲。雖然會延遲合法請求,但仍將節省帶寬和當受到攻擊時限制隱私泄露。

? ? ? 2)加密動態內容的名字以至于僅僅授權的用戶可以在會話中標記數據項。

? ? ? 3)禁止復雜的興趣包特征,比如排除功能,或隨著時間的推移限制其使用。

? ? ? (5)風險:高。每個用戶可以實施攻擊并可能獲取對大量數據的訪問。我們在下章討論這個攻擊,更多的應對策略和更多的細節。

3.5? 結論

? ? ? 在這一章,我們顯示了CCN和TCP/IP體系結構在網絡安全方面的不同。

? ? ? (1)緩存意味著在網絡效率和用戶隱私之間的權衡。

? ? ? (2)更強大的路由器增加了網絡的攻擊面。

? ? ? (3)CCN使得識別請求源更加困難。

? ? ? (4)在CCN上實施拒絕服務攻擊比在TCP/IP上更加困難,但仍然是可行的。

? ? ? (5)路由器的每個請求狀態都可以被濫用做拒絕服務攻擊。

? ? ? (6)緩存會以下面的方式被錯誤使用:

? ? ? 1)攻擊者使用緩存作為存儲器來使自己的內容可用。

? ? ? 2)緩存的效率可以通過攻擊者的拒絕服務攻擊被減少。

? ? ? 3)內容可以被任何連接到緩存的攻擊者提取,從而危及用戶的隱私。

? ? ? 在下一章,我們將詳細分析對用戶的隱私的基于緩存的攻擊。

?

?

4.? 緩存窺探

? ? ? 在網絡體系結構中,通過在緩存中存儲請求數據的拷貝,緩存被用來增加效率。后續請求通過在緩存中找到的本地拷貝被滿足,而不是從內容源獲取內容。效率的獲取是雙倍的。首先,因為一些請求可以被本地滿足,內容源的數據流量被減少了。其次,緩存可以減少緩存內容的響應時間,因為緩存的位置通常比內容源更靠近客戶。

? ? ? 然而,緩存引進了在效率和隱私方面基本的權衡。雖然緩存內容增加了系統效率,緩存中內容的呈現會被濫用來侵犯用戶的隱私。這種類型的攻擊者可能感興趣的與隱私相關的信息與下面的內容有關:

? ? ? (1)通信的雙方(元信息)。

? ? ? (2)交換的數據,例如實際的通信內容。

? ? ? 目的是從緩存提取通信痕跡的攻擊叫做緩存窺探攻擊。在這一章,我們考察三種不同的攻擊。

? ? ? (1)獲取緩存內容的拷貝(4.5節)。攻擊者對緩存的快照感興趣,展示了當前正在被緩存的用戶請求的對象。通過與一系列興趣包對象和緩存內容的比較,攻擊者能夠找出是否緩存用戶中的某人訪問了一個特殊頁面,或者看見了特殊對象。此外,攻擊者通過確定被使用者群體使用的協議來準備后續的攻擊。

? ? ? (2)分析對一個給定名字的訪問(4.6節)。攻擊者檢查是否任何緩存的使用者最近訪問了一個給定名字的對象。通過定期地重復這些探測,攻擊者可以獲取更加精確的訪問時間信息,甚至推斷請求頻率。如果一些詳細信息可以提供給任何緩存用戶,周期性的探測能夠使攻擊者觀察緩存和觸發警報。

? ? ? (3)克隆會話(4.7節)。攻擊者使用緩存獲取所有在通信參與者兩方交換數據的拷貝,并重新組裝會話。即使通信被加密,通過輔助渠道,例如消息時間和消息大小也可能泄露與隱私相關的信息。

? ? ? 以前的工作把目標對準本地DNS緩存中的通信痕跡。他們允許遠程探測哪個網站正在被客戶群體訪問,什么應用程序正在被使用,什么更加受歡迎。另一個工作描述了惡意的網站怎樣從用戶的web瀏覽器緩存中推斷用戶的瀏覽信息。我們在4.1節更加詳細地討論這些工作。

? ? ? 從攻擊者的角度,緩存有一些優勢。首先,緩存在時域內減輕攻擊復雜性:大的緩存在原始會話結束后仍然保存相當長時間的數據。因此,攻擊者不需要在受害者的會話進行同時實施攻擊。其次,緩存在空間域內分離攻擊:攻擊者僅僅需要窺探,而不是嗅探能力。換句話,攻擊者僅僅需要連接到與受害者相同的緩存,直接訪問受害者變得不再需要。

? ? ? 基于緩存的網絡體系結構可能增加隱私泄露。當前緩存的部署,比如DNS緩存,web緩存和CDN,是應用程序特有的,并服務大量的用戶群體。例如,DNS緩存被典型地部署在提供者內部網絡的一個高聚合層,比如在每個城市的基礎上。基于緩存的網絡體系結構,反過來,自稱是應用程序獨立的,并在一個聚合的層次結構的低層中部署緩存:CCN建議在每個網絡設備中存在緩存,包括路由器和DSLAM。每個緩存比較少的數量的可能用戶意味著通過在緩存中找到的信息的泄露更有意義,因為把數據歸屬到用戶有更少的歧義性。此外,CCN的應用程序獨立性可能讓攻擊者訪問更廣闊范圍的信息,包括現在沒有被緩存的內容類型。

? ? ? 盡管之前的工作定義了一些特定應用程序的基于緩存的攻擊,像我們在4.1節總結的那樣。我們不知道任何在例如CCN的網絡體系結構中討論緩存在用戶隱私中的一般影響。像我們在上面討論的,廣義上的緩存加劇用戶暴露的隱私威脅。我們相信研究在網絡體系結構環境中基于緩存的攻擊來增強這個問題的知名度,并在體系結構最終部署前找出對策是重要的。當我們以CCN作為研究案例,它的命令和協議現在都是已知的,我們猜測我們在這一章揭示的這個問題也可以應用在其他被提議的網絡體系結構。

? ? ? 對這一章描述的攻擊,我們假定攻擊者的目標是找出鄰居的敏感信息。我們把我們對這些攻擊的描述建立在于在4.2節概述的系統模型的基礎上,遵循著下面攻擊者能夠執行的方式:

? ? ? (1)第一,攻擊者需要定義敏感信息是什么(4.3節)。這一步的輸出是一個興趣對象名的列表,比如電話號碼,網站或者視頻的名字。

? ? ? (2)第二,攻擊者必須獲得一些拓撲信息,他應該找出大約多少用戶連接到和他同樣的緩存中,多少用戶聚集在下一層等等。一些技術需要攻擊者對到層次結構的不同層的緩存的往返時間有預估。如果緩存中的對象被添加到緩存后不再被請求,一些技術也需要這些對象的平均生存時間的知識。得到這些知識的測量算法可以在4.4節找到。

? ? ? (3)第三,信息必須從緩存中檢索。在這點上,攻擊者執行上面介紹的三個攻擊中的一個。我們在4.5、4.6、4.7節詳細描述他們。

? ? ? 描述了這三個攻擊之后,我們用一個可能的對策的討論來總結這一章,這部分在4.8節。

4.1? 相關工作

? ? ? DNS窺探允許從DNS緩存中找出是否可以訪問這個緩存的某人最近請求了一個域名,例如訪問web頁面或者發送郵件,通過查詢緩存來確定是否這個關于域名的信息是本地可用的。DNS緩存能夠以兩種方式被查詢:

? ? ? (1)非遞歸查詢總是被具有本地信息的緩存應答。萬一本地沒有可用數據,將會返回錯誤信息。

? ? ? (2)遞歸查詢被轉發到其他緩存,如果必須提供一個有效響應。盡管遞歸查詢總是返回響應,一個攻擊者有兩種方式找出是否信息最初是在本地緩存:第一,如果數據是從其他地方獲取的,響應會更慢。第二,DNS響應總是攜帶緩存中數據的剩余TTL值。初值被區域的授權DNS服務器定義。如果回復返回的TTL值比初值更低,數據是被遠程緩存的可能性就比較大了。

? ? ? 除了在一些場景中從緩存中得到的信息被用作進一步的攻擊,作者給出了建議對策。

? ? ? (1)為了防止遠程攻擊者可以訪問DNS緩存,每一個緩存只允許本地客戶的請求。

? ? ? (2)為了使攻擊更加復雜,DNS緩存應該允許非遞歸查詢。

? ? ? (3)通過對TTL的初值增加隨機性,當向緩存中插入條目時,DNS緩存可以增加TTL熵。

? ? ? 為了使速度更優,一些web瀏覽器對出現在web頁面上的鏈接預先提取域名。Krishnan和Monrose顯示了怎樣利用在搜索引擎結果頁面上發現的DNS名字的預獲取來推斷搜索中使用的關鍵字。攻擊者可以建立一個以給定關鍵字保存的域名列表,并對這些域名探測DNS緩存。通過比較授權DNS服務器設置的TTL初值與緩存條目的剩余TTL值,在相同時間探測是否這些域名已被插入緩存是可能的。如果大多數期望的名字是這種情況,攻擊者可以下結論有人已經使用了這樣的通信關鍵字。

? ? ? 作者顯示了在30分鐘的探測延時內,當探測搜索一個給定的關鍵字,他們能夠獲得85%的準確率。然而,他們指出,在通常情況下,僅能夠推斷緩存的整個用戶群體,而不是用戶個人。比較而言,CCN可能提供了更多的信息:第一,整個的對象名字是可以訪問并且可以被發現的,而不僅僅是域名。第二,每個CCN緩存的用戶群體比DNS緩存的用戶群體更小。

? ? ? 一些工作測量了沒有緩存的DNS條目的時間,并用此信息來推斷請求頻率。他們做了下面的簡化假設:

? ? ? (1)一個條目在緩存中存留的時間是不變的,等于各自的授權名字服務器定義的TTL時間。特別地,被緩存的條目的命中率對條目在緩存中的生存時間沒有影響。緩存中沒有替換發生。

? ? ? (2)客戶請求是獨立的和同等的,以指數方式被分布的,當條目沒有被緩存的間隙也是如此。

? ? ? 至于低的受歡迎程度,在緩存窺探期間獲得的命中率已經足夠好的接近請求頻率。隨著條目受歡迎程度的增長,客戶的緩存命中更可能發生。在這種情況下,請求頻率λ能夠被計算作為條目驅逐出緩存的時間(假設最后一次請求在不久之前發生)和再次被插入緩存的時間間隙的平均。作者顯示每個授權的TTL時間內探測一次緩存是足夠的。非遞歸查詢被認為比較好,因為它直接揭示了是否數據被緩存,而沒有修改緩存狀態。因為泊松過程的和仍然是一個泊松過程,如果每個客戶端請求頻率是已知的話,客戶的數量是可以被計算的。

? ? ? Felten和Schneider顯示了惡意的網站怎樣探測客戶那邊的緩存,比如web瀏覽器的緩存,來找出是否用戶最近訪問了另一個不相關的網站。作者討論了下面的應對策略:

? ? ? (1)禁用緩存。因為明顯的性能代價,他們放棄了這個解決方案。

? ? ? (2)改變緩存的命中/丟失行為。在嘗試隱藏他們的時候,緩存命中會變得更慢,或者變成隨機的。然而,作者沒有考慮這個可能性:“如果我們使得命中像丟包一樣慢,攻擊者將會被帶上手銬;但是在這種情況下,我們可能也會關閉緩存。”然而,這個陳述似乎忽視了仍然會被帶來的帶寬節省。

? ? ? (3)安全隔離。每個域有自己的虛擬緩存,因此一個網站不能探測其他網站的狀態。然而,這個對策將會相當大的減少緩存命中率,獲得很小的效率提升幅度。

4.2? 系統模型

? ? ? 我們使用下面的網絡模型來對我們的討論做假設:

? ? ? (1)緩存以樹狀層次安排,其中的葉子相當于DSLAM。所有的用戶直接連接到一個葉子緩存。請求被向層次結構的上層路由,鄰居緩存之間沒有合作。如果緩存沒有命中,根緩存將請求轉發到對應的內容源。

? ? ? (2)每個緩存大小有限,使用LRU作為替換策略。

? ? ? (3)如果緩存命中,內存讀的延遲對所有的緩存都相同,不論緩存命中發生在層次結構的哪里。也就是說,所有的緩存在同樣的拓撲中實現(或者在主存中或者在磁盤中),但不是兩者的結合。

? ? ? (4)攻擊者對最好的可能的已經請求了數據的用戶的數量的邊界感興趣,例如,他們將總是將攻擊者和受害者共同擁有的第一緩存作為目標。

? ? ? 攻擊者使用遞歸的或者非遞歸的查詢來實現攻擊。這個選擇與攻擊類型正交,依賴于受到攻擊的系統使用什么機制。我們通過假定攻擊者和受害者直連到相同緩存來簡化我們的討論。

? ? ? 有兩種方式發現緩存中存在的對象:

? ? ? (1)對緩存的非遞歸查詢,像在圖4.1(a)中顯示的那樣,僅僅用本地緩存內容應答。如果數據項沒有包含在本地緩存中,則請求超時。

? ? ? 在CCN中,非遞歸查詢通過發送范圍域設置為0的興趣包是可能的。然而,因為安全原因,這個功能可能是無效的。

? ? ? (2)遞歸查詢(圖4.1(b))總是返回查詢數據,只要它可以被在系統中的某處發現。攻擊者利用定時的輔助渠道來從系統中的存儲了這個條目的緩存的響應延遲進行推斷。這背后的假定是分布在層次結構的不同層上的緩存響應延遲是顯著的不同的,以至于攻擊者可以區分出來。

? ? ? 遞歸查詢是CCN的正常行為。因而,對這種類型的攻擊研究出應對措施更加困難。

? ? ? 非遞歸查詢不如遞歸查詢更加容易受到入侵。非遞歸查詢的緩存丟失條目后,緩存仍然是沒有修改的,然而遞歸查詢將會插入丟失條目。兩種方法為了使緩存命中,采用同樣的方法:對象在緩存中的生存時間將會增加。這種方法可用于任何查詢類型,如果重復查詢是必須的,必須采取特殊措施來確保攻擊者沒有不正確的觀察到他自己導致的狀態。

? ? ? 一個清晰的非遞歸查詢的優勢是結果是精確的。通過遞歸查詢,仍然有可能攻擊者做出了錯誤的猜測,因為響應延遲的各種變化。

? ? ? 如果攻擊者不能直接連接到受害者的緩存,他的目標是第一個共同緩存。然而,這個方法使攻擊的執行更加困難:攻擊者需要更加精確的延遲估計,必須增強算法來考慮多緩存的層次。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


4.3? 攻擊目標

? ? ? 在攻擊者開始實際的攻擊之前,他必須定義他的目標。特別地,攻擊者需要決定誰將是可能的受害者,目標是哪個應用程序或者內容。準備步驟的輸出是一個擁有興趣包名字的列表,可能的敏感內容對象。

? ? ? 當選擇受害者時,通常攻擊者也可以試著收集關于鄰居的聚集信息,而不識別任何個體。例如,他可能對知道是否某個鄰居下載一個關于怎樣制作一個炸彈的視頻感興趣,或者如果任何人正在尋找關于一個特定疾病的信息。在這種情況下,攻擊者自己搜索內容并編制一個他找到的對象名字列表。

? ? ? 或者,攻擊者以一個特定鄰居為目標,例如,知道特定用戶最后連接到了特定網站,他在特定網站上輸入了什么內容,或者他什么時候最后接聽了一個電話。為了做這些,攻擊者需要各自應用程序使用的協議的命名方案的知識。例如,如果應用程序的數據總是承載著前綴/應用程序名/用戶名/,那么攻擊者將這個前綴添加到列表中。

? ? ? 攻擊者找到在緩存中呈現內容的在隱私方面的影響極大地依賴于內容的受歡迎程度。靜態的,受歡迎內容,比如最近的音樂視頻承載著很少的攻擊者可能感興趣的信息;他有低的信息熵。靜態的,但是稀有的內容,比如恐怖分子訓練視頻泄露了鄰居的更多信息,盡管攻擊者不太可能把視頻歸結于下載視頻的人。動態的內容,比如個人web瀏覽器會話或者電話,并不通常在用戶之間共享。如果攻擊者能夠從內容本身獲取一些信息(如果內容未加密),或者從輔助渠道(比如名字或大小),那么信息熵可能會最高,因為信息是高度個人化的。

? ? ? 然而,上面描述的案例假定攻擊者在攻擊之前需要知道感興趣的名字,那么攻擊者獲得緩存內容的完整知識就更加可能。這種類型的攻擊是最有力的:攻擊者應用啟發式方法來分析數據是不受約束的。

4.4? 拓撲智能

? ? ? 在攻擊者開始實際的攻擊之前,他必須找出攻擊算法需要的緩存拓撲的基本信息:

? ? ? (1)緩存的延遲可以被用來區分是否攻擊者請求的數據項被緩存到本地,或者層次結構中的某處。

? ? ? (2)LRU緩存的特征時間是對象保存在緩存中的時間,假定它在被第一次請求后再沒有被訪問。

? ? ? 如在4.2節討論中的,對LRU緩存的探測可以修改緩存狀態。這個度量暗示著平均探測時長,給出了最小的合理的探測間隔。

? ? ? 下面,我們描述了兩個算法來測量這些特性。第一次,我們僅考慮葉子緩存,比如,在DSLAM層的緩存。

4.4.1? 延遲測量

? ? ? 如果攻擊者想要利用定時輔助渠道的延時來把回復數據包歸屬到最可能交付回復數據包的緩存,那么延遲估計是需要的。在圖4.2中描述的算法測量了攻擊者葉子緩存的延遲,算法工作在兩個階段:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

圖4.2? 測量第一個CCN緩存的延遲

? ? ? (1)在測量開始之前,攻擊者必須確定一個包含在正在測量的緩存中的任意數據項。或者,他能插入一個數據項到緩存,就像在圖4.2中步驟0中顯示的那樣。

? ? ? (2)攻擊者現在請求數據項,測量發出興趣包和進來的回復包的時間差異,攻擊者能夠重復這個步驟n次并計算這個方法和標準偏差來獲得一個更好的估計。

? ? ? 兩個連續探測之間的延遲應該足夠低來確保在此期間數據沒有被從緩存中去除。同時,延遲應該足夠高以至于可以取得一個代表性樣本(關于緩存隊列中的背景流量)。

? ? ? 使用這種延遲估計,攻擊者可以猜測是否他請求的數據被從本地緩存交付或者從其他地方獲取:讓d=平均值{d1,d2…,dn}為通過上面的算法測量的第一個緩存的平均延遲,σ標準偏差,drequest請求未知源的延遲,α是一個影響探測變量權重的參數,如果drequest>>d+α·σ,那么可以假定請求被遠程緩存響應而不是本地緩存。

4.4.2? 緩存生存時間測量

? ? ? 這一部分的目標是測量一個僅被請求了一次的項目在緩存中可以存放多長時間,如圖4.3(a)所示。Che等人稱這個時間為LRU緩存的特征時間,因為它定義了一個條目為了被保存到緩存中需要有的最小訪問頻率。擁有比較低的訪問頻率的條目,比如以比特征時間長的時間間隔請求的條目,將不會在緩存中發現,并必須從層次結構向上向遠處追溯那些緩存或者內容源。作者指出,對一個擁有類似Zipf的LRU緩存條目的流行分布和泊松請求到達過程,每個條目的特征時間能夠近似于常量,并在所有的條目中都是相同的。

? ? ? 在緩存窺探攻擊的環境中,特征時間暗示了一個攻擊者在他可以再次使用同樣的探測條目前必須等待的最小時間。如果攻擊者在特征時間過去之前再次使用這個探測條目,他冒險測量了一個他之前的請求導致的狀態。

? ? ? 為了測量緩存對象的生存時間,攻擊者使用那些保證只被他自己使用的條目。這能夠通過使用串通內容源,或者通過生成其他擁有唯一名字的條目來獲得。為了核實一個給定的生存時間猜測,攻擊者首先請求一個條目,并把它插入到緩存,一段時間之后,如果條目仍然在緩存中,則核實了這個給定的生存時間。

? ? ? 我們建議的測量算法工作在兩個階段,第一,以指數方式增加的猜測被用來找到緩存生存時間的上界,第二,嵌套間隔技術被用來改善猜測。

? ? ? 具體的算法工作如下:

? ? ? 初始化:設置tmin=0,tmax→∞,i=0。使用t0>0,β>1,0<γ<1,n∈N+為固定值,但是算法中可協調的參數。

? ? ? 找出上界:向緩存插入新條目,在時間ti后請求條目,如果條目不再在緩存中,設置tmax=ti,i=i+1,并跳轉到算法的下一步。否則,設置tmin=ti,ti+1=β·ti,i=i+1,重復這一步。這個過程如圖4.3(b)所示。

? ? ? 改善估計:向緩存插入新的條目,在時間ti=tmin+γ·(tmax-tmin)后請求條目,如果條目不再在緩存中包含,設置tmax=ti,否則,設置tmin=ti,增加i,重復這一步直到達到預定義迭代次數n,圖4.3(c)顯示了兩次迭代。

? ? ? 開始值t0可以被設置為特征時間的粗略估算,β定義猜測值在初始階段增加得多快,γ定義哪個間隔點將會被下一次探測。因為算法的目標是找到上界,我們使用γ=0.75。對其他參數,我們使用t0=1s,β=2。迭代次數n可以用實驗方法定義。或者,這個停止條件可以用多次迭代的間隔之間的最小改變來替代。

? ? ? 有幾種算法改進的方式。第一,可以通過緩存命中后不插入新條目來加速算法,因為LRU的特性,觀察命中時間等于插入時間是足夠的。第二,通過一些猜測的并行探測,順序算法可以被更大加速。對一個非常長的特征時間,這可能是有用的。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(a)插入到緩存中的條目的生存周期。插入條目和驅逐條目之間的時間叫做特征時間。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (b)找出特征時間的上界

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (c)改善特征時間間隔

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖4.3? 估算緩存的特征時間

? ? ? 延遲和特征時間估算算法都能夠被增強到層次結構的上層目標緩存:如果緩存使用LRU,僅當高層緩存的特征時間比低層緩存的特征時間高時,層次結構是有意義的。在這個假設下,一旦條目從葉子緩存中驅逐出去,一段時間之內,高層緩存中條目仍然可用,因此探測算法以層次結構中的下一個緩存為目標。通過觀察響應延遲,不同的緩存可以被區分。我們把這個優化處理作為未來的工作。

4.5? 攻擊I:列出緩存內容

? ? ? 這個攻擊允許攻擊者顯示什么條目正在被緩存的客戶群體請求。攻擊者可以以多種方式使用這個信息:

? ? ? (1)他可以推測用戶群體中的某人請求了一個可能敏感的條目。這或者可以通過手動的檢查請求對象,或者通過與以前建立的敏感內容列表做比較來獲得。例如,這樣一個列表包含揭示政治觀點或健康狀況的頁面或者視頻。

? ? ? (2)攻擊者可以分析客戶使用什么協議來為后續攻擊做準備。例如,他可能正在尋找易受輔助渠道攻擊的會話,并為會話克隆攻擊做準備,這將在4.7節介紹。

? ? ? CCN定義了一個名字枚舉協議,目的是持續的內容存儲(倉庫),而不是緩存。因為這個原因,這個協議不可能實現在路由器緩存中。下面,我們描述一個替代算法,算法列舉了CCN緩存中的內容,通過遞歸地排除之前看到的名字。

? ? ? CCN使用前綴匹配,這意味著攻擊者不需要猜測全部的條目名字來從緩存中獲取響應。此外,CCN興趣包允許為名字組件指定一個列表(或者布隆過濾器),名字組件可能不在緩存返回的條目中包含。把這兩個特征組合起來,這兩個特征允許攻擊者遞歸地探測緩存內容:第一,攻擊者請求一個任意的條目,然后他成功地發送請求包,請求之前在排除列表上傳送的條目。詳細算法工作如下:

? ? ? (1)輸入p=/p0/p1/…/pi/,名字空間前綴將被探測,初始化設置E=0,作為排除名字組件的集合。

? ? ? (2)用p和E發送興趣包到緩存。如果發生緩存丟失,算法終止。對一個響應數據包,讓n=/n0/n1/…/nj為響應的名字,j>=i,p0=n0,p1=n1,…pi=ni。如果j>i,對于任意e∈E:ni+1≠e。換句話說,響應是一個任意的以p作為前綴的緩存條目,E中沒有元素作為第i+1個名字組件。攻擊者現在設置E=E∪{ni+1},并重復這個步驟。

? ? ? 算法終止后,E包含所有的名字組件,這個組件擁有前綴p,在第i+1層緩存中可用。對一個指定的(或所有的)e∈E,通過重復前綴為p=/p0/p1/…/pi/e/的算法,攻擊者可以更遠地探測到緩存。例如,為了探測整個緩存,攻擊者以p=/開始,在算法各自的實例中,對所有的e∈E,遞歸地重復算法。(這個算法的一個相似版本以命令ccnls實現,這個命令在CCNx原型中提供。)

? ? ? 這個算法的一個缺點是必須下載數據對象,因此攻擊可能會太慢,以至于不能獲得一個大的緩存的一致的快照。然而,探測有限的子空間可能被證明是有用的。

4.6? 攻擊II:探測特定名字

? ? ? 在這部分概述的攻擊假定攻擊者知道他想要觀察的名字。我們首先描述一個算法,探測緩存中一個條目的任意精度的插入和驅逐時間(4.6.1節):周期性地探測緩存能夠被用來及時地探測對一個給定條目的可訪問性。例如,攻擊者可能對一個用戶的所有語音通話事件的日志記錄,或者一個用戶的登錄事件,比如登錄Facebook感興趣。此外,這個信息允許攻擊者推斷觀察的條目的請求頻率(4.6.2節)。

4.6.1? 插入和驅逐時間檢測

? ? ? 單一的對緩存的探測請求顯示了條目是否被最近緩存。然而,通過單一探測,攻擊者僅能窺探到過去最多tc的特征時間:如果條目被最近緩存(或者沒有緩存),攻擊者僅僅知道在過去的tc時間單位里,至少有一個請求(或者沒有請求)。特別地,攻擊者不能確切知道一個條目什么時候被加到緩存,什么時候被驅逐。

? ? ? 通過探測至少tc個時間單位,周期性地探測相同的條目存在精確度限制,因為攻擊者的探測能夠在tc的時間單位里改變緩存狀態。在基于磁盤的緩存中,tc可能以小時或天的順序增長,這將使攻擊不現實。此外,測量緩存的特征時間的不確定性可能會很高,這將會有相同的結果。

? ? ? 然而,CCN把大的文件分割成小的編號的塊。訪問第一個文件塊的客戶很可能也訪問后續的塊。相似地,攻擊者可能能夠識別有差別的但總是被同時請求的條目,比如嵌入web頁面的圖片。(為了簡化,我們假定所有這樣的塊被精確地以同樣的時間請求。)攻擊者能夠利用這些條目的存在性,通過并行地請求塊來增加探測頻率并通過希望的探測間隔來轉移。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

圖4.4? 三個塊的并行探測

? ? ? 讓tc為緩存的特征時間,存在測量特征時間的不確定性,tp為攻擊者希望的探測間隔。執行攻擊所必需的塊的數量是 ,圖4.4闡明了這個攻擊。他讓攻擊者在tc的精確度的缺少(和探測的時效性,如果至多在tc時間內可以發生一個訪問),和必需的攻擊流量和塊的數量之間做權衡。

? ? ? 對擁有小的tc的緩存,和大數量的塊來說,攻擊者可以設置tp為一個較小的值來獲得對緩存條目插入和驅逐時間的一個精確估計。像我們在下一節顯示的那樣,這個數據可以被用來推斷觀察條目的請求頻率。

4.6.2? 推斷訪問頻率

? ? ? 在4.1節討論的相關工作提出了算法來推斷一個沒有被緩存的DNS條目的訪問頻率。存在DNS和CCN緩存的一些不同,因此這些算法需要被修改:

? ? ? (1)DNS緩存條目的生存時間總是不變的,然而在LRU緩存中,生存時間依賴于命中數量。

? ? ? (2)我們不能對一個被緩存的DNS條目的訪問數量做任何假設,然而在LRU緩存中,通過緩存的特征時間劃分條目的生存時間可以給出一個下界。此外,如果LRU緩存驅逐了一個條目,很清楚這個條目在至少一個特征時間內沒有被訪問。

? ? ? (3)推斷一個DNS對象從任何緩存命中開始確切的緩存插入時間是可能的,然而在CCN中是不可能的。

? ? ? 因為這些特征,僅當與在之前的部分中所描述的相似的一個并行探測算法能夠被執行,這種攻擊在CCN中才是可能的。這意味著探測條目的訪問頻率可能不會太高。特別地,如果訪問頻率高于tc-1,攻擊是不可能的,其中tc是緩存的特征時間。為了克服一個非常低的訪問頻率,幾個測量算法實例可以被并行執行,使用單獨的塊集合,來在一個合理的時間獲得足夠數量的例子。

? ? ? 下面,我們假定緩存插入和驅逐時間已經被測量。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

圖4.5? 測量LRU緩存中的請求頻率

? ? ? 圖4.5顯示了在一個LRU緩存中的緩存對象的時間軸。每個對象的緩存實例在tins,i被插入,在tev,i被驅逐,這些是攻擊者僅僅已知的時間。

? ? ? 每個請求從請求時間起,延遲了tc的驅逐時間。然而,僅僅從tins,i到tev,i,攻擊者不能確切推斷在這個時間間隔內多少請求會發生:下界是 ,沒有上界。而且,如果對象在兩個連續的請求的時間間隔之內被驅逐,攻擊者可以推斷這個時間間隔:tgap,i=tins,i+1-tev,i+tc。如果存在大數量這樣的間隔,攻擊者可以像下面這樣計算整個的請求頻率:λ≈mean(tgap,i)。

? ? ? 在這個討論中,我們忽視了在確切的相同時間里沒有被請求的塊的作用和測量插入和驅逐時間可能的不精確性。未來工作應該研究這些怎樣影響請求頻率估計的精確性。

4.7? 攻擊III:克隆會話

? ? ? 緩存保存了一個短時期內在用戶之間交換的所有內容的一份拷貝。因為緩存不強制執行任何訪問控制策略,任何知道數據項名字的用戶可以從緩存中獲取這份拷貝。

? ? ? 在兩個用戶之間的數據交換,或者會話,可以被攻擊者拷貝或者重新組裝,如果他找出屬于相同交換的條目的名字,并且可以決定條目在會話中的序列號。例如,Voice-over-CCN原型在打電話過程中的語音數據交換過程中使用命名方案/domain/user/call-id/rtp/sequence-number。一旦攻擊者知道特定電話實例的前綴,比如/telefonica/alice/1234/rtp,攻擊者可以用一個增長的序列號來請求這些名字,來獲得和重新組裝聲音數據流的一份拷貝。

? ? ? CCN通過加密實現了訪問控制。也就是說,每個人可以獲得密文的一份拷貝,但僅僅授權的設備擁有可以解密密文的密鑰。然而,即使加密的數據負載也可能通過輔助渠道泄露信息。一個輔助渠道是像條目名字一樣的元數據。因為VoCCN沒有加密名字和序列號,上面描述的克隆攻擊很容易實施。

? ? ? 在文獻中,Wright等人描述了怎樣為短語集合的出現檢查加密的VoIP會話。如果會話用可變比特率的編碼解碼器和一個可以保存長度的流密碼編碼,攻擊就是可能的。結果是加密的包大小依賴于在抽樣時間間隔內的語音輸入(音素)。使用包大小起因于編碼目標短語發音的雙音或者三音,作者扼要描述了Hidden Markov Model來生成一個這個短語的說者獨立的模型。當試著用這個模型匹配一個觀察到的會話時,他們檢測到了這個短語的實例擁有平均50%的準確率和召回率。作為應對策略,作者建議填補這個包到一個恒定的尺寸,這將是一個非常有前途的方法。

? ? ? VoCCN原型使用恒定大小的數據包。還不清楚是否這個行為來自填補,或來自發送數據消息,僅當足夠的數據被積累到流出緩存來填補整個的消息。后者,消息間的延遲輔助渠道將會保持。然而,在這一章中假定的場景中,利用這樣的輔助渠道將會非常有挑戰性,在這一場景中,消息必須從緩存中提取。原因是從緩存中獲取的條目沒有顯示它什么時候被插入。攻擊者必須通過周期地探測實時地找出這個信息。然而,這個精確性需要實施一個成功的輔助渠道攻擊,這大約需要毫秒級,還不清楚這樣的精確性是否在實際中可以達到。

? ? ? S.Chen等人描述了一個與SSL或者WPA/WPA2-encrypted web流量相似的攻擊,兩個協議都使用不填補包的流密碼,以至于加密消息在大小上不同。通過比如Ajax這樣的技術,web應用程序經常對單個用戶輸入作響應,比如鼠標點擊或者擊打鍵盤。因為這個,用戶輸入有低的信息熵,攻擊者能夠枚舉所有可能的輸入,對每個可能輸入,通過應用程序響應數據包的大小進行直接測試,和受害者實際接收到的響應數據包作比較。在比較中可能存在一些歧義性,因為一些消息可能有相同大小。然而,與web應用程序的通信是狀態化的,這意味著這個歧義性在會話后面的步驟中可能會被減少:一個應用程序觀察到的狀態限制了可能的過去狀態的集合。作者顯示了一個健康的服務怎樣泄露醫療條件,一個搜索引擎的關鍵字,收入范圍的納稅申報表格,一個投資應用程序里用戶做出的資金分配。作者認為應對措施必須是針對特定應用程序的。作為一個廣義的應對策略,填補似乎并不吸引人,因為它可能需要512B的包大小來徹底地為攻擊者減少信息熵和效用。同時,應對措施的網絡負載將達到幾乎33%。

? ? ? 因為還沒有建議作為在CCN上的通信協議被用于類似web的應用程序,我們不可能陳述是否這樣的實現更容易遭到這種類型的攻擊。然而,我們把通過預先識別可能的攻擊而用安全方式設計這樣的協議看作一個機會。

4.8? 應對策略

? ? ? 對這個緩存窺探攻擊的應對策略可以分為兩類:攻擊應該通過技術措施來防止,一旦攻擊發生,將可以被檢測到,并在真實世界中可以采取應對措施。

防止

? ? ? 應該通過采取下面的措施防止攻擊者發現緩存內容:

? ? ? (1)CCN的內置緩存枚舉協議不應該在緩存中實現。

? ? ? (2)為了防止通過使用前綴匹配和排除功能列出緩存內容,協議規范應該被改變來使數據對象詳細說明排除功能可以操作他們名字的哪一部分。以這種方式,內容對象(和更多在CCN頂層的普遍的通信協議)含蓄地定義了名字的哪一部分包含敏感信息,并必須被提前知道。

或者,排除功能可能是禁用的,內容發現的責任應該被轉移到協議棧的另一層,在這里內容發現可以被更好地確保。

? ? ? (3)此外,前綴匹配可能被限制到一個未匹配組件的最大數量,這意味著攻擊者必須知道名字的大部分。

? ? ? (4)如果路由器中的緩存空間是基于每個用戶來劃分的,攻擊者不能容易地獲取其他用戶檢索的數據的信息,因為每個用戶僅僅可以訪問他們自己的緩存部分。然而,整個的命中率將極大地遭受這樣一個設計,實際的方面,比如用戶標識和路由器的額外狀態使應對措施不太可能被采納。

? ? ? 為一個給定的名字探測緩存的攻擊可能以下面的方式更難實施:

? ? ? (1)首先,非遞歸查詢應該被接入路由器忽視。

? ? ? (2)如果CCN在UDP上建立隧道,路由器應該接受僅來自直接鄰居的查詢。也就是說,用戶應該僅能夠訪問他們自己的接入路由器,而不是中間的或者根路由器。

? ? ? (3)為了避免基于時間的攻擊,CCN接入路由器可以強制執行一個最小的響應延遲。這個延遲應該對在層次結構中一個路由器的往返時間作響應,這個層次結構有足夠大量的用戶,以至于在這個緩存中檢測隱私含義的命中率很低。換句話說,如果攻擊者檢測到緩存命中,那么至少k個用戶已經請求了這個條目。因為CCN接入路由器強制執行對緩存命中的響應存在延遲閾值,攻擊者不能改善這個近似值到少于k個用戶。(這個響應針對k-匿名的概念。)然而,這種方法僅在內容對象中所有其他的輔助渠道都已經關閉的情況下才工作,例如,內容對象自身不泄露誰可能請求它的信息。這個請求通常很難滿足,因為輔助渠道列表可能是開放式的。

? ? ? 強制執行最小的請求延遲以保持帶寬節省可以通過緩存獲得,但是它在可能的延遲減少和高層隱私方面做權衡。此外,接入路由器中可能會存在另外的狀態來維持定時器。需要注意這個路由器上應對措施的實現沒有引進新的輔助渠道或者攻擊機會。

? ? ? CCN頂層的應用程序應該阻礙了克隆會話:

? ? ? (1)面向會話的協議需要序列號來獲取會話的下一個條目。如果編號方案對攻擊者未知,例如因為名字的序列號部分用密鑰加密,重建會話將會更加困難,甚至不太可能。

? ? ? (2)如果名字與隱私相關的部分不能被加密,命名方案應該至少使攻擊者猜測名字變得不可能。例如,依據這個方案,名字可能為/application-prefix/random-number/further-parameters/。如果排除功能和前綴匹配功能不允許隨機數構件,攻擊者必須從其他源找出隨機數來獲取數據項。

? ? ? (3)動態會話的內容交換應該承載一個非常低的終結時間。當前,CCN緩存允許返回老化時間。這個行為應該被禁止來減少攻擊者可以執行攻擊的時間幀。如果個人數據是動態的,它將被從緩存中很快地驅逐出去,追溯攻擊變得更困難,因為攻擊者必須與受害者的會話同時執行攻擊。

? ? ? (4)最后,不太可能被共享的內容緩存可以禁用。當個人網站瀏覽會話和打電話結束以后,這些會話會失去很多價值。如果緩存整個都被禁用了,攻擊者將不再能從緩存中獲取內容,必須后退到經典的嗅探攻擊。為了這個目的,內容對象可能設置一個“不要緩存”位。在所有的處理和轉發完成后,路由器應該從緩存中立即驅逐這樣的條目。

檢測

? ? ? 如果攻擊不能被防止,它至少應該被檢測到。在這一章中描述的攻擊有下面一些典型的特征:

? ? ? (1)當攻擊者正在探測一個已知名字的時候,接入路由器可能周期性地探詢相同的接入鏈路。

? ? ? (2)相似地,獲得緩存的快照包括在短時間內以一個非常高的命中率和對緩存中的響應命名空間的高覆蓋來查詢大量的條目。

? ? ? (3)克隆會話導致到達路由器的一系列包被轉發到兩個目的地(輸入內容:從上行鏈路到兩個接入鏈路,輸出內容:從一個接入鏈路到上行鏈路和攻擊者的接入鏈路)。

? ? ? 然而,檢測需要依賴啟發方法。在這個環境中,我們看到誤報的一個大的可能性:下載一個大的緩存文件,這個文件中的許多塊可能被當作緩存快照攻擊被弄錯,多播協議,比如多方通訊視頻會議看起來與克隆攻擊相似。此外,我們認為啟發式方法可以通過非常隱秘的攻擊被規避,這個攻擊僅僅停留在探測閾值以下。我們將具體的探測算法留作未來工作。

4.9? 結論

? ? ? 在這部分,我們討論:

? ? ? (1)怎樣測量緩存拓撲的特征:為下面的攻擊做準備,緩存的延遲和特征時間是必需的。

? ? ? (2)攻擊者怎樣獲得緩存內容的快照。

? ? ? (3)攻擊者怎樣模擬對鄰居內容的訪問。

? ? ? (4)怎樣克隆會話來在其上實施輔助渠道攻擊。

? ? ? 我們建議下面的應對措施:

? ? ? (1)使CCN查詢有更少的表現力。

? ? ? (2)打開隱私和效率之間的權衡:我們建議保持緩存提供的帶寬節省,而去限制被強加在人工低延遲邊界的延遲獲取,來隱藏是哪個緩存響應了查詢。

? ? ? 未來的工作應該顯示出上面的攻擊是可行的,擁有合理的攻擊流量需求和算法準確性的調查研究。我們的工作可以被擴展到在體系結構的不同層支持緩存,和把快速RAM和低速磁盤結合起來實現對緩存的支持。最后,我們的應對措施的影響和效率應該被調查研究。

? ? ? 下一章,我們評估測量緩存特征時間的算法。

?

?

5.? 評估

? ? ? 在這一章,我們總結我們對緩存窺探攻擊的評估的第一個結果。在之前章節里討論的所有類型的攻擊都是基于對特征時間tc的至少是近似值的了解。特征時間定義了通信軌跡在緩存中存活多長時間,例如,攻擊者能夠回頭看多遠,導致他必須以什么頻率探測。因此,作為第一步,我們把我們的評估集中在特征時間上。

? ? ? 在前面的部分,我們假定一個LRU緩存的特征時間是常量。然而,如果工作負載改變,這個假定就不正確了。即使對靜態不變的工作負載,僅僅在長期的情況下這個假設才是正確的。評估的目標是來決定特征時間的數量級,并找到它在什么范圍變化。一旦特征時間是已知的,我們可以減少攻擊者為了監視所有對一個給定內容對象的訪問需要發送的流量。此外,我們想要評估測量特征時間的算法多長時間收斂,并且特征時間的估計值多么精確。兩個結果放在一起,顯示了緩存窺探攻擊的可行性。

? ? ? 作為評估場景,我們選擇DSLAM作為類似Youtube視頻流量的緩存。我們假定攻擊者對監視一個特殊視頻的所有訪問感興趣。5.2節包含這個場景的具體細節和我們使用的工作負載。

? ? ? 對我們的評估來說,我們決定在模擬環境中實現CCN的一個簡化版本。盡管真實世界的試驗臺可以提供給我們更加現實的結果,得到硬件和實現類似的能夠執行CCN的用基于主存的幾GB的緩存來以每秒幾百MB的速度操作的軟件是相當困難的。

? ? ? 在5.3節,在我們討論完我們的模擬結果之后,我們在5.4節得出實行攻擊必要的攻擊流量的大小。

? ? ? 這不應該作為一個完整的評估,而應該是一個我們計劃在未來工作中研究內容的暗示。實際上,我們打算量化像CCN這樣的體系結構利用他的用戶所帶來的隱私丟失的數量,相比較于其他體系結構,或者CDN。我們將在5.5節詳細描述更多的未來工作。

5.1? CCN模擬器

? ? ? 我們的CCN模擬器是用Python語言寫的,他模擬下面的組件:

? ? ? (1)客戶請求和接收數據。他們用來生成背景流量或者執行測量算法。

? ? ? (2)興趣包和數據塊用單獨的獨立的單元實現。也就是說,前綴匹配和查詢沒有被實現。客戶必須知道將要獲取的數據的確切名字,必須知道把哪些塊合成整體來形成單獨的文件。興趣包和數據塊假定分別為100B和4KB的恒定大小:這相當于一個擁有中等名字長度的興趣包,和一個在CCNx原型中使用的默認大小的數據塊。

? ? ? (3)鏈路施加在所有在其上傳輸的興趣包和數據塊上的傳輸延遲作為他們尺寸的一個功能。然而,鏈路并不實現傳播延遲或者數據丟失:對我們預想的本地ISP的場景,這些能夠被忽略。

? ? ? (4)路由器擁有有限大小的以LRU為替換策略的緩存。路由器也使用PIT表來聚合興趣包。每個鏈路有一個單獨的無限的隊列,并且所有鏈路能夠同時操作。路由選擇沒有實現,而以每個興趣包在默認的上行路徑上轉發為替代。也就是說,路由器總是形成樹狀層次。

? ? ? 內容源在路由器層次結構的頂層。我們假設所有的內容可用,因而對每個進來的興趣包有響應的數據塊作響應。

5.2? 場景

? ? ? 在這個評估里,我們假設一個DSLAM的場景,這個場景擁有一個對視頻內容的CCN的緩存。一個DSLAM場景典型地有大約1000個用戶(例如法國的Free)。我們假定在視頻服務的擁擠時段,10%的用戶在同時看視頻:他們以2Mbit/s的速度下載整個視頻,并在下載的同時觀看視頻(或者更長點,如果下載結束早于視頻播放),一旦用戶觀看完第一個視頻,他們將開始下載下一個視頻。

? ? ? 被客戶下載的視頻相當于在2007年1月15日獲取的類似Youtube科學和技術類別,在文獻中有更加詳細的分析。痕跡包括視頻ID,以秒計的視頻長度和瀏覽量。我們排除了6個時長超過1天的視頻,保存了剩下的252249個視頻。我們轉換每個視頻的瀏覽量為相對的流行度,通過假設384kbit/s的恒定比特率編碼來計算文件大小。圖5.1(a)顯示了每個視頻的重對數尺度CCDF瀏覽量。像文獻中注解的那樣,直線部分的數量級標志著冪次定律的流行度。圖5.1(b)顯示了CCDF以秒計的視頻長度,是一個簡單的對數規模;分布規律出現了一個輕微的尾部。因為每個客戶一看完一個舊的視頻,就請求一個新的視頻,視頻長度的分布等于客戶請求到達過程的到達時間間隔分布。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(a)視頻流行度CCDF?? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (b)視頻長度CCDF

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖5.1? 在Youtube科學技術分類中視頻的流行度和長度

? ? ? 對這個仿真來說,我們假定沒有瓶頸,例如DSL鏈路和DSLAM上行鏈路有充足的帶寬(分別為3Mbit/s和500Mbit/s),鏈路上沒有交叉流量,而僅有視頻流量。每個DSL鏈路可以直接訪問到緩存,在各自的鏈路卡片上有單獨的隊列。緩存有2500000塊的容量(每個塊4KB),這導致接近9.5GB的緩存大小。

? ? ? 在仿真期間,所有的100個客戶持續不斷地下載和觀看視頻。6個小時填充緩存的預熱時間之后,在另外的10個小時中,我們開始測量。我們重復整個的實驗5次來計算95%的置信區間。

5.3? 評估結果

? ? ? 在測量期間,路由器可以以平均值19.63%用本地緩存滿足所有接收到的興趣包(±0.64點,95%的置信區間)。因此,超過38Mbit/s的數據轉移到客戶端,僅僅30.54Mbit/s從內容源獲取。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

圖5.2? 從緩存中驅逐出的每個對象的命中數量的CCDF

? ? ? 對從緩存中驅逐出的所有數據項,我們研究在他們插入之后,經歷了多少讀訪問,所有項目的89.39%(±0.36點)被驅逐出去而沒有任何命中,然而10.61%有至少一次命中,所有被驅逐項目中的7.08%(±0.18點)有確切的一次緩存命中。圖5.2為被驅逐項目的一次模擬軌跡繪制了命中率CCDF,其他軌跡高度相似。


圖5.3? 緩存特征時間的CDF

? ? ? 為了決定緩存的特征時間,我們分析在最后讀訪問和從緩存中驅逐項目之間的時間跨度的長度。圖5.3繪制了在5個模擬運行中,這個時間跨度平均值的CDF和95%的置信區間。理想地,曲線在特征時間點有一個垂直直線的形狀。這個實際觀察的樣本與期望在兩方面不同:

? ? ? (1)曲線為s形狀(第三象限和第一象限之間的差別是149s)。這意味著特征時間隨著時間不是常量。中間的特征時間是2544s或者42.4分鐘。

? ? ? (2)置信區間顯示了甚至(稍微)不同的工作負載的CDF曲線也有差別。例如,在中值附近,95%的置信區間是±94s(中值的3.7%)。


圖5.4? 特征時間的測量算法過程

? ? ? 我們執行我們的算法來測量特征時間,像在4.4.2節中定義的那樣,來找出如果特征時間不是常量,算法將怎樣執行。圖5.4顯示了在一個特殊的模擬運行中,能夠在10小時的測量時間內完成的17次迭代。在前6次迭代中,算法使用類似慢開始機制來找到特征時間上界。初始猜測為60s,這個值在每次迭代中翻倍。在第7次迭代時,2.1小時的執行時間之后,找到了上界。從那之后,算法發送的下一次探測是γ=75%的當前已知間隔寬度。這個行為的原因是在緩存窺探攻擊中,僅僅上界是感興趣的。

? ? ? 如圖5.4中所示,算法聚集到一個估計特征時間,該特征時間存在于模擬器運行的中位數之上4.4%(也存在于95%的置信區間之外)。我們用特征時間的臨時變量來解釋這個行為。

? ? ? 要得到一秒的觀察,算法需要很長時間來完成。總共6.1小時的執行時間之后,12次迭代完成,8.3小時之后,15次迭代完成,9.8小時之后,17次迭代完成。這是一個具有高特征時間的結果,算法嚴格順序地工作。

? ? ? 遵循著這兩個觀察,測量算法能夠以兩種方式改進:第一,它可以通過并行步驟加速,例如,通過同時插入許多項目,通過在增加的時間間隔內請求他們來在更少的時間獲得更大范圍的樣本。接近第一個特征時間的猜測也能夠加速執行。第二,攻擊僅僅需要對特征時間上界的估計。因此,γ值可以被增加得更多來支持上界。此外,在攻擊的過程中,如果攻擊者的上界值仍然是有效的,攻擊者應該持續不斷地監聽,并且如果需要,增加上界值。

5.4? 攻擊流量

? ? ? 高特征時間的結果是攻擊者為了持續監視給定對象的所有訪問需要的攻擊流量是非常低的。在理想情況下,例如,常量特征時間tc,攻擊者需要每tc+ε秒探測一次,選擇ε>0以至于攻擊者探測之前他插入的項目沒有命中。沒有探測一個訪問的可能性是

? ? ? 在真實的條件下,情況更加復雜。像在圖5.3中看到的那樣,特征時間不是常量,它可能隨著時間變化。這個事實使得對探測間隔選擇變得復雜:假定攻擊者已經在時間t1測量了瞬間特征時間tc,在時間t2>>t1發送了探測。在tc時間過去之前,通過每tc的時間探測一次,攻擊者可能丟失被從緩存中驅逐出的項目,如果實際的特征時間同時減少(假陰性)。如果探測間隔短于特征時間,因為之前攻擊者發送的探測請求,項目可能仍然被緩存(假陽性)。

? ? ? 像我們在4.6.1節中描述的那樣,攻擊者可以并行地探測幾個塊來克服特征時間的不精確測量。以同樣的方式,并行探測可以被用來容忍特征時間的變化。為了算法的成功,需要有一個特征時間的上界,例如,在一個延遲之后,攻擊者可以確保一個請求的條目如果沒有更多的請求將會被從緩存中驅逐。此外,攻擊者需要相同時間請求的相同文件的許多塊。文件的數量依賴于測量特征時間的不精確(或者依賴于特征時間的變化)。

? ? ? 對我們在評估中假定的視頻負載,選擇的編碼相當于每秒96塊。對少數量的連續塊,塊的請求時間幾乎相同,并行探測攻擊可以被實施。例如,如果攻擊者假定特征時間的上界是60分鐘,并使用四分之一的視頻塊作為并行探測,作為結果的探測頻率是每15分鐘一個請求。從圖5.3,我們可以看到沒有后續請求的項目60分鐘之后沒有停留在緩存中,沒有項目在最后一次讀訪問的15分鐘內被驅逐。假定這個分布沒有明顯改變,假陰性率和假陽性率都將是0。如果每個興趣包以一個最大大小的數據塊回復,攻擊流量相當于至多4*(100B+4096B)/1h=37.3bit/s。我們認為這個攻擊需要的攻擊流量很低,以至于對攻擊者持續不斷地監視大量不同對象的訪問是十分可行的。

5.5? 結論和未來工作

? ? ? 在這一章,我們已經顯示了估計緩存的特征時間是可行的。然而,如果特征時間很高,完成測量需要花費很長時間。未來工作的目標應該是減少測量算法的執行時間。此外,持續不斷地監視和更新特征時間的估計機制需要特征時間的臨時變量。

? ? ? 使用Youtube視頻的場景,我們已經評估了攻擊者需要持續不斷地監視和檢測多少流量,如果100個活動用戶中的任何人觀看了一個特殊的視頻:對最小長度為4/96s的視頻,攻擊流量至多37.3bit/s,在沒有假陽性和假陰性的情況下。

? ? ? 在未來的工作中,我們計劃比較不同的體系結構,比如CCN和CDN。當緩存放得更靠近端用戶的時候,我們想要量化出現的隱私丟失。例如,對一個CDN結點的命中檢測可能被整個城市的任何用戶的一個請求引發,然而,在DSLAM緩存中的命中意味著一千個鄰居中有一個鄰居請求了數據。

?


6.? 結束語

? ? ? 在這篇論文中,我們分析了CCN體系結構在網絡安全方面的影響。我們識別了幾種與緩存相關的攻擊,我們評估如果攻擊者想要檢測每個客戶對一個特殊內容對象的訪問,他需要多么經常地探測緩存。我們的工作允許我們得出下面的結論:

? ? ? (1)CCN提供比現在的網絡更好的內容安全,針對內容提供者的拒絕服務攻擊更難實施。

? ? ? (2)盡管CCN改善了因特網的傳統安全問題,它的更為先進的體系結構引進了新奇的攻擊機會:

? ? ? 1)依據每個通訊的狀態和計算量,CCN路由器更加強大。這個特征允許新的針對路由器的拒絕服務攻擊。

? ? ? 2)多用途的緩存能夠在每個網絡設備上部署。普遍存在的緩存危及用戶的隱私,因為他們的通訊遺留了(短暫的)痕跡。

? ? ? (3)緩存窺探攻擊使攻擊者能夠用非常小的攻擊流量來監視鄰居正在獲取的內容對象(在Youtube-DSLAM場景中以37.3bit/s的速率獲取)。

? ? ? (4)緩存意味著在網絡效率和通信隱私之間的權衡。

? ? ? 針對緩存窺探的應對策略的研發是有挑戰性的,因為他們需要仔細地考慮這個權衡:用戶隱私的極好保護將會阻止緩存。作為折衷,我們建議在接入路由器上引進一個人工最小查詢延遲。需要更多的研究來決定在效率和隱私方面這個應對策略多么有效。我們相信這個權衡在設計未來的網絡體系結構中是一個重要的關心方面。

? ? ? 已經報告了這樣的攻擊機會,我們計劃在未來的工作中量化比如CCN的體系結構利用它的用戶使得隱私丟失的數量,并和其他體系結構和CDN做比較。

?

?

術語

? ? ? Botnet:僵尸網絡。被一個僵尸主控機控制的一系列妥協機器組成的網絡,能夠被用作協同攻擊。

? ? ? Characteristic Time:特征時間。對LRU緩存中一個條目的最后一次訪問到條目被從緩存中被驅逐出去之間的時間。

? ? ? Content Distribution Network (CDN):內容分布網絡。一個機器的集合,這些機器用來服務位置靠近用戶的內容,例如提供對提供者網絡的訪問。用作負載均衡,加速內容交付。

? ? ? Denial-of-Service (DoS):一個以使受害者對請求不可用,或者相當大地減慢響應速度為目標的攻擊。可能的受害者包括內容提供者,網絡鏈路和路由器。分布式拒絕服務攻擊利用在攻擊者控制下的許多機器的聚合帶寬,例如僵尸網絡。

? ? ? Dictionary Attack:字典攻擊。給出一個功能的鏡像,功能不會被輕易逆轉。預計算一列(有趣的)值和他們的響應鏡像(字典)。從這個列表中比較那些觀察到的鏡像來找出原象。

? ? ? Forward Interest Base (FIB):轉發興趣包表。是一個為了做出轉發決策存在于CCN結點上的數據結構,與路由表相似。見第3頁的2.1節。

? ? ? ISP:因特網服務提供商。在這篇論文中,絕大多數指的是為端用戶提供網絡訪問的提供者。

? ? ? LRU:最近最少使用緩存替換策略。最長時間沒有被請求的條目被從緩存中驅逐出去。

? ? ? Pending Interest Table (PIT):CCN結點上的數據結構,為保存過去已經被轉發的興趣包的記錄。見第3頁的2.1節。

? ? ? Replay attack:重放攻擊。攻擊者記錄一個授權的源發送的數據,在一個之后的時間點再一次發送數據。例如,如果內容源在時間t0以“內容不可用”回復,攻擊者可能在t1>>t0時重放攻擊,使得受害者相信內容仍然不可用,盡管可能已經不是這個情況了。

? ? ? RTT:往返時間。

? ? ? Sniffing:嗅探。監聽一個會話,例如在無線鏈路上捕獲所有的流量。

? ? ? Snooping:窺探。向緩存發送請求來找出內容的信息。

? ? ? Spoofing:欺騙。提供虛假信息,例如在一個IP包中虛假的發送者地址。

?

?

參考文獻

[1] B. M. Leiner, V. G. Cerf, D. D. Clark, R. E. Kahn, L.Kleinrock, D. C. Lynch, J. Postel, L. G. Roberts,

and S. Wolff, “A brief history of the Internet,”SIGCOMMComputer Communication Review, vol. 39,

no. 5, pp. 22–31, 2009.

[2] C. Labovitz, S. Iekel-Johnson, D. McPherson, J.Oberheide, and F. Jahanian, “Internet inter-domain

traffic,” in SIGCOMM, S. Kalyanaraman, V. N.Padmanabhan, K. K. Ramakrishnan, R. Shorey, and

G. M. Voelker, Eds. ACM, 2010, pp. 75–86.

[3] Cisco Systems, Inc. (2010, Jun.) Cisco visualnetworking index: Forecast and methodology,

2009–2014. White Paper. [Online]. Available:http://www.cisco.com/en/US/solutions/collateral/

ns341/ns525/ns537/ns705/ns827/white_paper_c11-481360.pdf

[4] J. Rexford and C. Dovrolis, “Future Internetarchitecture: clean-slate versus evolutionary research,”

Communications of the ACM, vol. 53,no. 9, pp. 36–40, 2010.

[5] V. Jacobson, D. K. Smetters, J. D. Thornton, M. F.Plass, N. H. Briggs, and R. L. Braynard, “Networking

named content,” in CoNEXT ’09: Proceedings of the 5thinternational conference on Emerging

networking experiments and technologies. New York,NY, USA: ACM, 2009, pp. 1–12.

[6] Project CCNx. [Online]. Available:http://www.ccnx.org/

[7] V. Jacobson, D. K. Smetters, N. H. Briggs, M. F.Plass, P. Stewart, J. D. Thornton, and R. L. Braynard,

“VoCCN: voice-over content-centric networks,” inReArch’09: Proceedings of the 2009 workshop on

Re-architecting the internet. New York,NY, USA: ACM, 2009, pp. 1–6.

[8] S. Barber. (2010, Jun.) Dynamic-content orientedapplications. CCNx-Dev Mailing List. [Online].

Available: http://www.ccnx.org/pipermail/ccnx-dev/2010-June/000234.html

[9] A. Anand, A. Gupta, A. Akella, S. Seshan, and S.Shenker, “Packet caches on routers: the implications

of universal redundant traffic elimination,” inSIGCOMM,V. Bahl, D. Wetherall, S. Savage, and

I. Stoica, Eds. ACM, 2008, pp. 219–230.

[10] A. Anand, V. Sekar, and A. Akella, “SmartRE: anarchitecture for coordinated network-wide redundancy

elimination,” in SIGCOMM, P. Rodriguez, E. W.Biersack, K. Papagiannaki, and L. Rizzo, Eds.

ACM, 2009, pp. 87–98.

[11] M. Dobrescu, N. Egi, K. J. Argyraki, B.-G. Chun, K.R. Fall, G. Iannaccone, A. Knies, M. Manesh,

and S. Ratnasamy, “RouteBricks: exploiting parallelism toscale software routers,” inSOSP, J. N.

Matthews and T. E. Anderson, Eds. ACM, 2009, pp. 15–28.

[12] U. Lee, I. Rimac, and V. Hilt, “Greening the internetwith content-centric networking,” ine-Energy

’10: Proceedings of the 1st InternationalConference on Energy-Efficient Computing and Networking.

New York, NY, USA: ACM, 2010, pp. 179–182.

[13] D. Smetters and V. Jacobson, “Securing networkcontent,” PARC, Tech. Rep., Oct. 2009.

[14] CCNx mailing lists. [Online]. Available:http://www.ccnx.org/content/community#mailing-lists

[15] L. Deng, Y. Gao, Y. Chen, and A. Kuzmanovic,“Pollution attacks and defenses for Internet caching

systems,” Computer Networks, vol. 52, no. 5, pp.935–956, 2008.

總結

以上是生活随笔為你收集整理的【NDN安全】Security Scalability of Content-Centric Networking 全文翻译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。