中文字幕无码日韩视频无码三区

用于信息中心網絡的訪問控制框架的制作方法

文檔序號:10492165閱讀:514來源:國知局
用于信息中心網絡的訪問控制框架的制作方法
【專利摘要】一個實施例提供用于發布和獲得加密形式的加密數據集合的訪問控制架構。操作中,內容消費者可以獲得數據集合的清單對象,使得清單包括對所述數據集合的一組加密內容對象的引用,并包括一個或多個訪問控制規約ACS,每個訪問控制規約規定用于解密所述數據集合的一個或多個內容對象的解密協議。消費者可以通過信息中心網絡ICN傳播興趣消息以接收清單中列出的加密內容對象。客戶端還可以從清單獲得與相應的加密內容對象關聯的ACS,以及使用ACS中規定的解密協議解密相應的加密內容對象。
【專利說明】
用于信息中心網絡的訪問控制框架
技術領域
[0001]本申請一般涉及信息中心網絡。更具體地,本申請涉及用于發布和訪問加密數據的訪問控制框架。
【背景技術】
[0002]信息中心網絡架構(ICN)正快速成為研究界和工業界中當前的主機對主機設計的互聯網設計的有吸引力的替代方式。最近提出幾個新穎的網絡架構作為ICN的實例。這些ICN架構的最通用和基礎的特征包括基于興趣的內容檢索、內容為導向的路由和網絡內緩存。基于興趣的內容檢索和內容為導向的路由允許用戶通過對唯一命名的內容的顯式請求而不是通過建立與可以提供內容的目標計算機的點對點連接從網絡獲得內容。網絡內緩存允許路由器將內容緩存預先確定的時間長度,使得隨后對相同名稱的內容對象的請求可以通過緩存滿足,而不是通過將請求向上游轉發到由請求識別的網絡端點。
[0003]由于網絡內緩存,ICN內容對象可以不總是來自其原始生產者。不過,如果曾為特定消費者加密緩存內容,則即使其它消費者被授權訪問此內容,但他們也不可能解密內容。因此,ICN架構通常要求對加密內容的請求直接轉發到內容生產者,使得每個消費者可以接收已經使用消費者的公鑰加密的內容的副本。遺憾的是,要求ICN節點將請求轉發到內容生產者不允許消費者和發布者從網絡內緩存受益,這可能導致對于消費者慢的響應時間和對于內容生產者的大的請求負擔,這是不期望的。

【發明內容】

