盧 陽 劉書勇 李 嘉 田東博 王國棟
1(南瑞集團有限公司(國網(wǎng)電力科學研究院有限公司) 江蘇 南京 211106)2(中國電力科學研究院有限公司 北京 100000)
近年來國家對新能源產(chǎn)業(yè)的大力推廣促進了電動汽車的快速發(fā)展[1],并加快了充電樁等基礎設施的建設。由于充電樁的運營方式在面向小區(qū)、地下停車、偏遠地區(qū)等復雜環(huán)境下推廣存在數(shù)據(jù)通信不兼容、通信設備成本高、用戶體驗不佳等問題,目前充電樁設備的離線通信大都采用藍牙方式[2]。藍牙規(guī)范中包括四種安全模式,分別提供不同方式、不同程度的保護措施[3]。由于在藍牙通信過程中,只進行了設備認證,沒有進行身份認證,藍牙設備和傳輸通道存在被攻擊的風險。如采用二維碼方式進行藍牙連接時,二維碼掃描無法解決雙向認證的問題,也無法實現(xiàn)動態(tài)密鑰更新,更無法防止偽造(二維碼與設備無法綁定,任意人都可以拍照打印再貼于別處)。身份認證是保障一個雙方通信安全最根本的前提,通信各方必須通過相應的身份驗證機制才能將明確自身的訪問權限[4]。隨著互聯(lián)網(wǎng)技術的快速發(fā)展,物聯(lián)網(wǎng)的應用越來越廣泛,但同時伴隨著一系列安全隱患。在物聯(lián)網(wǎng)環(huán)境下,終端要進行正常的數(shù)據(jù)采集,首先要確保信息來源的真實性[5],這就對物聯(lián)網(wǎng)控制系統(tǒng)的身份認證機制要求更為嚴格,以確保接入設備的合法性。身份認證其實就是通信雙方都知道彼此的身份信息,能夠建立起來可信關系,保證數(shù)據(jù)在起始點的可靠性。身份認證技術可以在提升物聯(lián)網(wǎng)便捷性的同時保證數(shù)據(jù)通信安全。
近幾年已有多種物聯(lián)網(wǎng)相關的身份認證技術被提出[6-11]。朱煒玲等[6]提出使用對稱加密算法進行身份認證,雖然其計算成本低,消耗資源少,但還是容易遭受到中間人攻擊?;跈E圓曲線加密身份認證則需要大量的存儲資源、通信資源和計算資源,對于計算能力受限的傳感器網(wǎng)絡來說不適合。朱鵬飛等[7]提出一種輕量化的消息認證碼方案,具有開銷小、防重放、可追溯等特性,但是需要適應多種類型的消息認證碼生成設備,不易擴展。有學者進行物聯(lián)網(wǎng)身份管理的技術研究[8],提出一種物聯(lián)網(wǎng)身份管理框架,但需要多方的共同參與并針對目前的框架進行改造。而國外學者Gentry[9]在2003年給出了基于證書的認證體制,將公鑰加密體制和基于身份的加密體制各自的優(yōu)勢進行結合,但是需要頻繁的證書更新,計算量大,認證效率低下。文獻[10]提出使用基于委托的機制,這種方式雖然計算成本低,但是不能輕易實現(xiàn)私有存儲。文獻[11]提出了一種全新的身份雙向認證機制,通過加入ID身份信息和初始工作狀態(tài)信息進行身份的合法性認證,但是需要定時更新工作狀態(tài)信息,明顯增加用戶交互次數(shù)。基于標識密碼體制IBC技術能夠?qū)崿F(xiàn)身份認證,將用戶唯一標識作為公鑰,并計算生成相應的私鑰,簡化與用戶的交互次數(shù),且無需證書管理。SM9算法則是基于標識密碼體制IBC技術的,是我國商用密碼行業(yè)公鑰密碼算法中的一種標準算法。
本文設計了一種基于SM9標識密碼體制的智慧能源充電樁藍牙安全防護方案,實現(xiàn)藍牙通信中的身份認證。藍牙安全中的安全是靠藍牙的AES密鑰保護,SM9可保護該AES密鑰并且實現(xiàn)動態(tài)更新,還可以用于雙向認證。本文利用藍牙通信已有的安全機制,增加移動終端與能源路由器間雙向認證,并協(xié)商生成隨機的會話密鑰,實現(xiàn)傳輸業(yè)務數(shù)據(jù)的加密保護。
在充電樁系統(tǒng)中,用戶主要利用個人移動終端App通過4G/5G等網(wǎng)絡連接到智慧能源服務系統(tǒng)獲取有序充電、充電樁分享等業(yè)務服務。在網(wǎng)絡信號較差的情況(離線)下,則通過藍牙通信方式與能源路由器建立通信連接,將充放電等業(yè)務需求提交給能源路由器,然后送達給智慧能源服務系統(tǒng)。
本文主要分析離線場景下的智慧能源充電樁安全防護,其總體框架如圖1所示。安全防護系統(tǒng)將以安全標識服務系統(tǒng)為中心,基于SM9標識密鑰算法,為終端側、智慧能源服務系統(tǒng)提供安全保障。
圖1 智慧能源充電樁藍牙安全總體框架
基于身份標識的密碼系統(tǒng)(IBC)的密碼學思想是由Shamir[12]在1984年提出的。在該體制中,公鑰就是用戶的身份信息,如主機的IP地址、用戶的E-mail地址、手機號碼和姓名等,可根據(jù)用戶的唯一可標識的信息獲得。密鑰生成中心(KGC)根據(jù)用戶的身份信息生成用戶私鑰,并通過安全通道將私鑰發(fā)送給相應的用戶。由于用戶的公鑰是通過身份信息直接計算得出,且用戶標識具有唯一性,因此不需要第三方機構(CA)來保證用戶公鑰的真實性,可以解決傳統(tǒng)公鑰密碼體制中CA機構帶來的證書存儲和管理問題,減輕系統(tǒng)的通信開銷和存儲開銷。
2016年,中國標識密碼SM9算法正式對外發(fā)布,它是一種基于雙線性對的標識密碼體制,采用實體的有效標識作為公鑰進行加密[13],是我國商用密碼行業(yè)公鑰密碼算法的一種標準算法,并已成為國際標準算法。由于IBC技術靈活易用和方便管理的特點,SM9算法的應用需求十分旺盛[14]。SM9算法不需要向CA機構申請數(shù)字證書,適用于互聯(lián)網(wǎng)應用的各種新興應用的安全保障。如電子郵件安全[15]、系統(tǒng)安全防護[16]、智能終端保護[17]、物聯(lián)網(wǎng)安全[18]、云存儲安全、區(qū)塊鏈隱私保護[19]等。這些安全應用可采用手機號碼或郵件地址等用戶身份唯一標識作為公鑰,實現(xiàn)數(shù)據(jù)加密、會話加密、通道加密、身份認證等安全應用,并具有使用方便,易于部署的特點,且終端側不需要存儲證書,減少終端存儲。
安全防護系統(tǒng)的主要設計流程包括充電樁設備初始化,App用戶注冊以及藍牙安全交互連接。其中充電樁設備的初始化是由安全標識服務系統(tǒng)給安全芯片/充電樁設備分發(fā)標識和私鑰,包括配置系統(tǒng)公鑰及參數(shù),設置出廠配置等初始化的過程;App用戶注冊也是通過安全標識服務系統(tǒng)生成用戶標識和用戶私鑰,并將密鑰安全地存儲于手機端本地;藍牙安全交互連接則是在前兩個流程的基礎上,建立藍牙安全連接通信,并使用SM9標識密鑰算法進行充電樁設備與手機App之間的雙向認證,最后生成會話密鑰進行數(shù)據(jù)通信。
充電樁設備初始化分為三個部分:初始化安全芯片,充放電設備注冊,充電樁設備出廠配置。其中安全芯片可嵌入到充放電設備中。
3.1.1初始安全芯片
安全芯片在提供給廠家的時候需要在安全芯片內(nèi)部預置一些數(shù)據(jù),如初始業(yè)務配置數(shù)據(jù)、IBC系統(tǒng)公鑰、初始標識ID及其對應的SM9私鑰等,私鑰由標識管理系統(tǒng)生成。
安全芯片初始化流程如下:
1) 讀取安全芯片的CID,獲取芯片的唯一標識。
2) 調(diào)用標識管理平臺,生成安全芯片應用初始標識ID、系統(tǒng)參數(shù)及SM9私鑰。
3) 將安全芯片應用初始標識、系統(tǒng)參及私鑰寫入安全芯片。具體過程如圖2所示。
圖2 初始化安全芯片流程
3.1.2充放電設備注冊
充放電設備第一次上線工作的注冊過程需要和后臺交互的各個流程,包含安全芯片的注冊過程、數(shù)據(jù)封包/解包、更新等,更新記錄完成以后,充放電設備即可進行業(yè)務數(shù)據(jù)的交互。其中充放電設備首先需要與標識管理平臺建立可靠穩(wěn)定的網(wǎng)絡連接。注冊流程如圖3所示。
圖3 充放電設備注冊流程
1) 充放電設備端對設備信息進行簽名,如IMEI、IMSI、CID、PointID(具體含義查看表1),并將信息和簽名值S發(fā)送給認證平臺進行驗簽。
表1 充電樁藍牙安全防護字符含義
2) 認證平臺驗簽通過后,機卡綁定,并通過標識管理平臺,生成正式標識PointID及私鑰。
3) 將PointID和私鑰,使用系統(tǒng)公鑰進行加密(保護密鑰在傳輸過程中的安全),并發(fā)送給充放電設備。
4) 充放電設備解密后寫入標識和密鑰。
3.1.3充電樁設備出廠配置
充電樁設備出廠時,基于安全標識服務系統(tǒng)給每個設備分配交互標識和唯一標識,并生成充電樁設備的交互私鑰和唯一私鑰,并與設備中的藍牙模塊的連接地址、初始配對口令及其他敏感信息存儲于該設備的安全芯片中;同時,以交互標識為公鑰對藍牙地址和充電樁設備的其他敏感業(yè)務信息進行加密,與交互標識共同存儲于二維碼中,并將二維碼張貼于充電樁設備上。
手機App用戶注冊登錄時,經(jīng)過用戶身份合法性校驗之后,可將藍牙默認口令及用戶可連接的充電設備標識信息及其對應的交互私鑰下發(fā)給手機App。同時,通過安全機制生成用戶標識和用戶私鑰,并通過安全SDK技術進行手機端本地存儲。
圖4為App用戶注冊的流程圖,具體過程如下:
1) 下載手機App,并預置初始數(shù)據(jù):SM9系統(tǒng)參數(shù),平臺標識,生成SM2公私鑰對。
2) 向用戶中心發(fā)送短信驗證請求。
3) App端提交短信驗證,并將用戶基本信息及系統(tǒng)參數(shù)等發(fā)送到用戶中心。
4) 用戶中心驗證短信驗證碼,并將用戶基本信息及系統(tǒng)參數(shù)發(fā)送至統(tǒng)一認證平臺。
5) 統(tǒng)一認證平臺進行驗簽,通過后根據(jù)手機號向標識管理平臺生成用戶的標識及私鑰。
6) 將標識申請結果返回App,更新密鑰狀態(tài)。
7) 設置App用戶密碼,完成用戶注冊。
圖4 App用戶注冊流程
藍牙安全交互連接是整個安全防護系統(tǒng)中的主要部分,主要是在建立起藍牙安全通信連接后,使用基于SM9標識密碼算法進行移動終端與能源路由器間雙向認證,認證過程中通過引入了雙隨機數(shù)的方法,大幅提升了每次會話內(nèi)容的不可預見性,且采用時間戳保證數(shù)據(jù)的有效性。認證通過后協(xié)商生成隨機的國密加密算法密鑰,實現(xiàn)傳輸業(yè)務數(shù)據(jù)的國密加密保護。充電業(yè)務藍牙安全交互連接流程如圖5所示。
圖5 充電業(yè)務藍牙安全交互連接流程圖
1) 手機App掃描充電設備上的二維碼,獲取二維碼中的交互標識和充電設備藍牙地址等敏感信息的密文。
2) 解密二維碼數(shù)據(jù),手機App基于交互標識所對應的私鑰解密上述密文,獲取藍牙地址和初始配對口令;如解密失敗則不予連接。
3) 解密二維碼成功后,則確認二維碼合法,進行藍牙連接。若配對口令未更新,則輸入初始配對口令并連接藍牙;若充電設備的配對口令已更新且手機App也已更新,則由App完成配對口令自動填入并連接藍牙;若充電設備的配對口令已安全更新但手機App未更新,則可通過傳統(tǒng)通信方式詢問系統(tǒng)或充電設備擁有者,再手動填入并連接藍牙。
4) 藍牙建立連接后,通過藍牙通信建立安全通道,充電設備和手機App分別通過自身的唯一私鑰進行服務簽名,對方使用接收到的唯一標識進行驗證,以完成雙向認證,在此過程中同時完成一次性的傳輸密鑰協(xié)商。認證流程:
(1) 手機SDK將參數(shù)(用戶標識、時間戳t1、隨機數(shù)r1、PointID)使用用戶標識進行SM9簽名。
(2) 手機SDK將(用戶標識、時間戳t1、隨機數(shù)r1、PointID)及其SM9簽名值,并攜帶用戶token,發(fā)送給充放電設備。
(3) 充電樁設備驗證token;再驗證時間戳t1;通過后,使用用戶標識進行SM9驗簽;驗證通過后,將(用戶標識、時間戳t2、隨機數(shù)r2、PointID)使用充電樁PointID進行SM9簽名。
(4) 將(用戶標識、時間戳t2、隨機數(shù)r2、PointID)及其SM9簽名值發(fā)送給手機SDK。
(5) 手機SDK使用PointID進行SM9驗簽;驗證通過后,產(chǎn)生隨機SM4密鑰SeedKey,并使用PointID將密鑰加密,發(fā)送給充放電設備。
(6) 充放電設備進行SM9解密,得到對稱會話密鑰。
5) 后續(xù)采用對稱會話密鑰進行數(shù)據(jù)的通信加密。
系統(tǒng)目前已完成Demo開發(fā),相關概念已在國網(wǎng)電動車充放電項目中進行試驗并測試。實驗中,充電樁設備采用嵌入安全芯片的藍牙通信開發(fā)板進行模擬,基于NB-eSAM體系架構,支持國密非對稱算法SM2、國密對稱算法SM4、基于身份標識的SM9算法;App及所需的SDK采用Android Studio環(huán)境進行開發(fā)模擬;而安全標識服務系統(tǒng)基于JAVA環(huán)境開發(fā),采用微服務架構,并部署在linux環(huán)境下;智慧能源系統(tǒng)也是基于JAVA環(huán)境開發(fā)的,簡單模擬實際的業(yè)務場景。實驗結果將從響應時間和交互次數(shù)上分別進行比較。
表2為本交互方案標識生成、私鑰下發(fā)、雙向認證及業(yè)務數(shù)據(jù)加密上報下發(fā)的響應時間??煽闯霰疚姆桨柑岢龅幕赟M9的標識密碼體制在響應時間上要比文獻[7]和文獻[9]都快。
表2 響應時間對比 單位:s
在雙向認證過程中即可實現(xiàn)用戶身份鑒別。本文交互方案基于SM9的標識密碼體制,在密鑰協(xié)商過程中,與用戶交互總次數(shù)為3,在交互次數(shù)上明顯低于文獻[7]和文獻[9]。文獻[7]提出的基于SM2的PKI體系方式進行身份鑒別,至少需要5次用戶交互,其中至少需要2次公鑰驗證。而文獻[9]需要定時更新工作狀態(tài)信息,因此交互次數(shù)至少大于3次。
表3 交互次數(shù)對比
本文離線場景下的智慧能源充電樁藍牙交互存在的安全風險,提出了基于SM9標識密碼算法的藍牙安全交互體系,使用用戶唯一標識作為公鑰,并計算生成相應的私鑰,簡化與用戶的交互次數(shù)。在藍牙已有的安全機制下,增加移動終端與能源路由器間雙向認證,并協(xié)商生成隨機的國密加密算法密鑰,實現(xiàn)傳輸業(yè)務數(shù)據(jù)的國密加密保護,促進和提升藍牙在智慧能源充電樁中的安全應用。