鄒建文,趙 波,李 想,劉一凡,黎佳玥
武漢大學(xué) 國(guó)家網(wǎng)絡(luò)安全學(xué)院 空天信息安全與可信計(jì)算教育部重點(diǎn)實(shí)驗(yàn)室,武漢430072
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,物聯(lián)網(wǎng)技術(shù)已被廣泛應(yīng)用于智能家居、智能穿戴、智能交通、車聯(lián)網(wǎng)、智能醫(yī)療等眾多領(lǐng)域中[1],其廣泛應(yīng)用使得物聯(lián)網(wǎng)安全問題愈演愈烈,也越來越受到重視。在面對(duì)安全威脅時(shí),不僅要考慮網(wǎng)絡(luò)的安全問題,還需考慮接入網(wǎng)絡(luò)的物聯(lián)網(wǎng)設(shè)備的設(shè)備安全性。不可信的物聯(lián)網(wǎng)設(shè)備接入對(duì)物聯(lián)網(wǎng)的危害性極大,這會(huì)嚴(yán)重影響物聯(lián)網(wǎng)在政府、企業(yè)、軍隊(duì)、金融等高安全需求領(lǐng)域的推廣[2]。
物聯(lián)網(wǎng)接入設(shè)備越來越容易受到假冒攻擊[3]和設(shè)備篡改攻擊[3],設(shè)備的真實(shí)性應(yīng)該要受到重視,因?yàn)楣粽吣軌騽?chuàng)建后門以繞過安全性檢測(cè),通過不安全的通信信道接入互聯(lián)網(wǎng),造成重要數(shù)據(jù)的泄漏。只有實(shí)現(xiàn)了有效的物聯(lián)網(wǎng)設(shè)備安全接入方案,才能保證訪問控制、入侵防范等安全機(jī)制的有效實(shí)施。除此之外,這也是設(shè)備身份認(rèn)證、密鑰交換等安全協(xié)議的必要前提。因此要在保證接入設(shè)備可信性的前提下,將安全狀態(tài)延伸至網(wǎng)絡(luò),保障整個(gè)網(wǎng)絡(luò)的安全可信。目前,應(yīng)用較為廣泛的物聯(lián)網(wǎng)設(shè)備安全接入技術(shù)是RFID 技術(shù)。RFID 技術(shù)使用天線發(fā)射和接收射頻信號(hào)來收集設(shè)備的標(biāo)識(shí)信息,并將其寫入電子標(biāo)簽。讀取器將讀取到的標(biāo)識(shí)信息傳輸?shù)街醒霐?shù)據(jù)庫,用以識(shí)別設(shè)備[4]。但是,由于射頻標(biāo)簽數(shù)量太多、實(shí)現(xiàn)方案復(fù)雜度高、成本高、標(biāo)簽信息易于跟蹤的特點(diǎn),終端設(shè)備的安全性難以保證。并且RFID 技術(shù)以及現(xiàn)有的物聯(lián)網(wǎng)設(shè)備接入技術(shù)大多局限于物聯(lián)網(wǎng)設(shè)備的平臺(tái)身份認(rèn)證,認(rèn)為完成設(shè)備平臺(tái)身份認(rèn)證即可保證接入設(shè)備的可信性,而未能考慮到接入設(shè)備關(guān)鍵信息完整性的安全校驗(yàn),攻擊者可以通過篡改設(shè)備關(guān)鍵性文件或是植入木馬進(jìn)行攻擊設(shè)備,而平臺(tái)身份認(rèn)證并不能預(yù)防此類攻擊。
可信計(jì)算[5-7]的出現(xiàn)與發(fā)展,為解決物聯(lián)網(wǎng)設(shè)備接入的安全問題提供了有效的方法,利用可信網(wǎng)絡(luò)連接技術(shù)TNC[8-9]保證接入網(wǎng)絡(luò)的設(shè)備安全真實(shí)性,建立安全的通道。TNC技術(shù)實(shí)現(xiàn)用戶身份認(rèn)證、平臺(tái)身份認(rèn)證、完整性校驗(yàn)的三層認(rèn)證,用戶身份認(rèn)證保證使用設(shè)備的用戶合法性;平臺(tái)身份認(rèn)證保證接入設(shè)備的平臺(tái)身份可信,防止假冒設(shè)備接入網(wǎng)絡(luò);完整性驗(yàn)證可以保證接入設(shè)備環(huán)境安全,防止被攻擊篡改的設(shè)備接入網(wǎng)絡(luò),從而保障接入網(wǎng)絡(luò)的設(shè)備是可信的,實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)的可信訪問。但是現(xiàn)有的TNC實(shí)現(xiàn)大多基于完整性報(bào)告協(xié)議[10-11],只完成了認(rèn)證端對(duì)設(shè)備的單向認(rèn)證;并且大多依賴TPM(Trusted Platform Module)[12]安全芯片實(shí)現(xiàn),通過TPM存儲(chǔ)秘密信息和實(shí)現(xiàn)平臺(tái)身份認(rèn)證[13],成本太高;TNC實(shí)現(xiàn)平臺(tái)身份認(rèn)證時(shí)通常使用傳統(tǒng)公鑰密碼體制實(shí)現(xiàn)[13],效率低并且需要節(jié)點(diǎn)設(shè)備存儲(chǔ)私鑰,不適用于資源受限的物聯(lián)網(wǎng)設(shè)備。
為了解決上述問題,本方案引入PUF(Physical Unclonable Function)技術(shù),將PUF 技術(shù)與TNC 技術(shù)進(jìn)行結(jié)合,提出一種基于tPUF 的物聯(lián)網(wǎng)設(shè)備安全接入方案。該方案首先利用PUF技術(shù),在設(shè)備需要更少的硬件資源和不需要存儲(chǔ)任何秘密參數(shù)的情況下,完成設(shè)備與認(rèn)證端的雙向認(rèn)證和協(xié)商會(huì)話密鑰。并通過TNC 技術(shù),完成認(rèn)證端對(duì)接入設(shè)備的用戶身份認(rèn)證、平臺(tái)身份認(rèn)證、完整性校驗(yàn),建立數(shù)據(jù)安全傳輸通道,實(shí)現(xiàn)數(shù)據(jù)安全傳輸。本方案能夠很好彌補(bǔ)傳統(tǒng)TNC方案和現(xiàn)有物聯(lián)網(wǎng)設(shè)備接入方案的不足,實(shí)現(xiàn)設(shè)備和認(rèn)證端之間的雙向認(rèn)證,完成物聯(lián)網(wǎng)設(shè)備的安全接入。安全性分析表明該方案可以有效抵抗篡改、復(fù)制、物理攻擊等,實(shí)驗(yàn)結(jié)果表明該方案有效降低設(shè)備安全接入的成本和資源消耗。
PUF 是建立在設(shè)備特有物理特征基礎(chǔ)上的一種特殊映射關(guān)系,具有不可預(yù)測(cè)、不可克隆、輕量級(jí)[14]等性質(zhì)。相較于加密功能,PUF 需要較少的硬件資源,這適用于資源受限的物聯(lián)網(wǎng)設(shè)備。
基于Pappu 等人提出的PUF[15],現(xiàn)在有很多不同的方法利用非常不同的物理特性來獲得PUF。比如,光學(xué)PUF[15]、環(huán)形振蕩器PUF[14]、仲裁器PUF[16]、SRAM PUF[17]等。由于SRAM PUF的易實(shí)現(xiàn)和物聯(lián)網(wǎng)設(shè)備普遍有硬件SRAM的特性,本文重點(diǎn)研究基于SRAM的PUF。
基于SRAM的PUF是通過在設(shè)備上電時(shí)提取SRAM的瞬態(tài)特性來實(shí)現(xiàn)的。如圖1所示,SRAM的單元結(jié)構(gòu)為交叉耦合回路。在沒上電時(shí),Q、nQ 處于的邏輯為“00”狀態(tài),然而在上電后的一段時(shí)間內(nèi),Q、nQ的輸出可能處于“01”或者“10”,由于存在材料、制造過程中的工藝、工作環(huán)境以及電路中的噪聲等差異,每個(gè)邏輯單元在上電后的狀態(tài)都是不可預(yù)知的。
圖1 SRAM邏輯單元
使用PUF,可以通過從復(fù)雜物理系統(tǒng)中提取與設(shè)備物理相關(guān)的秘密信息,將其與TNC 技術(shù)相結(jié)合設(shè)計(jì)物聯(lián)網(wǎng)安全接入方案,能夠有效提高物聯(lián)網(wǎng)設(shè)備接入的安全性。
近年來,隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,針對(duì)物聯(lián)網(wǎng)設(shè)備的安全接入問題受到廣泛關(guān)注。為了解決設(shè)備的安全接入問題,完成設(shè)備的認(rèn)證,最簡(jiǎn)單的方法就是使用加密函數(shù)加密設(shè)備標(biāo)識(shí),后端認(rèn)證服務(wù)器需要遍歷數(shù)據(jù)庫去驗(yàn)證設(shè)備標(biāo)識(shí),這種方式性能不佳。例如,Akgun等[18]設(shè)計(jì)了一種基于PUF的認(rèn)證協(xié)議,其中設(shè)備標(biāo)識(shí)由散列函數(shù)編碼。為了驗(yàn)證設(shè)備,在接收到哈希碼時(shí),認(rèn)證服務(wù)器必須對(duì)系統(tǒng)中的所有設(shè)備執(zhí)行線性搜索,直到找到匹配為止。該方案時(shí)間效率低下,并且缺乏前向保密性。Aysu等[19]提出類似解決方案,但其中編碼是用偽隨機(jī)函數(shù)完成的,并且方案支持前向保密。但是該方案存在泄漏敏感數(shù)據(jù)的安全威脅,并且易受追蹤攻擊。為了更好解決設(shè)備接入的安全問題,多因素認(rèn)證被認(rèn)為是一種更好的解決方案。比如,Yu等[20]為物聯(lián)網(wǎng)環(huán)境提出一種安全、輕量級(jí)的三因素認(rèn)證方案,通過利用秘密參數(shù)和生物識(shí)別提供安全的相互認(rèn)證和匿名性。但該方案容易遭受物理攻擊,攻擊者可以通過物理手段獲取存儲(chǔ)在物聯(lián)網(wǎng)設(shè)備秘密參數(shù),從而復(fù)制設(shè)備。Bae 等[21]為多網(wǎng)關(guān)物聯(lián)網(wǎng)環(huán)境提供了基于智能卡的雙因素身份驗(yàn)證協(xié)議。但是,該協(xié)議容易受到用戶模仿攻擊、網(wǎng)關(guān)欺騙攻擊和會(huì)話密鑰泄露的影響,并且無法提供相互身份驗(yàn)證。Lee等[22]為解決Bae等[21]的安全漏洞,為多網(wǎng)關(guān)物聯(lián)網(wǎng)環(huán)境提出了三因素相互認(rèn)證協(xié)議。但是該方案基于智能卡實(shí)現(xiàn),實(shí)現(xiàn)成本較高,并沒有進(jìn)行設(shè)備的完整性校驗(yàn),無法抵御篡改攻擊。
通過上述對(duì)現(xiàn)有的物聯(lián)網(wǎng)安全接入方案的分析,均存在一定的不足之處,并不能完全保障接入設(shè)備的安全可信性。在物聯(lián)網(wǎng)安全接入技術(shù)中引入可信網(wǎng)絡(luò)連接技術(shù)是一個(gè)可行的方案,TNC技術(shù)完成用戶身份驗(yàn)證、平臺(tái)身份驗(yàn)證和完整性校驗(yàn),三層驗(yàn)證的方式可以保證接入設(shè)備的可信性,但是現(xiàn)有TNC 實(shí)現(xiàn)方式并不能很好適用于物聯(lián)網(wǎng)環(huán)境。Zhu等[23]基于D-H協(xié)議提出一種健壯完整性報(bào)告協(xié)議,認(rèn)證的雙方基于D-H協(xié)議在平臺(tái)認(rèn)證階段協(xié)商共享密鑰,利用此共享密鑰在通信過程中加密數(shù)據(jù),保證通信的安全,但是該方案的密鑰存儲(chǔ)在設(shè)備中,存在密鑰泄露的威脅。湯建等[24]提出了一種基于可信平臺(tái)模塊的可信網(wǎng)絡(luò)模型,該方法基于TPM 的安全芯片實(shí)現(xiàn),通過TPM存儲(chǔ)私鑰并完成設(shè)備認(rèn)證,保障設(shè)備安全接入,但該方案基于TPM 的實(shí)現(xiàn)增加了架構(gòu)復(fù)雜性。Ma等[25]結(jié)合可信計(jì)算技術(shù)和無證書公鑰密碼體制,提出一種無線環(huán)境下的可信網(wǎng)絡(luò)連接協(xié)議,該協(xié)議實(shí)現(xiàn)雙向身份認(rèn)證和會(huì)話密鑰協(xié)商,同時(shí)實(shí)現(xiàn)平臺(tái)可信性驗(yàn)證。但是該方案基于公鑰密碼體制,需要在設(shè)備中存儲(chǔ)私鑰,存在私鑰泄露的安全問題。金雷等[26]提出一個(gè)基于可信網(wǎng)絡(luò)連接框架的網(wǎng)絡(luò)終端認(rèn)證模型,實(shí)現(xiàn)用戶、改進(jìn)的認(rèn)證智能卡以及可信終端三者間的相互認(rèn)證。但是該方案需要給設(shè)備添加認(rèn)證智能卡,成本高,這很難在大量部署的物聯(lián)網(wǎng)設(shè)備中配備。
綜上所述,為了提高物聯(lián)網(wǎng)設(shè)備安全接入網(wǎng)絡(luò),有的方案通過線性搜索匹配方式認(rèn)證,效率很低;有的方案通過秘密參數(shù)和生物識(shí)別進(jìn)行認(rèn)證,進(jìn)行多因素認(rèn)證,提高接入安全性,但易遭受復(fù)制攻擊;有的方案依賴于智能卡進(jìn)行安全認(rèn)證,提高了設(shè)備的身份認(rèn)證安全性,但實(shí)現(xiàn)成本高。以上物聯(lián)網(wǎng)設(shè)計(jì)接入方案都是僅僅考慮了設(shè)備的平臺(tái)身份認(rèn)證,沒有考慮到設(shè)備的用戶合法性和設(shè)備環(huán)境安全問題,不能很好保證接入設(shè)備的安全性。可信計(jì)算中的TNC技術(shù)通過對(duì)設(shè)備的用戶身份認(rèn)證、平臺(tái)身份認(rèn)證、完整性校驗(yàn)的三層認(rèn)證,能夠更好保障接入設(shè)備的安全。為了實(shí)現(xiàn)TNC 完成三層認(rèn)證,大多方案依賴于TPM 安全芯片或者認(rèn)證智能卡實(shí)現(xiàn),提高認(rèn)證安全性,但實(shí)現(xiàn)成本高,并且增加設(shè)備架構(gòu)復(fù)雜性;實(shí)現(xiàn)平臺(tái)身份認(rèn)證時(shí)基于公鑰密碼體制,效率低下,設(shè)備需要存儲(chǔ)私鑰,私鑰的安全性很難保證;并且大多TNC 實(shí)現(xiàn)方案只完成了認(rèn)證端對(duì)設(shè)備的單向認(rèn)證,安全性不高。針對(duì)上述問題,本方案引入PUF 技術(shù),彌補(bǔ)現(xiàn)有物聯(lián)網(wǎng)設(shè)備接入方案和TNC 實(shí)現(xiàn)的不足之處,將PUF 技術(shù)與TNC 技術(shù)相結(jié)合,提出一種改進(jìn)的TNC(tPUF)設(shè)計(jì)。利用PUF技術(shù)實(shí)現(xiàn)物聯(lián)網(wǎng)節(jié)點(diǎn)設(shè)備與認(rèn)證端的雙向認(rèn)證,保證通信雙方的真實(shí)可信性,并根據(jù)PUF 生成隨機(jī)的會(huì)話密鑰,保障數(shù)據(jù)的安全傳輸;基于TNC技術(shù),完成認(rèn)證端對(duì)接入設(shè)備的用戶身份認(rèn)證、平臺(tái)身份驗(yàn)證、完整性校驗(yàn),接入設(shè)備安全接入網(wǎng)絡(luò),建立安全通道。
基于tPUF的物聯(lián)網(wǎng)設(shè)備接入方案在TNC的基礎(chǔ)上結(jié)合PUF 技術(shù),不需要增加額外實(shí)體的復(fù)雜性,不需要存儲(chǔ)任何的秘密信息,會(huì)話密鑰具有新鮮性和前向安全性,并且實(shí)現(xiàn)了雙向認(rèn)證,該方案效率高、實(shí)現(xiàn)成本低、安全性高。
在本章中,將詳細(xì)介紹本文所提出的設(shè)計(jì)方案。方案分為設(shè)備注冊(cè)、基于PUF的可信網(wǎng)絡(luò)連接和數(shù)據(jù)安全傳輸三個(gè)過程,設(shè)備注冊(cè)只需執(zhí)行一次,TNC連接和數(shù)據(jù)安全傳輸在設(shè)備每次接入網(wǎng)絡(luò)進(jìn)行通信時(shí)執(zhí)行。
2.1.1 實(shí)體
可信網(wǎng)絡(luò)連接TNC 架構(gòu)有3 個(gè)實(shí)體:訪問請(qǐng)求者AR(Access Requestor),請(qǐng)求接入網(wǎng)絡(luò)的設(shè)備;策略執(zhí)行點(diǎn)PEP(Policy Enforcement Point),傳遞接入請(qǐng)求和認(rèn)證信息并執(zhí)行訪問控制,如網(wǎng)關(guān)、防火墻、交換機(jī)等;策略決定點(diǎn)PDP(Policy Decision Point),對(duì)AR進(jìn)行可信評(píng)估并做出是否準(zhǔn)許接入的決定,在物聯(lián)網(wǎng)系統(tǒng)中即網(wǎng)絡(luò)端、后臺(tái)認(rèn)證服務(wù)器。
2.1.2 假設(shè)
(1)接入設(shè)備AR都內(nèi)置了PUF模塊。根據(jù)不同設(shè)備在制造過程中存在不可避免的物理差異,PUF模塊通過提取設(shè)備的物理特征值(如設(shè)備的SRAM上電值),不同設(shè)備能夠輸出不同的響應(yīng)(如不同設(shè)備的SRAM上電值是不同的)。
(2)為保證AR 和PDP 數(shù)據(jù)通信時(shí)的數(shù)據(jù)正確性,增加循環(huán)冗余校驗(yàn)(CRC)機(jī)制,對(duì)所有通信數(shù)據(jù)進(jìn)行錯(cuò)誤檢測(cè)。
(3)AR與PDP有相同的hash函數(shù)和對(duì)稱加密函數(shù)。
2.1.3 聲明
在本方案設(shè)計(jì)中使用到的運(yùn)算方法和密碼學(xué)方法如表1所示。
表1 運(yùn)算符聲明
當(dāng)一個(gè)新的設(shè)備要加入物聯(lián)網(wǎng)系統(tǒng)中時(shí),新的設(shè)備需要跟后臺(tái)認(rèn)證服務(wù)器經(jīng)過一個(gè)協(xié)商注冊(cè)的過程。這個(gè)過程在一個(gè)安全環(huán)境下進(jìn)行,注冊(cè)過程如圖2。
圖2 設(shè)備注冊(cè)過程
步驟1 PDP->AR:{c1}
PDP生成一個(gè)隨機(jī)挑戰(zhàn)信息c1,然后將c1發(fā)送給AR。
步驟2 AR->PDP:{r1,pwd,imc}
AR 接收到PDP 發(fā)過來的c1之后,AR 根據(jù)PUF 模塊,生成響應(yīng)r1;并且AR 使用完整性收集器IMC 收集完整性信息r1=PUF(c1);生成與用戶身份綁定的口令密碼pwd。然后將{r1,pwd,imc}發(fā)送給PDP。
步驟3 PDP->AR:{uid1}
接收到AR 發(fā)送過來的數(shù)據(jù)后,PDP 生成接入設(shè)備會(huì)話ID、uid1,用于標(biāo)識(shí)當(dāng)前這個(gè)AR,類似于給AR 生成一個(gè)賬號(hào),將其發(fā)送給AR。然后PDP 將與AR 相關(guān)的數(shù)據(jù){uid1,c1,r1,pwd,imc}存儲(chǔ)起來,而AR將uid1存儲(chǔ)起來。
當(dāng)設(shè)備要接入網(wǎng)絡(luò)時(shí),此時(shí)網(wǎng)絡(luò)處于不安全環(huán)境,圖3是設(shè)備的第i 次接入網(wǎng)絡(luò)的過程。
步驟1 AR->PDP:{uidi}
AR 讀取會(huì)話ID、uidi,并將其發(fā)送給PDP,表示當(dāng)前AR申請(qǐng)接入網(wǎng)絡(luò)。
步驟2 PDP->AR:{ci,ni′,hash1}
PDP 接收到AR 傳過來的uidi,PDP 根據(jù)這個(gè)uidi在數(shù)據(jù)庫中讀取與之相關(guān)的數(shù)據(jù){ci,ri,pwd,imc}。如果數(shù)據(jù)庫中沒有找到這個(gè)uidi,說明這個(gè)設(shè)備是無效的,TNC 連接過程終止。讀取到數(shù)據(jù)之后,PDP 生成一個(gè)隨機(jī)數(shù)ni,并計(jì)算ni′=ni⊕ri,hash1=Hash(uidi,ni,ri}。然后將{ci,ni′,hash1}發(fā)送給AR。
步驟3 AR->PDP:{mi′,hash2}
AR 接收到PDP 發(fā)送過來的數(shù)據(jù)之后,利用挑戰(zhàn)ci通過PUF模塊產(chǎn)生與之對(duì)應(yīng)的響應(yīng)ri,ri=PUF(ci),并通過這個(gè)ri與ni′計(jì)算出ni,ni=ni′⊕ri,然后利用uidi,ni,ri去驗(yàn)證hash1,如果hash1驗(yàn)證通過,說明PDP 是AR 信任的平臺(tái),否則TNC 連接終止。驗(yàn)證hash1成功之后,AR 生成一個(gè)隨機(jī)數(shù)mi,并計(jì)算mi′=ni⊕mi,hash2=Hash(ni,mi,ri},然后將{mi′,hash2}發(fā)送給PDP。
圖3 基于PUF的TNC連接過程
步驟4 PDP->AR:{data1}
PDP 接收到AR 發(fā)送過來的數(shù)據(jù){mi′,hash2},計(jì)算出mi=ni⊕mi′ 。然后根據(jù)mi、ni和數(shù)據(jù)庫中讀取的ri去驗(yàn)證hash2,如果hash2驗(yàn)證通過,說明AR 通過了PDP 的平臺(tái)身份驗(yàn)證,否則TNC 連接過程終止。驗(yàn)證hash2通過之后,PDP 要AR 進(jìn)行身份驗(yàn)證和完整性校驗(yàn),此時(shí)生成一個(gè)會(huì)話密鑰Ki=ni+mi+ri,這個(gè)密鑰在每一次連接時(shí)因?yàn)閚i、mi和ri不同而得到不同的Ki,具有前向保密性。利用這個(gè)Ki使用對(duì)稱加密算法加密數(shù)據(jù){success1},得到data1=EKi(success1),代表設(shè)備平臺(tái)身份認(rèn)證成功,要進(jìn)行下一步驗(yàn)證,將data1發(fā)送給AR。
步驟5 AR->PDP:{data2,data3}
AR 接收到PDP 發(fā)送過來的數(shù)據(jù)后,先計(jì)算出會(huì)話密鑰Ki=ni+mi+ri,解密data1,如果得到success1,代表AR平臺(tái)身份認(rèn)證成功,要進(jìn)行下一步的驗(yàn)證。身份驗(yàn)證需要用戶輸入AR注冊(cè)時(shí)口令密碼pwd,并且使用AR 的完整性收集器IMC 收集完整性信息imc=IMC(AR),然后分別使用對(duì)稱加密算法加密pwd 和imc得到data2=EKi(pwd),data3=EKi(imc),并將{data2,data3}發(fā)送給PDP。
步驟6 PDP->AR:{uidi+1,ci+1}
PDP 接收到數(shù)據(jù)之后,使用Ki解密data2和data3得到pwd 和imc, pwd=DKi(data2),imc=DKi(data3) 。然后根據(jù)數(shù)據(jù)庫中讀取的pwd 和imc 進(jìn)行身份驗(yàn)證和平臺(tái)完整性驗(yàn)證,只要有一個(gè)驗(yàn)證不通過,TNC連接終止。驗(yàn)證通過之后,則認(rèn)為AR 是可信的。PDP 生成隨機(jī)挑戰(zhàn)信息ci+1和隨機(jī)會(huì)話ID、uidi+1,每次設(shè)備進(jìn)行TNC 連接時(shí)就可以使用新的會(huì)話ID 和挑戰(zhàn)信息,具有保鮮性。將{uidi+1,ci+1}發(fā)送給AR。
步驟7 AR->PDP:{ri+1′}
AR接收到PDP傳過來的數(shù)據(jù)之后,AR根據(jù)ci+1通過PUF 產(chǎn)生與之對(duì)應(yīng)的ri+1,即ri+1=PUF(ci+1),利用會(huì)話密鑰Ki加密ri+1,得到ri+1′=EKi(ri+1),將ri+1′ 發(fā)送給PDP,并將uidi更新為uidi+1。
步驟8 PDP->AR:{success}
PDP 接收到AR 的數(shù)據(jù)ri+1′ 之后,使用Ki解密得到ri+1,并將數(shù)據(jù)庫中的uidi、ci、ri更新為uidi+1、ci+1、ri+1,并給AR 發(fā)送{success},代表TNC 連接過程完成,設(shè)備安全接入網(wǎng)絡(luò),可以進(jìn)行數(shù)據(jù)傳輸。
數(shù)據(jù)安全傳輸過程如圖4。
圖4 數(shù)據(jù)安全傳輸過程
在完成TNC連接之后,設(shè)備安全接入網(wǎng)絡(luò),可以與后臺(tái)服務(wù)器進(jìn)行安全通信。接入設(shè)備端計(jì)算會(huì)話密鑰Ki=ni+mi+ri,會(huì)話密鑰Ki作為對(duì)稱加密算法(加密和解密使用相同密鑰)的對(duì)稱密鑰,用于對(duì)需要傳遞的數(shù)據(jù)進(jìn)行加密傳輸,避免隱私數(shù)據(jù)的泄露,保證數(shù)據(jù)安全傳輸。產(chǎn)生要傳遞的明文消息M ,使用會(huì)話密鑰Ki和對(duì)稱加密算法對(duì)M 進(jìn)行加密得到M′=EKi(M),然后將M′發(fā)送給服務(wù)端,實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)的加密通信,服務(wù)端接收到數(shù)據(jù)M′之后,計(jì)算出與接入設(shè)備端一致的會(huì)話密鑰Ki=ni+mi+ri,使用與接入設(shè)備端相同的對(duì)稱加密算法和會(huì)話密鑰Ki(即對(duì)稱加密算法的對(duì)稱密鑰),將數(shù)據(jù)M′ 解密得到M ,M=DKi(M′)=DKi(EKi(M))。
本文設(shè)計(jì)方案的安全性基于PUF 的不可預(yù)測(cè)性和不可克隆性,基于此條件,可以得到本方案具有以下的安全性結(jié)論。
定理1 基于PUF的TNC連接過程中的秘密參數(shù)不會(huì)泄露
證明在基于PUF的TNC連接過程的步驟2中PDP的隨機(jī)數(shù)ni通過ni⊕ri傳遞給AR,這可以看作是將ri當(dāng)成一個(gè)密鑰,對(duì)ni進(jìn)行加密傳輸給了PDP,在攻擊者無法得到ri時(shí),ni被安全傳輸給了AR。同樣地,在步驟3 中AR 的隨機(jī)數(shù)mi通過使用密鑰ni加密,mi′=ni⊕mi,傳送給了PDP,攻擊者無法得到ni,因此mi被安全傳輸給了PDP。在其他步驟中傳輸?shù)臄?shù)據(jù)data1、data2、data3和ri+1′ ,是被AR 和PDP 協(xié)商的密鑰Ki=ni+mi+ri所加密后的數(shù)據(jù),攻擊者無法得到Ki,從而保證秘密參數(shù)的安全傳輸。
定理2 基于PUF的TNC連接過程中實(shí)現(xiàn)了接入設(shè)備和認(rèn)證服務(wù)器的雙向認(rèn)證。
證明在TNC連接過程中利用PUF參數(shù)實(shí)現(xiàn)AR和PDP之間的雙向認(rèn)證,這個(gè)雙向認(rèn)證過程可以簡(jiǎn)化為以下三個(gè)步驟:
(1)AR->PDP:{uidi};
(2)PDP->AR:{ci,ni′,hash1};
(3)AR->PDP:{mi′,hash2}。
根據(jù)PUF的不可預(yù)測(cè)性和不可復(fù)制性,挑戰(zhàn)信息ci對(duì)應(yīng)的PUF響應(yīng)ri具有與當(dāng)前設(shè)備相關(guān)的物理唯一性和機(jī)密性,攻擊者無法得到ri,因此步驟(2)和步驟(3)中hash 值只能在合理安全的設(shè)備上計(jì)算出正確的值。該驗(yàn)證過程引入隨機(jī)數(shù)ni、mi和設(shè)備每次進(jìn)行TNC 連接時(shí)都會(huì)分配不同的uidi值,來確保驗(yàn)證過程中消息的新鮮性,以抵抗重放攻擊。因此TNC 連接過程中可以實(shí)現(xiàn)設(shè)備間的雙向認(rèn)證。
定理3 數(shù)據(jù)傳輸過程中具有安全保密性。
證明對(duì)于所有需要傳輸?shù)臄?shù)據(jù)M ,都需要通過AR與PDP協(xié)商得到的會(huì)話密鑰Ki,使用對(duì)稱加密算法加密傳輸,另外一方再通過Ki進(jìn)行解密得到M 。攻擊者無法得到每一次TNC 連接過程AR 與PDP 協(xié)商的會(huì)話密鑰Ki,因此可以保證數(shù)據(jù)的安全傳輸。
定理4 密鑰具有前向安全性。
證明AR 每次進(jìn)行TNC 連接時(shí)均使用不同的隨機(jī)數(shù)mi、ni和每次得到不一樣的ri,以此產(chǎn)生不同的會(huì)話密鑰Ki,所以某一次的會(huì)話密鑰的泄露,也不會(huì)因此導(dǎo)致其他輪次的密鑰泄露。
定理5 本方案可以抵抗復(fù)制攻擊。
證明在本方案中要求每一個(gè)物聯(lián)網(wǎng)設(shè)備都具有PUF模塊,根據(jù)PUF不可復(fù)制的性質(zhì)說明PUF技術(shù)能夠抵抗復(fù)制攻擊,因此說明本方案可以抵抗復(fù)制攻擊。
定理6 密鑰具有新鮮性。
證明接入設(shè)備AR 和認(rèn)證服務(wù)端PDP 的會(huì)話密鑰,是由AR 和PDP 分別產(chǎn)生的隨機(jī)數(shù)mi、ni和PUF 的響應(yīng)ri共同產(chǎn)生,Ki=ni+mi+ri,由于ni、mi和ri的隨機(jī)性和每次TNC 連接時(shí)生成新的值,可保證密鑰的新鮮性,并且任意單獨(dú)的一方均無法獨(dú)立計(jì)算出雙方的會(huì)話密鑰。
定理7 本方案可以抵抗物理攻擊。
證明攻擊者可通過物理手段捕獲開放環(huán)境中的物聯(lián)網(wǎng)設(shè)備,從其存儲(chǔ)介質(zhì)中提取秘密參數(shù)并復(fù)制惡意設(shè)備。而本方案設(shè)計(jì)中,物聯(lián)網(wǎng)設(shè)備不需要存儲(chǔ)任何的秘密信息,比如密鑰等重要數(shù)據(jù),攻擊者無法獲取到與設(shè)備相關(guān)的任何秘密信息,從而無法復(fù)制惡意設(shè)備。因此,說明本方案可以抵抗物理攻擊。
定理8 本方案可以防平臺(tái)篡改。
證明通過注冊(cè)過程對(duì)設(shè)備平臺(tái)使用IMC進(jìn)行設(shè)備安全屬性收集后,將其信息注冊(cè)到后臺(tái)驗(yàn)證服務(wù)端,在TNC連接過程中進(jìn)行完整性校驗(yàn),保證設(shè)備的軟硬件關(guān)鍵文件沒有被惡意代碼或程序攻擊篡改,保證設(shè)備的完整性安全。
4.1.1 實(shí)驗(yàn)環(huán)境
為了預(yù)防非法物聯(lián)網(wǎng)設(shè)備接入網(wǎng)絡(luò),本實(shí)驗(yàn)設(shè)置三個(gè)控制變量,分別是設(shè)備用戶密碼pwd、設(shè)備平臺(tái)身份合法性和設(shè)備配置信息修改,觀察這3個(gè)控制變量改變下設(shè)備請(qǐng)求接入網(wǎng)絡(luò)時(shí)的接入情況,證明本方案是否可以判斷接入設(shè)備的合法性。
本實(shí)驗(yàn)基于開源項(xiàng)目TNC@FHH 構(gòu)建實(shí)驗(yàn)環(huán)境,TNC@FHH 遵循TCG 規(guī)范,實(shí)現(xiàn)了TNC 架構(gòu)的大部分組件和接口。在TNC@FHH中引入了PUF和做了部分修改,實(shí)現(xiàn)本方案設(shè)計(jì)。實(shí)驗(yàn)的系統(tǒng)軟硬件配置環(huán)境如表2 所示。在實(shí)現(xiàn)本方案時(shí)使用的Hash 散列算法為SM3算法,對(duì)稱加密算法使用SM4算法。
表2 系統(tǒng)軟硬件配置
4.1.2 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果如表3所示。測(cè)試結(jié)果記錄了4種接入設(shè)備AR 狀態(tài)下的認(rèn)證服務(wù)器PDP 的反饋情況。實(shí)驗(yàn)表明只有在身份驗(yàn)證、平臺(tái)身份驗(yàn)證、完整性檢驗(yàn)都成功時(shí)才被準(zhǔn)許接入網(wǎng)絡(luò),只要有一種檢驗(yàn)不合法便被拒絕接入網(wǎng)絡(luò)。這體現(xiàn)了本方案能夠?qū)崿F(xiàn)接入設(shè)備的合法性檢查,實(shí)現(xiàn)設(shè)備安全接入網(wǎng)絡(luò)。
表3 實(shí)驗(yàn)結(jié)果
圖5 是4 種AR 接入網(wǎng)絡(luò)時(shí)PDP 的日志記錄截圖,其中(a)、(b)、(c)、(d)分別對(duì)應(yīng)表3中的1、2、3、4的4種接入設(shè)備AR狀態(tài)的PDP反饋結(jié)果。
圖5 認(rèn)證服務(wù)器PDP的日志記錄
從時(shí)間和存儲(chǔ)開銷兩個(gè)方面對(duì)本文方案進(jìn)行性能分析,并與傳統(tǒng)TNC方案進(jìn)行對(duì)比。
(1)時(shí)間開銷
為了直觀體現(xiàn)本方案的性能,設(shè)置3 組對(duì)照實(shí)驗(yàn)。Exp1 為傳統(tǒng)TNC 方案;Exp2 為本文方案;Exp3 為只實(shí)現(xiàn)用戶身份認(rèn)證的簡(jiǎn)單通信方案。在實(shí)驗(yàn)環(huán)境下進(jìn)行10輪實(shí)驗(yàn)測(cè)試,得到如圖6的對(duì)比結(jié)果。
圖6 性能分析結(jié)果
根據(jù)實(shí)驗(yàn)結(jié)果可知,本方案在TNC 連接過程和數(shù)據(jù)安全傳輸過程均可在相對(duì)較短時(shí)間內(nèi)完成。相比較傳統(tǒng)的TNC,本方案的時(shí)間消耗更少,因?yàn)閭鹘y(tǒng)TNC方案在平臺(tái)身份驗(yàn)證是需要密鑰協(xié)商的過程,并使用TPM進(jìn)行私鑰解密等操作,TPM的運(yùn)算速度較低,造成耗時(shí)較長(zhǎng);在數(shù)據(jù)安全通信也是需要TPM 進(jìn)行數(shù)據(jù)加密操作,耗時(shí)長(zhǎng)。而本方案在平臺(tái)身份驗(yàn)證時(shí)不需要密鑰協(xié)商過程,利用PUF 進(jìn)行平臺(tái)身份驗(yàn)證,并且利用PUF協(xié)商會(huì)話密鑰進(jìn)行數(shù)據(jù)加密傳輸,耗時(shí)較短。
(2)存儲(chǔ)開銷
本文方案每個(gè)節(jié)點(diǎn)設(shè)備的存儲(chǔ)開銷為L(zhǎng)(uid)=48 bit,即僅需要存儲(chǔ)會(huì)話標(biāo)識(shí)。傳統(tǒng)TNC方案需要存儲(chǔ)設(shè)備私鑰s(鑒于安全問題,低于1 024 bit 的私鑰已不建議使用),用于平臺(tái)身份認(rèn)證,存儲(chǔ)開銷為L(zhǎng)(s)≥1 024 bit。
通過以上分析,相對(duì)于傳統(tǒng)TNC方案,本方案的設(shè)備存儲(chǔ)開銷更小。并且,本方案不需要存儲(chǔ)任何秘密參數(shù),可以防止暴露在外的物聯(lián)網(wǎng)設(shè)備被獲取并通過物理手段獲取設(shè)備里面的秘密信息,從而復(fù)制設(shè)備,提高設(shè)備安全性;而傳統(tǒng)TNC方案需要存儲(chǔ)秘密參數(shù),即設(shè)備私鑰,無法抵御物理攻擊。
本文分析了現(xiàn)有物聯(lián)網(wǎng)安全接入方案存在的不足以及現(xiàn)有的可信網(wǎng)絡(luò)連接實(shí)現(xiàn)不適用于物聯(lián)網(wǎng)設(shè)備,在此基礎(chǔ)上將TNC 技術(shù)與PUF 技術(shù)相結(jié)合,基于TNC 規(guī)范提出一種基于tPUF的物聯(lián)網(wǎng)設(shè)備安全接入方案。該方案實(shí)現(xiàn)接入設(shè)備與網(wǎng)絡(luò)認(rèn)證端的雙向認(rèn)證,保證通信雙方的真實(shí)可信性。并且,設(shè)備不需要存儲(chǔ)任何秘密信息,有效防止物理攻擊,降低設(shè)備資源開銷;通過PUF技術(shù)完成平臺(tái)身份驗(yàn)證和協(xié)商會(huì)話秘鑰,減少了平臺(tái)身份驗(yàn)證的時(shí)間開銷以及保障數(shù)據(jù)安全加密傳輸。因此,本方案具有較高應(yīng)用價(jià)值。