0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā):Universal Keystore Kit密鑰管理服務(wù) 密鑰導(dǎo)入介紹及算法規(guī)格

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-06 10:45 ? 次閱讀

密鑰導(dǎo)入介紹及算法規(guī)格

如果業(yè)務(wù)在HUKS外部生成密鑰(比如應(yīng)用間協(xié)商生成、服務(wù)器端生成),業(yè)務(wù)可以將密鑰導(dǎo)入到HUKS中由HUKS進(jìn)行管理。密鑰一旦導(dǎo)入到HUKS中,在密鑰的生命周期內(nèi),其明文僅在安全環(huán)境中進(jìn)行訪問操作,不會(huì)傳遞出安全環(huán)境,保證任何人都無法獲取到密鑰的明文。

密鑰導(dǎo)入的方式包含明文導(dǎo)入和加密導(dǎo)入兩種方式。

明文導(dǎo)入

該方式直接將密鑰明文導(dǎo)入HUKS,在導(dǎo)入過程中密鑰明文會(huì)暴露在非安全環(huán)境中,一般適用于輕量級(jí)設(shè)備或低安業(yè)務(wù)。

  • 推薦使用該方式導(dǎo)入的密鑰類型:非對(duì)稱密鑰的公鑰
  • 不推薦使用該方式導(dǎo)入的密鑰類型:對(duì)稱密鑰、非對(duì)稱密鑰對(duì)
  • 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

加密導(dǎo)入

該方式支持業(yè)務(wù)與HUKS建立端到端的加密傳輸通道,將密鑰安全加密導(dǎo)入到HUKS中,確保導(dǎo)入傳入過程中密鑰不被泄露,適用于高安敏感業(yè)務(wù)。相較于明文導(dǎo)入,加密導(dǎo)入步驟更多,密鑰材料更復(fù)雜。

  • 推薦使用該方式導(dǎo)入的密鑰類型:對(duì)稱密鑰、非對(duì)稱密鑰對(duì)

下圖為加密導(dǎo)入密鑰開發(fā)時(shí)序圖。

加密導(dǎo)入密鑰開發(fā)順序圖

根據(jù)開發(fā)流程,在導(dǎo)入加密密鑰過程中,需要依次調(diào)用HUKS的生成密鑰、導(dǎo)出公鑰、導(dǎo)入加密密鑰、刪除密鑰接口。

導(dǎo)出密鑰接口返回的[公鑰明文材料]是按照X.509格式封裝,導(dǎo)入加密密鑰接口中的密鑰材料需滿足LengthData-Data的格式封裝。

加密導(dǎo)入密鑰材料格式

內(nèi)容長度
業(yè)務(wù)公鑰長度LCaller_Pk4字節(jié)
業(yè)務(wù)公鑰Caller_PkLCaller_Pk字節(jié)
Shared_Key加密參數(shù)AAD2長度LAAD24字節(jié)
Shared_Key加密參數(shù)AAD2LAAD2字節(jié)
Shared_Key加密參數(shù)Nonce2長度LNonce24字節(jié)
Shared_Key加密參數(shù)Nonce2LNonce2字節(jié)
Shared_Key加密參數(shù)AEAD2長度LAEAD24字節(jié)
Shared_Key加密參數(shù)AEAD2LAEAD2字節(jié)
Caller_Kek密文長度LCaller_Kek_enc4字節(jié)
Caller_Kek密文Caller_Kek_encLCaller_Kek_enc字節(jié)
Caller_Kek加密參數(shù)AAD3長度LAAD34字節(jié)
Caller_Kek加密參數(shù)AAD3LAAD3字節(jié)
Caller_Kek加密參數(shù)Nonce3長度LNonce34字節(jié)
Caller_Kek加密參數(shù)Nonce3LNonce3字節(jié)
Caller_Kek加密參數(shù)AEAD3長度LAEAD34字節(jié)
Caller_Kek加密參數(shù)AEAD3LAEAD3字節(jié)
密鑰明文材料長度的長度LTo_Import_Key_size4字節(jié)
密鑰明文材料長度To_Import_Key_sizeLTo_Import_Key_size字節(jié)
To_Import_Key密文長度LTo_Import_Key_enc4字節(jié)
To_Import_Key密文To_Import_Key_encLTo_Import_Key_enc字節(jié)HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

