賀章擎,項 鏈,汪 晨,吳鐵洲
湖北工業大學太陽能高效利用湖北省協同創新中心,武漢 430068
隨著物聯網(IoT)的發展,物理不可克隆技術(physical unclonable function,PUF)[1-2]有望成為數十億IoT設備的關鍵安全原語。PUF利用集成電路在制造過程中不可避免的物料隨機變化特性,生成不可克隆的激勵響應對(CPRs)。PUF 的理想功能是輕量化、不可預測性、不可克隆性和唯一性(針對每個實例)。每個PUF都不可克隆,所以PUF可用于提供身份“指紋”或生成和存儲加密密鑰,防止對物聯網設備的篡改攻擊。
PUF減輕了密碼算法的計算費用,同時具有相對較低的硬件開銷,因此是解決物聯網環境中安全通信問題非常有效的選擇。但生成PUF響應需要進行物理測量,因此它很容易受到噪聲的影響[3]。PUF 對電壓和溫度(voltage and temperature,V&T)變化的敏感性,致使PUF 輸出不夠可靠,無法直接用于加密認證,需要進行糾錯處理[4]。與此同時,PUF 設備將數據傳輸到其他設備前須共享其秘密密鑰,需要認證與密鑰交換協議。對此,Aysu 等人[5]提出了一種PUF 匿名認證協議,Rostami等人[6]提出了輕量級認證與密鑰交換協議,Gope 等人[7]提出基于PUF的RFID認證協議。上述協議實現了安全的認證與密鑰交換功能,但均采用了基于BCH 等糾錯碼的模糊提取器技術來消除PUF中噪聲的影響,但采用模糊提取器會帶來極大的執行開銷,因此無法應用于資源受限的物聯網設備。為了降低糾錯開銷,Yu等人[8]提出一種名為“基于索引綜合癥(index-based syndrome,IBS)”機制,該機制將糾錯碼復雜度降低16~64 倍。但此技術僅應用于輸出實數值的PUF電路和軟判決編碼/解碼比較復雜的機制,目前已提出的PUF認證與密鑰交換協議中開銷大的問題尚未得到有效解決。
針對PUF協議開銷大問題,本文提出一種位自檢策略的輕量級高可靠PUF模型,并根據該模型設計了一種新輕量級兩方認證與會話密鑰交換協議。此協議在保證安全性同時無需模糊提取器或其他任何的糾錯機制,且能有效減少開銷,更適合資源受限的IoT設備。
PUF 電路主要利用內部的偏差檢測電路來將制造工藝偏差轉換成信號偏差,再經過仲裁電路的判決之后產生數字響應。新的研究發現,PUF輸出響應的可靠性與偏差信號強度等參數有著直接的關系,由較大的偏差信號所產生的響應在各種環境下顯示了良好的魯棒性[9]。因此,文獻[10-11]提出一種輕量級可靠性增強機制,它在PUF 內部嵌入了一個可靠性自檢電路,自動檢測出生成每個PUF響應的信號偏差,并為該響應位產生一個可靠性標志位。該PUF 電路可用圖1 所示模型表示,稱之為比特自檢PUF(BST-PUF)電路。

圖1 BST-PUFs模型Fig.1 BST-PUFs model
在BST-PUF中,輸入激勵Ci時,除了生成相應的響應Ri外,還可以生成標識該響應可靠性的標志值Fi。當Fi為1 時,表明響應Ri具有環境魯棒性,穩定性很高。后續電路可以據此挑選魯棒響應來構建數字密鑰(如圖1(b)所示)從而大幅減少糾錯開銷。文獻[12]中的測試和分析結果表明,所挑選出的魯棒響應具有良好的唯一性、均勻性和隨機特性,也具有很好的安全性,因此可以用于密鑰產生、認證等各種安全應用中。
利用可靠性自檢PUF 電路可以構建輕量級密鑰提取輔助算法(HDA),從而取代模糊提取器。輔助算法的執行包括密鑰產生和密鑰恢復兩個過程。密鑰產生過程如圖2(a)所示,首先由BST-PUF產生一定數量的響應R和可靠性標識值F,并輸入到魯棒響應提取器中提取具有極高可靠性的魯棒響應RB,然后經過熵提取器生成高熵的密鑰K。可靠性標志F作為輔助數據helper data存儲并公開。密鑰恢復過程如圖2(b)所示。當HDA從BST-PUF獲取帶噪聲的響應R′之后,將R′和輔助數據F再次輸入魯棒響應提取器中,可以得到相同的魯棒響應RB,經過熵提取器之后可以恢復出密鑰K。

