李 俊 柴海新
(國民認證科技(北京)有限公司 北京 100085)
(lijun@gmrz-bj.com)
隨著萬物互聯的物聯網時代到來,大量物聯網設備開始逐漸進入人們的日常工作和生活中,在帶給人們便利的生產和生活體驗的同時,也帶來了嚴重的安全隱患.針對物聯網的設備類型多樣化、窄帶寬、低時延、異構環境以及海量隱私信息等特點,傳統身份認證方式已經不能滿足需求.例如,賬號口令是一種最常見的傳統身份認證方式,由于物聯網服務的多樣化使得用戶需要記憶的賬號和口令的數量也大大增加,為了便于記憶和輸入,使用弱口令的現象普遍發生.國際組織OWASP于2018年發布了IoT Top 10[1],提出了在創建、配置和管理物聯網系統時應避免的十大風險,其中,弱口令、易猜測以及硬編碼的口令被列為首位.同時,傳統身份認證體系還存在“孤島”問題.物聯網各種服務采用獨立的認證方式用于各類認證場景(例如人臉識別、指紋識別、動態口令等),不同認證方式的系統各自為政,類似于一個個“孤島”,無法互操作,導致認證體系變得更為復雜、難以管理并且部署成本高.此外,集中式管理用戶憑證也存在安全風險.用戶憑證(口令、生物特征模板等)集中存儲在服務端,一旦服務端遭受攻擊,所有用戶憑證都存在泄露的風險,容易形成大規模的攻擊威脅,而且也容易形成功能和性能瓶頸.還有一個問題特別需要注意,用戶的隱私信息也存在被濫用的風險.用戶的個人敏感信息(包括口令、身份信息、生物特征模板等)以及物聯網感知設備所采集到的用戶相關信息(例如位置信息、事件日志等)可能被服務方濫用.與此同時,也存在物聯網應用服務方自身的業務運營數據被第三方服務提供方濫用的風險.
物聯網系統中存在多種實體對象,主要包括用戶、設備和服務.為確保安全,這些實體對象均需進行身份認證.用戶和服務之間、設備和服務之間、設備和設備之間、用戶和設備之間均存在身份認證的需求.因此,物聯網身份認證涵蓋了多種場景(如圖1所示),包括:
1) 人到云的認證;
2) 人到IoT設備的認證;
3) 人到IoT控制設備的認證;
4) 設備到設備的認證;
5) 設備到云的認證.
在以上場景中,“設備”可分為2種:不連接云服務的IoT設備,如智能燈泡、智能開關等;連接云服務的IoT控制設備,如智能手機、智能音箱、智能家居控制中心等.至于“人”,則可通過IoT控制設備(如智能手機)作為主交互設備與其他設備或者云服務連接并完成認證.

圖1 物聯網身份認證場景
在線快速身份(Fast Identity Online, FIDO)聯盟是一個非營利性國際組織,于2013年2月正式成立,其宗旨在于解決強認證設備之間缺乏互操作性,以及用戶為進行身份認證而創建和記憶多個賬號及口令所面臨的問題,從而實現消除口令的最終目標.FIDO聯盟已經發布了一系列技術標準,包括通用鑒別框架(universal authentication framework, UAF)、通用第2因子(universal 2nd factor, U2F)以及FIDO 2.0等[2].FIDO系列技術標準的核心思想是將身份認證手段與身份認證協議解耦合[3],以密碼技術為基礎,采用非對稱密碼算法機制,以密鑰作為用戶憑證,通過簽名驗簽的方法完成對用戶的身份鑒別.
FIDO UAF提供了具有高擴展性的輕量級統一身份鑒別框架,如圖2[4]所示:

