Como é que o cliente verifica o certificado de Servidores em SSL?
li muito sobre este tópico e todas as explicações" detalhadas " parecem falhar um passo:
Para o cliente Verificar o servidor, ele faz o seguinte (de acordo com o meu entendimento):
1) obtém o certificado do servidor. O certificado conterá a chave pública e a assinatura digital.
2?) O cliente verifica usando a chave pública que a Assinatura está OK.
É por isto que estou confuso. Diz que sou o homem no meio. Posso ligar-me ao servidor. e obter qualquer informação que o servidor me forneça, e depois enviá-la para o cliente. Como pode o cliente dizer quem realmente apresentou o certificado? Eis o que também sei em geral: O cliente conhece a chave pública. Encripta uma mensagem com ela e envia-a para o servidor.2) o servidor conhece a chave privada, decifra a mensagem e envia-a de volta.
3) agora o cliente Pode partilhar a chave simétrica com o servidor.
Um homem no meio pode estar presente, mas não está. matéria porque os dados não podem ser descodificados sem chave privada. Então, como é que isso se relaciona com o (estático??) assinatura digital no certificado?por favor, ajude-me a compreender esse passo específico (verificar a assinatura).
(editado para formatação)
2 answers
O servidor apresenta o ficheiro do certificado com a assinatura. O que me faltava era "algoritmo de assinatura Digital" ou algoritmo similar.
Assume que P é chave pública, R é privado.
Basicamente, se H é entrada e R é chave privada, nós obtemos C para saída.
Porque o C é o resultado de um algoritmo de assinatura Digital, podemos usar o p público e o C de saída para obter o H.
A razão pela qual isto responde à minha pergunta e: Digamos que alguém finge ser o servidor e tem a capacidade de reproduzir exactamente C. certeza de que o certificado vai parecer válido, mas o C não pode prosseguir mais, uma vez que as mensagens adicionais serão encriptadas com o p. Foi para isto que nunca vi a resposta. Encontrei a informação aqui.: http://www.jscape.com/blog/what-is-a-digital-signature