openssl sess.pem 파일 디코딩/인코딩

openssl sess.pem 파일 디코딩/인코딩

저는 openssl sess_id -in sess.pem -noout -textsess.pem 파일(sess_out을 사용하여 얻은)의 SSL 세션 매개변수를 사람이 읽을 수 있는 텍스트로 디코딩하는 데 사용하고 있습니다. 반대로 텍스트를 sess.pem 형식으로 변환하는 방법이 있는지 알고 싶었습니다. 기본적으로 sess.pem 파일 내에서 몇 가지 매개변수(세션 ID, 마스터 키 등)를 변경하고 싶지만 올바른 명령을 찾을 수 없는 것 같습니다.

답변1

SSL_SESSION을 조작하거나 생성하는 명령은 없지만 asn1parse -genconfDER에서 임의의 ASN.1 구조를 생성할 수 있습니다. 이는 소스 파일의 정의를 사용하여 적용한 ssl/ssl_asn1.c다음 수동 헤더/트레일러 라인을 사용하거나 추가하여 sess_idPEM 으로 변환할 수 있습니다.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_SESSIONOpenSSL 라이브러리의 기능을 사용하여 PEM 파일을 디코딩하고 다시 인코딩합니다.SSL_SESSION_set1_master_key마스터 키를 조정할 수 있습니다.

관련 정보