圖2 UAF體系框架
UAF協議引入了“鑒別器(authenticator)”概念,該組件由匹配器(matcher)和密鑰管理器組成,運行于用戶終端設備中,執行FIDO核心關鍵功能.匹配器使用生物特征識別技術(例如指紋識別、人臉識別、虹膜識別等)或者其他身份識別技術(例如PIN碼、九宮格圖形碼等)對用戶進行身份識別;密鑰管理器則為用戶創建并管理公私鑰對,并進行各種密碼學運算(例如簽名、雜湊、加解密等).密鑰管理器作為鑒別器的密碼學內核(cryptographic kernel),只有在匹配器成功識別用戶后才釋放出用戶私鑰進行簽名操作[5].密鑰管理器除了需要管理代表用戶身份的密鑰之外,還需要管理代表其自身身份的鑒證(attestation)密鑰.為確保鑒別器的運行安全,鑒別器應運行于可靠的安全邊界內,一般采用可信執行環境(trusted execution environment, TEE)、安全元件(secure element, SE)或白盒加密技術對鑒別器進行安全保護.鑒別器的各項屬性(例如鑒別器廠商標識符、版本號、支持的算法和公鑰格式、支持的識別用戶方法、密鑰保護方法、廠商根公鑰證書等)包含于元數據文件中,通過FIDO元數據服務提供給FIDO服務器,以便FIDO服務器了解用戶設備的情況,并可使用廠商根公鑰證書對設備進行鑒證.
FIDO協議遵循端到端安全設計原則,涉及設備端和服務端的底層設計,產業鏈較長,環節眾多,需要整個產業鏈的支持.FIDO生態系統主要由依賴方(即應用服務商)、設備制造商、鑒別器廠商以及協議實現方共同構成.依賴方作為FIDO協議的使用方,需要實施部署FIDO服務器和整體解決方案;鑒別器廠商需要生產支持FIDO協議的鑒別器設備(例如支持FIDO協議的指紋算法芯片等);設備制造商需要將鑒別器集成在設備系統中,使得設備在出廠時就能夠支持FIDO協議;協議實現方即FIDO整體解決方案提供商,為依賴方、鑒別器廠商和設備制造商提供FIDO技術支持.目前,FIDO生態系統已經成熟,蘋果、Intel、ARM、三星、華為、小米、微軟、谷歌、亞馬遜、阿里巴巴以及各大銀行卡組織等重量級組織或機構均為FIDO聯盟成員,基于FIDO技術標準的身份認證解決方案已經在國內和國際上大規模應用.
為實現“智聯萬物”的核心能力,物聯網技術體系架構涵蓋了“云服務”“通信網絡”“邊緣計算”以及“設備終端”等多個層面.因此,物聯網身份認證也應實現“云-邊-端”一體化,對物聯網用戶和物聯網設備進行統一身份標識和身份認證.本文提出了基于FIDO技術的物聯網身份認證體系架構(如圖3所示),充分發揮了FIDO技術輕量化和高擴展性的優勢,通過靈活部署鑒別器和FIDO服務器,實現了安全、便捷且保護用戶隱私的物聯網全場景身份認證.

