簡介
在OpenHarmony中,設(shè)備互信認(rèn)證模塊作為安全子系統(tǒng)的子模塊,負(fù)責(zé)設(shè)備間可信關(guān)系的建立、維護(hù)、使用、撤銷等全生命周期的管理,實(shí)現(xiàn)可信設(shè)備間的互信認(rèn)證和安全會話密鑰協(xié)商,是搭載OpenHarmony的設(shè)備進(jìn)行可信互聯(lián)的基礎(chǔ)平臺能力。
設(shè)備互信認(rèn)證模塊當(dāng)前提供如下功能:
- 設(shè)備互信關(guān)系管理功能:統(tǒng)一管理設(shè)備互信關(guān)系的建立、維護(hù)、撤銷過程;支持各個業(yè)務(wù)創(chuàng)建的設(shè)備互信關(guān)系的隔離和可控共享。
- 設(shè)備互信關(guān)系認(rèn)證功能:提供認(rèn)證設(shè)備間互信關(guān)系、進(jìn)行安全會話密鑰協(xié)商的能力,支持分布式軟總線實(shí)現(xiàn)互信設(shè)備間的組網(wǎng)。
為實(shí)現(xiàn)上述功能,設(shè)備互信認(rèn)證模塊當(dāng)前包含設(shè)備群組管理、設(shè)備群組認(rèn)證和帳號無關(guān)點(diǎn)對點(diǎn)認(rèn)證三個子模塊,其部署邏輯如下圖:
圖 1 子系統(tǒng)架構(gòu)圖
其中,
- 設(shè)備群組管理服務(wù):統(tǒng)一管理不同業(yè)務(wù)建立的本設(shè)備與其他設(shè)備間的互信關(guān)系,并對外提供設(shè)備互信關(guān)系的創(chuàng)建入口 ,完成信任建立后創(chuàng)建帳號無關(guān)設(shè)備群組,并將信任對象設(shè)備添加進(jìn)群組;OpenHarmony上各業(yè)務(wù)可獨(dú)立創(chuàng)建相互隔離的設(shè)備間可信關(guān)系。
- 設(shè)備群組認(rèn)證服務(wù):支持已建立可信關(guān)系的設(shè)備間完成互信關(guān)系的認(rèn)證及會話密鑰的協(xié)商。
- 帳號無關(guān)點(diǎn)對點(diǎn)設(shè)備互信認(rèn)證:提供設(shè)備間基于共享秘密建立一對一互信關(guān)系的功能,并支持基于這種互信關(guān)系的認(rèn)證密鑰協(xié)商。
- 認(rèn)證協(xié)議庫:統(tǒng)一封裝不同類型的認(rèn)證協(xié)議,支持多種輕量級以及標(biāo)準(zhǔn)認(rèn)證協(xié)議實(shí)現(xiàn)。
共享秘密的使用要求和約束:
業(yè)務(wù)在設(shè)備間建立賬號無關(guān)點(diǎn)對點(diǎn)信任關(guān)系時,需要使用帶外共享的秘密信息,該秘密信息在共享方式、長度、復(fù)雜度以及時效性上均需符合安全要求。系統(tǒng)會對共享秘密的長度做約束,如不滿足,則無法進(jìn)行賬號無關(guān)點(diǎn)對點(diǎn)信任關(guān)系的建立,規(guī)則如下:
協(xié)議 | 共享秘密(PIN碼)長度 |
---|---|
EC-SPEKE | >=6bit |
DL-SPEKE | >=6bit |
ISO | >=128bit |
目錄
/base/security/device_auth
├── default_config # 編譯配置文件
├── frameworks # 設(shè)備互信認(rèn)證IPC代碼
├── interfaces # 對外接口目錄
├── test # 設(shè)備互信認(rèn)證的接口測試用例
├── common_lib # C語言公共基礎(chǔ)庫
├── deps_adapter # 依賴組件適配器代碼
│ ├── key_management_adapter # 密鑰及算法適配層
│ └── os_adapter # 系統(tǒng)能力適配層
└── services # 設(shè)備互信認(rèn)證服務(wù)層代碼
├── frameworks # 設(shè)備互信認(rèn)證框架層代碼
├── data_manager # 設(shè)備互信群組信息管理模塊
├── identity_manager # 認(rèn)證憑據(jù)管理模塊
├── legacy
│ ├── authenticators # 認(rèn)證執(zhí)行模塊
│ ├── group_auth # 設(shè)備群組認(rèn)證服務(wù)
│ ├── group_manager # 設(shè)備群組管理服務(wù)
├── creds_manager # 憑據(jù)管理模塊
├── mk_agree # 設(shè)備級主密鑰協(xié)商
├── cred_manager # 賬號憑據(jù)插件管理模塊
├── key_agree_sdk # 密鑰協(xié)商sdk
├── privacy_enhancement # 隱私增強(qiáng)模塊
├── session_manager # 會話管理模塊
└── protocol # 認(rèn)證協(xié)議庫
說明
接口說明
設(shè)備互信認(rèn)證組件中,設(shè)備群組管理服務(wù)負(fù)責(zé)將不同業(yè)務(wù)建立的設(shè)備間可信關(guān)系抽象成一個個可信群組,對外提供統(tǒng)一的接口,包含群組創(chuàng)建、刪除、查詢等功能;設(shè)備群組認(rèn)證服務(wù)基于已經(jīng)建立過可信關(guān)系的設(shè)備群組,提供設(shè)備可信認(rèn)證與端到端會話密鑰協(xié)商功能;同時提供群組無關(guān),基于認(rèn)證憑據(jù)的設(shè)備互信認(rèn)證能力。
表 1 設(shè)備群組管理服務(wù)提供的API接口(DeviceGroupManager)功能介紹
[]()
[]()[]()接口名 | []()[]()描述 |
---|---|
[]()[]()const DeviceGroupManager *GetGmInstance() | []()[]()獲取設(shè)備群組管理的實(shí)例。 |
[]()[]()int32_t RegCallback(const char *appId, const DeviceAuthCallback *callback) | []()[]()注冊業(yè)務(wù)的監(jiān)聽回調(diào)。 |
[]()[]()int32_t CreateGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *createParams) | []()[]()創(chuàng)建一個可信設(shè)備群組。 |
[]()[]()int32_t DeleteGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *disbandParams) | []()[]()刪除一個可信設(shè)備群組。 |
[]()[]()int32_t AddMemberToGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *addParams) | []()[]()添加成員到指定群組ID的可信設(shè)備群組。 |
[]()[]()int32_t DeleteMemberFromGroup(int32_t osAccountId, int64_t requestId, const char *appId, const char *deleteParams); | []()[]()從指定可信設(shè)備群組里刪除可信成員。 |
[]()[]()int32_t ProcessData(int64_t requestId, const uint8_t *data, uint32_t dataLen) | []()[]()處理綁定或者解綁的數(shù)據(jù)。 |
[]()[]()int32_t GetGroupInfo(int32_t osAccountId, const char *appId, const char *queryParams, char **returnGroupVec, uint32_t *groupNum) | []()[]()查詢可信設(shè)備群組信息。 |
表 2 設(shè)備群組認(rèn)證模塊提供的API接口(GroupAuthManager)功能介紹
[]()
[]()[]()接口名 | []()[]()描述 |
---|---|
[]()[]()const GroupAuthManager *GetGaInstance() | []()[]()獲取設(shè)備群組認(rèn)證的實(shí)例。 |
[]()[]()int32_t AuthDevice(int32_t osAccountId, int64_t authReqId, const char *authParams, const DeviceAuthCallback *gaCallback) | []()[]()認(rèn)證可信設(shè)備。 |
[]()[]()int32_t ProcessData(int64_t authReqId, const uint8_t *data, uint32_t dataLen, const DeviceAuthCallback *gaCallback) | []()[]()處理認(rèn)證的數(shù)據(jù)。 |
表 3 基于認(rèn)證憑據(jù)的設(shè)備互信認(rèn)證能力相關(guān)API接口功能介紹
[]()
[]()[]()接口名 | []()[]()描述 |
---|---|
[]()[]()int32_t StartAuthDevice(int64_t requestId, const char* authParams, const DeviceAuthCallback* callbak) | []()[]()指定認(rèn)證憑據(jù),觸發(fā)設(shè)備互信認(rèn)證。 |
[]()[]()int32_t ProcessAuthDevice(int64_t requestId, const char* authParams, const DeviceAuthCallback* callbak) | []()[]()響應(yīng)認(rèn)證請求,處理認(rèn)證數(shù)據(jù)。 |
[]()[]()int32_t CancelAuthRequest(int64_t requestId, const char* authParams) | []()[]()取消認(rèn)證請求。 |
審核編輯 黃宇
-
API
+關(guān)注
關(guān)注
2文章
1502瀏覽量
62080 -
鴻蒙
+關(guān)注
關(guān)注
57文章
2358瀏覽量
42876 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3723瀏覽量
16343
發(fā)布評論請先 登錄
相關(guān)推薦
評論