SSL Handshake: Como funciona

SSL / TLS são protocolos usados ​​para criptografar informações entre dois pontos. Geralmente é entre o servidor e o cliente, mas há momentos em que a criptografia de servidor para servidor e cliente para cliente é necessária. Este artigo se concentrará apenas na negociação entre servidor e cliente.

Para que a negociação SSL / TLS ocorra, o administrador do sistema deve preparar no mínimo 2 arquivos: Chave Privada e Certificado. Ao solicitar de uma Autoridade de Certificação, como DigiCert Trust Services, um arquivo adicional deve ser criado. Este arquivo é chamado de Solicitação de Assinatura de Certificado, gerado a partir da Chave Privada. O processo de geração dos arquivos depende do software que usará os arquivos para criptografia.

Observe que, embora os certificados solicitados de autoridades de certificação sejam inerentemente confiáveis ​​para a maioria dos clientes, certificados adicionais chamados Certificados de autoridade de certificação intermediários e Certificados de raiz de autoridade de certificação, podem precisar ser instalados no servidor. Novamente, isso depende do software do servidor. Geralmente, não há necessidade de instalar os arquivos de CA intermediário e raiz nos aplicativos cliente ou navegadores.

Assim que os arquivos estiverem prontos e corretamente instalados, basta iniciar a negociação SSL / TLS usando o protocolo seguro. Em aplicativos de navegador, geralmente é https://www.domain.com. Lembre-se de usar o endereço do seu site seguro. Acima é apenas um exemplo de endereço.

O handshake SSL padrão

A seguir está um handshake SSL padrão quando o algoritmo de troca de chave RSA é usado:

1. Olá Cliente

Informações de que o servidor precisa para se comunicar com o cliente usando SSL. Isso inclui o número da versão SSL, configurações de criptografia e dados específicos da sessão.

2. Olá Servidor

Informações de que o servidor precisa para se comunicar com o cliente usando SSL. Isso inclui o número da versão SSL, configurações de criptografia e dados específicos da sessão.

3. Autenticação e segredo pré-mestre

O cliente autentica o certificado do servidor. (por exemplo, nome comum / data / emissor) O cliente (dependendo da cifra) cria o segredo pré-mestre para a sessão, criptografa com a chave pública do servidor e envia o segredo pré-mestre criptografado para o servidor.

4. Descriptografia e segredo mestre

O servidor usa sua chave privada para descriptografar o segredo pré-mestre. Tanto o servidor quanto o cliente executam etapas para gerar o segredo mestre com a cifra acordada.

5. Criptografia com chave de sessão

O cliente e o servidor trocam mensagens para informar que as mensagens futuras serão criptografadas.

Referência: https://www.websecurity.digicert.com/security-topics/how-does-ssl-handshake-work