国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

博客專欄

EEPW首頁 > 博客 > 征程 6X release 版本內(nèi)核模塊安全加載

征程 6X release 版本內(nèi)核模塊安全加載

發(fā)布人:地平線開發(fā)者 時間:2025-02-07 來源:工程師 發(fā)布文章

01 概述


征程 6X 系統(tǒng)在 release 編譯時支持內(nèi)核模塊簽名驗證,僅加載使用正確密鑰進行數(shù)字簽名的內(nèi)核模塊。禁止加載未簽名的內(nèi)核模塊或使用錯誤密鑰簽名的內(nèi)核模塊,客戶需要替換成自己的 key 進行簽名。


模塊簽名啟用后,Linux 內(nèi)核將僅加載使用正確密鑰進行數(shù)字簽名的內(nèi)核模塊。禁止加載未簽名的內(nèi)核模塊或使用錯誤密鑰簽名的內(nèi)核模塊來進一步強化系統(tǒng)安全。


關于內(nèi)核模塊簽名的介紹請看下文。



02 配置


2.1 內(nèi)核配置選項


在 menuconfig 中選中 CONFIG_MODULE_SIG,對應生成的 config 就被默認選中相關配置來支持模塊簽名。


圖片


2.2 配置說明


項目描述
CONFIG_MODULE_SIG_FORCE對于嚴格的方法,必須存在有效的簽名
CONFIG_MODULE_SIG_ALL內(nèi)核模塊不自動簽名,該選項自動簽名所有模塊


用于簽名的\哈希算法\ :SHA-512… code:: textCONFIG_MODULE_SIG_SHA512CONFIG_MODULE_SIG_HASH=“sha512”



03 密鑰簽名


執(zhí)行簽名可執(zhí)行程序,使用密鑰對內(nèi)核模塊進行簽名。


3.1 Make Module_Install 簽名


將內(nèi)核配置為對模塊進行簽名,則此簽名將在內(nèi)核編譯 make modules_install 時進行簽名了。


3.2 手動對 ko 簽名


指定需要的證書(包括公鑰)和私鑰、哈希算法以及內(nèi)核模塊。


通過 sign-file(可執(zhí)行程序)使用密鑰對要安裝到內(nèi)核的模塊進行簽名,命令格式如下:


sign-file sha512 module_signature.pem module_signature.x509 xx.ko


手動 ko 簽名實例

SDK 整編時有封裝好的腳本可以用來自動簽名,對于不用 modules_install 進行安裝的模塊,可以用如下腳本:


sign_ko.sh xxx.ko # 傳入驅(qū)動
sign_ko.sh dir # 傳入驅(qū)動所在目錄



只用 AppSDK 時,需要直接使用下面的命令:


./sign-file sha512 module_signature.pem module_signature.x509 xx.ko


3.3 發(fā)布版本中的簽名


發(fā)布版本中會把簽名密鑰文件放在 AppSDK 中,給發(fā)布版本提供 ko 的時候可以直接用這些簽名文件:


ls AppSDK/module_sig/
module_signature.pem module_signature.x509 sign-file


發(fā)布包里面也有 AppSDK 目錄。


3.4 密鑰

證書 (含公鑰)\ :module_signature.x509
私鑰\ :module_signature.pem


3.5 定制修改簽名機制


要替換固定 key,將新的 key 替換源碼目錄中的 build_tools/hobot_tools/keys/下的私鑰和證書即可,如下:


build_tools/hobot_tools/keys$ ls module_signature.*module_signature.pem module_signature.x509


可以通過 openssl 創(chuàng)建自己的密鑰對 .openssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 -config x509.genkey -outform PEM -out module_signature.pem -keyout module_signature.pem${OUTPUT_BUILD_DIR}/kernel/certs/extract-cert module_signature.pem module_signature.x509 # 生成證書
其中 x509.genkey 可以用 linux 下 certs/default_x509.genkey;extract-cert 工具是在支持模塊簽名編譯中生成的。
#. 當 key 替換或者修改簽名機制的時候,需要對工程目錄進行清理:
刪除生成目錄中的內(nèi)容,rm out/* -rf。
#. 清理完成后,重新編譯系統(tǒng)去燒錄驗證。
#. 通過 strip 命令去去除內(nèi)核模塊的簽名。


aarch64-linux-gnu-strip -g ~/nfs/module_sig_test.ko



3.6 簽名結果確認


1.dmesg | grep -i x.*509使用新配置的內(nèi)核重新啟動。在 dmesg 的輸出中,您應該能夠確認加載了正確的證書:

root@hobot:~# dmesg | grep -i x.*509
[ 0.333727] Asymmetric key parser ‘x509’ registered
[ 2.068923] Loading compiled-in X.509 certificates
[ 2.152800] Loaded X.509 cert ‘Build time autogenerated kernel key: 4e24f188419c7e1d5305f1d0ae2339286e1835c2’
[ 39.117796] [I|MIPI|hobot_mipi_csi_stl.c+252]:[RX4][STL]: module 509 reg done


2.cat /proc/keys

如果啟用了 CONFIG_KEYS_DEBUG_PROC_KEYS,那么 root用戶可以在/proc/keys 文件中查看證書:

root@hobot:~# cat /proc/keys
…
0c5ec4d5 I------ 1 perm 1f030000 0 0 asymmetri Build time autogenerated kernel key: 4e24f188419c7e1d5305f1d0ae2339286e1835c2: X509.rsa 6e1835c2 []


3.hexdump -C hobot-pcie.ko | tail

內(nèi)核模塊在末尾附加了數(shù)字簽名。一個簡單的 hexdump 可以確認簽名是否存在。

root@hobot:/mnt# hexdump -C hobot-pcie.ko |tail
00014d10  58 df 8f 8e fb 98 2a 76  72 b6 44 8c 97 cb 95 81  |X.....*vr.D.....|
00014d20  d7 1e 8b 8c 48 b8 64 54  13 bc d6 63 78 d3 1b 51  |....H.dT...cx..Q|
00014d30  00 2e 0b 3b 84 6b 35 f2  3b 19 b8 d3 3a 27 be bd  |...;.k5.;...:'..|
00014d40  21 08 2c 17 3c e3 3c 76  21 23 fc b4 c0 e7 eb 82  |!.,.<.<v!#......|
00014d50  13 5f 2d 69 b2 f4 45 d8  af 90 34 f2 69 9c fa e2  |._-i..E...4.i...|
00014d60  2e 02 e9 34 ce 46 f1 97  a1 00 00 02 00 00 00 00  |...4.F..........|
00014d70  00 00 00 02 a9 7e 4d 6f  64 75 6c 65 20 73 69 67  |.....~Module sig|
00014d80  6e 61 74 75 72 65 20 61  70 70 65 6e 64 65 64 7e  |nature appended~|
00014d90  0a                                 |.|


在 ko 文件的末尾有 module signature appended 的字樣代表簽名成功。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。




相關推薦

技術專區(qū)

關閉