Linux 内核非对称 key 解析器

标签 linux security cryptography kernel x509

我试图弄清楚 Linux 内核非对称 key 管理是如何工作的。我的问题是:x509 解析器是 Linux 内核中唯一可用的 key 解析器吗?例如,如果我的 key 以 PEM 格式存储,我如何将此 key 添加到内核 key 环?

谢谢。

最佳答案

PEM 或多或少是一种包装格式。它使用页眉和页脚来指示基本 64 x509 (DER) 编码证书的开始和结束。因此,如果您可以添加 X509 证书,那么添加“PEM 编码”证书应该很容易。 PEM 正在添加 ASCII 装甲,即它可以被解释为文本。

您可以使用openssl命令行将证书从PEM转换为DER,反之亦然:

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

然后您可以将证书存储在内核中,内核似乎将 key 视为数据的 BLOB。

<小时/>

看来您可以以任何二进制格式存储 key 。因此,如果您不想使用证书,那么您可以以某种标准格式对公钥进行编码。对于公钥,通常是 SubjectPublicKey,它是 X5.09 证书内的公钥部分。

要仅转换公钥(从公钥或私钥),请使用:

openssl rsa -in private.pem -pubout -outform DER -out public.der
<小时/>

如果您想存储绝对最小值、易于处理的 key ,那么您可以将模数存储为大端无符号整数(恰好是 key 大小),并将公共(public)指数静态设置为值010001(十六进制)。如果您的应用程序中没有可用的 DER 编码例程,这非常有用。

<小时/>

确保您的 key 作为“永久” key 存储在内核中,否则它仍然会过期。

关于Linux 内核非对称 key 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27269641/

相关文章:

android - AES/CBC/PKCS5Padding加密解密算法和SHA-1哈希算法是否适用于所有类型的Android设备

c - 哪种方法更适合在 c 中的两个进程之间进行对话?

linux - 检查 TCP 性能

php - 在 Web 上创建电子邮件表单时的安全注意事项

security - SPA + API + OIDC : How to authenticate an API caller when it's only providing an ACCESS token?

javascript - javascript 可以访问/修改浏览器证书颁发机构吗?

c - Thales Connect HSM - DeriveKey 操作

linux - shell 脚本: Excecute a command in "screen"

c++ - 如何在 64-linux 上使用 c++ 中的 new 运算符动态分配大内存,如 10 G?

linux - 安全删除 Bash 环境变量