楊 英,鐘 杰,鄭 力,胡 勇
(1.四川大學網(wǎng)絡空間安全學院,四川 成都 610065;2.中物院成都科學技術發(fā)展中心,四川 成都 610200)
海洋覆蓋了地球表面積的71%,蘊藏著豐富的自然資源,因此對其的觀測具有重要意義。海底觀測網(wǎng)[1]是典型的水下觀測網(wǎng)絡,主要由岸基監(jiān)控中心、中間設備和水下海洋觀測儀器構成,如圖1所示。
圖1 海底觀測網(wǎng)的拓撲結(jié)構
由于水下海洋觀測儀器作為終端設備分布式布放于海底深處且無人值守,易被人為替換造成假冒攻擊,從而影響關鍵海域海洋數(shù)據(jù)的準確采集和海底觀測網(wǎng)的安全運行,需要采取適當?shù)陌踩胧?。另外,海底水域環(huán)境的開放性使得通信數(shù)據(jù)易被截獲,遭受側(cè)信道分析攻擊。
針對上述安全問題,引入基于PUF 的身份認證技術。物理不可克隆函數(shù)(Physical Unclonable Function,PUF)信息具有唯一性和不可克隆性,實現(xiàn)成本低,可作為設備唯一身份標識和認證依據(jù)[2]。
文獻[3]提出基于PUF 的認證方案,通過服務器對讀寫器進行身份認證來抵抗攻擊者的假冒攻擊。文獻[4]采用PUF 作為密鑰生成機制,以抵抗攻擊者假冒攻擊。文獻[3-4]都基于PUF 特性和雙向認證機制抵抗認證雙方假冒攻擊。
文獻[5]提出結(jié)合學習與噪聲等值(Learning Parity with Noise,LPN)難題和PUF 不可克隆的特性,提出了一種基于HB#協(xié)議的改進協(xié)議PUF-HB#,實現(xiàn)了標簽與閱讀器間的輕量級雙向認證。但是,文獻[6]指出PUF-HB#協(xié)議由于增加了過多的傳輸參數(shù),使協(xié)議相較于HB#變得更加脆弱,無法抵抗側(cè)信道分析攻擊和重放攻擊。文獻[6]提出了一種基于雙PUF 的雙向身份認證協(xié)議。該方案通過對響應執(zhí)行一個二分異或操作,再使用隨機字符串填充生成一個新的字符串,以避免信息泄露,抵抗側(cè)信道分析攻擊。但是,該PUF 認證模型的準確性未得到驗證,且機器學習需要大量樣本,增加了應用的實施難度。文獻[7]提出一種只使用PUF 和簡單的操作(即循環(huán)左移、與和異或)協(xié)議,效率更高,但仍不能完全抵抗重放攻擊和側(cè)信道分析。
水下儀器終端設備擁有休眠/激活工作模式,其大部分時間處于休眠模式,無主動通信行為,僅少數(shù)時間處于激活模式下能夠收發(fā)數(shù)據(jù)。因此,認證方案需考慮終端主動發(fā)起連接請求和服務器主動發(fā)起連接請求兩種認證場景。
針對上述問題,本文提出基于PUF 且適用于休眠/激活兩種模式下的終端入網(wǎng)身份認證方案,并結(jié)合典型應用場景進行安全性分析。該方案使用PUF 信息作為認證憑據(jù),使用哈希函數(shù)保證認證信息非明文傳輸,從而實現(xiàn)服務器與終端的雙向認證,抵抗認證雙方的假冒攻擊。偽隨機M 序列加密認證信息,改變信息中“0”和“1”的分布規(guī)律。足夠位長的偽隨機M 序列周期非常長,具有極強的抗偵破能力[8],能夠有效抵抗側(cè)信道分析攻擊。
PUF 技術利用了現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)芯片在加工制造過程中的隨機性差異。這些隨機性差異是由于加工工藝的限制造成的,無法被復制或人為控制,具備唯一性和不可克隆性。FPGA 芯片的硬件物理指紋也被稱為激勵/響應對?;赑UF 的激勵響應對的產(chǎn)生原理如圖2 所示。外界向芯片輸入一個定長的激勵信號,芯片將根據(jù)激勵信號選擇對應的硬件電路單元,再依據(jù)特殊的PUF 生成算法提取該部分電路單元的硬件特征信息生成一個定長的響應信號。該激勵信號和響應信號合稱為一個激勵/響應對。提取的激勵/響應對符合可靠性、均勻性、獨特性以及隨機性等[9]指標后,方可作為一條正式的芯片物理指紋。
圖2 激勵/響應對的產(chǎn)生
M 序列[8]是一種偽噪聲序列,可由硬件n級非線性反饋移位寄存器產(chǎn)生。它的周期與反饋移位寄存器的級數(shù)有關。M 序列的優(yōu)點是產(chǎn)生的序列數(shù)量多,且隨n的增大而迅速增加。n級非線性反饋移位寄存器可產(chǎn)生的M 序列條數(shù)[8]為n級非線性反饋移位寄存器的結(jié)構如圖3 所示[8]。
M 序列由時鐘頻率、反饋邏輯(生成多項式)和初始狀態(tài)決定。M 序列應用于信息安全領域加解密時,發(fā)送方將M 序列與信息流異或(XOR),實現(xiàn)對信息流的鏈路層安全加密,而接收方把收到的信息與預協(xié)商的密鑰M 序列異或,解密信息。
圖3 n 級非線性反饋移位寄存器
加入可信通信網(wǎng)絡的終端設備,需要在安裝部署前進行物理指紋采集和偽隨機M 序列協(xié)商,并將采集的指紋和偽隨機M 序列安全存儲于岸基中心的身份認證服務器內(nèi)。其中,指紋數(shù)量取決于終端使用期限和認證間隔時間。身份注冊流程如圖4 所示。
圖4 終端設備注冊階段
水下儀器終端(以下簡稱終端)擁有休眠/激活工作模式。終端從休眠模式切換到激活模式有兩種觸發(fā)方式,分別是認證服務器(以下簡稱為服務器)的外部喚醒和終端的自主蘇醒。兩種方式交替進行,且時間間隔偽隨機。針對休眠/激活工作模式終端,本文提出終端入網(wǎng)的安全雙向身份認證方案。
本認證方案的前提包括:
(1)終端設備芯片具有PUF 函數(shù)和n級非線性反饋移位寄存器;
(2)M 序列由硬件產(chǎn)生;
(3)終端設備和服務器端都需預存一個相同的哈希函數(shù);
(4)終端ID 已存在,且由多種硬件特性產(chǎn)生,攻擊者無法在短時間內(nèi)猜測出來;
(5)服務器端需要在終端設備注冊時存儲其ID、IP、CRPs 和M 序列。服務器處于安全性較高的環(huán)境,M 序列等信息泄露的可能性小。
方案中出現(xiàn)的符號含義如表1 所示。
表1 符號含義
2.2.1 外部喚醒方式
外部喚醒模式下的認證流程如圖5 所示。
具體認證步驟如下。
圖5 外部喚醒模式下認證流程
(1)Server →Client{M(c1,hash1,c2,hash2,num1)}。服務器喚醒終端進行認證前,根據(jù)終端ID 查找到對應的指紋庫,從CRPs 中選擇兩條未被使用過的指紋(c1,r1)和(c2,r2),從中提取激勵c1 和c2 生成認證幀并主動發(fā)送至終端。服務器端生成初始隨機數(shù)num1 作為初始序列號,計算出hash1=H(ID&num1) 和hash2=H(ID&num1&r1&c1),將num1、hash1、hash2 以及激勵c1 和c2 一起打包寫入數(shù)據(jù)字段組成認證幀,并將認證幀與偽隨機M 序列異或加密后發(fā)送給終端;
(2)Client →Server{M(hash3,num2′)}。終端收到認證幀后,將認證幀與M 序列異或后解析得到hash1、hash2、num1 以及c1 和c2。先利用本地設備號IDc計算出hash1′=H(IDc&num1),若hash1=hash1′,則終端認為此次喚醒有效,開啟認證;反之,則終端認為此次喚醒無效,不開啟認證。若此次喚醒有效,終端開始認證服務器,終端利用PUF 模塊得到r1′=PUF(c1),再計算hash2′=H(IDc&num1&r1′&c1),利用hash2′驗證hash2 的正確性。若hash2=hash2′,則終端成功認證服務器,繼續(xù)認證過程;反之,終端認證服務器失敗,終止認證。若終端成功認證服務器,終端再次利用PUF模塊得到r2′=PUF(c2),計算num2=num1+i(i為正隨機數(shù),可由軟件函數(shù)產(chǎn)生)、num2′=num2 ⊕IDc和hash3=H(IDc&num2&r2′&c2),然后打包num2′和hash3 寫入數(shù)據(jù)字段組成確認幀,并將確認幀經(jīng)偽隨機M 序列鏈路層加密后發(fā)送至服務器。
服務器端接收到確認幀后,將確認幀與M 序列異或后解析得到hash3 和num2′,再根據(jù)已存儲的ID(每個終端ID 對應一個固定的IP,且一個ID在數(shù)據(jù)庫中對應一個CRPs 表)和(c2,r2)計算得到num2=ID⊕num2′和hash3′=H(ID&num2&r2&c2)。若hash3=hash3′,則服務器成功認證終端;反之,服務器認證終端失敗,將終端信息從可信列表中刪除。若服務器端沒有接收到終端的確認幀,則將終端視為不可用終端,并同時將終端信息從可信列表中刪除。
2.2.2 自主蘇醒方式
自主蘇醒方式下的認證流程如圖6 所示。
具體認證步驟如下。
(1)Client →Server{M(IDc)}。終端自主蘇醒處于激活模式,在預先定義好的時間間隔內(nèi)生成心跳幀,再將心跳幀與偽隨機M 序列異或后發(fā)送至服務器。其中,心跳幀包含終端設備IDc。
(2)Server →Client{M(c1,num1′)}。服務器收到心跳幀后知曉該終端已蘇醒,將心跳幀與發(fā)端相同的M 序列異或后解析得到IDc,再根據(jù)IDc查找到存儲的物理指紋(CRPs)。若不能查找到該ID對應的指紋庫,則表明該終端為未注冊設備,不繼續(xù)認證過程;若能查找到該IDc對應的指紋庫,則表明IDc=ID,再從CRPs 中選擇一條未被使用過的指紋(c1,r1)并提取激勵c1 生成初始隨機數(shù)num1,計算出num1′=ID⊕num1,將c1 和num1′兩者打包寫入數(shù)據(jù)字段組成確認幀,并將確認幀經(jīng)偽隨機M 序列鏈路層加密后發(fā)送至終端。
圖6 自主蘇醒方式下認證流程
(3)Client →Server{M(hash1,num2′)}。終端收到認證幀后,將認證幀與發(fā)端相同的M 序列異或后解析得到c1 和num1′,利用PUF 模塊得 到r1′=PUF(c1),計 算num1=num1′⊕IDc,num2=num1+i(i為正隨機數(shù),可由軟件函數(shù)產(chǎn)生)、num2′=num2⊕IDc和hash1=H(IDc&num2&r1′&c1),打包num2′和hash1 寫入數(shù)據(jù)字段組成認證幀1,并將認證幀1 經(jīng)偽隨機M 序列鏈路層加密后發(fā)送至服務器。
(4)Server →Client{M(c2,hash2,num3′)}。服務器收到認證幀1 后,將認證幀1 與M 序列異或后解析得到hash1 和num2′,計算得到num2=num2′⊕ID、hash1′=H(ID&num2&r1&c1) 和i(i=num2-num1)。利用hash1′驗證hash1 的正確性,若hash1=hash1′,則服務器認證終端成功;反之,則服務器認證終端失敗,終止認證。若服務器成功認證終端,則服務器端從CRPs 中選擇一條未被使用過的指紋(c2,r2)并提取激勵c2,計算出num3=num2+i、num3′=num3 ⊕ID和hash2=H(ID&num3&r2&c2),打包c2、num3′和hash2 寫入數(shù)據(jù)字段組成認證幀2,并將認證幀2 經(jīng)偽隨機M 序列鏈路層加密后發(fā)送至終端。
終端收到認證幀2 后,將認證幀2 與發(fā)端相同的M 序列異或后解析得到c2、hash2 和num3′,利用PUF 模塊得到r2′=PUF(c2),計算num3=num3′⊕IDc和hash2′=H(IDc&num3&r2′&c2)。利用hash2′驗證hash2 的正確性,若hash2=hash2′,則終端認證服務器成功,雙向認證成功;反之,則終端認證服務器失敗。
海底觀測網(wǎng)中水下終端處于無人值守狀態(tài),且處于開放海域中,因此終端易被人為替換,且水下終端與服務器之間的認證數(shù)據(jù)易遭受攻擊者側(cè)信道偵聽與分析攻擊,引發(fā)假冒攻擊、重放攻擊和信息篡改攻擊。因此,海底觀測網(wǎng)的水下終端入網(wǎng)身份認證方案需要有抵抗上述攻擊的能力。
側(cè)信道分析攻擊是指利用認證過程產(chǎn)生的功耗、光信號(電磁輻射)以及通信時間等信息,綜合分析傳輸過程中使用的密鑰等具有一定價值的信息[10]。
認證過程中信息使用偽隨機M 序列進行鏈路層加密。由于所用M 序列為極長周期的偽隨機序列,與信息按位異或后能夠改變信息中“0”和“1”的分布規(guī)律,因此經(jīng)M 序列加密后的信息具有極強的抗偵破能力,增加了側(cè)信道分析攻擊難度,不易獲取認證過程采用的加密算法和認證憑據(jù)。PUF 模塊位于終端設備的嵌入式硬件平臺上,使用硬件方式提取芯片特征信息,響應時間極短且響應時間間隔是偽隨機的。此外,休眠/激活工作機制可以減少功耗,減少發(fā)送數(shù)據(jù)量,降低認證信息被側(cè)信道偵聽的概率。
假冒攻擊是指攻擊者通過信息竊聽來截取認證雙方認證信息,然后冒充終端設備重放認證消息非法接入網(wǎng)絡來獲取信息或提供虛假信息。
本方案在外部喚醒方式和自主蘇醒方式下實現(xiàn)了終端與服務器之間的雙向認證,彌補了單向認證中的存在認證一方假冒的缺陷。此外,每個CRP 只使用一次,并使用單向哈希函數(shù)計算消息散列值,使得認證過程中使用的認證信息非明文傳輸且處于不斷更新變化狀態(tài),增加了攻擊者破解認證信息的難度。因此,該協(xié)議能抵抗攻擊者發(fā)起的假冒攻擊。
重放攻擊是指攻擊者給受信任的目標節(jié)點發(fā)送一個該節(jié)點已經(jīng)接收過的數(shù)據(jù)包。此攻擊可破壞身份認證的結(jié)果,甚至可演化為DoS 攻擊,使目標節(jié)點癱瘓。
如圖7 所示,針對直接重放攻擊,本方案中每個CRP 只使用一次,且每次認證交互過程中都包含序列號。初始序列號具有隨機性,后續(xù)的序列號為遞增模式。終端或服務器將存儲的序列號與收到的認證幀的序列號作比對,若攻擊者直接重放認證幀,則認證幀的序列號小于或等于存儲的序列號,認為是重放攻擊,認證程序終止。因此,攻擊者很難通過直接重放認證過程中的認證消息來實現(xiàn)一次完整的重放攻擊。
圖7 重放攻擊及其抵抗原理
信息篡改攻擊是指對認證雙方的認證數(shù)據(jù)進行增、刪、改操作,破壞信息的完整性和機密性,造成認證雙方認證失敗。
如圖8 所示,方案中采用哈希、與和異或等運算確保信息的完整性和機密性。哈希運算確認信息傳輸過程中數(shù)據(jù)沒有被篡改,與運算可視為一個簡單的加密過程,異或運算實現(xiàn)認證過程中的幀序列號為非明文傳輸。哈希運算的不可逆性,大大增加了信息被篡改的難度。
圖8 信息篡改及其抵抗原理
協(xié)議的安全性及計算開銷比較,如表2 所示。其中,“√”表示能夠抵抗;“×”表示不能抵抗;PUF_mod 表示PUF 機器學習模型;RNG 表示隨機數(shù)生成器;Hash 為哈希運算。文獻[6]提出的認證協(xié)議雖然有較強的安全性,但需要訓練學習模型,增加了認證過程中額外的開銷。
表2 協(xié)議的安全性及計算開銷比較
在論述海底觀測網(wǎng)中終端所面臨安全問題和挑戰(zhàn)的基礎上,基于PUF、偽隨機M 序列和哈希函數(shù)提出一種新的適用于該場景的終端和服務器雙向身份認證方案。該方案不需要終端存儲任何秘密參數(shù),且安全性分析表明該方案能抵抗認證過程中的多種惡意攻擊,適合海底觀測網(wǎng)水下終端的入網(wǎng)認證,為物聯(lián)網(wǎng)特殊應用場景下的信息系統(tǒng)提供了可信關鍵技術儲備。但是,本文中的身份認證方案不保證通信雙方的信息安全傳輸,因此可進一步考慮基于PUF 的密鑰管理方案。