我想弄清楚Linux内核非对称密钥管理是如何工作的。我的问题是:x509分析器是linux内核中唯一可用的关键分析器吗?例如,如果我的密钥以PEM格式存储,那么我如何将此密钥添加到内核密钥环中?Linux内核非对称密钥解析器
谢谢。
我想弄清楚Linux内核非对称密钥管理是如何工作的。我的问题是:x509分析器是linux内核中唯一可用的关键分析器吗?例如,如果我的密钥以PEM格式存储,那么我如何将此密钥添加到内核密钥环中?Linux内核非对称密钥解析器
谢谢。
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编码例程,这非常有用。
确保您的密钥在内核中存储为“永久”密钥,否则它仍然会过期。
其实我的问题是我根本不想处理证书(如果可能的话)。我只是想将我的公钥(无论它是什么格式)添加到内核密钥环中。证书的问题是它们包含到期日期,并且由于我正在使用嵌入式系统,所以我没有保证我的系统日期是正确的(实际上,我确信它不是)。当系统检查证书有效性时,这肯定会导致错误。 – tano 2014-12-04 11:17:19
扩展答案。有用的链接:http://www.ibm.com/developerworks/library/l-key-retention/ – 2014-12-04 17:22:06