圖3 基于FIDO的物聯網身份認證體系架構
整體架構中包含如下參與角色:
1) 用戶.物聯網服務的使用者.用戶的角色可以有多種,例如消費用戶、管理用戶和運維用戶等.用戶可直接訪問并使用物聯網設備,也可通過物聯網控制設備對物聯網設備進行訪問、控制和使用.
2) IoT控制設備.用于對各類物聯網設備進行控制和監控的設備.通常具備較強的通信、計算和存儲能力,例如移動智能終端、智能音箱、智能家居控制器等.IoT控制設備可通過網絡直接連接到云服務,也可在本地連接網關.IoT控制設備一般通過近場通信協議(如低功耗藍牙、NFC、ZigBee等)實現與IoT設備的通信,以完成對IoT設備的控制和監控.IoT控制設備中內置了FIDO鑒別器,可實現對用戶的身份認證以及對自身的身份標識和身份認證.例如智能手機使用指紋鑒別器驗證用戶身份;智能音箱通過聲紋驗證用戶身份.
3) IoT設備.具備感知、計算、機械操作和通信等能力的設備,例如各類傳感器、感知終端、攝像頭、智能燈泡、智能電器等.不同種類的IoT設備在計算和通信能力方面差異巨大,對能源消耗的需求也有較大不同.某些具備較強計算和通信能力的IoT設備可內置FIDO鑒別器,可對用戶進行身份認證,也可實現對自身的身份標識和身份認證.對于大多數計算能力和通信能力較弱的IoT設備而言,可采用粘貼RFID標簽或二維碼標簽的方式實現對該設備的身份標識.
4) 網關.通過協議轉換、路由選擇等功能實現不同網絡協議之間的互操作,從而實現多種異質網絡的互相兼容.IoT設備和IoT控制設備可通過網關互相通信,并通過網關接入到網絡而與云服務進行通信.網關設備可內置FIDO服務器,用于對連接到網關的IoT控制設備、IoT設備以及用戶進行身份認證.
5) 網絡.由局域網、廣域網、互聯網等構成的信息傳輸基礎設施.
6) IoT應用服務.用于實現各類物聯網應用的服務平臺,如智能家居、智能交通、工業物聯網等.IoT應用服務可通過IoT設備管理服務和FIDO服務器實現對用戶和設備的可信身份認證.
7) IoT設備管理服務.用于對IoT設備進行管理的服務平臺.在IoT設備的重要生命周期階段,如入網登記、固件升級、注銷等,均受到IoT設備管理服務的控制.
8) FIDO服務器.用于實現對用戶及IoT設備進行身份標識管理及身份認證的FIDO服務平臺.
基于FIDO的人到云的身份認證框架(如圖4所示)是一種基于信任傳遞的兩步式認證.首先,此場景中的IoT控制設備應為用戶的主要交互設備(例如移動智能手機),通過該設備內置的FIDO鑒別器對IoT用戶進行本地身份識別,可采用指紋、人臉、聲紋等生物識別方式;識別通過后即可執行下一步,即使用代表用戶身份的私鑰對協議消息進行簽名并提交到云端FIDO服務器,由FIDO服務器采用用戶公鑰進行驗簽,成功后即完成人到云的身份認證.整體流程包括注冊、認證、注銷等過程,由內置于IoT控制設備中的鑒別器負責對代表用戶身份的密鑰進行全生命周期管理.此外,鑒別器還負責管理代表自身設備身份的密鑰的生命周期.此框架中,鑒別器發揮了關鍵作用,成為可信身份認證的錨點.

圖4 人到云的認證
IoT設備需要對當前使用者進行身份認證.對于計算能力和通信能力都很弱的IoT設備,其無法單獨對用戶進行身份認證,只能接受IoT控制設備的監控和管理;對于計算能力和通信能力較強且內置FIDO鑒別器的IoT設備,可利用鑒別器所擁有的安全能力(例如指紋識別、3D人臉識別、聲紋識別等)對使用者進行身份識別,技術原理與人到云的認證類似.在此場景中,FIDO服務器可根據IoT設備的通信能力部署在不同的地方:云或網關中.
IoT控制設備需要對當前使用者進行身份認證.對于內置FIDO鑒別器的IoT控制設備,可利用鑒別器所擁有的安全能力(例如指紋識別、3D人臉識別、聲紋識別等)對使用者進行身份識別,技術原理與人到云的認證類似.在此場景中,FIDO服務器可視情況部署在云或網關中.
物聯網中的海量設備需要協同工作,因此需要彼此間的身份認證.由于在此場景中不涉及用戶,因此身份認證模型可簡化為對設備的鑒證,無需管理代表用戶身份的密鑰.設備與設備之間存在2種連接方式:直接連接和間接連接.直接連接方式是指設備與設備之間通過近場通信方式建立通信信道;間接連接方式是指設備與設備之間通過網關連接.直連方式下,FIDO服務器需簡化后內置在設備中;間接方式下,FIDO服務器可內置在網關中.
設備到設備的認證可包括以下情況:
1) IoT設備到IoT設備的認證;
2) IoT設備到IoT控制設備的認證;
3) IoT控制設備到IoT設備的認證;
4) IoT控制設備到IoT控制設備的認證.
無論何種情況,對于內置FIDO鑒別器的設備,可將鑒別器置為靜默狀態(由于不涉及用戶,因此無需通過用戶交互驗證用戶身份),直接使用設備鑒證密鑰對消息進行簽名,FIDO服務器收到消息后通過證書鏈對消息進行驗簽,從而完成身份認證.
圖5描述了設備到設備的認證的技術原理和流程:

圖5 設備到設備的認證
具體步驟如下:
1) 設備使用鑒別器預置的鑒證密鑰和公鑰證書產生簽名消息;
2) 將簽名消息發送給對方設備;
3) 對方設備收到后透傳給FIDO服務器;
4) FIDO服務器使用證書鏈進行驗簽;
5) FIDO服務器返回認證結果.
對于內置FIDO鑒別器的IoT設備和IoT控制設備而言,可以通過網絡直接連接到云服務進行身份認證.可將鑒別器置為靜默狀態(由于不涉及用戶,因此無需通過用戶交互驗證用戶身份),直接使用設備鑒證密鑰對消息進行簽名,FIDO服務器收到消息后通過證書鏈對消息進行驗簽,從而完成身份認證.
圖6介紹了設備到云的認證的技術原理和流程.
具體步驟如下:
1) 云端FIDO服務器生成認證請求消息發給設備;
2) 設備使用鑒證私鑰對消息進行簽名;
3) 組裝成正式響應消息發送給云端FIDO服務器;
4) FIDO服務器使用證書鏈進行驗簽.

圖6 設備到云的認證
對于內置FIDO鑒別器的物聯網設備,由于涉及密鑰的安全使用,應實施嚴格的生命周期管理.本節將結合物聯網身份認證整體架構及應用場景,簡要描述物聯網設備的完整生命周期管理.
物聯網設備的生命周期包含以下階段(如圖7所示).

圖7 物聯網設備生命周期
3.8.1 生產階段
物聯網設備在出廠前,設備廠商應為每個設備分配唯一標識符,并為每個設備預置密鑰并簽發公鑰證書.標識符、密鑰和公鑰證書應保存在設備安全存儲區域,防止被惡意篡改.設備私鑰應能有效抵御非法讀取和復制.無需將設備公鑰分發到外部服務,而僅需要將設備廠商的根公鑰證書以元數據的形式提供給FIDO服務器,極大地降低了信息泄露的安全風險.
除上述方式外,還存在可不進行密鑰預置處理的方式.在這種方式中,設備密鑰僅在入網登記時由管理員持支持FIDO協議的智能手機進行激活操作而動態生成[6].由于此方式需要管理員身份信息及特定設備的深入參與,復雜性較高,僅適用于特定場景,本文不對此方式進行詳述.
3.8.2 入網登記階段
物聯網設備在進入某個物聯網系統中時,需要對該設備身份的真實性和完整性進行核驗.可在設備初次連接到網絡中時向FIDO服務器發起登記指令,由設備使用鑒別器私鑰和公鑰證書產生簽名消息,FIDO服務器完成驗簽則成功完成入網登記操作.此外,也可由管理員用戶使用物聯網控制設備(如移動智能終端)通過帶外認證的方式進行入網登記.例如,管理員使用智能手機掃描設備上的二維碼標簽或RFID標簽,獲得該設備唯一標識符,并上傳FIDO服務器,查驗該標識符真偽,最終完成入網登記.如果物聯網設備內置了FIDO2鑒別器,則可通過低功耗藍牙、NFC等近場通信方式使用CTAP2協議連接到管理員智能手機,由管理員通過智能手機完成設備入網登記.
3.8.3 使用階段
物聯網設備在完成入網登記階段之后即可正常使用.可根據該設備的能力選擇適用的身份認證方式.在使用階段,支持對物聯網用戶進行認證的設備可動態產生代表用戶身份的密鑰,并對這些密鑰進行管理.
3.8.4 升級階段
如果物聯網設備支持升級,例如系統固件升級,應確保升級過程不會變更唯一標識符和設備密鑰.此外,升級文件的真實性和完整性也需要進行核驗,以確保升級文件不被惡意篡改.
3.8.5 注銷階段
當物聯網設備老化或者無法繼續使用時,需要將其進行注銷處理.注銷操作可由設備自身發起,也可由管理員用戶向FIDO服務器主動發起.當設備被注銷后,如果需要重新投入使用,應重新進行入網登記操作.
內置FIDO鑒別器的物聯網設備中涉及到以下幾種密鑰:鑒別器密鑰、用戶密鑰和保護密鑰(如圖8所示).代表用戶身份的公私鑰對在注冊時動態產生(靜默鑒別器則不存在用戶密鑰),并由鑒別器使用保護密鑰對用戶私鑰進行加密保護;代表設備身份的鑒別器私鑰和相應公鑰證書則由鑒別器廠商在設備出廠時預置在鑒別器中,根私鑰由鑒別器廠商安全保管,根公鑰證書則由鑒別器廠商以元數據文件的形式提供給FIDO服務器.

