劉熙胖 廖正赟 衛(wèi)志剛
(鄭州信大捷安信息技術(shù)股份有限公司 鄭州 450003) (lxp@xdja.com)
物聯(lián)網(wǎng)[1-2]的高速發(fā)展引領(lǐng)了新的網(wǎng)絡(luò)產(chǎn)業(yè)革命,物聯(lián)網(wǎng)產(chǎn)品呈現(xiàn)出爆發(fā)式增長(zhǎng),逐漸影響并改變著我們的生活.但同時(shí)物聯(lián)網(wǎng)設(shè)備所提供的功能、服務(wù)又太深入我們的生活,信息安全、設(shè)備安全問題所導(dǎo)致的嚴(yán)重后果有時(shí)并非我們能承受,安全問題已經(jīng)在影響和限制物聯(lián)網(wǎng)的發(fā)展.
物聯(lián)網(wǎng)體系從結(jié)構(gòu)上分為末梢設(shè)備、物聯(lián)網(wǎng)通信網(wǎng)絡(luò)、物聯(lián)網(wǎng)服務(wù)平臺(tái).在該體系中,物聯(lián)網(wǎng)信息安全主要包括設(shè)備身份安全、數(shù)據(jù)傳輸安全、權(quán)限控制安全、數(shù)據(jù)存儲(chǔ)安全等.密碼技術(shù)是信息安全的核心技術(shù),物聯(lián)網(wǎng)信息安全離不開各種密碼算法提供的數(shù)據(jù)加密功能和簽名驗(yàn)證機(jī)制的支撐,而密碼算法需要利用各種密鑰參與運(yùn)算才能真正實(shí)現(xiàn)安全有效的密文信息存儲(chǔ)交換、可靠的身份認(rèn)證等,所以要構(gòu)建一套完整的物聯(lián)網(wǎng)安全體系,首先要有一套完整、有效的密鑰管理系統(tǒng)支撐.
互聯(lián)網(wǎng)信息安全體系及產(chǎn)品經(jīng)過多年的發(fā)展和積累已基本成熟,但這些技術(shù)體系和產(chǎn)品方案在協(xié)議層面和運(yùn)算資源、成本層面,并不適合物聯(lián)網(wǎng)使用.在密碼技術(shù)上,傳統(tǒng)信息安全方案以數(shù)字證書[3]、公開密鑰體系(public key infrastructure, PKI)[4]為基礎(chǔ),公開密鑰體系雖然方便密鑰管理,但是對(duì)運(yùn)算存儲(chǔ)能力要求較高,在網(wǎng)絡(luò)通信中還需要交換數(shù)字證書,并不適合在網(wǎng)絡(luò)資源緊張的物聯(lián)網(wǎng)網(wǎng)絡(luò)中傳輸.
因此,為了適應(yīng)物聯(lián)網(wǎng)設(shè)備性能和網(wǎng)絡(luò)特點(diǎn),必須要針對(duì)物聯(lián)網(wǎng)設(shè)計(jì)專用的密鑰管理體系和系統(tǒng)[5],以支撐物聯(lián)網(wǎng)安全、健康、有序發(fā)展.另外,物聯(lián)網(wǎng)傳感器收集到的信息形成大數(shù)據(jù)后,不僅具有重要的商業(yè)價(jià)值,更有巨大的戰(zhàn)略價(jià)值,所以必須采用自主可控的密碼算法對(duì)數(shù)據(jù)進(jìn)行有效的加密保護(hù),保證數(shù)據(jù)只被國(guó)家合法機(jī)構(gòu)、授權(quán)用戶使用.基于以上考慮,本文基于國(guó)有自主密碼算法[6-8],設(shè)計(jì)針對(duì)物聯(lián)網(wǎng)高延時(shí)、低速率、低功耗等場(chǎng)景的輕量化密鑰體系,為物聯(lián)網(wǎng)系統(tǒng)提供最基礎(chǔ)的安全服務(wù).
在密鑰管理方面,當(dāng)前密鑰體系主要分為以下3種:
1) 基于PKI的密鑰體系
該體系是目前互聯(lián)網(wǎng)中使用最多的密鑰體系結(jié)構(gòu),其以CA(certificate authority)作為信任中心,各實(shí)體采用證書作為身份標(biāo)識(shí),在使用時(shí)通過非對(duì)稱的加密、簽名等實(shí)現(xiàn)密鑰管理、身份認(rèn)證、會(huì)話密鑰協(xié)商等功能.該體系優(yōu)點(diǎn)是采用非對(duì)稱密鑰體制,在密鑰管理上比較方便,但是非對(duì)稱密鑰在計(jì)算上基于數(shù)學(xué)函數(shù)復(fù)雜度來保護(hù)數(shù)據(jù)安全,其運(yùn)算開銷比較大,要求有較高的計(jì)算能力和功耗;另外,在用于通信雙方密鑰協(xié)商和認(rèn)證時(shí),其需要交換數(shù)字證書,這對(duì)于網(wǎng)絡(luò)通信帶寬也有一定要求.因此,該體系并不能滿足物聯(lián)網(wǎng)對(duì)于密鑰體系輕量化的要求.
2) 基于對(duì)稱密碼的密鑰體系[9]
該體系在業(yè)務(wù)數(shù)據(jù)加密和密鑰管理中采用對(duì)稱密碼算法,由于對(duì)稱算法一般采用代替和置換等計(jì)算來進(jìn)行密碼運(yùn)算,其運(yùn)算開銷小,適合于計(jì)算資源不高的物聯(lián)網(wǎng)終端,但是其在密鑰管理上需要各終端共享相同密鑰,密鑰管理成本較高.
3) 基于IBC(identity-based cryptograph)的密鑰體系[10]
IBC密鑰體系是傳統(tǒng)PKI體系的改進(jìn),在終端雙方通信過程中,可以通過對(duì)身份標(biāo)識(shí)的變換來得到對(duì)方的公鑰,簡(jiǎn)化了原有的基于證書的身份管理機(jī)制,解決了PKI體系中證書交換網(wǎng)絡(luò)開銷大的問題,但是IBC在計(jì)算資源開銷方面要比一般的公鑰算法更高,對(duì)計(jì)算設(shè)備的性能和功耗要求較高.
從以上分析可以看出,現(xiàn)有技術(shù)體系在應(yīng)用到物聯(lián)網(wǎng)環(huán)境中總是存在一些不適應(yīng)的情況,因此,需要綜合考慮物聯(lián)網(wǎng)的特點(diǎn)和密鑰管理的方便性來設(shè)計(jì)物聯(lián)網(wǎng)使用的密鑰體系.
為了設(shè)計(jì)面向物聯(lián)網(wǎng)的輕量化密鑰管理方案,本文首先根據(jù)物聯(lián)網(wǎng)特點(diǎn)設(shè)計(jì)了輕量化的密鑰管理體系,然后給出了輕量化密鑰管理系統(tǒng)的體系結(jié)構(gòu),并說明了密鑰加密分發(fā)過程.
為了適應(yīng)物聯(lián)網(wǎng)密鑰體系輕量化需求,同時(shí)考慮密鑰管理的方便性,本文擬結(jié)合對(duì)稱密鑰和非對(duì)稱密鑰來構(gòu)建整個(gè)密鑰體系.如圖1所示,整個(gè)密鑰體系分為3個(gè)層次:最上層為管理層密鑰,主要用于設(shè)備業(yè)務(wù)密鑰的存儲(chǔ)和分發(fā)保護(hù);中間層為業(yè)務(wù)層密鑰,是內(nèi)置于物聯(lián)網(wǎng)終端設(shè)備使用的工作密鑰,主要用于業(yè)務(wù)信息的保護(hù)或會(huì)話密鑰的協(xié)商;最下層為會(huì)話層密鑰,該密鑰生存周期較短,一般用于會(huì)話數(shù)據(jù)的加解密.
圖1 輕量化密鑰體系
各層次密鑰的詳細(xì)說明如下:
1) 管理層密鑰
管理層密鑰主要包括密鑰保護(hù)密鑰、密鑰分發(fā)密鑰、設(shè)備認(rèn)證密鑰等,其中:密鑰保護(hù)密鑰用在終端設(shè)備中或密鑰管理系統(tǒng)中對(duì)于業(yè)務(wù)密鑰的加密保護(hù),該密鑰只在本地使用,采用對(duì)稱密鑰算法;密鑰分發(fā)密鑰用于業(yè)務(wù)密鑰的分發(fā)保護(hù),密鑰在分發(fā)傳輸過程中,一般不允許密鑰以明文的形式出現(xiàn)在密碼模塊外,采用密鑰分發(fā)密鑰可確保密鑰分發(fā)過程的安全,出于管理方便考慮,該密鑰采用非對(duì)稱密鑰算法;設(shè)備認(rèn)證密鑰主要用于對(duì)物聯(lián)網(wǎng)終端密碼模塊操作時(shí)的認(rèn)證,由于密碼模塊內(nèi)的信息不能隨便修改,采用設(shè)備認(rèn)證密鑰可確認(rèn)密碼模塊管理維護(hù)人員的身份和權(quán)限,確保終端密鑰模塊內(nèi)部系統(tǒng)和文件不被隨意操作.
2) 業(yè)務(wù)層密鑰
業(yè)務(wù)層密鑰是物聯(lián)網(wǎng)業(yè)務(wù)終端進(jìn)行業(yè)務(wù)數(shù)據(jù)保護(hù)的工作密鑰,為了滿足物聯(lián)網(wǎng)密鑰輕量化的需求,在密碼算法上采用對(duì)稱密鑰算法.同時(shí),為了解決對(duì)稱密鑰體制密鑰管理困難的缺點(diǎn),業(yè)務(wù)密鑰在組織上采用層次化管理方式,每個(gè)業(yè)務(wù)對(duì)應(yīng)一個(gè)業(yè)務(wù)根密鑰,通過層層分散的方式得到業(yè)務(wù)子密鑰.密鑰分散算法如下:
Ki=Left(Hash(IDi‖Ki-1‖Ver),Len),
其中Ki表示第i層密鑰,Ki-1表示上一層密鑰,IDi代表第i層設(shè)備的標(biāo)識(shí),Ver代表設(shè)備版本號(hào),Len代表密鑰長(zhǎng)度,函數(shù)Hash表示哈希算法,函數(shù)Left表示取某個(gè)字節(jié)串的左邊Len長(zhǎng)度字節(jié)數(shù).
通過層層分散,業(yè)務(wù)密鑰構(gòu)成了一個(gè)以業(yè)務(wù)根密鑰為根、各業(yè)務(wù)子密鑰為節(jié)點(diǎn)層次式結(jié)構(gòu),中心設(shè)備可內(nèi)置業(yè)務(wù)根密鑰或上層業(yè)務(wù)密鑰,其只要通過設(shè)備ID就可以分散出下層終端節(jié)點(diǎn)的業(yè)務(wù)密鑰,這樣就實(shí)現(xiàn)了業(yè)務(wù)密鑰的體系化管理,解決了傳統(tǒng)的對(duì)稱密鑰管理方式下密鑰共享的復(fù)雜問題.
3) 會(huì)話層密鑰
會(huì)話層密鑰主要用于某個(gè)會(huì)話或事務(wù)的安全通信保護(hù),其生存周期為一個(gè)會(huì)話周期,該層密鑰一般使用業(yè)務(wù)密鑰通過密鑰協(xié)商得到,典型的基于業(yè)務(wù)密鑰的會(huì)話密鑰協(xié)商過程如圖2所示:
圖2 會(huì)話密鑰協(xié)商過程
其中KA,KB表示物理網(wǎng)設(shè)備業(yè)務(wù)密鑰,ID表示B的標(biāo)識(shí),Enc表示對(duì)稱加密.在該協(xié)商過程中,中心設(shè)備A通過KA與ID分散得到B的密鑰KB,基于KB通過協(xié)商交互最終得到了會(huì)話密鑰tpKey,后續(xù)通信可通過tpKey完成,一旦會(huì)話結(jié)束,會(huì)話密鑰便銷毀.
為了實(shí)現(xiàn)密碼系統(tǒng)的自主可控,在實(shí)現(xiàn)時(shí)各密鑰均采用國(guó)有密碼算法,其中密鑰保護(hù)密鑰、業(yè)務(wù)層密鑰、會(huì)話層密鑰采用對(duì)稱密碼算法SM4,密鑰分發(fā)密鑰、設(shè)備認(rèn)證密鑰采用非對(duì)稱密碼算法SM2,密鑰分散時(shí)采用的哈希算法使用SM3.
密鑰管理系統(tǒng)是密鑰管理體系的核心,基于上述輕量化密鑰體系,可設(shè)計(jì)輕量化密鑰管理系統(tǒng)系統(tǒng)結(jié)構(gòu).如圖3所示,輕量化密鑰管理系統(tǒng)從邏輯結(jié)構(gòu)上由密鑰管理服務(wù)、密鑰數(shù)據(jù)庫、加密機(jī)3部分組成.密鑰管理服務(wù)主要完成密鑰的生成、分發(fā)、更新、撤銷等全生命周期管理;密鑰數(shù)據(jù)庫用于存儲(chǔ)加密后的密鑰、密鑰狀態(tài)及密鑰與密鑰、密鑰與設(shè)備的關(guān)聯(lián)關(guān)系;加密機(jī)主要提供基礎(chǔ)密碼算法并實(shí)現(xiàn)密鑰生成、數(shù)字簽名、數(shù)據(jù)加解密等服務(wù).
圖3 密鑰管理系統(tǒng)邏輯結(jié)構(gòu)
其中密鑰管理服務(wù)中又分為密鑰存儲(chǔ)模塊、密鑰管理模塊、配置管理模塊和安全通信模塊,具體功能定義如下:
1) 密鑰存儲(chǔ)模塊.負(fù)責(zé)密鑰的安全存儲(chǔ)與查詢、檢索,所有存儲(chǔ)到數(shù)據(jù)庫中的密鑰都調(diào)用加密機(jī)加密并以密文形式存儲(chǔ),保證密鑰安全,同時(shí)對(duì)外部提供密鑰查詢及檢索功能.可通過密鑰ID、設(shè)備ID、密鑰類型查詢密鑰信息,并申請(qǐng)獲取密鑰數(shù)據(jù).理論上只對(duì)密鑰管理模塊服務(wù).
2) 密鑰管理模塊.負(fù)責(zé)密鑰生成、密鑰更新、密鑰存儲(chǔ)、密鑰撤銷等管理功能,與安全存儲(chǔ)模塊與配置管理模塊一起完成密鑰全生命周期管理功能.
3) 配置管理模塊.提供密鑰管理系統(tǒng)的配置服務(wù),包括密鑰管理操作、數(shù)據(jù)管理操作、加密機(jī)管理操作及人員管理操作.
4) 安全通信模塊.對(duì)接入客戶端進(jìn)行安全認(rèn)證,并實(shí)現(xiàn)全程加密數(shù)據(jù)傳輸,保證密鑰管理系統(tǒng)外部通信安全和傳輸數(shù)據(jù)安全.
終端設(shè)備在使用前,均需要由密鑰管理中心生成業(yè)務(wù)密鑰,并安裝于終端設(shè)備的密碼模塊中,根據(jù)密鑰管理的基本要求,該過程中業(yè)務(wù)密鑰不能以明文方式在密碼模塊外出現(xiàn),本文采用密鑰分發(fā)密鑰對(duì)該密鑰分發(fā)過程中傳輸?shù)臉I(yè)務(wù)密鑰進(jìn)行了保護(hù).具體過程如下:
1) 終端設(shè)備調(diào)用密碼模塊非對(duì)稱密鑰生成算法,生成1對(duì)密鑰分發(fā)密鑰公私鑰(公鑰設(shè)備為Kpub、私鑰為Kpri),其中私鑰存儲(chǔ)于終端密碼模塊中,公鑰Kpub從密碼模塊中導(dǎo)出;
2) 終端設(shè)備將上述公鑰Kpub和自身設(shè)備的標(biāo)識(shí)傳送給密鑰管理中心;
3) 密鑰管理中心根據(jù)終端設(shè)備標(biāo)識(shí)通過分散生成終端設(shè)備的業(yè)務(wù)密鑰K,并利用Kpub將業(yè)務(wù)密鑰加密,并將該密文發(fā)送給終端設(shè)備;
4) 終端設(shè)備將上述密文導(dǎo)入到其密碼模塊中,密碼模塊利用Kpri解密該密文得到業(yè)務(wù)密鑰K,并將K存儲(chǔ)于密碼模塊的密鑰存儲(chǔ)區(qū).
通過以上過程,密鑰管理中心基于密鑰分發(fā)密鑰實(shí)現(xiàn)了對(duì)終端設(shè)備業(yè)務(wù)密鑰的傳輸加密保護(hù),確保了業(yè)務(wù)密鑰分發(fā)過程中的安全.
在物聯(lián)網(wǎng)的網(wǎng)絡(luò)結(jié)構(gòu)中,有終端節(jié)點(diǎn)、路由節(jié)點(diǎn)、網(wǎng)關(guān)節(jié)點(diǎn)3種,其中終端節(jié)點(diǎn)為傳感器終端,路由節(jié)點(diǎn)為中間節(jié)點(diǎn),網(wǎng)關(guān)節(jié)點(diǎn)為后臺(tái)中心的入口節(jié)點(diǎn).根據(jù)實(shí)際應(yīng)用場(chǎng)景,物聯(lián)網(wǎng)網(wǎng)絡(luò)可能存在多種網(wǎng)絡(luò)拓?fù)浞绞?,如圖4所示,典型的拓?fù)浞绞接兄行男汀湫蔚?
圖4 典型物聯(lián)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
在密鑰體系設(shè)計(jì)上,需要根據(jù)其拓?fù)浣Y(jié)構(gòu)對(duì)節(jié)點(diǎn)間的通信進(jìn)行加密.對(duì)于中心型網(wǎng)絡(luò)拓?fù)洌刹捎?層業(yè)務(wù)密鑰體系,在網(wǎng)關(guān)節(jié)點(diǎn)配置業(yè)務(wù)根密鑰,在其他節(jié)點(diǎn)配置子密鑰,子密鑰由業(yè)務(wù)根密鑰分散得到.對(duì)于樹形拓?fù)渚W(wǎng)絡(luò),密鑰體系上也同樣采用樹形結(jié)構(gòu),如圖5所示.該樹以業(yè)務(wù)根密鑰為頂級(jí)節(jié)點(diǎn),樹枝節(jié)點(diǎn)為各個(gè)路由節(jié)點(diǎn)的子密鑰,葉子節(jié)點(diǎn)為各終端子密鑰,其中,路由節(jié)點(diǎn)子密鑰由上級(jí)路由節(jié)點(diǎn)子密鑰或網(wǎng)關(guān)節(jié)點(diǎn)分散得到,終端子密鑰由上級(jí)路由節(jié)點(diǎn)子密鑰或網(wǎng)關(guān)節(jié)點(diǎn)分散得到,通過層層分散,構(gòu)成了業(yè)務(wù)密鑰的樹形結(jié)構(gòu).在運(yùn)行時(shí),樹枝節(jié)點(diǎn)能夠分散得到其直接下級(jí)的子密鑰,最終實(shí)現(xiàn)了鏈路上各節(jié)點(diǎn)間業(yè)務(wù)通信的安全保密.
圖5 樹形密鑰結(jié)構(gòu)
物聯(lián)網(wǎng)的快速發(fā)展離不開信息安全技術(shù)的支撐與防護(hù),一個(gè)好的信息安全體系需要有基礎(chǔ)、完善、有效的密鑰管理系統(tǒng)支撐.面向物聯(lián)網(wǎng)特定場(chǎng)景輕量化的密鑰管理系統(tǒng),通過非對(duì)稱密鑰和對(duì)稱密鑰技術(shù)的合理配用,解決了傳統(tǒng)密鑰體系運(yùn)算量大、管理不方便等問題,并基于業(yè)務(wù)密鑰分散體系,實(shí)現(xiàn)了對(duì)物聯(lián)網(wǎng)拓?fù)浣Y(jié)構(gòu)的有效適配.通過輕量化密鑰管理系統(tǒng)和各種安全接入設(shè)備、安全管控設(shè)備的有效融合,能夠支撐構(gòu)建完整的物聯(lián)網(wǎng)通信安全服務(wù)保障體系,促進(jìn)我國(guó)物聯(lián)網(wǎng)更快、更穩(wěn)、有序發(fā)展.