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!