劉廷峰 李江鑫
(四川中電啟明星信息技術(shù)有限公司 四川成都 610041)
隨著通信技術(shù)、云計(jì)算、人工智能等技術(shù)的不斷發(fā)展,物聯(lián)網(wǎng)相關(guān)技術(shù)逐步成熟與應(yīng)用場(chǎng)景的落地,并在以5G技術(shù)為代表的新架構(gòu)的支撐下,物聯(lián)網(wǎng)在數(shù)字經(jīng)濟(jì)規(guī)模效應(yīng)逐步顯現(xiàn)。《物聯(lián)網(wǎng)終端安全白皮書(2019)》顯示,智能交通、智慧醫(yī)療等行業(yè)的普及應(yīng)用全面推進(jìn)物聯(lián)網(wǎng)終端呈指數(shù)級(jí)增長(zhǎng),截至2019 年,全球物聯(lián)網(wǎng)設(shè)備連接數(shù)量達(dá)到110 億個(gè),且據(jù)全球移動(dòng)通信系統(tǒng)協(xié)會(huì)(Global System for Mobile Communications Association,GSMA)預(yù)測(cè)至2025 年將達(dá)到250 億個(gè),較2018 年實(shí)現(xiàn)年復(fù)合增長(zhǎng)率15.71%。目前,越來越多的行業(yè)及應(yīng)用將AI與智能物聯(lián)設(shè)備結(jié)合到一起,A智能物聯(lián)設(shè)備已經(jīng)成為各大傳統(tǒng)行業(yè)智能化升級(jí)的最佳通道,也是未來物聯(lián)網(wǎng)發(fā)展的重要方向。例如:在消費(fèi)級(jí)市場(chǎng)三大常用場(chǎng)景(家、路、辦公)中,圍繞消費(fèi)者場(chǎng)景A 智能物聯(lián)設(shè)備生態(tài)正被不斷構(gòu)建,并催生了華為鴻蒙、海爾智能家居、小米智能物聯(lián)設(shè)備、涂鴉等行業(yè)內(nèi)領(lǐng)先的智能物聯(lián)業(yè)務(wù)或公司。
智能設(shè)備的硬件和組件成本不斷降低,為傳統(tǒng)設(shè)備增加聯(lián)網(wǎng)能力和數(shù)據(jù)處理能力也更容易。在萬(wàn)物智聯(lián)的場(chǎng)景中,設(shè)備與設(shè)備間將互聯(lián)互通,進(jìn)行信息交互。在這個(gè)過程中,系統(tǒng)及物聯(lián)網(wǎng)會(huì)不斷收集和分析數(shù)據(jù),因此保障物聯(lián)場(chǎng)景中的人、設(shè)備、系統(tǒng)的安全性及可靠性就變得尤為關(guān)鍵,一旦系統(tǒng)遭受入侵或者信息泄露,隨時(shí)可能危及企業(yè)或個(gè)人資產(chǎn)安全。該文主要探討在大型企業(yè)相對(duì)封閉的環(huán)境中,如何利用身份認(rèn)證技術(shù)幫助企業(yè)建立安全可靠、簡(jiǎn)單易用的智能物聯(lián)場(chǎng)景應(yīng)用。
在企業(yè)辦公場(chǎng)景,越來越多的智能物聯(lián)硬件進(jìn)入企業(yè)辦公區(qū),例如智能考勤、通行、車輛、環(huán)境監(jiān)測(cè)、無(wú)紙化辦公設(shè)備等。在大型企業(yè)或者集團(tuán)型企業(yè)中,這類設(shè)備隨處可見,例如:帶人臉識(shí)別、二維碼打卡、定位一體的智能考勤終端,或是可智能聯(lián)網(wǎng)的云打印的打印設(shè)備、生產(chǎn)線上的手持智能終端等。這類智能物聯(lián)設(shè)備在企業(yè)生命周期中,可能需要經(jīng)過網(wǎng)絡(luò)層面管理者配置安全接入、業(yè)務(wù)系統(tǒng)的管理員進(jìn)行權(quán)限控制、用戶所在組的管理者進(jìn)行日常維護(hù)、個(gè)人用戶進(jìn)行訪問與使用等,其中的每一個(gè)環(huán)節(jié),都需要對(duì)參與的人、設(shè)備進(jìn)行身份認(rèn)證,應(yīng)用場(chǎng)景敘述具體如下。
(1)設(shè)備接入場(chǎng)景:基礎(chǔ)網(wǎng)絡(luò)層的管理者,智能物聯(lián)設(shè)備完成基本認(rèn)證開通管理場(chǎng)景,考慮到物聯(lián)網(wǎng)設(shè)備往往分布在組織的各個(gè)單元,智能物聯(lián)設(shè)備管理員角色應(yīng)通過身份認(rèn)證系統(tǒng)統(tǒng)一認(rèn)證。
(2)系統(tǒng)配置場(chǎng)景:應(yīng)用系統(tǒng)層的管理者,對(duì)智能物聯(lián)設(shè)備進(jìn)行網(wǎng)絡(luò)接入和系統(tǒng)訪問權(quán)限的配置單獨(dú)規(guī)劃的獨(dú)立角色,方便靈活適應(yīng)具體業(yè)務(wù)場(chǎng)景。
(3)業(yè)務(wù)管理場(chǎng)景,各業(yè)務(wù)部門的管理者,需要完成物聯(lián)網(wǎng)設(shè)備的日常維護(hù)管理,此類管理業(yè)務(wù)通常是較為復(fù)雜的業(yè)務(wù)操作,例如:對(duì)考勤設(shè)備進(jìn)行數(shù)據(jù)導(dǎo)入導(dǎo)出、設(shè)置該部門考勤規(guī)則等。
(4)員工使用場(chǎng)景,即日常實(shí)際使用設(shè)備開展相關(guān)業(yè)務(wù)的員工,比如:普通員工刷臉完成考勤、通過手機(jī)端連接打印機(jī)完成打印等。
在傳統(tǒng)的智能設(shè)備管理與使用生命周期中,設(shè)備的接入、分配、使用、運(yùn)維等各個(gè)階段都是分割、獨(dú)立的,實(shí)體之間缺少信息交互,關(guān)鍵的身份信息沒有打通,無(wú)法統(tǒng)一對(duì)設(shè)備、對(duì)管理者、對(duì)使用者的身份進(jìn)行認(rèn)證,導(dǎo)致設(shè)備接入使用非常復(fù)雜,使用門檻較高。該方案將介紹基于身份認(rèn)證技術(shù),實(shí)現(xiàn)更貼近消費(fèi)級(jí)智能硬件使用體驗(yàn)的解決方案。
通過設(shè)計(jì)一種面向企業(yè)用戶、信息系統(tǒng)、智能物聯(lián)設(shè)備三方互聯(lián)互信的身份認(rèn)證與互聯(lián)方案,來改變?cè)谄髽I(yè)中人與設(shè)備的交互方式,提升身份認(rèn)證安全性與便捷性。架構(gòu)主要體現(xiàn)設(shè)計(jì)思路與頂層邏輯關(guān)系,其主要包含3個(gè)部分,分別是身份認(rèn)證中心、智能物聯(lián)設(shè)備、用戶手機(jī)(系統(tǒng)應(yīng)用)組成,具體情況見圖1。
圖1 身份認(rèn)證中心示意圖
身份認(rèn)證中心包含統(tǒng)一用戶身份認(rèn)證中心和物聯(lián)設(shè)備認(rèn)證服務(wù)中心這兩個(gè)主要模塊。
2.1.1 統(tǒng)一用戶身份認(rèn)證中心
統(tǒng)一用戶身份認(rèn)證中心一般由企業(yè)的統(tǒng)一身份認(rèn)證系統(tǒng)或者是IAM 系統(tǒng)承擔(dān),也可以全新開發(fā)。它主要完成對(duì)用戶的認(rèn)證。統(tǒng)一身份認(rèn)證服務(wù)系統(tǒng)的一個(gè)基本應(yīng)用模式是統(tǒng)一認(rèn)證模式,它是以統(tǒng)一身份認(rèn)證服務(wù)為核心的服務(wù)使用模式。用戶登錄統(tǒng)一身份認(rèn)證服務(wù)后,即可使用所有支持統(tǒng)一身份認(rèn)證服務(wù)的管理應(yīng)用系統(tǒng)。
2.1.2 物聯(lián)設(shè)備認(rèn)證服務(wù)中心
物聯(lián)設(shè)備認(rèn)證服務(wù)中心主要完成對(duì)接入設(shè)備的身份合法性進(jìn)行鑒別。企業(yè)可以使用在不同協(xié)議層上的身份認(rèn)證技術(shù),比如鏈路層的802.1x、傳輸層的TLS、應(yīng)用層的OAuth2.0 等。目前市面上有多種商業(yè)實(shí)現(xiàn)方案,一種比較典型的是IFAA 的物聯(lián)設(shè)備認(rèn)證方案(見圖2),其中的關(guān)鍵是利用設(shè)備終端的安全能力(如TEE、安全沙箱)、數(shù)字簽名與加密技術(shù)、移動(dòng)技術(shù)等實(shí)現(xiàn)設(shè)備的認(rèn)證。物聯(lián)網(wǎng)設(shè)備的認(rèn)證服務(wù)通常可以配合企業(yè)的物聯(lián)網(wǎng)管理平臺(tái)進(jìn)行部署與實(shí)現(xiàn),并以獨(dú)立服務(wù)的形式面向所有需要認(rèn)證的設(shè)備提供認(rèn)證服務(wù)[1]。
圖2 IFAA物聯(lián)設(shè)備認(rèn)證鏈路
即在該場(chǎng)景中需要接入企業(yè)網(wǎng)絡(luò)環(huán)境,為企業(yè)特定場(chǎng)景提供功能和服務(wù)的設(shè)備。因設(shè)備使用場(chǎng)景千差萬(wàn)別,設(shè)備間計(jì)算能力、接入方式、交互方式必然有所差別,部分設(shè)備的連接上線需要借助企業(yè)的物聯(lián)網(wǎng)平臺(tái),設(shè)備與服務(wù)端的驗(yàn)證過程中,可以采用國(guó)密算法,通過兩次簽名驗(yàn)證完[2]。
用戶手機(jī)為企業(yè)實(shí)現(xiàn)員工安全、便捷、高效地接入、使用、維護(hù)智能物聯(lián)設(shè)備提供了可能性。
在該方案的架構(gòu)設(shè)計(jì)下,要完整地實(shí)現(xiàn)一套系統(tǒng)需要非常多的資源,為了便于簡(jiǎn)明扼要地展示方案的系統(tǒng)方法,在該方案中對(duì)整個(gè)系統(tǒng)進(jìn)行簡(jiǎn)化,并以支持藍(lán)牙、Wi-Fi、掃碼、指紋等接口的智能考勤終端作為場(chǎng)景進(jìn)行demo案例的實(shí)現(xiàn),在移動(dòng)端基于微信小程序?qū)崿F(xiàn)各類用戶的需求,具體思路如下。
(1)將智能物聯(lián)設(shè)備接入管理員和配置管理員融合為一個(gè)角色,即啟動(dòng)設(shè)備管理小程序,指紋認(rèn)證后直接掃描二維碼建立藍(lán)牙近場(chǎng)通信,通過設(shè)備側(cè)SDK直接配置設(shè)備的Wi-Fi 訪問點(diǎn)和密碼,讓設(shè)備快速接入網(wǎng)絡(luò),在設(shè)備接入網(wǎng)絡(luò)后,通過小程序界面配置設(shè)備名稱型號(hào),并可以在后臺(tái)看到對(duì)應(yīng)更新信息,在設(shè)備管理小程序內(nèi)也可以訪問對(duì)應(yīng)設(shè)備的管理界面。
(2)服務(wù)端智能物聯(lián)設(shè)備身份認(rèn)證服務(wù)與設(shè)備管理平臺(tái)融合為一個(gè)后臺(tái)供demo,包括設(shè)備的信息查詢等基本功能,底層API 完整實(shí)現(xiàn)了注冊(cè)激活狀態(tài)查詢?cè)O(shè)備操作等功能。
(3)智能物聯(lián)設(shè)備側(cè)通過SDK[3],實(shí)現(xiàn)藍(lán)牙近場(chǎng)通信和企業(yè)網(wǎng)絡(luò)下與小程序及后臺(tái)的互操作。
(4)智能物聯(lián)設(shè)備側(cè)的密碼學(xué)認(rèn)證體系由于采用本地的數(shù)字證書與加密簽名機(jī)制[4-5],主要用于驗(yàn)證小程序-服務(wù)器-物聯(lián)網(wǎng)設(shè)備的完整操作過程及提供用戶側(cè)的基本體驗(yàn)。
在用戶側(cè),為用戶實(shí)現(xiàn)的demo程序是借助了微信小程序,用戶無(wú)需安裝App,可降低使用門檻與推廣成本、研發(fā)成本。企業(yè)員工通過微信掃描設(shè)備上的二維碼,會(huì)將用戶引導(dǎo)至demo 小程序,讓用戶在企業(yè)的身份認(rèn)證完成驗(yàn)證。驗(yàn)證通過后,可以通過藍(lán)牙與設(shè)備進(jìn)行連接。管理員藍(lán)牙連接完成后,可以為設(shè)備配置無(wú)線網(wǎng)絡(luò)、有線網(wǎng)絡(luò),所有操作都在手機(jī)上完成。同時(shí),管理員可以通過小程序與服務(wù)器端進(jìn)行交互,獲取更多的設(shè)備信息與權(quán)限。與設(shè)備的交互主要過程如下。
(1)連接藍(lán)牙配置Wi-Fi網(wǎng)絡(luò):掃描設(shè)備上的二維碼,進(jìn)行藍(lán)牙連接;藍(lán)牙連接完成,配置Wi-Fi 網(wǎng)絡(luò)。這個(gè)過程中主要進(jìn)行掃碼藍(lán)牙握手、獲取Wi-Fi列表、連接Wi-Fi等。
(2)設(shè)備初始化(注冊(cè))、設(shè)備激活:通過第一步設(shè)備入網(wǎng)后,設(shè)備端的程序會(huì)自動(dòng)向服務(wù)端請(qǐng)求,將設(shè)備自身的基本信息上傳,請(qǐng)求設(shè)備狀態(tài)激活;這個(gè)過程主要進(jìn)行獲取設(shè)備ID、獲取設(shè)備狀態(tài)、設(shè)備注冊(cè)/激活。
另外,無(wú)論是管理員用戶還是普通用戶,在完成服務(wù)端—設(shè)備—人的三方認(rèn)證后,都可以從服務(wù)端再獲取與自身權(quán)限匹配的設(shè)備列表。用戶從設(shè)備列表選擇設(shè)備后,則進(jìn)行身份認(rèn)證,完成之后返回令牌,并在本地生成二維碼,可以用于后續(xù)設(shè)備對(duì)人的身份識(shí)別。
服務(wù)端是作為協(xié)調(diào)用戶移動(dòng)端、智能物聯(lián)設(shè)備端進(jìn)行三方互聯(lián)、完成身份認(rèn)證的關(guān)鍵,在服務(wù)側(cè)需要實(shí)現(xiàn)用戶與設(shè)備交互的每一個(gè)關(guān)鍵過程的后端接口能力。包括如下:(1)設(shè)備注冊(cè);(2)設(shè)備激活;(3)設(shè)備狀態(tài)查詢;(4)已授權(quán)的設(shè)備列表查詢(管理員);(5)已授權(quán)的設(shè)備列表查詢(用戶);(6)設(shè)備開鎖令牌;(7)設(shè)備令牌校驗(yàn)。
設(shè)備側(cè)的底層通信的功能實(shí)現(xiàn)主要是基于SDK開發(fā)相應(yīng)的認(rèn)證代理功能來實(shí)現(xiàn),并且在業(yè)務(wù)層面會(huì)定義好完成的業(yè)務(wù)協(xié)議與設(shè)備請(qǐng)求功能。
3.3.1 業(yè)務(wù)數(shù)據(jù)協(xié)議定義
主要是定義交互數(shù)據(jù)的規(guī)范格式,數(shù)據(jù)流采用定長(zhǎng)包頭+變長(zhǎng)包體的形式。
定長(zhǎng)包頭數(shù)據(jù)結(jié)構(gòu)如下,具體參數(shù)說明見表1。
表1 參數(shù)說明
變長(zhǎng)包體:二進(jìn)制流數(shù)據(jù)
3.3.2 設(shè)備請(qǐng)求
設(shè)備請(qǐng)求提供了一系列的設(shè)備與服務(wù)端、與移動(dòng)端通過藍(lán)牙、網(wǎng)絡(luò)交互的接口,例如:(1)上報(bào)設(shè)備狀態(tài)接口,設(shè)備連上網(wǎng)絡(luò)成功或者失敗后應(yīng)主動(dòng)調(diào)網(wǎng)該接口;(2)上報(bào)設(shè)備Wi-Fi 信號(hào)列表接口,當(dāng)設(shè)備收到調(diào)取設(shè)備探測(cè)到的Wi-Fi 信號(hào)列表推送后,應(yīng)調(diào)用該接口上報(bào)Wi-Fi列表。
該demo中用戶與設(shè)備交互頻繁地使用了藍(lán)牙,在設(shè)備端規(guī)定了藍(lán)牙BLE 設(shè)備需要先模擬成流(即stream,輸入輸出流)。流具有的特性有:(1)可以傳輸無(wú)限長(zhǎng)度的數(shù)據(jù);(2)雙工,讀寫可以并發(fā),互不干擾。
顯然,藍(lán)牙BLE無(wú)法傳輸無(wú)限長(zhǎng)的數(shù)據(jù),為了實(shí)現(xiàn)這個(gè)目的,需要定義一個(gè)規(guī)范。藍(lán)牙設(shè)備需暴露兩個(gè)特征值(Characteristics):Write特征值和Indication特征值。藍(lán)牙設(shè)備從Write 特征值接受數(shù)據(jù),從Indication特征值發(fā)送數(shù)據(jù),Indication特征值類型是bytes。把一個(gè)特征值一次傳輸?shù)臄?shù)據(jù),稱為一幀(不同類型的特征值一次傳輸?shù)臄?shù)據(jù)長(zhǎng)度是不一樣的)。
3.4.1 藍(lán)牙設(shè)備寫過程
(1)分幀。假設(shè)設(shè)備上有1K數(shù)據(jù),要發(fā)給移動(dòng)端。由于一個(gè)特征值長(zhǎng)度有限(如20個(gè)字節(jié)),顯然需要分多次才能傳輸完成。1K數(shù)據(jù),要分成1 024字節(jié)/20字節(jié)=51個(gè)幀。剩下的4個(gè)字節(jié)不足一幀(20個(gè)字節(jié)),需補(bǔ)齊一幀并對(duì)剩下的16個(gè)字節(jié)賦0??偣彩?2幀。(2)發(fā)送第一個(gè)幀。把第一個(gè)幀的內(nèi)容放入特征值里面。然后通知用戶手機(jī)端應(yīng)用讀取數(shù)據(jù),通知有兩種方式,Indication 和notify,這里使用Indication 方式,即帶響應(yīng)的通知。當(dāng)通知完成的時(shí)候,可以認(rèn)為手機(jī)已經(jīng)讀完數(shù)據(jù),這就完成了發(fā)送第一個(gè)幀。(3)按照2的步驟,依次發(fā)送剩下的幀[6]。
3.4.2 藍(lán)牙設(shè)備讀過程
當(dāng)藍(lán)牙設(shè)備發(fā)現(xiàn)讀特征值收到數(shù)據(jù)的時(shí)候,就接收數(shù)據(jù),并追加到設(shè)備的buf里。
在企業(yè)的日常經(jīng)營(yíng)活動(dòng)中,智能物聯(lián)設(shè)備的使用已非常普遍,包括智能門鎖、智能攝像頭、終端考勤設(shè)備、會(huì)議門禁等設(shè)備都存在很強(qiáng)的身份認(rèn)證安全需求,涉及用戶在綁定設(shè)備、使用設(shè)備和解綁設(shè)備等各個(gè)生命周期的環(huán)節(jié)里。該文中的設(shè)計(jì)思路,融合了企業(yè)的統(tǒng)一身份認(rèn)證系統(tǒng)、物聯(lián)網(wǎng)管理平臺(tái)等既有基礎(chǔ)設(shè)施,將人、設(shè)備、系統(tǒng)的身份打通。通過身份認(rèn)證在企業(yè)智能物聯(lián)場(chǎng)景中的應(yīng)用,改變傳統(tǒng)的設(shè)備入網(wǎng)、分配、使用的交付模式與管理模式,為用戶提供了安全、便捷、易用的設(shè)備接入、維護(hù)、管理、使用的應(yīng)用思路。