解码/编码 openssl sess.pem 文件

解码/编码 openssl sess.pem 文件

我正在使用openssl sess_id -in sess.pem -noout -textsess.pem 文件(使用 sess_out 获取)中的 ssl 会话参数解码为人类可读的文本。我想知道是否有办法做相反的事情,即将文本转换为 sess.pem 格式。基本上我只想更改 sess.pem 文件中的几个参数(session-id、master-key 等),但似乎找不到正确的命令。

答案1

没有命令可以操作或创建 SSL_SESSION,但asn1parse -genconf可以在 DER 中创建任意 ASN.1 结构,您可以使用源文件中的定义应用该结构ssl/ssl_asn1.c,然后使用sess_id或仅base64加上手动标题/尾随行转换为 PEM。

要在代码中执行此操作,API 以通常的方式记录;man -k SSL_SESSION在大多数 Unix 或类 Unix 上执行。如果在 Windows 或其他安装/打包不当的系统上,请转到https://www.openssl.org/docs/man1.1.1/man3/并查看PEM_*SSL_SESSIONSSL_SESSION_*

但是,即使某些(自定义)堆栈无法根据新的 hello 验证已保存的参数,它基本上仍然必须使用已保存的参数,因此,尽管这至少可以说是一种 RFC 违规,但我看不出它怎么会成为一个漏洞。

答案2

以下是@dave_thompson_085 的回答:您可以使用PEM_read_SSL_SESSIONPEM_write_SSL_SESSIONOpenSSL 库的函数对 PEM 文件进行解码和重新编码。SSL_SESSION_set1_master_key将允许您调整主密钥。

相关内容