自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

安全子系統(tǒng)之應(yīng)用簽名與驗簽

系統(tǒng)
這是一篇講解如何生成已經(jīng)簽名的hap包和簽名以及驗簽流程的文章。

[[442372]]

想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

Guide

這是一篇講解如何生成已經(jīng)簽名的hap包和簽名以及驗簽流程的文章。

一,應(yīng)用簽名與驗簽的場景

應(yīng)用開發(fā)階段:保證安裝包發(fā)布到設(shè)備的過程中沒有被篡改,應(yīng)用完整性校驗提供了簽名工具,簽名證書生成規(guī)范,公鑰等完整的工具支持我們對自己開發(fā)的hap安裝包進行簽名。

應(yīng)用安裝階段:系統(tǒng)的用戶程序框架子系統(tǒng)在接受安裝包之后對hap包進行數(shù)據(jù)解析,通過應(yīng)用完整性校驗?zāi)K的API對簽名進行驗證,校驗成功后才允許安裝此hap包。應(yīng)用完整性校驗?zāi)K在校驗簽名數(shù)據(jù)時,會使用系統(tǒng)預(yù)置的公鑰證書進行校驗。

二,應(yīng)用驗簽的流程

hap包的組成圖如下:

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

可以看到,經(jīng)過簽名的hap包組成多了簽名塊組成部分

1.整包驗簽

整包簽名數(shù)據(jù)塊是一個PKCS7格式的簽名塊(signed data),驗簽過程包括PKSC7簽名驗證、哈希比較、證書鏈驗證以及證書鏈與設(shè)備預(yù)置根證書的匹配校驗。

2.授權(quán)文件驗簽

授權(quán)文件數(shù)據(jù)塊是一個PKCS7格式的簽名塊(signed data),其中PKCS7簽名塊的內(nèi)容信息(contentinfo)是授權(quán)文件的內(nèi)容。驗簽過程包括:PKCS7簽名驗證、哈希比較、證書鏈驗證以及簽發(fā)授權(quán)文件證書的合法性校驗。

3.授權(quán)文件內(nèi)容校驗

驗簽?zāi)K將對授權(quán)文件內(nèi)容進行合法性檢查。如果授權(quán)文件是調(diào)試類型,則會比對本機UDID是否在授權(quán)文件授權(quán)調(diào)試的UDID列表中,如果本機UDID在授權(quán)文件授權(quán)調(diào)試的UDID列表中,則會進一步比較授權(quán)文件中的調(diào)試證書和整包簽名使用的證書是否相同,如果相同,則驗證通過。

二,應(yīng)用簽名流程

流程圖如下:

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

1.生成密鑰和證書請求文件:Build > Generate Key and CSR

1.1 使用DevEcoStudio

1.1.1 如果是首次生成密鑰文件*.p12點擊new,如果本地已有點擊choose existing

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

1.1.2 選擇密鑰文件存儲路徑,設(shè)置密碼(密碼由數(shù)字符號和字母組成)

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

1.1.3 在Gernrete Key填寫密鑰信息

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

1.1.4 生成csr證書請求文件*.csr,選擇文件存儲路徑即可

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

1.1.5 最后在文件存儲路徑下生成以下兩個文件

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

1.2 使用命令行

1.2.1 用管理員權(quán)限打開命令行工具并進到OpenJDK攜帶的KeyTool工具路徑下

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

1.2.2 執(zhí)行如下命令生成密鑰p12

  1. keytool -genkeypair -alias “myApplication_ohos” -keyalg EC -sigalg SHA256withECDSA -dname “C=CN,O=HUAWEI,OU=HUAWEI IDE,CN=myApplication_ohos” -keystore d:\key\myApplication_ohos.p12 -storetype pkcs12 -validity 9125 -storepass 123456Abc -keypass 123456Abc 

1.2.3 執(zhí)行如下命令生成證書請求文件csr

  1. keytool -certreq -alias “myApplicaiton_ohos” -keystore d:\key\myApplication_ohos.p12 -storetype pkcs12 -file d:\key\myApplication_ohos.csr 

2.生成應(yīng)用證書文件

2.1 將keytool加到系統(tǒng)環(huán)境變量并進到Sdk\toolchains\lib目錄下

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

2.2 執(zhí)行如下命令生成應(yīng)用證書cer

  1. keytool -gencert -alias “OpenHarmony Application CA” -infile d:\key\myApplication_ohos.csr -outfile d:\key\myApplication_ohos.cer -keystore OpenHarmony.p12 -sigalg SHA384withECDSA -storepass 123456 -ext KeyUsage:“critical=digitalSignature” -validity 3650 -rfc 

3.生成應(yīng)用Profile文件

在Sdk\toolchains\lib目錄下執(zhí)行如下命令生成profile文件p7b執(zhí)行如下命令:

  1. java -jar provisionsigtool.jar sign --in UnsgnedReleasedProfileTemplate.json --out d:\key\myApplication_ohos_Provision.p7b --keystore OpenHarmony.p12 --storepass 123456 --alias “OpenHarmony Application Profile Release” --sigAlg SHA256withECDSA --cert OpenHarmonyProfileRelease.pem --validity 365 --developer-id ohosdeveloper --bundle-name myApplication_ohos --distribution-certificate d:\key\myApplication_ohos.cer 

4.配置應(yīng)用簽名信息

打開File > Project Structure,按照下圖配置:

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

可以在build.gradle中查看簽名的信息:

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

編譯完成后在下圖取出已經(jīng)簽名的hap包:

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

三,總結(jié)流程

如下圖:

#星光計劃2.0#安全子系統(tǒng)之應(yīng)用簽名與驗簽-鴻蒙HarmonyOS技術(shù)社區(qū)

 想了解更多內(nèi)容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:姜華 來源: 鴻蒙社區(qū)
相關(guān)推薦

2021-11-18 10:28:03

鴻蒙HarmonyOS應(yīng)用

2024-01-01 09:08:52

API簽名驗簽

2020-07-20 07:46:01

程序員加簽驗簽

2023-03-01 14:55:09

2020-04-14 11:43:54

Python加密解密授權(quán)認(rèn)證

2023-03-10 18:34:31

2014-09-22 13:31:46

Linux

2022-05-12 12:47:07

SPI主設(shè)備通信

2022-05-15 22:34:32

SPI 控制器SPI 子系統(tǒng)

2022-02-16 15:48:26

ACTS應(yīng)用XTS子系統(tǒng)鴻蒙

2022-02-16 15:39:30

ACTS應(yīng)用XTS子系統(tǒng)鴻蒙

2021-06-07 08:13:11

LinuxIDLE 子系統(tǒng)

2023-02-26 23:13:24

存儲LinuxRAID

2023-04-12 15:31:11

系統(tǒng)服務(wù)管理鴻蒙

2022-01-26 15:16:24

utilsOpenHarmon鴻蒙

2020-11-08 16:16:12

Linux硬盤RAID

2022-01-06 16:17:58

鴻蒙HarmonyOS應(yīng)用

2016-10-17 08:49:15

WindowsLinuxArch Linux

2022-02-17 20:57:07

OpenHarmon操作系統(tǒng)鴻蒙

2021-09-18 14:40:37

鴻蒙HarmonyOS應(yīng)用
點贊
收藏

51CTO技術(shù)棧公眾號