圖2 新型HDA執行流程Fig.2 New HAD execution flow
該輔助算法采用BST-PUF 電路和魯棒響應提取器生成可靠的響應,取代傳統PUF 和糾錯碼組合,將可靠性標志F作為輔助數據用來恢復密鑰。由于BST-PUF電路和魯棒響應提取器的復雜性遠低于傳統密鑰提取方式,且可靠性標志長度也遠小于糾錯碼所需的輔助數據長度,因此該方式可大幅降低糾錯復雜性、減少輔助數據長度并提升PUF利用率。
為了確保PUF 產生的密鑰能與其他通信實體進行安全交換,本文采用比特自檢PUF模型與密鑰提取輔助算法設計一個輕量級兩方認證及會話密鑰交換協議[13],在一個擁有PUF 實體的密碼設備(device)與服務器(server)之間進行安全認證并建立共享會話密鑰。確保安全性的同時有效降低了糾錯開銷,大幅減少了輔助數據長度。
為描述提出的輕量級PUF 認證與會話密鑰交換協議,表1給出相關概念。

表1 相關概念Table 1 Related concept
協議在PUF device 與server 間進行,server 擁有KEY.Ext 函數、TRNG 函數、PRF 和PRF'函數。device 擁有BST-PUF 函數、KEY.Ext 函數、TRNG 函數、PRF 和PRF'函數。
協議執行分為兩個階段:注冊階段(enrollment phase)和密鑰交換階段(key-exchange phase)。
注冊階段:安全環境下,server對身份標識為IDi的device 中的BST-PUF 進行注冊,提取一定數量激勵-響應-可靠標識信息。首先,server 隨機產生一個激勵ci,利用BST-PUF 中的BST-PUF()函數獲取響應和可靠性標識:r1,f1BST-PUF(ci)PUF。重復上述過程提取若干(c,f,r)集合并存儲在server數據庫。然后,隨機挑選集合(c1,f1,r1),設定初始共享密鑰k=k1和k=kold。Server 存儲該PUF 的ID 值、密鑰以及(C,F,R) 集合:{IDi:k1,kold,(c,f,r)} ,device 存儲{IDi,c1,f1} 。雙方建立了初始共享密鑰k1。
密鑰交換階段:當server和device要發起會話時,執行兩方認證和密鑰交換步驟如圖3所示。

圖3 提出的兩方認證與會話密鑰交換協議Fig.3 Proposed two-party authentication and session key exchange protocol
首先,server 產生并發送隨機數m1給device,device 收到m1后,產生隨機數m2。然后,將保存的激勵c1輸入到PUF中,獲取帶有噪聲的響應r′1,并用密鑰提取函數KEY.Ext和保存的輔助數據f1從r′1中提取出密鑰k1。然后,以k1為密鑰、m1||m2為輸入,利用偽隨機函數PRF 產生5 個偽隨機數s1,s2,…,s5用于后續認證加密。最后將IDi、s1、m2發給server。
Server 對device 認證通過后,server 隨機挑選集合(c2,f2,r2) ,設置k2=KEY.Ext(r2,f2) ,將密鑰k1、kold更新為k2和k1,把(c2,f2,r2)從數據庫刪除。然后用異或加密將s′2與c2加密得u,s′3與f2加密得v,計算u、v的MAC 值w:=PRF′(s′4,m1||u||v),最后將(s′5,u,v,w)發給device。
Device接收信息后,首先認證s5是否等于s′5,若相等,則對server認證成功。device再對接收的信息w進行MAC認證,確保w未被篡改。若MAC認證正確,就將u與s2異或得到c2,v與s3異或得到f2,并將c1、f1更新為c2和f2。至此,密鑰交換過程完成,server 和device建立了新會話密鑰k1。
本文采用BAN邏輯化分析對提出協議進行安全性證明。server(S)或device(D)用相同的偽隨機函數PRF 分別生成5 個偽隨機數s′1,s′2,…,s′5與s1,s2,…,s5用于后續認證與加密。以雙方的共享密鑰k1和實時產生的隨機數m1和m2為輸入PRF,因此s′1,s′2,…,s′5與s1,s2,…,s5相同。設定server或device事先共享了3個密鑰分別為kab1、kab2、kab3。同時,協議采用BST-PUF及其魯棒響應提取器實時生成最后的密鑰k,實際上協議雙方交換的共享秘密信息為c2和f2。因此,將c2和f2作為雙方最終交換的密鑰信息來進行安全分析。BSTPUF函數及其魯棒響應提取器可信情況下,若c2和f2滿足安全性需求,最終產生的密鑰k也將滿足安全性需求。
本文涉及的BAN邏輯規則如下:


