用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
SQL-Server
›
征程 6X release版本内核模块安全加载
征程 6X release版本内核模块安全加载
勿忘初心做自己
论坛元老
|
2025-1-8 10:25:50
|
显示全部楼层
|
阅读模式
楼主
主题
1735
|
帖子
1735
|
积分
5205
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
1.概述
征程 6X 系统在 release 编译时支持内核模块署名验证,仅加载使用正确密钥进行数字署名的内核模块。禁止加载未署名的内核模块或使用错误密钥署名的内核模块,客户须要更换成自己的 key 进行署名。
模块署名启用后,Linux 内核将仅加载使用正确密钥进行数字署名的内核模块。禁止加载未署名的内核模块或使用错误密钥署名的内核模块来进一步强化系统安全。
关于内核模块署名的先容请看下文:
2.配置
2.1 内核配置选项
在 menuconfig 中选中 CONFIG_MODULE_SIG,对应生成的 config 就被默认选中相干配置来支持模块署名。
2.2 配置说明
项目描述CONFIG_MODULE_SIG_FORCE对于严酷的方法,必须存在有效的署名CONFIG_MODULE_SIG_ALL内核模块不自动署名,该选项自动署名所有模块 用于署名的\ 哈希算法\ :SHA-512
… code:: text
CONFIG_MODULE_SIG_SHA512
CONFIG_MODULE_SIG_HASH=“sha512”
3.密钥署名
实验署名可实验步伐,使用密钥对内核模块进行署名。
3.1 Make Module_Install 署名
将内核配置为对模块进行署名,则此署名将在内核编译 make modules_install 时进行署名了。
3.2 手动对 ko 署名
指定须要的证书(包括公钥)和私钥、哈希算法以及内核模块。
通过 sign-file(可实验步伐)使用密钥对要安装到内核的模块进行署名,命令格式如下:
sign-file sha512 module_signature.pem module_signature.x509 xx.ko
复制代码
手动 ko 署名实例
SDK 整编时有封装好的脚本可以用来自动署名,对于不用 modules_install 进行安装的模块,可以用如下脚本:
sign_ko.sh xxx.ko # 传入驱动
sign_ko.sh dir # 传入驱动所在目录
复制代码
只用 AppSDK 时,须要直接使用下面的命令
./sign-file sha512 module_signature.pem module_signature.x509 xx.ko
复制代码
3.3 发布版本中的署名
发布版本中会把署名密钥文件放在 AppSDK 中,给发布版本提供 ko 的时候可以直接用这些署名文件:
ls AppSDK/module_sig/
module_signature.pem module_signature.x509 sign-file
发布包里面也有 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 创建自己的密钥对。
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 更换大概修改署名机制的时候,须要对工程目录进行清算:
删除生成目录中的内容,rm out/* -rf。
#. 清算完成后,重新编译系统去烧录验证。
#. 通过 strip 命令去去除内核模块的署名。
aarch64-linux-gnu-strip -g ~/nfs/module_sig_test.ko
复制代码
3.6 署名结果确认
1.dmesg | grep -i x.*509
使用新配置的内核重新启动。在 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: 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
内核模块在末尾附加了数字署名。一个简单的 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 的字样代表署名成功。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
勿忘初心做自己
论坛元老
这个人很懒什么都没写!
楼主热帖
新一代企业级安全OneDNS
记一次有意思的业务实现 → 单向关注是 ...
集合论第6-8章
将git仓库从submodule转换为subtree ...
redis 工具类
DNS协议
Java 代理模式
反射 p1 反射机制
Python 开发 漏洞的批量搜索与利用.(G ...
[kubernetes]服务健康检查
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Oracle
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表