[0004]—個實施例給客戶端提供一種訪問控制架構,該架構基于發布者的訪問控制規約(ACS)接收并解密加密數據的集合。操作中,客戶端可以獲得數據集合的清單對象,使得清單包括對數據集合的一組加密內容對象的引用,并包括一個或多個訪問控制規約(ACS),每個規約規定用于解密數據集合的一個或多個內容對象的解密協議。客戶端通過信息中心網絡(ICN)獲得清單中列出的相應加密內容對象。客戶端還可以從清單獲得與相應加密的內容對象關聯的ACS,并使用ACS中規定的解密協議解密相應加密的內容對象。
[0005]在信息中心網絡(ICN)中,每項內容是分別被命名的,每項數據被綁定到將該數據與任何其它項數據相區分的唯一名稱,諸如相同數據的其它形式或來自其它源的數據。此唯一名稱允許網絡裝置通過傳播指示唯一名稱的請求或興趣來請求數據,可以獲得與數據的存儲位置、網絡位置、應用和傳輸手段無關的數據。命名數據網絡(NDN)或內容中心網絡(CCN)是ICN架構的示例,以下詞語描述NDN或CCN架構的元件:
[0006]內容對象(ContentObject):單——項命名數據,其綁定到唯一名稱。內容對象是“永久的”,這意味著內容對象可以在計算裝置內或者在不同的計算裝置中移動,但不會改變。如果內容對象的任何組成變化,則出現變化的實體創建包括更新內容的新內容對象,并且將新內容對象綁定到新唯一名稱。
[0007]唯一名稱(Unique Name):CCN中的名稱通常是與位置無關的,唯一地標識內容對象。數據轉發裝置不管內容對象的網絡地址或物理位置如何,可以使用名稱或名稱前綴將包向生成或存儲內容對象的網絡節點轉發。在一些實施例中,名稱可以是分層結構的可變長度標識符(HSVLI) ASVLI可以分成幾個層次組成,這些組成可以以各種方式構造。例如,個別的名稱組成口&1^、1101]16、11(111和〖681:.〖11:可以以左對齊的前綴為主的方式構造,形成名稱 V parc/home/ndn/test.txt”。因此,名稱 “/parc/home/ndn” 可以是 “/parc/home/ndn/test.txt”的“父”或“前綴”。附加組成可以用來區分內容項目的不同形式,諸如合作文檔。
[0008]在一些實施例中,名稱可以包括標識符,諸如從內容對象的數據(例如驗證和值)和/或從內容對象的名稱的元素導出的散列值。基于散列的名稱的描述在美國專利申請號13/847,814中描述(發明人Ignac1 Solis于2013年3月20日申請的名稱為“0RDERED-ELEMENT NAMING FOR NAME-BASED PACKET FORWARDING”)。名稱還可以是扁平標簽。后文中“名稱”用來指名稱數據網絡中的一條數據的任何名稱,諸如層次名稱或名稱前綴、扁平名稱、固定長度的名稱、任意長度的名稱或標簽(例如多協議標簽交換(MPLS)標簽)。
[0009]興趣(Interest):指示對一條數據的請求的包,包括該條數據的名稱(或名稱前綴)。數據消費者可以在信息中心網絡中傳播請求或興趣,CCN/NDN路由器可以向可以提供所請求數據以滿足請求或興趣的存儲裝置(例如緩存服務器)或數據生產者播送。
[0010]在一些實施例中,ICN系統可以包括內容中心網絡(CCN)架構。然而,本文中公開的方法還適用于其它ICN架構。對CCN架構的描述在美國專利申請號12/338,175中描述(發明人 Van L.Jacobson 和 Diana K.Smetters 于 2008年 12 月 18 日申請,名稱為 “CONTROLLING THESPREAD OF INTERESTS AND CONTENT IN A CONTENT CENTRIC NETWORK”)。
[0011]在一些實施例中,客戶端通過ICN傳播對數據集合的興趣,以及響應于傳播興趣,通過ICN接收清單對象。
[0012]在一些實施例中,清單包括通過引用的相應ACS。并且在獲得ACS時,客戶端可以從清單獲得與ACS關聯的名稱前綴;通過ICN傳播其名稱包括名稱前綴的興趣。然后響應于傳播興趣,客戶端接收包括ACS的內容對象。
[0013]在一些實施例中,在解密加密的內容對象時,客戶端獲得與加密的內容對象對應的加密密鑰,通過執行ACS中規定的解密協議,獲得解封裝密鑰。客戶端然后使用解封裝密鑰解密加密密鑰,以獲得解密密鑰;以及使用解密密鑰解密加密內容對象。
[0014]在一些實施例中,在獲得解封裝密鑰時,客戶端獲得標識解封裝密鑰的解封裝密鑰名稱,并沿著密鑰鏈,直到達到由解封裝密鑰名稱標識的密鑰節點。密鑰鏈的相應密鑰節點包括加密形式的解密密鑰,解密密鑰能夠解密密鑰鏈的下一密鑰節點的解密密鑰。客戶端然后從標識的密鑰節點獲得解封裝密鑰。
[0015]在一些實施例中,解密密鑰是使用基于分組的加密方案和/或廣播加密方案加密的。
[0016]—個實施例提供一種客戶端裝置,他使用訪問控制規約(ACS)建立與發布者的安全的端對端通信信道。操作中,客戶端可以獲得數據集合的初始清單對象。初始清單包括規定用于獲得并解密數據集合的一個或多個內容對象的端對端訪問控制方案的ACS。客戶端從初始清單中的ACS獲得發布者的公鑰,從ACS確定用于與發布者的會話的加密算法。
[0017]客戶端然后為發布者傳播設置興趣消息,使得設置興趣消息包括使用確定的加密算法和發布者的公鑰加密的臨時密鑰。響應于傳播設置興趣消息,客戶端接收滿足設置興趣消息的設置內容對象,使得設置內容對象包括會話密鑰和會話標識符。客戶端然后為發布者傳播包括會話標識符的完成興趣消息,作為響應,接收?兩足完成興趣消息的會話中清單(in-sess1n manifest)。會話中清單包括對使用會話密鑰加密的數據集合的一個或多個內容對象的引用。
[0018]在一些實施例中,客戶端從設置內容對象獲得驗證數據,使用驗證數據驗證會話密鑰。然后,響應于確定會話密鑰是有效的,客戶端繼續傳播完成興趣消息,以建立安全的通信信道。
[0019]在一些實施例中,在驗證會話密鑰時,客戶端由一個或多個會話密鑰、密鑰標識符和用于確定的加密算法的標識符計算散列。客戶端然后將計算的散列與驗證數據比較,以確定會話密鑰是否是有效的。
[0020]在一些實施例中,客戶端可以通過信息中心網絡(ICN)獲得會話中清單中列出的相應內容對象,并使用會話密鑰解密相應的內容對象。
【附圖說明】
[0021]圖1呈現根據實施例促進發布和訪問加密形式的數據集合的示例性網絡環境。
[0022]圖2A圖解說明根據實施例的示例性CCN消息。
[0023]圖2B圖解說明根據實施例的CCN興趣消息的示例性元數據。
[0024]圖2C圖解說明根據實施例的CCN內容對象的示例性元數據。
[0025]圖3A圖解說明根據實施例的示例性清單。
[0026]圖3B圖解說明根據實施例的示例性名稱列表部分和示例性散列列表部分。
[0027]圖4圖解說明根據實施例的示例性訪問控制規約(ACS)400。
[0028]圖5呈現根據實施例圖解說明獲得并基于訪問控制規約解密數據集合的方法的流程圖。
[0029]圖6呈現根據實施例圖解說明使用ACS解密清單中列出的內容對象的方法的流程圖。
[0030]圖7呈現根據實施例圖解說明使用ACS中指定的密鑰鏈解密數據集合的內容對象的方法的流程圖。
[0031]圖8呈現根據實施例圖解說明基于清單中的ACS建立安全的端對端會話的方法的流程圖。
[0032 ]圖9圖解說明根據本發明的實施例的示例性傳輸架構。
[0033]圖10圖解說明根據實施例促進發布和訪問加密形式的數據集合的示例性設備。
[0034]圖11圖解說明根據實施例促進發布和訪問加密形式的數據集合的示例性計算機系統。
[0035]在圖中,相同的附圖標記指相同的附圖元件。
【具體實施方式】
[0036]給出以下描述使得本領域技術人員能夠制造和使用實施例,以下描述是在特定應用和其需求的背景下提供的。對所公開實施例的各種改進對本領域技術人員是非常顯然的,在不偏離本發明的精神和范圍下,本文中定義的通用原理可以應用于其它實施例和應用。因此,本發明不局限于所顯示的實施例,而是給予與本文中公開的原理和特征一致的最寬范圍。
[0037]_
[0038]本發明的實施例提供一種訪問控制框架,其解決了通過信息中心網絡(ICN)或內容中心網絡(CCN)發布加密形式的數據集合的問題。具體地,訪問控制框架允許發布者通過使用加密的內容對象使用清單發布其內容,并且規定可以使用哪個訪問控制方案來解密和訪問內容。
[0039]例如,在一些實施例中,清單可以規定內容的加密的解密密鑰的名稱,并且可以規定用于獲得解密密鑰的解封裝密鑰的訪問控制方案。只有被允許訪問內容的客戶端被允許獲得解封裝密鑰。替代性地,清單可以規定訪問控制方案,訪問控制方案允許客戶端直接從發布者或者從代表發布者的內容生產者獲得加密的內容對象和解密密鑰。
[0040]因此,訪問控制框架可以用來使用任何訪問控制方案發布任何類型的內容。不是要求每個發布者執行其自己形式的應用專用訪問控制規約和實施機制,發布者可以通過使用其自己選擇的訪問控制方案,使用訪問控制框架來發布加密內容。
[0041 ]在訪問控制框架中,清單包括將加密內容與訪問控制和解密信息去耦合的訪問控制規約和密鑰鏈。而且,密鑰鏈自身可以使用包含訪問受任意的基于分組的分層保護的內容所需的解密密鑰列表的清單實現。密鑰本身基于主體(principal),以便實現細粒度的訪問控制方案,其中,主體為個別用戶或一組主體。清單的描述在美國專利申請號14/337,026(律師案號為PARC-20140480US01,名稱為 “System for Distributing Nameless Objectsusing Self-Certifying Names”發明人Marc E.Mosko于2014年7月21 日申請)中描述。
[0042]在一些實施例中,訪問控制框架可以實現至少三種類型的通過ICN的訪問控制方案:基于分組的訪問控制方案,廣播訪問控制方案和向TLS提供ICN變形的端對端安全通信。本發明的實施例還提供一種ICN應用編程接口(API),生產者可以使用API來發布加密內容,消費者可以使用API來訪問加密內容。
[0043]示例性網絡環境
[0044]圖1呈現根據實施例的促進發布和訪問加密形式的數據集合的示例性網絡環境100。具體地,網絡環境100可以包括內容中心網絡(CCN) 102、內容生產者108、內容發布者110、客戶端112(例如內容消費者)和內容中心網絡102XCN 102(或信息中心網絡)可以包括多個邊緣節點104和路由節點106。
[0045]例如,視頻流服務可以配置通過CCN 102可訪問的內容生產者110。內容生產者110可以包括與網絡102的邊緣節點104.2接口的服務器計算機或計算機集群。內容生產者110可以生成任意內容,諸如照片、視頻、傳感器采集的數據等。內容生產者110可以在本地托管或不托管內容,但可以與內容發布者110合作代表內容生產者108發布其內容。
[0046]發布者110可以將來自內容生產者108的數據轉換成攜帶數據塊的內容對象集合(或任何形式的命名數據對象或ND0),他們是具有關聯的加密簽名的命名對象。發布者110可以通過CCN 102以他們的名稱發布這些ND0,CCN 102的轉發器104和106可以將NDO請求通過網絡102從客戶端112轉發到發布者110。
[0047]轉發器包括至少兩種主要元件:轉發信息庫(FIB)和未決興趣表(PIT)。轉發器可以使用FIB來通過輸出接口向可以滿足興趣的內容生產者或發布者路由進入的興趣消息。在一些實施例中,轉發器可以使用標準路由協議或靜態路由填充FIB,并使用最長前綴匹配將興趣名稱與FIB表項匹配。路由協議可以基于發布的NDO的位置異步地填充FIB。
[0048]轉發器可以使用PIT來緩存未決興趣消息的和接收每個興趣消息所通過的接口的狀態。當轉發器接收內容對象時,轉發器可以對PIT執行最長前綴匹配查詢操作,以識別匹配的PIT表項,并使用匹配的PIT表項的接口來沿相反的興趣路徑將內容對象返回傳播相應興趣的客戶端。
[0049]在一些實施例中,一些轉發器還可以包括緩存內容對象的內容存儲(CS)。例如,轉發器節點104可以對應于提供其它計算機或網絡訪問CCNl 02的邊緣節點。因此,轉發器節點104可以從客戶端裝置接收興趣消息,并且可以代表內容生產者108和/或內容發布者110緩存內容對象。當邊緣節點104接收興趣時,他們可以對CS執行初始的最長匹配前綴查詢操作,以搜索可以滿足興趣的匹配的緩存內容對象。如果沒有找到匹配的緩存內容對象,則邊緣節點104可以繼續通過CCN 102轉發興趣(例如基于匹配的FIB表項)。因此,CCN 102上分布的內容存儲可以降低通過CCN 102的內容對象檢索等待時間。
[0050]例如,內容生產者108可以包括媒體流服務(例如來自加利福尼亞州的洛思加圖斯市的Netflix,Inc.的NetfIix媒體流服務),他與內容生產者110合作來通過CCN傳播加密形式的受保護內容,并允許CCN邊緣節點104.1上的內容存儲緩存加密內容。內容生產者108可以使用訪問控制框架來通過只允許付費訂閱者解密內容來保持控制哪些實體可以消費內容。因此,內容生產者108可以允許媒體流服務的訂閱者能夠訪問內容,但不要求他們直接從內容生產者108或內容發布者110獲得內容。
[0051]然而,內容生產者108可能想防止未訂閱用戶或惡意實體獲得對其緩存內容的訪問。在一些實施例中,在將內容返回請求內容的客戶端112之前,內容生產者108可以加密內容(例如媒體流片斷)和內容的加密密鑰。此內容和其解密密鑰然后可以沿著指向客戶端112的返回路徑緩存在內容存儲上。然后,如果另一客戶端請求內容,則此其它客戶端可以從內容存儲獲得加密內容,并且只有訂閱用戶能夠解密解密密鑰和內容。
[0052]為此,內容生產者108向作為付費訂閱者的用戶提供包括到內容片斷和解密密鑰的鏈路的清單。清單還包括訪問控制規約(ACS),其規定正在使用哪個訪問控制方案來保護內容,諸如基于廣播的加密、基于會話的加密、基于分組的加密或現在已知或以后開發的任何其它的加密協議的變形。此ACS可以規定集合的加密/解密算法,如何獲得集合的解密密鑰等。因此,內容生產者108不需要為集合中的每個內容對象傳播訪問控制方案。而是,集合的清單可以規定用于控制對集合中的每個內容對象或流片斷進行訪問的必要信息。
[0053]在基于會話的加密方案中,只要當前與發布者110的會話是活動的,或者在一些變形中,只要客戶端裝置的用戶是內容生產者108的有效訂閱者,例如客戶端112可以使用個人的解密密鑰來解密內容。基于會話的加密協議可以使用特定于用戶會話的對稱密鑰加密內容或其解密密鑰。當客戶端112建立與內容發布者110的會話時(例如當發布對一項內容的請求時),內容發布者110可以返回包括使用會話密鑰加密的媒體流片斷列表或包括客戶端112可以使用的解密緩存的媒體流片斷的解密密鑰(使用會話密鑰加密的)的清單。然后,在使用內容的解密密鑰之后,客戶端112可以從托管內容片斷的CCN 102的任何內容存儲或服務器獲得并解密所請求內容的媒體流片斷。
[0054]在一些實施例中,訪問控制框架可以支持適合不同的訪問控制策略的任意類型的加密,并通過使用用于緩存和檢索加密內容的網絡中緩存保持CCN內容檢索的效率。例如,密鑰管理器(未顯示)可以發布用于內容加密的對稱密鑰,并可以發布用于加密對稱密鑰的公-私鑰對。當內容生產者108生成內容時(例如或者根據需要或者通過從永久性存儲器讀數據),內容生產者108向使用對稱密鑰加密內容塊的內容發布者110發送內容,并通過CCN102發布加密的內容對象。內容生產者108的訪問策略管理器可以根據特定用戶的公鑰加密對稱密鑰,并且還通過網絡發布加密的對稱密鑰。沿CCN 102的任何內容存儲可以在加密的內容或加密的對稱密鑰通過CCN 102發布時,緩存加密的內容或加密的對稱密鑰。
[0055]在一些實施例中,用戶的客戶端裝置112可以通過與內容生產者108的安全信道獲得他的公-私鑰對。同樣,客戶端112可以通過CCN 102傳播興趣來通過CCN 102(例如從發布者110或CCN轉發器節點上的內容存儲)獲得加密內容和對稱密鑰,并且如果客戶端112具有來自生產者108的有效密鑰則解密對稱密鑰。在解密對稱密鑰之后,客戶端112可以使用對稱密鑰來解密內容。盡管此示例包括以非集中方式工作的多個實體,但在一些實施例中,兩個或更多個這些實體可以在單臺機器上配置或者分布在CCN 102上的不同的網絡節點。
[0056]訪問控制框架通過使用對安全數據混合加密執行加密訪問控制。具體地,內容對象是以密碼隨機對稱密鑰(稱作隨機數密鑰(nonce key))加密的。隨機數密鑰則是使用另一種適合內容生產者的期望訪問控制形式(例如廣播加密、基于屬性加密、RSA、基于身份的代理重加密等)加密算法加密的。隨機數密鑰針對主體加密,主體可以是個別消費者或個人團體。
[0057]清單中列出的各個內容對象是以隨機數密鑰通過預定的加密算法(諸如AES-256-CTR)加密的。清單包括ListOfNames(名稱列表)字段,其包括加密的內容對象的名稱,清單包括ListOfHashes(散列列表)字段,其包括加密的內容對象的散列值。因此,獲得清單的客戶端可以順序地或同時傳播對加密的內容對象組的興趣。清單的ACS字段提供解密加密的內容對象所需的信息,諸如(加密的)隨機數密鑰的名稱、加密算法的參數等。
[0058]訪問控制框架通過另一種適合實現內容生產者的期望的訪問控制結構的預定加密算法對隨機數密鑰加密。可以解密加密的隨機數密鑰的密鑰在后面稱作解封裝密鑰。解封裝密鑰本身是加密的,使得只有授權主體(例如擁有或可以訪問適當的私有解密密鑰的主體)可以解密解封裝密鑰。
[0059]例如,內容生產者可以給每個主體i分配公-私鑰對(PK1,SK1),使得各個客戶端一開始就具有他們自己的主體密鑰對。通過公鑰密碼算法以PKj對SKi的加密由EncPKC(SKi,PKj)表示。因此,當主體分組X被授權時,針對X的封裝密鑰DKX以EncX(DKx,PKx)加密。用戶“A”然后可以通過只使用他們自己的私鑰SKa檢索密文Enc(SKx,PKA)和Enc(DKx,PKx)獲得解封裝密鑰DKx。
[0060]在一些實施例中,主體密鑰的集合可以是私鑰集合或密鑰鏈的一部分。例如,主體密鑰鏈分層可以以主私鑰為根,其用來用到合格葉子主體(leaf principal)i的路徑解密解封裝密鑰。如果主體j是主體分組i的成員,則主體i的加密私鑰可以包括于私鑰集中。這使主體j能使用其私鑰獲得主體i的私鑰,然后用來順序地解密分層中的其它私鑰,一直到主私鑰根。再次,此根私鑰然后用來解密解封裝密鑰。解封裝和主體密鑰之間的這種分離允許主體密鑰被離線分發或在頻帶外獲得。而且,私鑰集合是足夠靈活的,能夠實現任何主體的復雜的訪問控制組分層。[0061 ] CCN 消息
[0062]圖2A圖解說明根據實施例的示例性CCN消息200。CCN消息200可以用來通過CCN生成任何類型的網絡消息,諸如興趣、內容對象或清單。在一些實施例中,清單本身實現為一種類型的內容對象。
[0063]CCN消息200可以包括消息標題、驗證數據和CCNMessage (CCN消息)字段206。消息標題可以包括F i xedHeader (固定標題)字段202、Opt1nalHeader (可選標題)字段204,他們分別可以提供關于消息結構和轉發信息的信息。CCN消息字段206提供消息主體,其包括Name(名稱)212、Metadaga(元數據)214和Payload(有效載荷)216(對于興趣和內容對象消息兩者)。而且,驗證數據可以包括Val idat 1nAl gor i thm (驗證算法)字段208和Validat1nPayload(驗證有效載荷)字段210。驗證算法字段208可以包括數字簽名驗證信息(例如簽名算法、驗證算法CRC32C、RSA簽名等)。驗證有效載荷字段210可以包括簽名數據本身。
[0064]CCN興趣和內容對象是兩種類型的CCN消息,但他們通過CCN網絡節點以不同方式處理。內容對象是命名數據對象(NDO),他的有效載荷字段216包括發布的內容,可以通過與其位置無關的CCN名稱定位和認證他。另一方面,興趣是由內容消費者(例如客戶端)發布以請求NDO內容對象的消息。興趣的名稱字段212可以包括期望內容的名稱,有效載荷字段216可以包括與請求有關的任何附加信息。而且,興趣和內容對象的元數據字段214可以包含引導如何處理興趣或內容對象的不同的數據。
[0065]圖2B圖解說明根據實施例的CCN興趣消息的示例性元數據250。元數據250可以包括Key IdRestrict 1n (密鑰標識符限制)字段252、InterestLifetime (興趣生存期)字段254、<:0社611切1^6(^!^8111^8壯丨(^丨011(內容對象散列限制)字段256和附加元數據字段258。
[0066]KeyId字段252和內容對象散列限制字段256允許興趣消息規定控制內容對象如何與興趣匹配的限制。例如,KeyId通過檢查用來簽名內容對象的密鑰ID限制與特定的發布者的匹配,其中,KeyId值存儲在內容對象的驗證有效載荷字段中。同樣,內容對象散列限制字段256將有效的匹配內容對象限制到自認證名稱與內容對象散列限制字段256的值匹配的那些內容對象。在一些實施例中,自認證名稱可以包括CCN消息字段、驗證算法字段和驗證有效載荷字段的SHA-256散列。
[0067]附加元數據字段258可以包括內容生產者可以用來生成動態內容的附加信息。在一些實施例中,CCN上的轉發器不在他們本地的PIT內的附加元數據字段258中存儲數據。
[0068]圖2C圖解說明根據實施例的CCN內容對象的示例性元數據270。元數據270可以包括ContentType (內容類型)字段272,其規定由內容對象攜帶的內容的類型,諸如清單、文本、圖像、二進制大對象(blob)等。元數據270還可以包括PublishTime(發布時間)字段274,其規定發布有效載荷的數據的時間和日期;Creat1nTime (創建時間)字段276,其規定創建內容對象的時間;Expirat1nTime(到期時間)字段278,其規定內容對象的數據到期的時間。而且,元數據270可以包括附加元數據字段280,其可以包括不控制內容對象如何沿網絡轉發的關于內容對象或有效載荷的任何元數據。
[0069]清單和訪問控制規約(ACS)
[0070]清單可以包括規定用來加密一項內容的加密算法的ACS。例如,一項內容可以使用AES密鑰加密,AES密鑰可以包括隨機生成的隨機數密鑰。加密內容然后可以通過網絡分發,授權客戶端可以通過使用ACS中規定的解密算法對隨機數密鑰解密來訪問加密的隨機數密鑰。一旦客戶端解密隨機數密鑰,客戶端可以使用隨機數密鑰來解密加密內容。
[0071]在一些實施例中,清單可以列出使用非相同集合的加密方案加密的內容對象集合。清單可以包括多個ACS對象,使得每個ACS可以用來解密清單的內容對象的不同子集。在一些實施例中,清單中的每個內容對象表項可以規定清單中的ACS的引用。替代性地,每個ACS可以識別哪些內容對象是可以通過ACS中規定的解密方案解密的。例如,每個ACS可以映射到一組內容對象(例如由內容對象的名稱前綴標識的)。舉另一示例,每個ACS和內容對象表項可以包括將ACS解密方案和一個或多個內容對象綁定在一起的方案標識符。
[0072]圖3A圖解說明根據實施例的示例性清單300。清單300可以包括Name(名稱)字段302、Metadata(元數據)字段304和Payload(有效載荷)字段306。名稱字段302可以規定清單300的名稱,諸如受保護的數據集合的名稱。此受保護的數據集合可以包括加密的內容對象、加密的解密密鑰和規定客戶端可以如何獲得數據集合的一個或多個ACS對象。因此,元數據304可以包括關于元數據300本身的信息,有效載荷306可以包括關于內容對象、密鑰和ACS對象的信息。
[0073]如之前提到的,清單300定義為內容對象的類型。因此,清單300的元數據308可以包括值為“Manifest(清單)”的ContentType(內容類型)字段310。元數據308還可以包括其它內容對象元數據字段,諸如發布時間字段312、創建時間字段314、到期時間字段316和附加的兀數據部分318。
[0074]清單300的有效載荷306包括內容對象的邏輯集合的信息。在一些實施例中,有效載荷306通過包括集合的內容對象的元數據信息并包括集合的組成內容對象的基于散列的名稱的排序列表來描述邏輯集合。這種格式使客戶端能夠針對有效載荷306中列出的各個內容對象,發布具有自認證名稱的興趣。
[0075]例如,有效載荷306可以包括一個或多個有效載荷部分320,每個有效載荷部分320可以包括ListOfNames (名稱列表)字段324和ListOfHashes(散列列表)字段326,他們一起提供集合中內容對象的排序名稱。名稱列表字段324可以包括一個或多個內容對象的CCN名稱,散列列表字段326可以包括一個或多個內容對象的內容對象散列值(例如自認證名稱)。
[0076]有效載荷部分320還可以包括ACS字段322。如果在ACS字段322中,ACS字段存在,則ACS提供對相同部分320中列出的內容對象的至少子集的訪問控制信息。ACS可以包括獲得并解密隨機數密鑰并獲得對加密的內容對象的訪問所需的信息。在一些實施例中,有效載荷部分320可以包括ACS對象或ACS對象的引用。例如,有效載荷306可以包括ACS鏈路,諸如包括實際的ACS對象的內容對象的CCN名稱。這允許清單300在不消耗有效載荷306中的大量數據的情況下包括多個復雜的ACS對象。
[0077]而且,清單300可以包括或引用多個ACS對象,使得每個ACS可以對應于清單300中列出的內容對象的子集。例如,清單有效載荷306可以包括多個有效載荷部分320(例如圖示的星號指示零或更多的實例可以存在),使得每個有效載荷部分320包括(或引用)ACS和其相應的內容對象子集。因此,清單元數據308可以包括多個名稱列表和多個散列列表字段,每個ACS—個列表。
[0078]作為一個替代性實現,清單元數據308可以包括一個名稱列表部分324、一個散列列表部分326和包括多個ACS表項的一個ACS部分322。部分322中的每個ACS可以具有關聯的ACS標識符,部分324或部分326的每個名稱或散列表項具有規定哪個ACS對應于名稱或散列表項的關聯的ACS標識符。因此,當取出名稱列表324中引用的內容對象時,客戶端可以使用相應的ACS標識符來獲得ACS部分322列出的相應的ACS。
[0079]圖3B圖解說明根據實施例的示例性名稱列表部分350和示例性散列列表部分360。名稱列表部分350包括一個或多個NameEntry (名稱表項)部分352的列表。名稱表項部分352包括MediaName(媒體名稱)字段356,其規定一項數據的內容名稱前綴,并且名稱表項部分352可以包括StartChunk(開始塊)字段354,其規定一項數據的第一塊號(如果數據被分割成塊的集合)。散列列表部分360可以包括一個或多個HashEntry(散列表項)部分362的列表。散列表項部分362可以包括NameIndex(名稱索引)字段364,其通過與名稱列表字段350的表項對應的數字標識內容對象,散列表項部分362包括Hash (散列)字段366,其包括內容對象的內容對象散列(C0H)值。
[0080]例如,考慮名稱列表350,其第一名稱表項部分(由名稱索引標識符“I”標識)包括:[0081 ] {StartChunk = 3 ,MediaName = Ici:/parc/obj}
[0082]并考慮散列列表部分360,其第一和第二表項包括:
[0083]{NameIndex = I,Hash = 0xl23};和
[0084]{Namelndex = I,Hash = 0xABC} ο
[0085]因此,名稱列表350中的各個名稱表項部分352可以對應于多個內容對象(每個內容對象攜帶不同的塊)。同樣,散列列表360的前兩個散列表項部分可以對應于與名稱表項關聯的兩個塊。第一散列表項代表名稱為Ic1:/parc/obj/chunk = 3、散列摘要為0x123的內容對象塊,第二散列表項代表名稱為lc1:/parC/obj/Chunk = 4、散列摘要為OxABC的內容對象塊。
[0086]因此,清單可以降低檢索片斷數據包括的總開銷,可以允許內容生產者或內容消費者避免必須分別簽名或驗證集合中的每個個別內容對象。例如,客戶端可以使用名稱列表和散列列表表項來通過具有自認證名稱的興趣獲得每個個別內容對象,并且可以通過在從接收的內容對象計算的散列摘要和他們對應的散列表項部分之間執行二進制等式檢查驗證它接收的內容對象。客戶端只需要對每個清單執行一個加密驗證操作,以驗證清單中列出的內容對象的集合。
[0087]在一些實施例中,清單集合可以組織成清單樹,其中,一個清單內的組成內容對象的名稱本身是另一清單(例如子清單)的名稱。如果內容消費者可以驗證根清單的簽名是關聯密鑰且信任關聯密鑰,則內容消費者還可以信任根清單中(直接或間接)包括的通過他們的自認證名稱(例如COH值)的性質信任的其它內容對象和清單。這使內容消費者避免必須對可以通過他們的自認證名稱驗證的這些引用的內容對象和清單執行加密驗證。
[0088]圖4圖解說明根據實施例的示例性訪問控制規約(ACS)400。ACS400可以包括AccessControlConf igurat 1n(訪問控制配置)字段402和 Encryp t1nAlgori thm(加密算法)字段404。加密算法字段404規定曾用來保護集合數據的加密/解密算法,用于加密/解密算法的參數用來對清單中列出的內容對象加密。例如,當使用JavaScript對象表示(JavaScript Object Notat1n,JS0N)時,加密算法值被編碼為:
[0089]{{encrypt1nAlgorithm:AES-128-CTR,initialCounter:***}}。
[0090]訪問控制配置字段402描述執行加密算法字段404中規定的解密算法所需的信息。具體地,訪問控制配置字段402包括Access Control (訪問控制字段)406,其規定處理Encrypt1nAlgorithm(加密算法)字段404中使用的對稱密鑰的訪問控制方案的類型。例如,當使用JSON編碼時,訪問控制字段406可以包括:
[0091]{type:NonceKey,encapsulat1nAlgorithm:Naor-Pinkas-BE,...},
[0092]其中,“type:NonceKey”指示對內容對象的訪問控制是通過隨機數密鑰的封裝執行的,“encapsulat1nAlgorithm:Naor-Pinkas_BE” 指不Noar-Pinkas廣播加密算法用來封裝隨機數密鑰。
[0093]注意,如果在訪問控制配置字段402中規定封裝算法,則算法施加到主體密鑰鏈分層中的所有節點。同樣,如果訪問控制策略不包括執行隨機數密鑰的封裝,則“type(類型)”可以規定執行訪問控制的另一種方法。當客戶端發起解密操作以解密內容對象時,客戶端讀訪問控制字段406以確定需要哪種類型的密碼原語。
[0094]訪問控制配置字段402還可以包括NonceKeyName(隨機數密鑰名稱)字段408和NonceKeyID(隨機數密鑰標識符)字段410,客戶端可以使用這兩個字段生成用于獲得加密的隨機數密鑰的興趣。隨機數密鑰名稱字段408規定封裝的隨機數密鑰的CCN名稱。客戶端可以使用此CCN名稱來生成并傳播對(若干)解封裝密鑰的興趣。在一些實施例中,隨機數密鑰名稱字段408可以包括別名,他是用來代表隨機數密鑰名稱字段408中狀態相關的名稱的名稱組成的變量。例如,考慮CCN名稱:
[0095]uIci:/parc/ob j/noncekey/<principal private key hash>,,
[0096]其中,〈principal private key hash〉包括主體特定值(例如合格主體的私鑰的散列值)的別名。客戶端可以使用隨機數密鑰名稱字段408中的別名來查詢用主體特定的值加密的隨機數密鑰,其中,主體特定值的所需類型由別名本身和/或訪問控制字段406描述。
[0097]隨機數密鑰標識符字段410規定(非加密的)隨機數密鑰的散列值。這使得人們可以容易地驗證解密的隨機數密鑰的完整性。在一些實施例中,使用適當的防沖突散列函數(例如SHA-256)保持隨機數密鑰的完整性和安全性(沖突只以可忽略的概率出現),原因是摘要包括于在檢查隨機數密鑰標識符字段410之前驗證的清單數字簽名輸入中。
[0098]同樣,一旦客戶端獲得加密的隨機數密鑰(例如使用隨機數密鑰名稱字段408),客戶端可以讀KeychainLink (密鑰鏈鏈路)字段412和Decapsulat 1nKeyLink(解封裝密鑰鏈路)字段414(其可以存儲密鑰鏈和解封裝密鑰的名稱或散列值),以沿著加密密鑰節點鏈,直到獲得期望的隨機數密鑰。密鑰鏈鏈路字段412可以規定到另一個清單(或清單分層)的鏈路,也稱作密鑰鏈。“link(鏈路)”可以包括Name(名稱)字段418,其可以規定清單的名稱,并且可以包括KeyldRestrict1n(密鑰標識符限制)字段420,其包括至少清單簽名者的密鑰標識符(例如到密鑰鏈的內容對象的密鑰標識符)。
[0099]密鑰鏈可以對應于對于一項內容解密解封裝密鑰所需的主私鑰(例如加密密鑰)的排序列表。當密鑰鏈封裝于清單(后面稱作密鑰鏈清單)中時,客戶端可以通過解析密鑰鏈的清單的名稱/散列列表,(例如并行地)檢索解密解封裝密鑰所需的密鑰鏈的密鑰。密鑰鏈清單中的密鑰鏈鏈路字段還可以有提供個性化到特定用戶的密鑰鏈的別名。
[0100]注意,當密鑰鏈清單不規定主清單的封裝算法字段時,密鑰鏈清單的ACS字段可以為每個主體密鑰鏈分層節點規定加密算法字段。例如,如果密鑰鏈包含三個密鑰,則密鑰鏈的ACS在ACS的加密算法字段404中有三個排序的封裝算法字段。替代性地,算法的類型可以包括于從密鑰鏈返回的密鑰內容對象中。
[Ο?Ο? ] Decapsulat1nKeyLink(解封裝密鑰鏈路)字段414可以規定到加密的解密密鑰的鏈路。例如,鏈路可以包括規定加密的解密密鑰名稱的Name (名稱)字段422和規定簽名者的密鑰ID(例如到解封裝密鑰的內容對象的KeyId)的KeyldRestrict1n(密鑰標識符限制)字段424 ο加密的解封裝密鑰的名稱可以包括給每個合格主體分配個性化的解封裝密鑰的別名。注意,當客戶端已經存儲解封裝密鑰并成功地驗證解封裝密鑰時,客戶端可以避免檢索和遍歷密鑰鏈。
[0102]在一些實施例中,客戶端可以使用ACS 400的密鑰鏈鏈路412獲得鏈中的第一密鑰節點,并使用本地解密密鑰解密第一密鑰節點,以獲得鏈中的第二密鑰節點的另一密鑰鏈鏈路和解密密鑰。客戶端最終到達由解封裝密鑰鏈路414標識的加密密鑰節點。由解封裝密鑰鏈路414標識的此加密密鑰節點是密鑰鏈中的最后一個節點,包括可以用來解密目標隨機數密鑰的“解封裝密鑰”。客戶端解密密鑰鏈中的此最后一個密鑰節點,以獲得解封裝密鑰,并使用解封裝密鑰來解密客戶端已經獲得的加密隨機數密鑰。一旦客戶端獲得解密的隨機數密鑰,客戶端可以使用此隨機數密鑰來解密清單中列出的所有內容對象或內容對象的子集。
[0103]在一些實施例中,訪問控制配置402可以包括一個或多個附加子字段的集合416,其描述現在已知或以后開發的任何其它訪問控制方案的其它屬性。例如,子字段416可以包括可以用來執行與TLS類似的一對一訪問控制方案(例如通過包括發布者的公鑰)或執行現在已知或以后開發的任何其它訪問控制方案的附加參數。
[0104]基于清單的ACS獲得數據
[0105]圖5呈現根據實施例圖解說明基于訪問控制規約獲得并解密數據集合的方法500的流程圖。操作中,客戶端裝置可以從用戶接收對數據或數據集合的請求(操作502),并傳播對數據集合的興趣(操作504)。在預定的時段之后或在接收內容對象之后,客戶端確定它是否已經接收滿足興趣的內容對象(操作506)。如果沒有,則客戶端可以返回操作506。
[0106]當客戶端接收滿足興趣的內容對象時,客戶端繼續確定內容對象是否是清單(操作508)。如果不是,則客戶端可以存儲或其它使用內容對象(操作510)。不過,如果內容對象是清單,則客戶端分析清單以從清單獲得訪問控制規約(ACS)(操作512),并根據ACS獲得數據集合的保護內容對象(操作514)。客戶端然后根據ACS解密內容對象(操作516),并繼續存儲或另外使用內容對象(操作510)。
[0107]圖6呈現根據實施例圖解說明使用ACS解密清單中列出的內容對象的方法600的流程圖。操作中,客戶端裝置從清單獲得內容對象名稱的列表(操作602),諸如從名稱列表字段,從清單的有效載荷。客戶端從清單中選擇內容對象名稱(操作604),通過傳播包括內容對象名稱的CCN興趣通過CCN獲得內容對象(操作606)。
[0108]客戶端然后確定與內容對象關聯的ACS(操作608),并使用ACS中規定的解密協議解密內容對象(操作610)。客戶端然后存儲或另外使用解密的內容對象(操作612)。客戶端然后確定它是否需要獲得清單中列出的另一內容對象(操作614),如果需要,則返回操作604,以從清單中選擇另一內容對象名稱。
[0109]遍歷密鑰鏈以檢索解封裝密鑰
[0110]圖7呈現根據實施例圖解說明使用ACS中規定的密鑰鏈來解密數據集合的內容對象的方法700的流程圖。操作中,客戶端裝置可以獲得與加密的內容對象對應的加密密鑰(操作702),諸如通過傳播對ACS的訪問控制配置字段的隨機數密鑰名稱子字段中標識的隨機數密鑰的興趣。
[0111]客戶端然后通過沿著由ACS的密鑰鏈鏈路字段規定的密鑰鏈,獲得解封裝密鑰以解密加密密鑰(操作704)。客戶端然后使用解封裝密鑰解密加密密鑰,以獲得內容對象的解密密鑰(操作706),使用解密密鑰解密加密的內容對象(操作708)。
[0112]別忘記密鑰鏈是提供用戶(主體)所需的私鑰的排序列表的清單。在一些實施例中,密鑰鏈清單在其ACS的字段中具有下列值:
[0113]籲AccessControl: {type:Keychain},訪問控制:{類型:密鑰鏈}
[0114]?Encrypt1nAlgorithm(加密算法):加密算法具有用來加密清單中列出的密鑰的參數,諸如RSA-1024。
[0115]同樣,密鑰鏈清單的名稱列表表項提供用戶所需的加密的解密密鑰的名稱的排序列表。
[0116]例如,考慮有資格訪問清單中列出的內容對象的分組Z。用戶B可以通過檢索引導到分組Z的所有密鑰獲得對內容對象的訪問。例如,用戶B需要檢索他密鑰鏈原型(ancestor)的加密私鑰(解密密鑰)EncPKC( SKx,PKB)和EncPKC(SKz,PKx)。用戶B還需要分配給主體Z的加密解封裝密鑰EncPKC(DKz,PKz)。為了檢索這些密鑰,用戶B首先通過使用ACS訪問控制配置字段的密鑰鏈鏈路生成興趣,發布對其私鑰SKb個性化的密鑰鏈的興趣。在一些實施例中,KeychainLink可以包括用戶特定的認證器的別名,諸如CCN名稱:
[0117]uIci: /pare/ob j/key-chain/<user private key hash>,,。
[0118]在上面的CCN名稱中,名稱片斷〈principal private key hash〉包括用戶特定的值(例如合格用戶的私鑰的散列值)的別名。
[0119]然后在傳播興趣之后,用戶B獲得名稱列表字段和散列列表字段。名稱列表字段包括具有排序密鑰列表的密鑰鏈:
[0120](StartChunk = I ,MediaName = name of EncPKC(SKx,PKb)}
[0121](StartChunk = I ,MediaName = name of EncPKC(SKz,PKx)}
[0122](StartChunk = I ,MediaName = name of EncPKC(DKz,PKz)},
[0123]ListOfHashes字段列舉密鑰鏈的分塊內容對象的散列值。此時,用戶B從葉子開始,檢索加密密鑰的內容對象,順序解密密鑰。如果用戶B的私鑰可以解密隨機數密鑰,則密鑰鏈中的密鑰列表是空的。
[0124]只要密鑰鏈具有有效簽名,則密鑰鏈中所列密鑰的完整性和安全性質可以被驗證和保證。同樣,由于客戶端可以獲得基于密鑰鏈清單中的名稱列表字段解密隨機數密鑰所需的解密密鑰集合,客戶端可以并行地發布對多個密鑰的興趣,這允許客戶端最大化可用的網絡帶寬的使用。
[0125]別忘記在密鑰鏈架構的頂層可以實現至少兩個訪問控制方案:基于分組的訪問控制方案和廣播訪問控制方案。在存在主體分層的基于分組的訪問控制方案中,任何解封裝密鑰的封裝算法不一定耦合到用來加密密鑰鏈中的其它密鑰的算法。例如,RSA可以用來加密密鑰鏈中的所有非根節點,不同的算法可以用來解密根密鑰。這允許不同的加密算法施加到密鑰鏈中特定的根到葉子路徑的每一層。ACS規定哪一算法施加到樹中的每一層,使得消費者可以在遍歷分層路徑時施加適當的解密算法。此解耦合允許任何基于分組的訪問控制策略被強加于基于分組的主體分層。
[0126]同樣,注意在沒有主體分層的一些訪問控制方案中,諸如“扁平的”基于廣播的訪問控制中,主體的公/私鑰對特定于廣播加密算法。因此,隨機數密鑰是以分組公共廣播密鑰加密的,分組中的每個合格主體的私鑰可以用來解密此解封裝密鑰。
[0127]基于分組的訪問控制
[0128]內容發布者可以加密并通過CCN網絡發布命名內容對象,還可以加密(封裝)用來加密每個隨機數密鑰的隨機數密鑰。在基于分組的訪問控制方案中,內容發布者僅通過生成為不同的主體分組加密的隨機數密鑰的多個(不同的)密文,允許特定分組的用戶(例如主體)訪問內容。然后,每個分組中的授權客戶端可以通過遍歷密鑰鏈解密密文。這意味著合格主體的公鑰被直接用來加密隨機數密鑰,因此解封裝密鑰是合格主體的私鑰。
[0129]已發布內容在CCN網絡拓撲上從內容發布者通過遍歷核心網絡和互聯網服務提供節點(CCN路由器)流向各個消費者,任何CCN節點可以在內容從生產者流向消費者時緩存內容。授權客戶端已經被分配其公-私鑰對以在遍歷密鑰鏈的主體分層時使用。這些密鑰可以離線或者通過與內容發布者的安全會話分發。
[0130]客戶端可以通過發布對具有與內容關聯的名稱的清單的興趣,獲得一項內容。清單可以包括基于分組的ACS,其命令客戶端如何獲得構成內容的內容對象,以及用于解密內容對象的隨機數密鑰。舉一個示例,數據集合的名稱具有CCN前綴“le1: /parc/GE/”,密鑰的封裝算法是使用RSA加密算法實現的,用1024位密鑰進行加密。基于分組的ACS可以具有下列配置:
[0131]籲AccessControl={type:NonceKey,
[0132]encapsulat1nAlgorithm:GroupBased-RSA-1024,...}
[0133]此字段可以包括與封裝算法相關的任何參數,諸如主體的私鑰的加密算法。
[0134]#NonceKeyName = Ic1:/parc/GE/NonceKey/<principal private key hash〉
[0135]以合格主體的公鑰加密的隨機數密鑰的名稱,包括特定于每個合格主體的別名。
[0136]籲NonceKeyId = Ox********
[0137](非加密)隨機數密鑰的散列值。
[0138]籲KeychainLink:到密鑰鏈的鏈路。鏈路可以包括子字段:
[0139]-Name = Ic1:/parc/GE/Keychain/<user private key hash>
[0140]密鑰鏈的名稱,包括用戶特定值的別名。
[0141 ] -KeyIdRestrict1n = Ox********
[0142]對于密鑰鏈,簽名者的密鑰標識符。
[0143]?Decapsulat1nKeyEink:到加密的解封裝密鑰的鏈路。鏈路可以包括子字段“Name” 和 “Key I dRe s tr i c t i on:,,
[0144]-Name=Ici:/parc/GE/PrincipalPrivateKey/〈principal
[0145]以其成員的公鑰加密的解封裝密鑰的名稱(即合格主體的私鑰),包括特定于合格主體和其成員的別名。
[0146]-KeyIdRestrict1n = Ox********
[0147]對于加密的解封裝密鑰,簽名者的密鑰標識符。
[0148]在一些實施例中,因為合格主體的私鑰可以是解封裝密鑰,通過使用特定于合格主體和他們的成員的一些適當別名值,解封裝密鑰鏈路字段可以用他們的密文的名稱填充。
[0149]同樣,ACS的加密算法字段可以描述用來加密清單中列出的內容對象的加密算法:
[0150]籲Encrypt1nAlgorithm={encrypt1nAlgorithm:AES-128-CTR,
[0151 ] initialCounter:Ox林林林林,...}。
[0152]注意,當客戶端不用檢查客戶端的密鑰存儲是否具有用于訪問控制的解封裝密鑰就可以檢索密鑰鏈時,ACS中的訪問控制配置字段的解封裝密鑰鏈路字段可以是空的。
[0153]廣播訪問控制
[0154]在廣播訪問控制中,內容發布者可以通過以隨機數密鑰加密內容對象,使得特定的主體集合(內容消費者或客戶端)有資格訪問內容對象的集合。內容發布者使用廣播加密用分組特定(主體特定)的密鑰封裝隨機數密鑰。有資格解密解封裝密鑰的每個私鑰與合格的主體關聯。
[0155]與基于分組的加密類似,客戶端可以通過發布對具有與內容關聯的名稱的清單的興趣獲得一項內容。舉一個示例,由內容發布者生成的內容對象具有CCN前綴為“le1:/parc/BE/”的名稱,隨機數密鑰的解封裝算法是使用Naor-Pinkas廣播加密算法實現的。基于廣播的ACS可以具有以下配置。
[0?5?] ACS的加密算法(Encrypt1nAlgorithm)字段可以包括描述用來加密清單中列出的內容對象的加密算法。ACS的訪問控制配置(AccessControlConf igurat 1n) (ACC)字段可以具有設置:
[0157]籲AccessControl={type:NonceKey,
[0158]encapsulat1nAlgorithm:Naor-Pinkas-BE,...}
[0159]此字段可以包括與[28]的加密相關的任何參數。
[0160]籲NonceKeyName= Ici: /parc/BE/NonceKey:
[0161]通過廣播加密[28]加密的隨機數密鑰的名稱,其中,它對所有合格的主體是共同的,因此不包含別名。
[0162]籲NonceKeyId = Ox********
[0163]籲KeychainLink
[0164]-Name = Ic1:/parc/BE/Keychain/<user private key hash>
[0165]-KeyIdRestrict1n = Ox********
[0166]籲Decapsulat1nKeyLink
[0167]-Name = Ic1:/parc/BE/Decapsulat1nKey/<principal private key hash>:
[0168](加密的)解封裝密鑰的名稱,包括特定于每個合格主體的別名。
[0169]-KeyIdRestrict1n = Ox********
[0170]端對端訪問控制
[0171]別忘記在基于分組或廣播訪問控制方案中,發布者使用唯一的隨機數密鑰加密內容。然而,在這些方案中,假設每個客戶端具有公-私鑰對作為個別主體。然而,如果中央密鑰管理器要通過網絡發布或證明客戶端公-私鑰對,則中央密鑰管理器需要安全地將每個密鑰對發送到每個客戶端(主體)。在一些實施例中,與TLS會話類似,客戶端可以通過CCN建立與目標實體(例如中央密鑰管理器或發布者)的安全端對端通信會話。此安全的端對端會話在后文稱作安全會話或安全會話實例。
[0172]圖8呈現根據實施例圖解說明基于清單中的ACS建立安全的端對端會話的方法800的流程圖。操作中,客戶端裝置可以獲得數據集合的初始清單(操作802)。此初始清單由內容發布者創建,包括為與發布者的安全會話配置的ACS,具有空的名稱列表(ListOfNames)和散列列表(ListOfHashes)。客戶端分析初始清單中的ACS,以獲得與發布者關聯的公鑰(操作804),使用公鑰來啟動設置協議以啟動與發布者的新安全會話。
[0173]在啟動會話的設置階段,客戶端為發布者生成臨時密鑰(操作806),使用發布者的公鑰加密臨時密鑰(操作808)。客戶端然后為發布者傳播設置興趣消息(操作810),使得設置興趣消息包括用來在用戶和發布者之間共享隨機會話密鑰的加密臨時密鑰。
[0174]響應于設置興趣,發布者生成并返回內容對象,這稱作設置內容對象,其包括新的隨機對稱會話密鑰和會話標識符,兩者都是由設置興趣中提供的臨時密鑰加密的。設置內容對象還包括客戶端可以用來驗證會話密鑰是否正確地在用戶和發布者之間共享的數據。例如,驗證數據可以包括通過級連臨時密鑰和會話密鑰計算的簽名。
[0175]客戶端然后接收設置內容對象(操作812),并獲得針對與發布者的會話的會話密鑰和會話標識符。當客戶端使用內容對象中的驗證數據來驗證會話密鑰時,設置階段完成。
[0176]在設置階段后,客戶端生成并為發布者傳播完成興趣消息(操作814)。完成興趣消息的名稱包括對于發布者的CCN名稱如綴,完成興趣消息包括附加到興趣的名稱或在興趣的有效載荷部分中的會話標識符。發布者通過將完成內容對象返回來進行響應以完成建立會話。完成內容對象可以包括被稱作會話中清單的清單,他對用戶是個性化的。會話中清單包括以會話密鑰加密的ACS和內容對象的列表。客戶端接收包括會話中清單的完成內容對象(操作816)。類似于通過對稱密鑰保護的TLS類型的安全信道,客戶端可以使用客戶端的會話密鑰解密加密的內容對象。
[0177]在一些實施例中,如果發布者要求在初始設置階段之后的客戶端認證,則客戶端可以繼續與發布者的恢復階段。客戶端通過CCN為發布者傳播恢復興趣,使得恢復興趣包括客戶端的公鑰證書。然后,響應于傳播恢復興趣,客戶端接收恢復內容對象,恢復內容對象包括發布者對客戶端認證的認證響應。例如,認證響應可以包括指示發布者已經成功地驗證客戶端的身份的ACK消息,或者可以包括指示發布者沒有成功驗證客戶端的身份的NACK消息。發布者還可以通過重新使用相同的會話標識符和會話密鑰,使用恢復階段來刷新超時會話。
[0178]在一些實施例中,客戶端或發布者可以使用安全會話實例來引導其它訪問控制方案,諸如基于分組的訪問控制方案或廣播訪問控制方案。
[0179]安全會話數據對象
[0180]以下數據對象提供在安全會話的實例化過程中使用的興趣和內容對象的詳細配置的示例。
[0181 ]初始清單:安全會話的初始清單包含ACS,ACS具有如在其它訪問控制實例中啟動檢索訪問控制內容所需的信息。ACS中的訪問控制配置字段的子字段可以具有以下值:
[0182] #AccessControl = {Type:SecureSess1n,Status:1nitiat1n,Sess1nId:Null}
[0183]籲SetupLink:到設置內容對象的鏈路。
[0184]-Name:設置內容對象的名稱,aSecureSess1n:State”字段值為“Task: Setup andNonce:〈nonce〉”,其中,〈nonce〉是隨機數值的別名。例如,Name字段可以包括CCN名稱:
[0185]“lei:/parc/SecureSess1n:State = {Task:Setup,Nonce:<nonce>}.,,
[0186]-KeyId:簽名者的密鑰標識符。
[0187]籲FinishLink:到完成內容對象的鏈路。
[0?88] -Name:完成內容對象的名稱(例如會話中清單),aSecureSess1n: State”字段值為“Task:Finish”和“Sess1nld:〈sess1n id>”,其中,〈sess1n id>是會話標識符的別名。例如,Name字段可以包括CCN名稱:
[0189]“Ici:/parc/SecureSess1n:State ={Task:Finish,Sess1nId:〈sess1n id>}.,,
[0190]-KeyId:簽名者的密鑰標識符。
[0191 ]與通過CCN訪問控制架構的基于隨機數密鑰的方案不同,ACS的加密算法規定一個或多個加密算法,其具有在內容發布者上是可用的參數。字段可以以JSON編碼,諸如:
[0192]{{encrypt1nAlgorithm:AES-128-CTR,initialCounter:…},
[0193]{encrypt1nAlgorithm:AES-256-CTR,initialCounter:...},...}。
[0194]設置程序:在檢索安全會話的初始清單之后,客戶端通過CCN發布設置興趣,開始設置階段。設置興趣在響應內容對象中具有以下值。在下面的示例中,注釋“A.B”代表字段A的子字段B。
[0195]籲SetupLink.Name:初始清單的名稱,例如隨機數值在〈nonce〉中。
[0196]籲Metadata.KeyIdRestrict1n:初始清單的 SetupLink.Key IdRestrict 1n。
[0197]^Payload:安全共享會話密鑰所需的信息,其可以以類型-長度-值(TLV)格式書與O
[0198]-Encrypt1nAlgorithm:從初始清單中的加密算法(Encrypt1nAlgorithm)選擇的算法。所選算法用來以共享會話密鑰加密和解密內容對象。
[0199]-TemporaryKey:興趣中給定的加密算法(Encrypt1nAlgorithm)的隨機臨時密鑰,是以發布者的密鑰標識符的公鑰(在興趣的KeyId中給出)加密的。
[0200]發布者可以使用名稱中的隨機數來將不同用戶和不同會話發布的興趣相區分(初始實例)O響應于接收設置興趣,發布者發布具有以下值的設置內容對象:
[0201]^Name:設置興趣的名稱。
[0202]籲Metadata.ContentType:數據。
[0203]^Payload:安全共享會話密鑰所需的信息,它可以以TLV格式書寫。
[0204]-HandshakeMessage: “Completed(完成)”值指不轉到完成階段,“Rejected(拒絕)”值指示拒絕連接請求。如果發布者需要可選的用戶認證,則值設置為“Authenticat1nRequest,,。
[0205]-ResumeLink:到完成內容對象的鏈路。只要HandshakeMessage為“Authenticat1nRequest”時,此字段具有非空值。鏈路可以包括Name子字段和KeyId子字段。
[0206]*Name:恢復內容對象的名稱,使得aSecureSess1n: State”字段具有“Task:Finish”和“Sess1nId:〈sess1n id>”值,其中,“〈sess1n id>” 是會話標識符的別名。例如,Name可以包括CCN名稱:
[0207]“lei:/parc/SecureSess1n:State = {Task:Resume,Sess1nId:〈sess1n id>},,
[0208]*Key Id:簽名者的密鑰標識符。
[0209]-Sess1nld:明文會話密鑰的散列。
[0210]-Sess1nKey:由所選加密算法以TemporaryKey加密的會話密鑰。
[0211 ] -VerifyData:SHA_256消息摘要,如下:
[0212]Hash(Plaintext Sess1n Key|!Selected Encrypt1nAlgorithm||KeyId ofthis content object),
[0213]以臨時密鑰加密。
[0214]注意此設置內容對象需要具有由發布者以設置興趣中的KeyId中指示的密鑰標識符簽名的有效簽名。客戶端可以使用VerifyData字段來檢查解密的(明文)會話密鑰的完整性。
[0215]完成啟動和會話中清單:為了完成啟動流,客戶端首先通過計算散列驗證VerifyData 值:
[0216]Hash(Plaintext Sess1n Key|!Selected Encrypt1nAlgorithm||KeyId ofthis content object)
[0217]如果計算結果等于設置內容對象中的VerifyData值,則認為會話密鑰在客戶端和發布者之間正確地共享,各方因此可以轉到完成階段。否則,由于會話數據被破壞,設置內容對象被丟棄。
[0218]作為完成階段的第一步,客戶端傳播完成興趣,通知發布者客戶端成功地驗證VerifyData值,并請求完成內容對象(例如會話中清單)C3Name(名稱)字段對應于:
[0219]“lei:/parc/SecureSess1n:State = {Task:Finish,Sess1nld:<sess1n id>},,
[0220]會話標識符為別名的值〈sess1ni d>。同樣,完成興趣具有在初始清單的FinishLink中規定的Key Id。
[0221]響應于接收完成興趣,發布者返回會話中清單作為完成內容對象。SecureSess1n的會話中清單是列出以共享會話密鑰加密的內容對象的名稱和散列值的標準清單。通過參照會話中清單,客戶端可以通過由會話密鑰保護的安全信道從發布者安全地檢索內容。
[0222]可選的用戶認證:在此給出用在安全會話實例中的用戶認證的恢復興趣和恢復內容對象的詳細描述。如果設置內容對象的“HandshakeMessage”字段具有“Authenticat1nRequest”值,貝Ij客戶端為發布者傳播具有下列值的恢復興趣:
[0223]籲Name =設置內容對象的ResumeLink.Name,會話標識符在〈sess1n id>中,諸如名稱:
[0224]“lei:/parc/SecureSess1n:State = {Task:Resume,Sess1nld:〈sess1n id>},,
[0225]籲Metadata.KeyIdRestrict1n =設置內容對象的
[0226]ResumeLink.KeyIdRestrict1nο
[0227]^Payload:認證用戶需要的信息,以TLV格式書寫。有效載荷可以包括以下子字段:
[0228]-ClientPulicKeyCertificate:如果此興趣在驗證數據中具有簽名,則為客戶端的公鑰證書。否則,它為空。
[0229]-EncryptedPublicKeyCertificate:如果此興趣不具有簽名,則是以會話密鑰加密的客戶端的公鑰證書。否則,它為空。
[0230]如果恢復興趣不具有簽名,則可以通過使用與發布者安全共享的會話密鑰進行加密,檢查客戶端的公鑰證書的完整的和不可偽造性。
[0231]作為對恢復興趣的響應,發布者發布有效載荷中具有HahdshakeMessage子字段的恢復內容對象。HandshakeMessage子字段可以包括“Compl eted (完成)”值或“Re jected (拒絕),,值。
[0232]訪問控制(AC)應用編程接口(API)
[0233]在一些實施例中,CCN網絡節點可以包括CCN網絡堆棧,其管理流進和流出網絡節點的興趣和內容對象消息。本地應用可以創建以期望方式處理CCN消息的堆棧,諸如對CCN消息執行加密、流量控制或任何其它消息處理操作。
[0234]圖9圖解說明根據本發明的實施例的示例性傳輸架構900XCN節點執行“傳輸架構” 900,其可以動態地配置自定義堆棧904以滿足應用的自定義“環境執行上下文” ο自定義堆棧904可以處理去向和/或來自轉發器906或在CCN節點上運行的任何應用的包,堆棧的組件可以包括可以以任何次序組織的任何可用組件,以滿足應用的需求。
[0235]在一些實施例中,傳輸架構900可以包括一組堆棧配置代理,其可以動態地按需配置堆棧。例如,傳輸架構900可以包括一組傳輸API組件902,其執行通過庫和/或API訪問的函數。應用可以通過向傳輸架構900發布呼叫訪問由傳輸架構900實現的API ο傳輸架構900然后將API呼叫映射到組件902的執行此特定函數的相應API組件,并將API呼叫轉發到此API組件。
[0236]如果不存在用于處理API呼叫的堆棧,則API組件可以配置或實例化可以執行應用的API呼叫的自定義堆棧。例如,API組件可以向傳輸架構900發布描述自定義堆棧的功能的請求。此功能描述可以是高級的,諸如規定要對數據包執行的預定義行為或操作。傳輸架構900然后通過將所需組件以實現期望的行為或操作的次序組織到自定義堆棧902(例如在自定義堆棧組件)中來實現此行為或操作。
[0237]替代性地,功能描述可以是低級的,諸如規定要使用的特定的堆棧組件,可以規定排列堆棧組件的次序。而且,功能描述還可以對于各個組件是特定的或通用的,例如,請求特定的“安全組件”(例如PKI驗證組件)或請求任何“驗證組件”。
[0238]在一些實施例中,傳輸API組件可以包括端口API,其提供用于向堆棧寫和從堆棧讀興趣和內容對象的一組函數。從結構上,興趣消息(例如CCNx I n t e r e s t)和內容對象消息(例如CCNxContentObject)具有相似的數據結構。因此,在一些實施例中,端口 API在CCNxMessage容器中包裝CCNxInterest和CCNxContentOb ject實例,這些實例然后用在各個端口 API 函數中,諸如 ccnxPortal Read(CCNxMessage*msg^PccnxPortal Write(CCNxMessage*msg),以向傳輸堆桟寫消息或從其讀消息。連同監聽特定名稱前綴的興趣的能力,這些函數提供通過興趣消息發布和檢索內容對象的功能。
[0239]在一些實施例中,傳輸API組件902還包括在端口API頂部構建的訪問控制API,并且包括ProtectedPortal (保護端口)API。訪問控制API允許消費者訪問受保護的內容,允許發布者發布和控制對特定內容的訪問。消費者和發布者直接與ProtectedPortal API接口,創建顯式地處理所有訪問控制相關功能的“受保護”傳輸堆棧(例如堆棧904)。
[0240]ProtectedPortal API由消費者和發布者應用用特定的身份集合實例化。對于消費者,身份可以包裝PKCS#12證書和私鑰包,以便能夠在需要時解密內容對象有效載荷。類似地,發布者可以使用PKCS#12包來對響應于接收興趣消息而生成的出內容對象簽名。其它密鑰,諸如用在廣播訪問控制或代理重新加密方案中的那些密鑰也可以包括于PKCS#12的文件內。由于用戶可以通過單獨的文件管理這些密鑰,ProtectedPortal在運行和實例化時接收身份的集合。
[0241]消費者API概要
[0242]ProtectedPortal API的消費者部分用表I中列出的函數擴展底層端口 API。ProtectedPortal使用內容對象清單中返回的信息來獲得適當的解密密鑰,以用正確的密碼算法解密隨機數密鑰。一旦ProtectedPortal檢索解密密鑰,則ProtectedPortal使用隨機數密鑰來為消費者解密內容有效載荷。ProtectedPortal在內部執行迭代解密密鑰決定和內容解密過程(例如安全會話),不將這些過程暴露給消費者,以允許軟件開發者容易地將這些特征集成到他們的應用中。
[0243]#CCNxMessage*ccnxProtectedPortal Read(CCNxName*msg)_發布對由特定名稱標識的內容對象的興趣,如果受保護,則在CCNxMe s sage有效載荷中解密并返回產生的有效載荷。
[0244]#CCNxMessage*ccnxProtectedPortal ReadManifest(CCNxName*msg)_發布對由特定名稱標識的內容對象的興趣,如果受保護,貝lJ返回在CCNxMessage有效載荷中序列化的內容對象的清單。
[0245]#CCNxMessage*ccnxProtectedPortal ReadByManifest(CCNxManifest*msg)
[0246]-發布對與特定清單關聯的內容對象的興趣,并在CCNxMessage有效載荷內返回解密的內容對象有效載荷。
[0247]表1:消費者ProtectedPortalAPI函數
[0248]發布者API概要
[0249]在一些實施例中,傳輸API組件902可以包括發布者API,其可以與訪問控制系統的各個組件通信和/或控制訪問控制系統的各個組件,諸如分發服務器(內容存儲或存儲庫)、加密服務器、訪問策略管理器和計量服務器。在實例化用于每個組件的傳輸堆棧904之后,每個組件的代理在堆棧904的頂部被實例化,以便控制他們相應的系統。例如,密鑰管理器代理組件在密鑰管理器傳輸堆棧的頂部被實例化,可以與本地操作系統上的本地密鑰管理應用或遠程應用通過CCN消息通信(例如通過傳播CCN興趣以查詢密鑰管理器,從密鑰管理器接收內容對象作為響應)。發布者API代表發布者執行此通信,并且提取此通信機制遠離發布者API。
[0250]通過發布者API可用的函數列于表2中。發布者API可通過訪問控制系統的任何實體訪問,諸如分發服務器(內容存儲或存儲庫)、加密服務器、訪問策略服務器和/或計量服務器。一旦被實例化,發布者ProtectedPortal實例將句柄暴露于訪問控制系統的這些實體中的每一個,使得應用可以動態地創建內容,改變訪問策略和許可,并為消費者提供被保護內容和清單。此外,在實例化發布者API之后,每個實體為特定的名稱空間創建傳輸堆棧(例如堆桟904),使得消費者ProtectedPortal可以發布興趣,以與訪問控制系統的其它實體通信。例如,CCNxAccessControIManagerProxy堆桟組件可以監聽 “lei: /parc/csl/acm/” 名稱空間,請求內容解密密鑰的消費者可以發布具有從名稱模板“lc1:/parC/CSl/aCm/〈content name>/<principal id>”得到的名稱的興趣,以獲得解密隨機數密鑰所需的密鑰。同樣,對于基于會話的訪問控制,發布者ProtectedPortal堆桟組件可以代表其本地實體處理DTLS會話信息的創建和維護。
[0251 ] #CCNxContentStoreProxy:內容存儲和分發服務器的代理。
[0252]-UploadContent(...)_將不受保護的內容對象上傳到特定的名稱空間。
[0253]-UploadProtectedContent(...)_將受保護的內容對象和相應的清單上傳到特定的名稱空間。
[0254]# CCNxAccessContro IManagerProxy:用于訪問控制管理器的代理。
[0255]-SetAccessControlType(...)_設置特定清單的訪問控制類型。
[0256]-RevokePrincipalFromContent(...)-從對特定的受保護內容對象的訪問中去掉由身份表示的特定主體。
[0257]-AddPrincipalToContent(...)_向對特定的受保護內容對象的訪問添加由身份表示的特定的主體。
[0258]# CCNxKeyManagerProxy:用于(內容和私密)密鑰管理器的代理。
[0259]-GenerateContentKey(...)_為特定名稱的一項內容生成內容加密(隨機數)密鑰。
[0260]-GenerateSecretKey (...)-生成特定主體的私鑰。這要求與CCNxAccessControlManagerProxy通信,以獲得訪問控制配置細節(例如廣播組信息)。
[0261 ] # CCNxEncrypt 1nServerProxy:加密(封裝)服務器的代理。
[0262]-EncryptContent(...)_用特定的隨機數密鑰加密特定的內容對象。
[0263]-EncryptKey (…)_針對特定的主體列表加密特定的隨機數密鑰。這要求與CCNxAccessControlManagerProxy通信,以獲得訪問控制配置細節(例如廣播組信息)。
[0264]表2:發布者ProtectedPortal API和相關的代理函數
[0265]圖10圖解說明根據實施例促進發布和訪問加密形式的數據集合的示例性設備1000。設備1000可以包括可以通過有線或無線通信信道相互通信的多個模塊。設備1000可以使用一個或多個集成電路實現,可以包括比圖10中所示的更多或更少的模塊。而且,設備1000可以集成于計算機系統中,或者實現為能夠與其它計算機系統和/或裝置通信的單獨的裝置。具體地,設備1000可以包括通信模塊1002、清單處理模塊1004、訪問控制模塊1006和安全模塊1008。
[0266]在一些實施例中,通信模塊1002可以獲得數據集合的清單,可以獲得清單中列出的加密內容對象的集合。清單處理模塊1004可以解析清單,以獲得與加密的內容對象關聯的訪問控制規約(ACS)。訪問控制模塊1006可以處理ACS以獲得用于解密內容對象的適當的解密密鑰。安全模塊1008可以使用解密密鑰解密內容對象。
[0267]圖11圖解說明根據實施例促進發布和訪問加密形式的數據集合的示例性計算機系統1102。計算機系統1102包括處理器1104、存儲器1106和存儲裝置1108。存儲器1106可以包括充當管理存儲器的易失性存儲器(例如RAM),并且可以用來存儲一個或多個內存池。而且,計算機系統1102可以耦連到顯示裝置1110、鍵盤1112和定位裝置1114。存儲裝置1108可以存儲操作系統1116、訪問控制系統1118和數據1128。
[0268]訪問控制系統1118可以包括指令,這些指令在由計算機系統1102執行時,可以引起計算機系統1102執行本申請中描述的方法和/或過程。具體地,訪問控制系統1118可以包括用于獲得數據集合的清單,并且可以獲得清單中列出的加密內容對象的集合的指令(通信模塊1120)。而且,訪問控制系統1118可以包括用于解析清單以獲得與加密內容對象關聯的訪問控制規約(ACS)的指令(清單處理模塊1122)。
[0269]訪問控制系統1118還可以包括用于處理ACS以獲得用于解密內容對象的適當解密密鑰的指令(訪問控制模塊1124),還可以包括用于使用解密密鑰解密內容對象的指令(安全模塊1126)。
[0270]數據1128可以包括通過本申請中描述的方法和/或過程作為輸入請求的或作為輸出生成的任何數據。具體地,數據1128可以存儲至少清單、來自清單的ACS和與發布者關聯的安全信息和/或會話信息。
[0271]在此詳細描述中描述的數據結構和代碼通常存儲于計算機可讀存儲介質上,計算機可讀存儲介質可以是可以存儲代碼和/或數據以由計算機系統使用的任何裝置或介質。計算機可讀存儲介質包括但不限于易失性存儲器、非易失性存儲器、磁和光存儲裝置(諸如磁盤驅動器、磁帶、CD(光盤)、DVD(數字通用盤或數字視頻盤))或能夠存儲計算機可讀介質的現在已知或以后開發的其它介質。
[0272]在詳細描述部分描述的方法和過程可以體現為代碼和/或數據,這些代碼和/或數據可以存儲在如上文描述的計算機可讀存儲介質中。當計算機系統讀、執行計算機可讀存儲介質上存儲的代碼和/或數據時,計算機系統執行體現為數據結構和代碼并存儲于計算機可讀存儲介質中的方法和過程。
[0273]而且,上面描述的方法和過程可以包括于硬件模塊中。例如,硬件模塊可以包括但不限于專用集成電路(ASIC)芯片、現場可編程門陣列(FPGA)、現在已知或以后開發的其它可編程邏輯器件。當硬件模塊被激活時,硬件模塊執行其中包括的方法和過程。
【主權項】
1.一種計算機實現的方法,包括: 通過計算裝置獲得數據集合的清單對象,其中,所述清單包括對所述數據集合的一組加密內容對象的引用,并包括一個或多個訪問控制規約ACS,每個訪問控制規約規定用于解密所述數據集合的一個或多個內容對象的解密協議; 通過信息中心網絡ICN獲得所述清單中列出的相應的加密內容對象; 通過所述計算裝置從所述清單獲得與所述相應的加密內容對象關聯的ACS;以及 通過所述計算裝置使用所述ACS中規定的解密協議解密所述相應的加密內容對象。2.根據權利要求1所述的方法,還包括: 通過ICN傳播對所述數據集合的興趣;以及 響應于傳播所述興趣,通過ICN接收所述清單對象。3.根據權利要求1所述的方法,其中,所述清單包括通過引用的相應ACS,并且其中獲得所述ACS涉及: 從所述清單獲得與所述ACS關聯的名稱前綴; 通過ICN傳播其名稱包括所述名稱前綴的興趣;以及 響應于傳播所述興趣,接收包括所述ACS的內容對象。4.根據權利要求1所述的方法,其中,解密所述加密的內容對象涉及: 獲得與所述加密的內容對象對應的加密密鑰; 通過執行所述ACS中規定的解密協議,獲得解封裝密鑰; 使用所述解封裝密鑰解密所述加密密鑰,以獲得解密密鑰;以及 使用所述解密密鑰解密所述加密的內容對象。5.一種計算機實現的方法,包括: 通過計算裝置獲得數據集合的初始清單對象,其中,所述初始清單包括規定用于獲得并解密所述數據集合的一個或多個內容對象的端對端訪問控制方案的訪問控制規約ACS;從所述初始清單中的ACS獲得發布者的公鑰; 通過所述計算裝置從所述ACS確定用于與所述發布者的會話的加密算法; 為所述發布者傳播設置興趣消息,其中,所述設置興趣消息包括使用確定的加密算法和所述發布者的公鑰加密的臨時密鑰; 接收滿足所述設置興趣消息的設置內容對象,其中,所述設置內容對象包括會話密鑰和會話標識符; 為所述發布者傳播完成興趣消息,其中,所述完成興趣消息包括所述會話標識符;以及接收滿足所述完成興趣消息的會話中清單,其中,所述會話中清單包括對使用所述會話密鑰加密的所述數據集合的一個或多個內容對象的引用。6.根據權利要求5所述的方法,還包括: 從所述設置內容對象獲得驗證數據; 使用所述驗證數據驗證所述會話密鑰;以及 響應于確定所述會話密鑰是有效的,傳播所述完成興趣消息。7.—種存儲指令的非暫態計算機可讀存儲介質,所述指令在由計算機執行時引起所述計算機執行一種方法,所述方法包括: 獲得數據集合的清單對象,其中,所述清單包括對所述數據集合的一組加密內容對象的引用;并包括一個或多個訪問控制規約ACS,每個訪問控制規約規定用于解密所述數據集合的一個或多個內容對象的解密協議; 通過信息中心網絡ICN獲得所述清單中列出的相應加密內容對象; 通過所述計算裝置從所述清單獲得與所述相應的加密內容對象關聯的ACS;以及 使用所述ACS中規定的解密協議解密所述相應的加密內容對象。8.根據權利要求7所述的存儲介質,還包括: 通過ICN傳播對所述數據集合的興趣;以及 響應于傳播所述興趣,通過ICN接收所述清單對象。9.根據權利要求7所述的存儲介質,其中,所述清單包括通過引用的相應ACS,并且其中獲得所述ACS涉及: 從所述清單獲得與所述ACS關聯的名稱前綴; 通過ICN傳播其名稱包括所述名稱前綴的興趣;以及 響應于傳播所述興趣,接收包括所述ACS的內容對象。10.—種存儲指令的非暫態計算機可讀存儲介質,所述指令在由計算機執行時引起所述計算機執行一種方法,所述方法包括: 獲得數據集合的初始清單對象,其中,所述初始清單包括規定用于獲得并解密所述數據集合的一個或多個內容對象的端對端訪問控制方案的訪問控制規約ACS ; 從所述初始清單中的ACS獲得發布者的公鑰; 從所述ACS確定用于與所述發布者的會話的加密算法; 為所述發布者傳播設置興趣消息,其中,所述設置興趣消息包括使用確定的加密算法和所述發布者的公鑰加密的臨時密鑰; 接收滿足所述設置興趣消息的設置內容對象,其中,所述設置內容對象包括會話密鑰和會話標識符; 為所述發布者傳播完成興趣消息,其中,所述完成興趣消息包括所述會話標識符;以及接收滿足所述完成興趣消息的會話中清單,其中,所述會話中清單包括對使用所述會話密鑰加密的所述數據集合的一個或多個內容對象的引用。
【文檔編號】H04L29/06GK105847228SQ201610031885
【公開日】2016年8月10日
【申請日】2016年1月19日
【發明人】E·尤祖恩, J·庫里哈拉, C·A·伍德
【申請人】帕洛阿爾托研究中心公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1