張曉輝,王首媛,慕江林(.中訊郵電咨詢(xún)?cè)O(shè)計(jì)院有限公司成都分公司,四川 成都 60000;.中訊郵電咨詢(xún)?cè)O(shè)計(jì)院有限公司,北京 00048)
物聯(lián)網(wǎng)有著無(wú)數(shù)的終端設(shè)備、復(fù)雜的信息通信渠道、龐大的數(shù)據(jù)存儲(chǔ)與處理中心。相對(duì)于互聯(lián)網(wǎng),物聯(lián)網(wǎng)的終端有可移動(dòng)化、微型化、海量化的特征,其傳輸通道涉及有線(xiàn)網(wǎng)絡(luò)和無(wú)線(xiàn)網(wǎng)絡(luò),物聯(lián)網(wǎng)的體系結(jié)構(gòu)中呈現(xiàn)出可編程、可通信、智能化、網(wǎng)絡(luò)化的特點(diǎn),因此物聯(lián)網(wǎng)面臨特殊的安全挑戰(zhàn)[1]。
本文基于CLA 無(wú)證書(shū)密碼技術(shù)和TLS 傳輸層安全協(xié)議,提出物聯(lián)網(wǎng)設(shè)備認(rèn)證和安全通信技術(shù)方案。該方案重點(diǎn)解決物聯(lián)網(wǎng)通信過(guò)程中設(shè)備身份認(rèn)證困難和數(shù)字證書(shū)傳輸成本過(guò)高等問(wèn)題。
該方案采用CLA 無(wú)證書(shū)密碼技術(shù)為物聯(lián)網(wǎng)設(shè)備生成數(shù)字身份,將CLA 無(wú)證書(shū)認(rèn)證技術(shù)集成到TLS 傳輸層安全協(xié)議,基于國(guó)密SM2、SM3 和SM4 算法,形成CLA 無(wú)證書(shū)密碼套件。采用TLS握手過(guò)程進(jìn)行設(shè)備身份認(rèn)證和密鑰協(xié)商,物聯(lián)網(wǎng)設(shè)備通過(guò)TLS 加密通道進(jìn)行安全通信。
當(dāng)前物聯(lián)網(wǎng)大多采用傳統(tǒng)的PKI/CA 證書(shū)體制,采用X.509 證書(shū)格式,在IoT 物聯(lián)網(wǎng)平臺(tái)注冊(cè)私有CA 證書(shū),在設(shè)備側(cè)綁定設(shè)備證書(shū),通過(guò)TLS中的RSA算法套件等進(jìn)行設(shè)備認(rèn)證和通信。
部分物聯(lián)網(wǎng)設(shè)備采用基于標(biāo)識(shí)的認(rèn)證體制,例如部署基于國(guó)密SM9 的基礎(chǔ)密碼設(shè)施,在應(yīng)用層部署SM9 密鑰中心,在設(shè)備側(cè)部署SM9 私鑰。通過(guò)SM9 數(shù)字簽名算法實(shí)現(xiàn)設(shè)備認(rèn)證。
基于數(shù)字證書(shū)的PKI/CA 是目前廣泛使用的公鑰密碼體制,由可信的證書(shū)權(quán)威機(jī)構(gòu)(CA)為每個(gè)用戶(hù)簽發(fā)一個(gè)公鑰證書(shū)。公鑰證書(shū)包括了用戶(hù)的身份信息、用戶(hù)的公鑰和CA 的簽名。在PKI/CA 中,證書(shū)的格式一般采用X.509 格式,這種格式的證書(shū)一般具有1~2 KB 的數(shù)據(jù)長(zhǎng)度。在證書(shū)中至少應(yīng)包含用戶(hù)名稱(chēng)、CA名稱(chēng)、證書(shū)有效期、用戶(hù)公鑰、CA對(duì)上述信息的簽名等幾項(xiàng)內(nèi)容。
物聯(lián)網(wǎng)中使用PKI/CA體制具有如下缺點(diǎn)。
a)CA 證書(shū)字節(jié)數(shù)過(guò)多,證書(shū)在傳輸和存儲(chǔ)的過(guò)程中需要占用大量的網(wǎng)絡(luò)帶寬和存儲(chǔ)資源,不適合存儲(chǔ)空間和網(wǎng)絡(luò)寬帶受限的物聯(lián)網(wǎng)設(shè)備。
b)CA 證書(shū)管理復(fù)雜,對(duì)于海量物聯(lián)網(wǎng)設(shè)備,證書(shū)的頒發(fā)、存儲(chǔ)和撤銷(xiāo)等過(guò)程開(kāi)銷(xiāo)巨大。
對(duì)于使用標(biāo)識(shí)認(rèn)證的物聯(lián)網(wǎng)設(shè)備,由于存在密鑰托管問(wèn)題,用戶(hù)簽名不具有唯一性和不可否認(rèn)性,另外還存在密鑰撤銷(xiāo)更換困難等問(wèn)題。
TLS 協(xié)議由握手協(xié)議、更改密碼規(guī)范協(xié)議、警告協(xié)議和記錄協(xié)議組成[3]。其中握手協(xié)議的目的是建立安全的數(shù)據(jù)傳輸信道,更改密碼規(guī)范協(xié)議規(guī)定了更改密碼規(guī)范的具體標(biāo)準(zhǔn),警告協(xié)議規(guī)定了協(xié)議如何處理通信錯(cuò)誤的情況,記錄協(xié)議用于進(jìn)行數(shù)據(jù)傳輸。
TLS通信過(guò)程如圖1所示。
圖1 TLS通信
TLS 協(xié)議能夠提供認(rèn)證、機(jī)密性、完整性、重放保護(hù)等安全功能,是應(yīng)用最廣泛的安全通信協(xié)議。當(dāng)前互聯(lián)網(wǎng)和物聯(lián)網(wǎng)都廣泛采用CA 搭配TLS 協(xié)議進(jìn)行身份認(rèn)證和加密通信。
在CLA 無(wú)證書(shū)公鑰密碼體制中,由于用戶(hù)密鑰是由用戶(hù)和KGC 共同生成的,所以不存在密鑰托管問(wèn)題,能夠保證用戶(hù)簽名的唯一性和不可否認(rèn)性。
以256 bit 的CLA 的無(wú)證書(shū)密碼體制為例,在用戶(hù)標(biāo)識(shí)不超過(guò)32 B 時(shí),簽名與用戶(hù)標(biāo)識(shí)及部分公鑰的總長(zhǎng)度不超過(guò)128 B,遠(yuǎn)小于1~2 KB 的CA 證書(shū),能夠有效降低存儲(chǔ)空間和傳輸帶寬需求。
CLA 無(wú)證書(shū)密碼技術(shù)可以采用國(guó)密SM2 橢圓曲線(xiàn)參數(shù),使用國(guó)密標(biāo)準(zhǔn)定義的數(shù)字簽名算法進(jìn)行身份認(rèn)證。
基于CLA 的物聯(lián)網(wǎng)設(shè)備管控系統(tǒng)作為物聯(lián)網(wǎng)設(shè)備的身份管理中心,負(fù)責(zé)審核實(shí)體合法性,為物聯(lián)網(wǎng)設(shè)備提供無(wú)證書(shū)公鑰密碼體制的密鑰及密鑰標(biāo)識(shí)生成、密鑰及密鑰標(biāo)識(shí)管理、密鑰標(biāo)識(shí)發(fā)布和密鑰狀態(tài)管理,提供密鑰生存周期全過(guò)程的安全管理和維護(hù)。主要功能如圖2所示。
圖2 無(wú)證書(shū)物聯(lián)網(wǎng)設(shè)備管控系統(tǒng)組成結(jié)構(gòu)圖
a)物聯(lián)網(wǎng)身份管理系統(tǒng)(IDM)。物聯(lián)網(wǎng)身份管理系統(tǒng)主要負(fù)責(zé)審核物聯(lián)網(wǎng)設(shè)備身份的合法性,維護(hù)物聯(lián)網(wǎng)實(shí)體身份狀態(tài),提供注冊(cè)、掛失、注銷(xiāo)和恢復(fù)等服務(wù)。
b)CLA 密鑰管理系統(tǒng)(KMS)。密鑰管理系統(tǒng)負(fù)責(zé)生成和保存系統(tǒng)主密鑰,負(fù)責(zé)利用CLA 密鑰算法為物聯(lián)網(wǎng)設(shè)備生成部分密鑰。
c)物聯(lián)網(wǎng)設(shè)備實(shí)體。物聯(lián)網(wǎng)設(shè)備實(shí)體可以是網(wǎng)絡(luò)上的服務(wù)器、打印機(jī)、路由器、網(wǎng)卡、個(gè)人計(jì)算機(jī)、移動(dòng)終端、貨物和商品等。實(shí)體的密鑰載體可以為帶SM2 算法的密碼機(jī)、密碼卡、PSAM 卡、TF 卡(SD 卡)、電子標(biāo)簽或云密碼等。
在無(wú)證書(shū)公鑰密碼體制中,公鑰被分成2個(gè)部分,一部分由設(shè)備自己生成,另一部分由系統(tǒng)公鑰從用戶(hù)ID 導(dǎo)出。在計(jì)算設(shè)備實(shí)際公鑰時(shí),實(shí)際上是對(duì)系統(tǒng)私鑰簽名的驗(yàn)證,自動(dòng)隱含了對(duì)設(shè)備公鑰的認(rèn)證。
在TLS 通信協(xié)議中集成CLA 無(wú)證書(shū)認(rèn)證,主要改造在握手協(xié)議階段。按照國(guó)密標(biāo)準(zhǔn),簽名驗(yàn)簽和加密解密使用2 組密鑰。使用國(guó)密SM2 算法進(jìn)行簽名驗(yàn)簽、加密解密,在TLS 中進(jìn)行身份認(rèn)證和密鑰交換;使用國(guó)密SM4 算法作為對(duì)稱(chēng)加密算法,在TLS 中構(gòu)造加密通信隧道;使用國(guó)密SM3 算法作為消息驗(yàn)證的MAC算法,保障TLS 信息完整性;形成基于國(guó)密SM2 的CLA-SM4-SM3加密套件。TLS無(wú)證書(shū)認(rèn)證過(guò)程如下。
a)客戶(hù)端使用簽名私鑰對(duì)數(shù)據(jù)進(jìn)行簽名,拼接客戶(hù)端公鑰標(biāo)識(shí),發(fā)送ClientHello消息給服務(wù)端。
b)服務(wù)端使用系統(tǒng)CLA 公鑰和客戶(hù)端公鑰標(biāo)識(shí)計(jì)算客戶(hù)端實(shí)際公鑰,使用實(shí)際公鑰驗(yàn)證客戶(hù)端簽名,驗(yàn)證通過(guò)則說(shuō)明客戶(hù)端身份合法。
c)服務(wù)端使用簽名私鑰對(duì)數(shù)據(jù)進(jìn)行簽名,拼接服務(wù)端公鑰標(biāo)識(shí),發(fā)送ServerHello消息給端客戶(hù)。
d)客戶(hù)端使用系統(tǒng)CLA 公鑰和服務(wù)端公鑰標(biāo)識(shí)計(jì)算服務(wù)端實(shí)際公鑰,使用實(shí)際公鑰驗(yàn)證服務(wù)端簽名,驗(yàn)證通過(guò)則說(shuō)明服務(wù)端身份合法。
e)雙向身份認(rèn)證通過(guò),進(jìn)行消息加密通信。
通過(guò)在TLS握手認(rèn)證階段集成CLA無(wú)證書(shū)認(rèn)證技術(shù),實(shí)現(xiàn)了物聯(lián)網(wǎng)設(shè)備通信時(shí)的雙向設(shè)備身份認(rèn)證,同時(shí)保障了設(shè)備間通信的安全性和不可否認(rèn)性。
通過(guò)無(wú)證書(shū)物聯(lián)網(wǎng)設(shè)備管控平臺(tái)和無(wú)證書(shū)TLS協(xié)議,物聯(lián)網(wǎng)設(shè)備間可以進(jìn)行身份認(rèn)證和加密通信,設(shè)備初始化及通信過(guò)程如圖3所示。
圖3 無(wú)證書(shū)物聯(lián)網(wǎng)設(shè)備管控與無(wú)證書(shū)TLS通信
a)物聯(lián)網(wǎng)設(shè)備生成設(shè)備公私鑰,提交設(shè)備相關(guān)信息和公鑰信息到無(wú)證書(shū)物聯(lián)網(wǎng)設(shè)備管控平臺(tái)申請(qǐng)?jiān)O(shè)備注冊(cè)。
b)平臺(tái)驗(yàn)證物聯(lián)網(wǎng)設(shè)備合法性,通過(guò)后將通過(guò)系統(tǒng)密鑰和設(shè)備公鑰利用CLA 算法生成部分公私鑰,用數(shù)字密碼信封保護(hù)發(fā)送給設(shè)備。
c)物聯(lián)網(wǎng)設(shè)備使用自身密鑰和密碼信封內(nèi)容生成設(shè)備數(shù)字身份信息,設(shè)備初始化過(guò)程完成。
d)設(shè)備和設(shè)備之間通過(guò)無(wú)證書(shū)TLS 協(xié)議進(jìn)行通信。在TLS 握手過(guò)程中進(jìn)行設(shè)備的雙向認(rèn)證,若認(rèn)證通過(guò)則進(jìn)行消息加密通信,認(rèn)證失敗則斷開(kāi)連接。
將CLA無(wú)證書(shū)密碼技術(shù)和無(wú)證書(shū)TLS傳輸協(xié)議結(jié)合,替換傳統(tǒng)CA 和TLS 傳輸協(xié)議架構(gòu),在保障物聯(lián)網(wǎng)安全的前提下實(shí)現(xiàn)了物聯(lián)網(wǎng)的高效通信。物聯(lián)網(wǎng)設(shè)備對(duì)私鑰具有完全自主權(quán),對(duì)公鑰具有自證性;簽名具有不可否認(rèn)性并可即時(shí)驗(yàn)證;密鑰可撤銷(xiāo)和更換;能夠適應(yīng)大型復(fù)雜、用戶(hù)數(shù)量眾多且分布廣泛的物聯(lián)網(wǎng)環(huán)境,降低了物聯(lián)網(wǎng)通信的負(fù)載和設(shè)備的能耗。綜上,該方案應(yīng)用在物聯(lián)網(wǎng)安全通信領(lǐng)域優(yōu)勢(shì)明顯。