根據式(8)和(9),可以得到協議能保證server 與PUF device 共享的秘密信息c2和f2的安全性,即安全目標①和②得證,那么最后生成的密鑰k也能滿足安全需求。
3.2.1 密鑰安全性
已知會話密鑰安全:即使協議第i輪完成后會話密鑰泄露了,但第i+1 輪認證與會話密鑰交換過程不包含第i輪任何信息,且每輪認證與密鑰交換完成后,server 會刪除該輪的密鑰信息,即協議每次執行過程都會生成唯一的會話密鑰,第i+1 輪及以后會認證與密鑰交換不會受到影響。
未知密鑰共享安全:協議中server 與device 建立會話密鑰k2后,敵手嘗試與device或server進行通信來獲取另一方的密鑰。未知密鑰需要ID、偽隨機數s1和真隨機數m2等信息通過認證獲取,偽隨機數s1需密鑰k1與隨機數m1、m2經偽隨機函數得到,密鑰k1作為密鑰安全參數是根據響應r1生成。r1未知則無法獲取密鑰k1。只有合法設備才能通過認證與密鑰交換,未知密鑰共享安全能得到有效保證。
前向與后向安全性:協議每輪產生的新密鑰ri由server 從數據庫隨機挑選,確保協議每次更新的密鑰值的獨立性。每個密鑰使用后數據庫會刪除,保證密鑰不會重復使用,因此即使攻擊者知道某次會話密鑰值,甚至獲取了一部分密鑰信息對由于PUF的不可克隆性,也無法破解PUF推算出前一次和后一次的會話密鑰。
抗密鑰泄露偽裝攻擊安全:server 中的新密鑰信息對都是server從數據庫隨機挑選,確保了協議每次更新的密鑰值的獨立性。密鑰信息使用后數據庫會刪除,保證密鑰不會重復使用。密鑰信息的前項與后項安全性是可以保證的,即使一部分密鑰信息對泄漏,由PUF 的不可克隆性,密鑰信息也無法推斷出來,所以敵手無法冒充其他實體與server或device進行會話。
抗密鑰控制安全:server 與device 在協議會話中,server 確定s′1=s1后,server 會從數據庫(C,F,R)中隨機選取一組密鑰信息響應對來作為一個會話的密鑰,server 數據庫中儲存了大量的數據,抽取滿足數學檢驗良好隨機性即可以抗密鑰控制。
抗臨時私鑰泄露:協議執行過程中的會話密鑰為私鑰,長期密鑰為server儲存于數據庫中的密鑰。即使某輪或某幾輪的會話密鑰泄漏,協議也能保證抗臨時私鑰泄露。因為每輪的密鑰信息對都是server 在數據庫隨機選取的,滿足隨機獨立性;密鑰信息對完成對應輪次認證與會話密鑰交換后,密鑰信息會從數據庫中刪除且會話密鑰每輪都會更新。所以臨時私鑰泄漏不會對協議安全造成影響。
3.2.2 其他安全性
抗DoS攻擊:協議中server完成對device的認證后,先更新共享密鑰k1。此時若攻擊者發動DoS 攻擊,使device在后面無法正確接收到server發送的數據,則device 不會更新密鑰k1,引發了密鑰失配。為應對該威脅,協議server 中保存了舊密鑰kold,一旦發生DoS 攻擊,雙方會使用舊密鑰kold來進行接下來的認證和密鑰更新過程。
抗物理探測攻擊:傳統密鑰交換協議,密鑰直接保存在非易失性存儲器中,易受到侵入式探測攻擊和非侵入式圖像攻擊的破解。協議device 只存儲了激勵c1和可靠標志f1,即使攻擊者破解了c1和f1,知道PUF 的結構,由PUF 不可克隆性[14],攻擊者仍無法獲取密鑰k1值。后續新密鑰k2由server 隨機挑選,因此c1和f1泄露不會對后續密鑰交換產生影響。
抗建模攻擊:PUF 結構尺寸有限,當攻擊者獲取PUF 足夠多CPRs 時,可通過建模以極大概率預測PUF的CPR行為。建模攻擊前提是獲取足夠多的CPRs。其他協議[15]攻擊者可通過監聽通信信道或進行物理攻擊獲取CPRs。但本協議,激勵信息c和輔助數據f經過異或加密后傳輸,響應值r未在信道上進行傳輸,因此攻擊者無法從信道上獲取CRPs。但攻擊者可通過物理攻擊探測device 中的非易失存儲器(NVM)獲取c和f。但物理攻擊具有破壞性,只能獲取device當前存儲的(c1,f1)。因此,攻擊者通過各種攻擊均無法獲取足夠CPRs來進行建模攻擊。
為了評估協議device端的執行開銷與性能,測試將device 端協議以硬件方式在旁路攻擊評估板SASEBOGII 上的Cryptographic FPGA 上實現,server 端協議在PC 上實現。測試時device 使用UART 接口與server通信,頂層電路結構如圖4 所示。device 主要包括BST-PUF 電路、控制器(controller)、密鑰提取器(KEY extractor)、偽隨機函數PRF、真隨機數產生器TRNG、SPI ROM。BST-PUF 電路采用文獻[10]Arbiter-PUF 實現。密鑰提取器也采用文獻[10]電路架構實現。偽隨機數產生器PRF 采用了文獻[5]中基于SIMON 的實現方式。而TRNG則采用文獻[16]提出的基于電路亞穩態的FPGA實現結構。

