Linux内核非对称密钥解析器

时间:2014-12-03 10:45:11

标签: linux security cryptography kernel x509

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

感谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

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


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

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

openssl rsa -in private.pem -pubout -outform DER -out public.der

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


确保您的密钥存储为"永久密钥"内核中的密钥,否则它仍然会过期。