胡祥義 徐冠寧 杜麗萍
北京市科技情報研究所網絡密碼認證北京市重點實驗室 北京 100044
在物聯網認證中心端由認證服務器和加密卡硬件設備組成,在認證服務器的PCI接口上插入加密卡,物聯網數據中心與物聯網認證中心連接,物聯網數據中心與物聯網認證中心之間的數據是雙向傳輸,在加密卡的芯片里,建立物聯網認證中心端的加密系統,即寫入輕量級密碼算法、摘要算法。物聯網認證中心端的安全協議包括:物聯網認證中心端的傳感設備認證協議、解密和簽名驗證協議,且寫入數據:一組存儲密鑰。在物聯網認證中心端的傳輸密鑰數據庫里,寫入數據:對應全體傳感設備端智能芯片的標識、傳感設備的標識和傳輸密鑰SKi(i=1~n,n為傳感設備數量的總和)的密文。
采用安全單鑰管理技術來建立物聯網感知層的設備認證協議、數字簽名和加/解密協議。
設:認證或簽名密鑰為 CK,在傳感設備端的傳感設備認證協議、或簽名和加密協議運行過程時,由傳感設備端智能卡芯片里的隨機數發生器實時產生一組NN比特(NN=密鑰的長度)的隨機數,用該組隨機數作為認證或簽名密鑰CK,當CK作為認證密鑰時,用CK來加密另一組隨機數S產生認證口令,當CK作為簽名密鑰時,用CK對傳感設備端的傳感信息進行簽名和加密。同時,將CK還作為RFID內基本信息的簽名密鑰。
設:傳輸密鑰為SKi(i=1~n,n為對應認證中心端全體傳感設備總和),在密鑰初始化過程中,由認證中心端加密卡芯片里的隨機數發生器,生成一組NN比特(NN=密鑰的長度)的隨機數,將該組隨機數作為一組傳輸密鑰SKi(i=1~n),分別輸入到對應的各個傳感設備端智能卡芯片里,同時,在認證中心端加密卡的芯片里,使用一組存儲密鑰,將全體對應傳感設備端的每組傳輸密鑰 SKi(i=1~n)分別加密生成密文即:SKi’(i=1~n)后輸出加密卡芯片,并將傳輸密鑰SKi(i=1~n)以密文即:SK1’、SK2’SKn’的形式,分別與對應傳輸密鑰SKi(i=1~n)的傳感設備端智能卡芯片的標識、及其傳感設備的標識,一起存儲在認證中心端認證服務器的傳輸密鑰數據庫中。
設:存儲密鑰為K,在密鑰初始化過程中,存儲密鑰事先由認證中心端加密卡芯片里的隨機數發生器,產生一組NN比特(NN=密鑰的長度)的隨機數,將該組隨機數作為一組存儲密鑰K,并存儲在加密卡芯片里,存儲密鑰K是一組固定的單鑰,用存儲密鑰K分別將全體對應傳感設備端的傳輸密鑰 SKi(i=1~n)加密成密文即: SK1’、SK2’、……、SKn’(i=1~n)后,存儲在認證中心端的傳輸密鑰數據庫中。且用存儲密鑰 K 分別將加密各個 RFID內傳感信息的簽名密鑰CK,加密成密文即:CK’后,存儲在認證中心端的簽名密鑰數據庫中。
當傳感設備端和認證中心端進行認證或簽名密鑰CK交換時,在認證中心端加密卡芯片里,使用存儲密鑰K將認證中心端對應加密CK的傳輸密鑰的密文SKi’(i=1~n)解密成明文,再用解密后的傳輸密鑰SKi(i=1~n),將收到傳感設備端發送來的認證或簽名密鑰的密文CK’解密成明文即:CK。
若對 RFID內傳感信息的密文進行解密和簽名驗證時,在認證中心端加密卡芯片里,使用存儲密鑰K將認證中心端對應RFID簽名密鑰的密文即:CK’解密成明文即:CK,再使用CK對RFID內傳感信息的密文進行解密和簽名驗證。
(1)傳感設備端的傳感設備認證協議
傳感設備端的傳感設備認證協議,由傳感設備產生另一組隨機數,設:該組隨機數為S,將隨機數S輸入傳感設備端智能卡芯片里,智能卡芯片里的隨機數發生器,產生一組NN比特(NN=密鑰的長度)的隨機數,將該隨機數作為認證密鑰CK,用CK來加密隨機數S,得到隨機數S的密文即:認證口令 1,之后,在傳感設備端智能卡芯片里,用傳輸密鑰SKi(i=1~n)將認證密鑰CK加密成密文即:CK’,最后,將傳感設備端智能卡芯片的標識、傳感設備的標識、隨機數S、認證口令1和認證密鑰的密文CK’這5組認證數據,一并發送給認證中心端。
(2)物聯網認證中心端的傳感設備認證協議
物聯網認證中心端的傳感設備認證協議,當認證中心端收到傳感設備端發送來的認證數據后,認證中心端根據傳感設備端智能卡芯片的標識,在傳輸密鑰數據庫中定位對應該標識的記錄,再將記錄中的傳輸密鑰的密文即:SKi’(i=1~n),輸入認證中心端的加密卡芯片中,并在加密卡芯片里,使用存儲密鑰K將 SKi’(i=1~n)解密成明文即:SKi(i=1~n),用SKi(i=1~n)將接收到的認證密鑰的密文CK’解密成明文,即:CK,用CK加密隨機數S生成認證口令2,通過對比認證口令1和認證口令2是否相同?來判別傳感設備是否可信。
(1)傳感信息的簽名和加密協議
在傳感設備端,將傳感設備采集的傳感信息輸入傳感設備端智能卡芯片中,在傳感設備端智能卡芯片里,使用摘要算法對傳感信息進行“摘要”得到傳感信息的“摘要”信息L1,由傳感設備端智能卡芯片里的隨機數發生器,產生一組NN比特(NN=密鑰的長度)的隨機數,將該隨機數作為簽名密鑰CK,來加密傳感信息和“摘要”信息L1,得到傳感信息的密文和 L1的密文即:數字簽名,之后,用傳感設備端智能卡芯片里的傳輸密鑰,將簽名密鑰 CK加密成密文即:CK’,最后,將傳感設備端智能卡芯片的標識、傳感設備的標識、傳感信息的密文、傳感信息的數字簽名和簽名密鑰的密文CK’這5組簽名數據,一并發送給認證中心端。
(2)物聯網認證中心端的傳感信息解密和簽名驗證協議
當物聯網認證中心端收到傳感設備端發送來的5組簽名數據后,首先,根據傳感設備端智能卡芯片的標識,在傳輸密鑰數據庫中定位對應該標識的記錄,再將記錄中的傳輸密鑰的密文即:SKi’(i=1~n)輸入認證中心端的加密卡芯片中,并在加密卡芯片里,使用存儲密鑰K將 SKi’(i=1~n)解密成明文即:SKi(i=1~n),用SKi(i=1~n)將接收到的簽名密鑰的密文CK’解密成明文即:CK,用CK解密傳感信息的密文和傳感信息的數字簽名,得到傳感信息的明文和傳感信息的“摘要”信息L1,再用摘要算法對傳感信息進行“摘要”,得到傳感信息的“摘要”信息L2,通過對比L1和L2是否相同?來確認從傳感設備端傳輸來的傳感信息是否可信、完整。
(3)RFID的簽名和加密協議
RFID是一種電子標簽,內無CPU芯片,也無工作電源,RFID中的數據為事先寫入,并由 RFID讀卡器進行讀取。RFID內主要存放的數據為:RFID的標識B1、對應物品的基本信息LL(如:一袋奶粉的重要信息:生產工廠、生產時間、奶粉的成分配料等)。
RFID的簽名和加密協議,事先由物聯網認證中心端加密卡芯片里的隨機數發生器,產生一組NN比特(NN=密鑰的長度)的隨機數,將該隨機數作為RFID的簽名密鑰CKK,來加密B1和LL,同時,加密B1和LL的“摘要”信息Q1,得到Q1的密文即:數字簽名,用物聯網認證中心端的存儲密鑰K,將RFID的簽名密鑰CKK加密成密文即:CKK’,并將CKK’與對應RFID的標識B1一起存放在物聯網認證中心的簽名密鑰數據庫中,最后,將 RFID的標識 B1、B1和LL的密文、Q1的密文和CKK’個4組數據寫入RFID內。
RFID內存放的數據有四組:① RFID的標識B1、②B1和LL的密文,③B1和LL的“摘要”信息Q1的密文即:數字簽名,④簽名密鑰CKK的密文即:CKK’,將這4組數據設為:RFID的傳感信息CL,事先將CL寫入RFID中。
RFID讀卡器端傳感信息的簽名和加密協議,與其它傳感設備端傳感信息的簽名和加密協議相同。只是RFID讀卡器讀取的RFID傳感信息CL,是事先寫入RFID里的固定信息。
(4)物聯網認證中心端的 RFID傳感信息解密和簽名驗證協議
當認證中心端收到RFID讀卡器發送來的5組簽名數據后,首先,根據RFID讀卡器智能卡芯片的標識,在傳輸密鑰數據庫中定位對應該標識的記錄,再將記錄中的傳輸密鑰的密文即:SKi’(i=1~n)輸入認證中心端的加密卡芯片中,并在加密卡芯片里,使用存儲密鑰K將 SKi’(i=1~n)解密成明文即:SKi(i=1~n),用SKi(i=1~n)將接收到的簽名密鑰的密文CK’解密成明文,即:CK,用CK解密傳感信息的密文和傳感信息的數字簽名,得到傳感信息的明文(即:CL)和傳感信息的“摘要”信息L1,再用摘要算法對CL進行“摘要”,得到CL的“摘要”信息L2,通過對比L1和L2是否相同?來確認RFID讀卡器端傳輸來的RFID傳感信息CL是否可信、完整,若L1≠L2,則RFID傳感信息CL不可信,不完整。
若L1=L2,RFID讀卡器端傳輸來的CL可信、完整,則在物聯網認證中心端,再根據CL中RFID的標識B1,在物聯網認證中心的簽名密鑰數據庫中定位,取出對應 RFID的簽名密鑰的密文即:CKK’,并輸入加密卡芯片里,用存儲密鑰K將CKK’解密成明文即:CKK,用CKK將RFID基本信息LL的密文,以及B1和LL的數字簽名解密,得到LL的明文,同時,得到B1和LL的“摘要”信息Q1,再用摘要算法對B1和LL進行“摘要”,得到“摘要”信息Q2,通過對比Q1和Q2是否相同?來確認RFID內的標識B1和RFID的基本信息LL是否完整,未被篡改。
(1)本安全協議都是在傳感設備端和物聯網認證中心端兩端的芯片硬件里完成,是一種“芯片級”的安全協議,且密碼算法、密鑰和安全協議軟件和數據都存放在兩端的芯片硬件里,從而,提高了物聯網感知層加密系統和安全協議的安全等級。
(2)在智能芯片里,由于單鑰密碼算法加、解密速度比雙鑰密碼算法快 1000倍,采用安全單鑰管理技術,解決了單鑰密碼算法在傳感設備認證、或簽名和加密協議中密鑰更新管理的難題,降低了單鑰更新維護的成本,同時,發揮了單鑰密碼算法加、解密速度快的優勢,有效提高物聯網感知層安全協議的運行效率。
(3)由于物聯網傳感設備數量較大,是互聯網用戶量的32倍,在物聯網認證中心端,用存儲密鑰分別來加密各個傳感設備端的傳輸密鑰,或各個RFID的簽名密鑰(用于對RFID內基本信息LL進行簽名的簽名密鑰CKK),保證存放在物聯網認證中心端全體對應傳感設備端傳輸密鑰的存儲安全,保證存放在物聯網認證中心端全體對應RFID的簽名密鑰的存儲安全,不需要購置大量的加密卡設備來存儲大量的傳輸密鑰和RFID的簽名密鑰,能大大節約認證中心的建設成本。同時,對應傳感設備端傳輸密鑰或RFID的簽名密鑰,都僅占16字節(根據密鑰長度而定)左右存儲空間,單一物聯網認證中心能管理海量(3億以上)傳感設備。
(4)安全單鑰管理技術保證三種密鑰的安全使用
① 認證或簽名密鑰的明文不出傳感設備端智能卡芯片硬件。在傳感設備端智能卡芯片里,用傳輸密鑰SKi(i=1~n)來加密認證或簽名密鑰 CK,生成認證或簽名密鑰密文即:CK’,并將 CK’發送給認證中心端,保證認證/簽名密鑰傳輸交換安全。
認證或簽名密鑰在傳感設備端智能卡芯片里隨機數發生器產生,具有隨機性,一次一變,屬于一組的亂碼,用傳輸密鑰將每次產生的認證或簽名密鑰,分別加密后生成的密文也具有隨機性,一次一變,也都屬于一組亂碼,無規律性。破譯者無法將 CKj(j=1~M,M 為自然數)作為破譯條件——“重復報”(使用相同的單鑰將多份不同的明文報文加密成密文報文),來破譯認證或簽名密鑰CKj(j=1~M,M為自然數),或破譯傳輸密鑰SKi(i=1~n)。
② 每個傳感設備端對應的傳輸密鑰 SKi(i=1~n)都存儲在傳感設備端智能卡芯片里。在認證中心端,全體傳感設備端對應的傳輸密鑰SKi(i=1~n),是以密文形式存放在認證中心的傳輸密鑰數據庫中,保證全體傳感設備端對應的傳輸密鑰在認證中心端的存儲安全。全體對應RFID的簽名密鑰,是以密文形式存放在認證中心的簽名密鑰數據庫中,保證全體對應RFID的簽名密鑰在認證中心端的存儲安全。
③ 存儲密鑰K在加密卡的芯片里產生,并存儲在加密卡芯片,保證存儲密鑰K的存儲和運行安全。
每組傳輸密鑰SKi(i=1~n)是在密鑰初始化時,由隨機數發生器產生,都具有隨機性,且都屬于一組亂碼,用存儲密鑰 K分別來加密每一組傳輸密鑰 SKi(i=1~n)生成的傳輸密鑰密文SKi’(i=1~n),也具有隨機性,一次一變,也都屬于一組亂碼。破譯者無法將SKi’(i=1~n),作為破譯條件——“重復報”來破譯傳輸密鑰:SKi(i=1~n),或者來破譯存儲密鑰K。
④ 在感知層傳輸的RFID的基本信息LL,被進行兩次簽名和加密,第一次是將基本信息 LL簽名和加密后,生成的傳感信息CL并寫入RFID里,防止RFIDli的數據外泄,被篡改或被克隆。當RFID內的傳感信息CL被RFID讀卡器讀出后,再被RFID讀卡器里的智能卡芯片的簽名和加密協議,簽名并加密成密文后傳輸給物聯網認證中心,在加密卡芯片里,對RFID的密文數據進行兩次解密和簽名驗證,從而,防止RFID讀卡器讀取的傳感信息被篡改。
本方案通過對智能芯片的性能進行分析,提出在物聯網傳感設備上嵌入的智能芯片里,只能采用輕量級加密技術來建立物聯網感知層的安全協議,并采用安全單鑰管理技術來解決輕量級密碼的密鑰更新難題,實現在物聯網傳感設備端的智能芯片里,建立傳感設備端傳感設備認證協議、簽名和加密協議,在物聯網認證中心端加密卡芯片里,建立認證中心端的傳感設備認證協議、解密和簽名驗證協議,保證物聯網感知層的傳感設備可信、真實,未被替換。保證傳感信息可靠、完整、未被篡改和安全保密,從而,建立物聯網感知層的信息安全系統,為我國“智慧城市”的建設保駕護航。
[1]胡祥義.一種物聯網的設備認證、數據完整和保密傳輸實現方法.中國.201010517919X[P].2010.
[2]雷吉成.物聯網安全技術[M].北京:電子工業出版社.2012.
[3]李微.淺析物聯網安全[J].信息與電腦.2001.
[4]陳庚,許建.物聯網安全特征與關鍵技術[J].南京郵電大學學報.2010.
[5]孫建華,陳昌祥.物聯網安全初探[J].通信技術.2012.
[6]臧勁松.物聯網安全性能分析[J].計算機安全.2011.
[7]肖毅.物聯網安全管理技術研究[J].通信技術.2011.
[8]張橫云.物聯網感知層的信息安全防護研究[J].電腦知識與技術.2011.
[9]孫夢夢,劉元安,劉凱明.物聯網中的安全問題分析及其安全機制研究[J].保密科學技術.2011.