저는 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
PEM 으로 변환할 수 있습니다.base64
코드에서 이를 수행하기 위해 API는 일반적인 방식으로 문서화됩니다. man -k SSL_SESSION
대부분의 Unix 또는 Unix 계열에서 수행됩니다 . Windows 또는 기타 잘못 설치/패키지된 시스템의 경우 다음으로 이동하십시오.https://www.openssl.org/docs/man1.1.1/man3/PEM_*SSL_SESSION
및 아래를 살펴보세요 SSL_SESSION_*
.
그러나 일부 (사용자 정의) 스택이 새 hello에 대해 저장된 매개변수를 확인하지 못하더라도 기본적으로 저장된 매개변수를 계속 사용해야 합니다. 따라서 이는 적어도 틀림없이 RFC 위반이지만 어떻게 취약점이 될 수 있는지 알 수 없습니다.
답변2
다음은 후속 조치입니다.@dave_thompson_085의 답변: 다음을 사용할 수 있습니다.PEM_read_SSL_SESSION
그리고PEM_write_SSL_SESSION
OpenSSL 라이브러리의 기능을 사용하여 PEM 파일을 디코딩하고 다시 인코딩합니다.SSL_SESSION_set1_master_key
마스터 키를 조정할 수 있습니다.