Estou usando openssl sess_id -in sess.pem -noout -text
para decodificar os parâmetros da sessão SSL no arquivo sess.pem (que obtive usando sess_out) em texto legível por humanos. Eu queria saber se existe uma maneira de fazer o oposto, ou seja, converter o texto para o formato sess.pem. Basicamente, eu só quero alterar alguns parâmetros (id da sessão, chave mestra, etc.) dentro do arquivo sess.pem, mas não consigo encontrar o comando correto.
Responder1
Não há comandos para manipular ou criar um SSL_SESSION, mas asn1parse -genconf
pode criar uma estrutura ASN.1 arbitrária no DER, que você pode aplicar usando a definição no arquivo de origem ssl/ssl_asn1.c
e depois converter para PEM com sess_id
ou apenas base64
mais linhas manuais de cabeçalho/trailer.
Para fazer isso em código, a API é documentada da maneira usual; faça man -k SSL_SESSION
na maioria dos Unix ou semelhantes ao Unix. Se estiver no Windows ou em algum outro sistema mal instalado/empacotado, vá parahttps://www.openssl.org/docs/man1.1.1/man3/e olhe abaixo PEM_*SSL_SESSION
e SSL_SESSION_*
.
Mas mesmo que alguma pilha (personalizada) falhe ao verificar os parâmetros salvos em relação ao novo hello, ela basicamente ainda deve usar os parâmetros salvos, portanto, embora isso seja pelo menos indiscutivelmente uma violação de RFC, não vejo como isso pode ser uma vulnerabilidade.
Responder2
Aqui está um acompanhamento paraResposta de @dave_thompson_085: você pode usar oPEM_read_SSL_SESSION
ePEM_write_SSL_SESSION
funções da biblioteca OpenSSL para decodificar e recodificar o arquivo PEM.SSL_SESSION_set1_master_key
permitirá que você ajuste a chave mestra.