OpenSSL s_server - aceitando a pulsação e verificando a solicitação de heartbeat

0

Eu gostaria de correr

openssl s_server -key rsa_key.pem -cert rsa_cert.pem

que aceitará a extensão do Heartbeat. Meu lado do cliente

openssl s_client -connect localhost:4433 -key rsa_key.pem -cert rsa_cert.pem

está oferecendo no ClientHello, mas o servidor não o seleciona. O que eu preciso fazer na execução do servidor ao aceitar essa extensão?

A próxima pergunta é: como eu sei no servidor, que recebi uma solicitação de heartbeat? Vou vê-lo no terminal, que roda s_server? Eu tentei Wireshark, mas eu não sei, como descriptografar essas mensagens criptografadas. Eu tentei adicionar chave ao Wireshark / Edit / Preferences, mas não ajudou.

    
por Mildas 18.02.2017 / 20:11

1 resposta

1

O OpenSSL 1.0.2 suporta heartbeats de TLS. Esse recurso foi removido do OpenSSL 1.1.0. Portanto, se você executar s_client usando a versão 1.0.2 e s_server usando a versão 1.1.0, verá o comportamento que está experimentando, ou seja, a extensão de pulsação sendo oferecida, mas não aceita.

s_client / s_server não informa diretamente quando eles receberam uma solicitação HEARTBEAT, embora eles digam se eles enviaram um, por exemplo do tipo s_client "B" no terminal e s_client informará "HEARTBEATING". No lado s_server tudo o que você verá é a mensagem "Read BLOCK". Isso significa que o servidor tentou ler dados de entrada, mas não havia dados de aplicativos para exibir (porque um Heartbeat não é um dado do aplicativo). Da mesma forma, você pode fazer a mesma coisa ao contrário (ou seja, emitir "B" no terminal de s_server).

Você pode obter mais informações se estiver disposto a compilar o OpenSSL por conta própria. Se você compilar o 1.0.2 usando a opção "enable-ssl-trace" para "Configurar" (ou config) e então iniciar s_server ou s_client com a opção "-trace", ele fornecerá informações detalhadas sobre os pacotes que está enviando e recebimento - incluindo pacotes de pulsação.

    
por 18.02.2017 / 20:52

Tags