解碼/編碼 openssl sess.pem 文件

解碼/編碼 openssl sess.pem 文件

我用來openssl sess_id -in sess.pem -noout -text將 sess.pem 檔案(我使用 sess_out 得到的)中的 ssl 會話參數解碼為人類可讀的文字。我想知道是否有一種方法可以做相反的事情,即將文字轉換為 sess.pem 類型的格式。基本上我只想更改 sess.pem 檔案中的幾個參數(會話 ID、主密鑰等),但似乎找不到正確的命令。

答案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將允許您調整主密鑰。

相關內容