AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 767611
Accepted
Ys Cho
Ys Cho
Asked: 2024-01-24 12:56:18 +0800 CST2024-01-24 12:56:18 +0800 CST 2024-01-24 12:56:18 +0800 CST

我是否需要物理智能卡及其读卡器设备来签署 Linux 内核模块?

  • 772

我为了好玩而构建并测试了一个 Linux 内核源代码(滚动稳定),这些天,我想用自己创建的密钥签署一个内核模块,然后我在 OpenSSL 上得到了 PKCS#11 引擎用于对其进行签名。

但是存在 OpenSSL 无法请求密钥/证书的问题。所以我用 确认pkcs11-tool,但结果是“没有插槽”。

这是否意味着我应该有智能卡涉及的插槽?否则,如何签署内核模块?

以下为openssl.cnf消化内容

# referenced from the [provider_sect] below.
# Refer to the OpenSSL security policy for more information.
# .include fipsmodule.cnf

[openssl_init]
providers = provider_sect
ssl_conf = ssl_sect
engines = engine_section

[engine_section]
pkcs11 = pkcs11_section

[pkcs11_section]
engine_id = pkcs11
dynamic_path = /usr/lib/x86_64-linux-gnu/engines-3/pkcs11.so
MODULE_PATH = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
init = 0

# List of providers to load
[provider_sect]

我尝试用谷歌搜索一天,但我只找到了有关企业、云的信息……;没有用。

kernel-modules
  • 1 1 个回答
  • 28 Views

1 个回答

  • Voted
  1. Best Answer
    telcoM
    2024-01-27T03:11:06+08:002024-01-27T03:11:06+08:00

    在scriptsLinux内核源码包的子目录中,有一个sign-file工具(以前是脚本,现在是二进制工具,与内核一起构建)。

    例子:linux-6.6.13/scripts/sign-file

    您可以使用它来签署内核模块:

    /path/to/linux-6.6.13/scripts/sign-file sha256 private-key.pem certificate.der kernelmodule.ko
    

    或者,如果您在 PEM 格式的单个文件中同时拥有私钥和证书,则可以设置内核配置选项CONFIG_MODULE_SIG_KEY(在配置菜单Cryptographic API -> 签名检查证书 -> 模块签名的文件名或 PKCS#11 URI 中) key)指向该文件,并设置CONFIG_MODULE_SIG_ALL=y(在配置菜单中启用可加载模块支持 -> 自动签署所有模块),然后内核构建过程将使用您选择的密钥自动签署该内核构建中的所有模块。

    您可以使用以下命令创建合适的密钥和证书文件:

    openssl req -new -nodes -utf8 -sha256 -days 36500 -batch -x509 \
       -config x509.genkey -outform PEM -out kernel_key.pem \
       -keyout kernel_key.pem
    

    如果您也想使用该sign-file工具,可以使用以下命令将证书部分转换为 DER 格式:

    openssl x509 -in kernel_key.pem -out certificate.der -outform DER
    

    更多详细信息请参见内核源码包中的Documentation/admin-guide/module-signing.rst 。

    内核模块签名不需要使用 PKCS#11(以及扩展的智能卡或其他硬件安全模块)。

    但是,如果您创建自己的 Linux 发行版并开始在全球范围内大量发布它,那么使用 PKCS#11 安全模块来保存您的发行签名密钥以提高安全性将是一个非常好的主意。

    • 1

相关问题

  • 为什么 sys_call_table 是可预测的?

  • 为什么 Udev 为单个 USB 设备加载两个内核模块?

  • 如何解决 Vuurmuur 中的“内核中不支持连接跟踪”?

  • 无法设置内核模块参数

  • 在 Fedora 27 中未检测到 Broadcom 无线

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve