What stops someone from MITM-attacking the request to the certificate authority to verify the certificate?
Quando um navegador recebe um certificado, ele não se conecta à autoridade de certificação emissora (CA) para verificar o certificado; já deve confiar no CA, a priori. Dependendo do certificado, da autoridade de certificação e do navegador, pode se conectar a um URL contido no certificado de autoridade de certificação para verificar se o certificado apresentado pelo site foi revogado (uma lista de revogação), mas A conexão é garantida pelo certificado CA e não pelo certificado apresentado pelo site. Até onde sei, a maioria dos navegadores não faz isso, embora a maioria possa ser configurada para isso. Se um certificado de autoridade de certificação for comprometido, o certificado da autoridade de certificação precisará ser removido manualmente ou removido por um patch ou nova versão do código do navegador.
Does the browser come pre-loaded with the public keys of the trusted certificate authorities (thereby providing authentication)?
Sim. Mais do que apenas chaves públicas, na verdade, os certificados autoassinados das CAs, que contêm chaves públicas, devem conter URLs para verificar o certificado em si, além das Listas de Revogação, e, potencialmente, muito mais. Basicamente, cada fabricante de navegador tem que decidir quais CAs pré-instalar e quais deixar de fora, e este é um tópico de muita discussão e grandes negócios. A maioria das CAs gera muito dinheiro vendendo certificados, e isso os beneficia a serem pré-instalados em todos os navegadores, então eles pressionam muito os fabricantes de navegadores para instalá-los. Mas a confiabilidade das CAs é um tópico que pode causar muito debate entre os seguranças.
Whenever I think about MITM attacks, I think that any defence requires a "safe" connection to be established for authentication, and that the initial establishment of any "safe" connection always seems to be subject to a MITM attack itself. So for example, if the public keys of the trusted certificate authorities above are indeed distributed with the browser, the distribution of the browser would be subject to MITM attacks.
Embora seja verdade, esse é um vetor de ataque significativamente mais difícil do que outras abordagens, e você pode combatê-lo verificando o arquivo de distribuição do navegador antes de instalá-lo (isto é, verificar o hash SHA1 do arquivo de instalação com base no hash publicado do site). Nesse ponto, um invasor teria que se infiltrar no fabricante do navegador ou na Autoridade de Certificação, que novamente são vetores de ataque mais difíceis (embora certamente não sejam desconhecidos).
As I understand it, even if you physically handed someone a public key / certificate / anything on a piece of paper, you had better know them from elsewhere otherwise they could be a MITM.
Bem, dar a alguém sua chave pública (ou um certificado que contenha uma chave pública) é inofensivo. Tudo o que isso significa é que eles podem verificar se as coisas que você assinou com o certificado na verdade vieram de você (e podem criptografar coisas que só você pode descriptografar).
Mas, fundamentalmente, você está certo. Em algum momento, você precisa confiar em alguém. Essa é uma coisa importante a ser lembrada sobre segurança, redes, negócios e vida. É claro que você precisa moderar isso com uma dose saudável de ceticismo e reavaliar continuamente seus relacionamentos de confiança. E, claro, você também deve ter em mente alguns conselhos sábios do Gipper: " Confie, mas verifique " ( ou, se preferir, siga os conselhos do velho provérbio russo: "doveryai, no proveryai" [Russian: Доверяй, но проверяй] "). Para realmente proteger seu computador, você precisará desligá-lo, destruí-lo, destruir os componentes e depois destruir os restos mortais.
No que diz respeito ao estabelecimento de uma relação de confiança com outra pessoa, ajuda ter um amigo em comum que já confie neles. Esse é o ponto principal por trás do "anel de confiança" Em algum momento você tem que ter um pouco de fé. Como você sabe que a pessoa que lhe emitiu sua carteira de motorista é realmente um funcionário do estado. Claro, você pode gerar sua chave pública, memorizar a impressão digital e instalar a chave do pub no sistema de destino
Do I understand this correctly?
Não tenho certeza, mas suspeito que sim. Por favor, repita tudo de volta para mim, parafraseado em suas próprias palavras e eu vou deixar você saber.
EDIT: E realmente, como GregD ressalta, tudo isso é acadêmico, porque a maioria das pessoas clicam no botão "Continuar mesmo assim" quando o navegador avisa que ele não confia no certificado e, em seguida, é game over. É claro que se você trabalha em uma empresa e controla o sistema em que os usuários são emitidos, você provavelmente pode configurá-lo para que ele não apresente esse botão, mas você terá que lidar com a falha. A única vez em que é aceitável clicar nesse botão é quando você não está conectado a uma rede e tem um único fio entre você e o sistema que apresenta o certificado não confiável (e, mesmo assim, é discutível).