QQ截圖20240705211300.png

支持的算法

以下為密鑰導(dǎo)入支持的規(guī)格說明。

面向OpenHarmony的廠商適配密鑰管理服務(wù)規(guī)格分為必選規(guī)格和可選規(guī)格。必選規(guī)格為所有廠商均支持的算法規(guī)格。而對(duì)于可選規(guī)格,廠商將基于實(shí)際情況決定是否實(shí)現(xiàn),如需使用,請(qǐng)查閱具體廠商提供的說明,確保規(guī)格支持再使用。

建議開發(fā)者使用必選規(guī)格開發(fā)應(yīng)用,可保證全平臺(tái)兼容。

算法支持的密鑰長度API級(jí)別是否必選規(guī)格
AES128、192、2568+
RSA512、768、10248+
RSA2048、3072、40968+
HMAC8-1024(含),必須是8的倍數(shù)8+
ECC2248+
ECC256、384、5218+
ED255192568+
X255192568+
DSA512-1024(含),8的倍數(shù)8+
DH20488+
DH3072、40968+
SM22569+
SM41289+

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 密鑰
    +關(guān)注

    關(guān)注

    1

    文章

    136

    瀏覽量

    19723
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42689
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù)簡介

    Universal Keystore Kit密鑰管理服務(wù),下述簡稱為HUKS)向業(yè)務(wù)/應(yīng)用提供
    的頭像 發(fā)表于 07-04 14:20 ?347次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b>簡介

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 密鑰生成介紹算法規(guī)格

    當(dāng)業(yè)務(wù)需要使用HUKS生成隨機(jī)密鑰,并由HUKS進(jìn)行安全保存時(shí),可以調(diào)用HUKS的接口生成密鑰。
    的頭像 發(fā)表于 07-04 21:50 ?288次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> <b class='flag-5'>密鑰</b>生成<b class='flag-5'>介紹</b>及<b class='flag-5'>算法規(guī)格</b>

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 生成密鑰ArkTS

    以生成DH密鑰為例,生成隨機(jī)密鑰。具體的場景介紹及支持的算法規(guī)格
    的頭像 發(fā)表于 07-05 15:17 ?282次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> 生成<b class='flag-5'>密鑰</b>ArkTS

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 生成密鑰C、C++

    以生成ECC密鑰為例,生成隨機(jī)密鑰。具體的場景介紹及支持的算法規(guī)格
    的頭像 發(fā)表于 07-06 10:48 ?1086次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> 生成<b class='flag-5'>密鑰</b>C、C++

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 明文導(dǎo)入密鑰 ArkTS

    分別以導(dǎo)入AES256與RSA2048密鑰為例,具體的場景介紹及支持的算法規(guī)格
    的頭像 發(fā)表于 07-08 10:22 ?323次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> 明文<b class='flag-5'>導(dǎo)入</b><b class='flag-5'>密鑰</b> ArkTS

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 明文導(dǎo)入密鑰C、C++

    以明文導(dǎo)入ECC密鑰為例。具體的場景介紹及支持的算法規(guī)格
    的頭像 發(fā)表于 07-08 10:01 ?270次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> 明文<b class='flag-5'>導(dǎo)入</b><b class='flag-5'>密鑰</b>C、C++

    鴻蒙開發(fā)Universal Keystore Kit 密鑰管理服務(wù) 加密導(dǎo)入密鑰 ArkTS

    以加密導(dǎo)入ECDH密鑰對(duì)為例,涉及業(yè)務(wù)側(cè)加密密鑰的[密鑰生成]、[協(xié)商])等操作不在本示例中體現(xiàn)。
    的頭像 發(fā)表于 07-08 14:22 ?293次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b> <b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> 加密<b class='flag-5'>導(dǎo)入</b><b class='flag-5'>密鑰</b> ArkTS

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 加密導(dǎo)入密鑰C、C++

    以加密導(dǎo)入ECDH密鑰對(duì)為例,涉及業(yè)務(wù)側(cè)加密密鑰的[密鑰生成]、[協(xié)商]等操作不在本示例中體現(xiàn)。
    的頭像 發(fā)表于 07-08 15:26 ?309次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> 加密<b class='flag-5'>導(dǎo)入</b><b class='flag-5'>密鑰</b>C、C++

    鴻蒙開發(fā)Universal Keystore Kit 密鑰管理服務(wù) 密鑰使用介紹及通用流程

    為了實(shí)現(xiàn)對(duì)數(shù)據(jù)機(jī)密性、完整性等保護(hù),可使用生成/導(dǎo)入密鑰,對(duì)數(shù)據(jù)進(jìn)行密鑰操作
    的頭像 發(fā)表于 07-09 11:56 ?410次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b> <b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> <b class='flag-5'>密鑰</b>使用<b class='flag-5'>介紹</b>及通用流程

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 簽名、驗(yàn)簽介紹算法規(guī)格

    為實(shí)現(xiàn)數(shù)據(jù)完整性保護(hù)和防抵賴,可使用生成/導(dǎo)入密鑰,對(duì)數(shù)據(jù)進(jìn)行簽名驗(yàn)簽操作。
    的頭像 發(fā)表于 07-10 09:29 ?193次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> 簽名、驗(yàn)簽<b class='flag-5'>介紹</b>及<b class='flag-5'>算法規(guī)格</b>

    鴻蒙開發(fā)Universal Keystore Kit 密鑰管理服務(wù) 密鑰協(xié)商 C、C++

    以協(xié)商密鑰類型為ECDH,并密鑰僅在HUKS內(nèi)使用為例,完成密鑰協(xié)商。具體的場景介紹及支持的算法規(guī)格,請(qǐng)參考[
    的頭像 發(fā)表于 07-10 14:27 ?293次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b> <b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> <b class='flag-5'>密鑰</b>協(xié)商 C、C++

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 密鑰派生介紹算法規(guī)格

    在密碼學(xué)中,密鑰派生函數(shù)(Key derivation function,KDF)使用偽隨機(jī)函數(shù)從諸如主密碼或密碼的秘密值中派生出一個(gè)或多個(gè)密鑰。
    的頭像 發(fā)表于 07-11 16:30 ?282次閱讀

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 密鑰派生C、C++

    以HKDF256密鑰為例,完成密鑰派生。具體的場景介紹及支持的算法規(guī)格,請(qǐng)參考[密鑰生成支持的算法
    的頭像 發(fā)表于 07-11 14:28 ?253次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>Universal</b> <b class='flag-5'>Keystore</b> <b class='flag-5'>Kit</b><b class='flag-5'>密鑰</b><b class='flag-5'>管理</b><b class='flag-5'>服務(wù)</b> <b class='flag-5'>密鑰</b>派生C、C++

    鴻蒙開發(fā)Universal Keystore Kit密鑰管理服務(wù) 密鑰證明介紹算法規(guī)格

    HUKS為密鑰提供合法性證明能力,主要應(yīng)用于非對(duì)稱密鑰的公鑰的證明。
    的頭像 發(fā)表于 07-15 18:28 ?641次閱讀

    鴻蒙開發(fā)Universal Keystore Kit 密鑰管理服務(wù) 獲取密鑰屬性ArkTS

    HUKS提供了接口供業(yè)務(wù)獲取指定密鑰的相關(guān)屬性。在獲取指定密鑰屬性前,需要確保已在HUKS中生成或導(dǎo)入持久化存儲(chǔ)的密鑰。
    的頭像 發(fā)表于 07-17 10:46 ?280次閱讀