Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Chave Simétrica criada para comunicação Cliente x Servidor

Fiquei na dúvida: "" No texto diz o seguinte: Que o cliente gera uma chave simétrica ao vivo. Uma chave só para ele e o servidor com o qual está se comunicando naquele momento! ? Quem cria essa chave ? Seria o certificado já configurado no browser ? ? Ou seria a comunicaçao entre os dois quando em contato faria isso, não entendi como o cliente faz isso sendo que ele possui uma chave pública, para mim somente o servidor poderia fazer isso, para garantir a integridade/segurança da info. Buguei nessas informações, me ajudem rsrs.

7 respostas

Oi Fabiano, se não me engano, a chave é gerada com base no certificado, mas nesse caso, como a conexão já é HTTPS, a nova chave gerada só será conhecida pelo cliente e o servidor.

solução!

ok, obrigado

Fala Fabiano!

Sua dúvida foi solucionada?

Abraços!

Não foi, mas deixa pra lá.

Acabei respondendo despercebido, saindo 3 posts.

Acabei respondendo despercebido, saindo 3 posts.

Fala Fabiano!

Vou tentar te ajudar!

Quando algum cliente se conecta a um servidor usando internet, essa conexão é indireta. Esse cliente envia uma "mensagem" que passa por diversos nós (outros servidores/provedores) até que realmente chegue no servidor destino. Nem sempre sabemos o caminho exato que os pacotes irão fazer e nem podemos garantir que a comunicação seja confidencial (ninguém no meio veja), integra (ninguém altere) e autentica (servidor de destino correto e não alguém se passando por esse servidor)

A cada conexão é gerada um novo par de chaves público/privado (simétrica) que é utilizado para transmitir a chave assimétrica. Um chave "cifradora de chaves" (key encryption key" ou KEK.

Mas como esse par de chaves é usada para garantir autenticidade?

Inicialmente, o servidor envia para o cliente a sua chave pública. Eventualmente ele assina algo com sua chave privada de forma a provar para o cliente que ele é realmente o "dono" da chave pública. Mas como o cliente pode ter certeza de que a chave que ele recebeu dizendo vir do servidor destino realmente veio desse servidor destino?

Se o cliente já conhece a chave pública do servidor (tem salvo no pc associada a identidade utilizada) então ocorre normalmente, mas se não tiver, será necessário alguém de confiança para intermediar essa comunicação (como o cliente verifica a assinatura do servidor se não tem nada para comparar?). Isso é feito através do certificado digital.

O certificado digital nada mais é que:

  • Uma chave pública
  • ... associada a uma identidade (nome)
  • ... e o par assinado por alguém de confiança

Existem mais de uma maneira de se fazer isso, Autoridades Certificadoras (CA), Redes de Confiança (Web of Trust), Notários, etc. O mais comum é o uso de Autoridades Certificadoras.

A grosso modo, essas autoridades são um conjunto de empresas cuja chave pública já vem embutida no software. Por exemplo firefox (pago)

Concluindo, a entrega e verificação do certificado é um processo relativamente lento quando o certificado não está em cache. Após isso é necessário confirmar a identidade do cliente (pode ser feito via certificado), mas é mais comum omitir essa parte (uso de usuário e senha diz ao site quem é aquele cliente). Após a autenticação de ambos os lados, usa-se a criptografia simétrica, bem mais rápida, para comunicação normal.

Espero ter ajudado!

Abraços!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software