首页
学习
活动
专区
圈层
工具
发布

PEM私钥
EN

Security用户
提问于 2015-09-21 21:19:44
回答 2查看 27.3K关注 0票数 9

我对安全性很陌生,我正试图解码我的机器和服务器之间的SSL加密通信。据我所知,我设法获得了私钥和公钥:

代码语言:javascript
复制
-----BEGIN RSA PRIVATE KEY----- 

[private key content]

-----END RSA PRIVATE KEY-----

但是,Wireshark要求密钥必须是.pem格式才能解码通信,我能以某种方式将我的密钥转换成这种格式吗?如果没有,那么使用这些包的应用程序如何对它们进行解码?

EN

回答 2

Security用户

发布于 2015-09-22 14:04:09

".PEM格式“并不真正作为一个标准存在。这更像是“OpenSSL所做的一切”。

PEM来自于隐私增强邮件的一个旧的失败的标准(这就是缩写词的意思)。如今,"PEM“的真正意思是:一些看起来像:

代码语言:javascript
复制
-----BEGIN XXX-----
[some Base64 stuff here]
-----END XXX-----

即以-----开头并包含指定数据类型的标题行(例如:( "RSA私钥“);类似的拖车线;在这两行之间,用Base64编码的二进制对象。

对于RSA私钥,您将主要遇到两种PEM编码格式.当报头包含“开始RSA私钥”时,这就是PKCS#1描述的格式的RSA私钥。当报头写着“开始私钥”(没有"RSA")时,它使用PKCS#8,一种包装格式,包括密钥类型("RSA")和私钥本身的指定。

在您的示例中,如果您看到一些类似-----BEGIN RSA PRIVATE KEY-----的内容,并以serverkey.pem开头,那么它就是PEM;只需将其放在文本文件中,以某个名称保存(例如"serverkey.pem"),并配置Wireshark将该文件用作服务器密钥。这在Wireshark文档中有描述。

不过,请注意一些细节:

  • 如果文件是用UTF-16编码的,Wireshark可能无法读取该文件( Windows在某种程度上称之为"Unicode")。在UTF-16中,每个字符被编码超过两个字节(或者对于一些字符(如帕霍赫苗族)是四个字节)。如果您正在使用Windows的记事本,在保存文件时,选择"ANSI“或"UTF-8”编码。
  • 如果客户端和服务器使用"DHE“或"ECDHE”密码套件,了解服务器的私钥不足以解密数据。如果客户端和服务器同意使用这样的密码套件,而您仍然希望拦截数据,那么您必须进行主动攻击( 居中人),在该攻击中,您在与客户端交谈时模拟服务器,在与服务器交谈时模拟客户端。这是一个更多的工作,Wireshark不会对你有多大的帮助。
票数 10
EN

Security用户

发布于 2015-09-22 13:31:16

只需创建一个扩展名为".pem“的文件,并尝试使用它。

根据此页面,私钥存储在PEM文件中,如您所述:

代码语言:javascript
复制
-----BEGIN RSA PRIVATE KEY----- 

[code in whatever format it may be]

-----END RSA PRIVATE KEY-----
票数 4
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/100816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档