圖4 模塊組成圖Fig.4 Module composition diagram
Device端協議采用Verilog實現后,使用Xilinx ISE 11.1綜合工具將協議寫入SASEBO-GII 的Cryptographic FPGA 中。協議執行1 000 次后,平均每次各模塊以及總平均執行開銷如表2所示。

表2 Device端協議執行開銷Table 2 Device side execution overhead
從表3 看出本文提出協議實現了雙向認證與可靠的密鑰交換,能夠抵抗物理探測攻擊、DoS攻擊,具有前后向安全性。由于加入了消息認證碼,可有效抵抗篡改攻擊和中間人攻擊。PUF密鑰信息經過加密傳輸,可防建模攻擊。

表3 協議安全性與執行開銷比較Table 3 Comparison of protocol security and execution overhead
執行開銷上,本協議device 端資源消耗為798 個LUT,436個register。相比現有PUF輕量型認證與密鑰交換協議,執行開銷大幅度減小,更適用于資源受限的物聯網設備。
表4 對比了各協議在實驗中的運行一次認證所用時間、用到的輔助數據總長度,可以看出本文提出的協議的輔助數據字節長度大幅減少,且運行時間較短。

表4 協議運行時間與輔助數據長度比較Table 4 Comparison of protocol uptime and help data length
本文提出一種輕量型認證與會話密鑰交換協議。協議用BST-PUF 電路實現密鑰產生與交換,用偽隨機函數和異或運算來進行雙向認證和異或加密。協議中device只需有BST-PUF電路、真隨機數產生器和偽隨機函數,無需采用任何糾錯機制,保證安全性同時有效降低執行開銷低至237 slices。安全性分析表明該協議實現了雙向認證和可靠的密鑰交換,能夠抵抗竊聽攻擊、篡改攻擊、中間人攻擊、DOS攻擊、建模攻擊、物理探測等攻擊。