圖8 設備密鑰種類及關系
物聯網設備應優先支持國家密碼管理局所核準的密碼算法,例如SM2橢圓曲線密碼算法[7]、SM3雜湊算法[8]、SM4分組密碼算法[9]等.
本方案基于FIDO協議,將認證手段與認證協議相分離,使得物聯網應用服務只需部署1套FIDO服務器即可支持多種不同的認證手段,極大地提高了系統的可擴展性,有效地解決了傳統方案存在的“身份認證孤島”問題.此外,本方案的安全特色還包括:用戶的秘密信息(如生物特征、PIN碼等)從不離開設備,不會被采集到服務端,極大地減少了泄露的威脅,同時也分散了服務端被攻擊的風險;服務及用戶賬號之間不存在可鏈接性,不同的服務使用的用戶密鑰是不同的,降低了用戶被攻擊者通過“足印”進行定位追蹤的風險.這些安全設計將整體方案的安全性和便捷性同時提高到新的高度,并著重考慮了對用戶隱私的增強保護.
此外,對于物聯網而言,本方案所具備的3個特點尤其符合物聯網對身份認證的需求:
1) 輕量化設計.
方案采用了簡明的C/S架構,客戶端管理代表用戶身份和代表設備身份的私鑰,服務端管理代表用戶身份的公鑰和代表設備身份的根公鑰,整體架構中未引入可信第三方(例如CA中心等),減少安全干擾因素,降低不可控的業務風險,增強物聯網應用服務對身份認證系統的控制力.同時,協議對設備的計算能力和通信能力的要求并不高,可適用于窄帶寬和低計算能力的物聯網環境.
2) 去中心化.
傳統身份認證解決方案中,一般至少存在1個集中式管理的認證中心或者密鑰管理中心,當網絡出現故障或者集中式認證中心或密鑰管理中心遭受攻擊時,整個身份認證系統將陷入不可用狀態.而本方案中,用戶憑證(公私鑰)分散存儲在設備和FIDO服務器中.這種去中心化的設計特別適用于采用多種網絡類型的物聯網,FIDO服務器可以按需部署在“云”“邊”甚至“端”側,具有極高的健壯性和可用性.
3) 零信任理念.
整體方案的設計符合零信任的理念:從不信任,一直驗證.在物聯網中,設備往往處于無法保證物理安全以及網絡不可靠的繁雜環境中,有時設備在完成認證后遭受攻擊成為不可信任的,因此必須時刻對設備和用戶保持警惕性.基于FIDO的物聯網身份認證方案非常重視物聯網設備的生命周期保障,在安全前提中將設備和用戶假定為不可信任的,只有經過嚴格的基于數學安全的公私鑰體制對設備和用戶完成每次身份認證,才能正常開展物聯網應用業務,從而確保物聯網系統的安全.
本文基于FIDO技術的輕量化和去中心化的設計思想提出了物聯網身份認證解決方案,全面覆蓋了物聯網中用戶、設備與服務之間的各種認證場景,提出了針對物聯網設備的生產、入網登記、使用、升級、注銷等階段進行全生命周期管理,闡述了物聯網設備密鑰種類及關系,并對方案所具備的輕量化設計、去中心化和零信任理念等優勢和特點進行了分析,為實現安全、便捷且保護隱私的物聯網身份認證系統提供了參考和指導.