长期支持版本

    社区创新版本

      内核模块签名

      概述

      内核模块签名机制是保护Linux内核安全的重要机制,通过在内核模块文件末尾按照一定格式追加签名信息,并在内核模块加载时检查签名是否与内核预置的公钥匹配,从而保障内核模块文件的真实性和完整性。

      前置条件

      1. 准备openEuler内核编译环境,可参考:https://gitee.com/openeuler/kernel/wikis/kernel;
      2. 内核模块签名支持商密算法在openEuler 6.4内核支持,建议选取最新6.4内核源码进行编译;
      3. 生成用于内核模块签名的SM2私钥和证书。使用openssl生成的参考命令如下:
      # 生成证书配置文件(配置文件其他字段可按需定义)
      $ echo 'subjectKeyIdentifier=hash' > mod.cfg
      # 生成SM2签名私钥
      $ openssl ecparam -genkey -name SM2 -out mod.key
      # 生成签名请求
      $ openssl req -new -sm3 -key mod.key -out mod.csr
      # 生成SM2证书
      $ openssl x509 -req -days 3650 -extfile mod.cfg -signkey mod.key -in mod.csr -out mod.crt
      

      如何使用

      场景1:手动签名

      在内核源码目录下调用sign_file对指定内核模块进行签名:

      $ ./scripts/sign-file sm3 /path/to/mod.key /path/to/mod.crt <module_file>
      

      场景2:模块加载校验

      在内核启动参数中添加module.sig_enforce,开启内核模块强制签名校验:

      linux   /vmlinuz-6.4.0-10.1.0.20.oe2309.x86_64 root=/dev/mapper/openeuler-root ro resume=/dev/mapper/openeuler-swap rd.lvm.lv=openeuler/root rd.lvm.lv=openeuler/swap crashkernel=512M module.sig_enforce
      

      重启系统后,只有通过指定证书校验的内核模块才能被正常加载:

      # insmod /usr/lib/modules/6.4.0/kernel/crypto/sm4.ko
      

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份