謝 燁,李慶華
命名數(shù)據(jù)網(wǎng)絡(luò)(Named Data Network,NDN)是國家科學(xué)基金會(National Science Fundation,NSF)于2010年在未來網(wǎng)絡(luò)架構(gòu)(Future Internet Architecture,F(xiàn)IA)項目中重點(diǎn)資助的四個項目之一,是面向內(nèi)容網(wǎng)絡(luò)的一個最重要分支。它設(shè)計的初衷主要基于互聯(lián)網(wǎng)在起源之初主要的應(yīng)用需求是計算資源共享。而經(jīng)過50多年的發(fā)展,互聯(lián)網(wǎng)的使用已發(fā)生了巨大變化,現(xiàn)在互聯(lián)網(wǎng)的主要使用需求是內(nèi)容的獲取和分發(fā)。在最近的50年內(nèi),隨著計算機(jī)及其附屬設(shè)備的逐漸普及,其價格逐漸降低,已經(jīng)能被大多數(shù)人接受。互聯(lián)網(wǎng)業(yè)務(wù)與日劇增,傳統(tǒng)的主機(jī)/服務(wù)器模式已經(jīng)不能滿足人們的需求。人們關(guān)注的不再是目的地址,而是內(nèi)容、數(shù)據(jù)本身。從近年來的統(tǒng)計數(shù)據(jù)來看,即時消息、微博等新型應(yīng)用的使用率高速增長,而傳統(tǒng)的電子郵件等業(yè)務(wù)的使用率正在逐年下滑。為適應(yīng)需求變化,NDN從UC-Berkeley的Scott Shenker教授等提出的DONA(Data Oriented Network Architecture)體系結(jié)構(gòu)出發(fā),采用名字路由,通過路由器緩存內(nèi)容,從而使數(shù)據(jù)傳輸更快,并能提高內(nèi)容的檢索效率,體系架構(gòu)如圖1所示。命名數(shù)據(jù)網(wǎng)絡(luò)對數(shù)據(jù)直接命名,與命名主機(jī)相比,能更好地滿足目前人們對互聯(lián)網(wǎng)的需求。在命名化數(shù)據(jù)網(wǎng)中,不在意數(shù)據(jù)包的源地址和目的地址,只關(guān)注內(nèi)容本身,通過內(nèi)容的名字直接尋址[1]。
圖1 NDN體系架構(gòu)
當(dāng)前,互聯(lián)網(wǎng)的設(shè)計沒有保障安全性,所有的安全都是疊加式、打補(bǔ)丁的斱式。NDN的架構(gòu)設(shè)計考慮了安全性問題,提供了一種新的關(guān)于安全的視角。它的特點(diǎn)主要體現(xiàn)在以下方面[2-3]:
(1)關(guān)注內(nèi)容的安全而不是通道的安全。SSL、VPN、SSH Tunnel、ToR等聚焦于提供安全通道;用戶只關(guān)心內(nèi)容而不是通道。
(2)要求對所有內(nèi)容進(jìn)行認(rèn)證。安全不再是可選項,而是架構(gòu)的一部分。
(3)加密是可選項。
后面的內(nèi)容將從命名數(shù)據(jù)網(wǎng)絡(luò)的安全機(jī)制和面臨的問題出發(fā),對NDN的安全體系進(jìn)行進(jìn)一步闡述。對NDN來說,安全同樣具有挑戰(zhàn)性,主要包括簽名及認(rèn)證、信任關(guān)系的管理以及內(nèi)容的訪問控制和隱私保護(hù)等。此外,還將結(jié)合應(yīng)用描述相應(yīng)的安全機(jī)制的具體應(yīng)用。
NDN網(wǎng)絡(luò)中,數(shù)據(jù)發(fā)送者可以將任何名字和數(shù)據(jù)綁定。加密后的數(shù)據(jù)與數(shù)據(jù)的名字通過數(shù)字簽名根據(jù)Interest發(fā)送。接收者可以驗(yàn)證接收數(shù)據(jù)的數(shù)字簽名,然后根據(jù)會話密鑰解密已加密的數(shù)據(jù)得到內(nèi)容,實(shí)現(xiàn)端到端的安全通信。
如圖2所示,Alice和Bob要進(jìn)行安全通信,Alice的數(shù)據(jù)Data要根據(jù)Interest返回給Bob,設(shè)Alice和Bob的公/私鑰對為PA/SA和PB/SB,會話密鑰為。Data經(jīng)分組密碼算法加密(假設(shè)為分組算法為AES)為AESkey(Data),會話密鑰key用Bob的公鑰PB進(jìn)行加密得到RSAPB(key),則數(shù)字簽名信息為:
Bob收到數(shù)據(jù)后,首先用Alice的公鑰PA驗(yàn)證簽名信息,然后用自己的私鑰SB解出會話密鑰key,并用會話密鑰key接觸Data數(shù)據(jù)。
圖2 NDN里簽名認(rèn)證的基本過程
從1.1節(jié)的描述來看,數(shù)字簽名只有在公鑰被信任的情況下才是安全和有意義的。因此,可信任的密鑰管理在NDN中是一個重要問題。在NDN體系中,并沒有專門規(guī)定相關(guān)的信任管理模型,而是由應(yīng)用來選擇最適合自己的模型。實(shí)際應(yīng)用中,主要有兩種比較典型的模型:一種是傳統(tǒng)的集中式分級管理機(jī)制,一種是分布式的信任管理方式。
文獻(xiàn)[3]開發(fā)了一種分級的密鑰管理系統(tǒng),root key為一級,Site key為第二級,User key為第三級,每一級的Key由上一級的key簽發(fā),如圖3所示。
圖3 NDN中分級密鑰管理
在NDN開源項目Chronochat即時通訊軟件中,采用了一種基于簽署的信任鏈的管理方式[4]。在這種方式下,信任關(guān)系被分為三種級別。
級別1:消費(fèi)者只信任用戶的某個命名前綴的數(shù)據(jù)包;
級別2:除了級別1的權(quán)利外,消費(fèi)者還信任用戶簽署的其他用戶發(fā)布的某個命名前綴的數(shù)據(jù)包(級別2構(gòu)建了直接信任關(guān)系);
級別3:除級別2的權(quán)利外,消費(fèi)者還信任用戶委托其他用戶簽署的某個命名前綴的數(shù)據(jù)包(級別3構(gòu)建非直接信任關(guān)系)。
圖4為這種管理方式的三個主要特征。
圖4 基于簽署的信任管理主要特征
文獻(xiàn)[5]描述了一種基于命名的接入控制模型,在NDN的開源項目NDNFit(針對醫(yī)療方面)、EBAMS(智能建筑方面)中有應(yīng)用,模型如圖5所示。
圖5 訪問控制模型
此模型使用了一種命名空間的加解密密鑰E-KEY和D-KEY。有兩個作用,一是對命名空間和數(shù)據(jù)的擁有者進(jìn)行分離,二是進(jìn)行訪問控制。具體形式如圖6所示。
圖6 模型中各種密鑰的一個例子
圖6 為一個監(jiān)測設(shè)備每分鐘產(chǎn)生心率數(shù)據(jù)在命名空間“/alice/health/data/medical/pulse”下,生產(chǎn)者(醫(yī)療監(jiān)測設(shè)備)創(chuàng)建一個C-Key(如圖6所示)加解密所有在一個小時內(nèi)生成的數(shù)據(jù)。生產(chǎn)者取回E-Key并檢查附加要求是否符合要求,并用E-Key去加密C-Key。
在NDN的安全機(jī)制中,主要面臨數(shù)字簽名的效率問題、簽名的生命周期問題和隱私保護(hù)問題等。
由于需要大量使用數(shù)字簽名,以及NDN中分布式數(shù)據(jù)同步需使用Markele樹(需緩存所有的內(nèi)容對象后計算),因此需要設(shè)計效率高、速度快的簽名方法。對于資源受限的設(shè)備(如RFID等),可以采用消息認(rèn)證碼類的替代方法。此外,為防止已知明文攻擊,需要管理簽名的生命周期[6]。
NDN中數(shù)據(jù)命名機(jī)制、緩存機(jī)制和簽名,都對消費(fèi)者的隱私保護(hù)有影響[7]。為此,PARC公司的NDN Security Group也在開展命名數(shù)據(jù)匿名化(Anonymous Named Data)工作。他們提出了一種匿名應(yīng)用的方案——ANDaNA。該方案從TOR中借鑒設(shè)計思想,目標(biāo)是能夠?qū)崿F(xiàn)NDN網(wǎng)絡(luò)中內(nèi)容消費(fèi)者的隱私和匿名,并可阻止攻擊者分析內(nèi)容消費(fèi)者和檢索內(nèi)容的關(guān)系。對于簽名方面隱私性的問題,可以采用環(huán)簽名的方式實(shí)現(xiàn)匿名性。
NDN中安全是一個很重要的問題,和傳統(tǒng)基于通道的安全不同,NDN更關(guān)注數(shù)據(jù)內(nèi)容本身的安全性,并依此設(shè)計了適應(yīng)這種網(wǎng)絡(luò)體制相應(yīng)的安全機(jī)制。本文對NDN的安全機(jī)制進(jìn)行研究,并對面臨的問題進(jìn)行闡述,以期為現(xiàn)有的網(wǎng)絡(luò)安全研究帶來一些啟示和思路。
[1] ZHANG Li-xia.Named Data Networking(DND)Project[R].Aiken SC,USA:PARC,2010.
[2] Named Data Networking(NDN) Project 2012-2013 Annual Report[Z].http://named-data.net.
[3] Chaoyi B,Zhenkai Z.Deploying Key Management on NDN Testbed[Z].http://named-data.net/techreports.html.
[4] Yingdi Y,Alexander A.Endorsement-based Key Management System for Decentralized NDN Chat Application[Z].http://named-data.net/techreports.html.
[5] Named Data Networking(NDN) Project 2015-2016 Annual Report[Z].http://named-data.net.
[6] Named Data Networking(NDN) Project 2016-2017 Annual Report[Z].http://named-data.net.
[7] Van J,Diana S,James T,et al.Networking Named Content[J].Communications of the ACM,2009,55(01):117-124.