Por que devo pagar por um certificado SSL?
Para a maioria dos usos, não há boas razões para pagar por eles.
Veja a parte inferior para um resumo das exceções.
Vamos dar um passo atrás e explicar o que os certificados fazem e aproximadamente como.
O que geralmente é chamado de "certificados" consiste em duas partes vinculadas:
- O certificado adequado , que contém uma chave pública e alguma identificação (como um nome de domínio).
- A chave privada , que permite que o titular (e somente o titular) assine digitalmente as mensagens de forma que possam ser verificadas usando o certificado acima.
Se você deseja um certificado yourdomain.com
, você:
- Crie um par de chaves público / privado e mantenha a parte privada, bem, privada.
- Peça a um terceiro confiável ("CrediCorp") para criar um certificado
yourdomain.com
com sua chave pública.
- Prove de alguma forma no CrediCorp que você controla
yourdomain.com
.
- Coloque a chave privada e o certificado obtido em seu servidor e configure o servidor da Web para usá-los.
Em seguida, se Alice visitar yourdomain.com
, o navegador dela obtém o certificado do seu servidor da Web, juntamente com uma mensagem assinada por sua chave privada. Então, o navegador dela verifica três coisas:
- Que a mensagem assinada pode ser verificada pelo seu certificado (provando que foi assinada pela chave privada correspondente que somente
yourdomain.com
deveria ter).
- Que o domínio do certificado é o domínio que o navegador está tentando visitar (
yourdomain.com
).
- Que o certificado é do CrediCorp.
A combinação dessas três coisas garante a Alice que ela realmente está falando yourdomain.com
, e não a algum impostor ... Desde que Alice confie no CrediCorp .
(Também se segue uma dança cripto de vodu para transformar essa autenticidade em confidencialidade.)
Como é que Alice confiar Credicorp?
Esse é o verdadeiro ponto crucial aqui. Em resumo, em algum momento, o CrediCorp disse "Ei, vamos fazer certificados". Depois de fazer um grande esforço seguindo muitas regras , eles conseguiram convencer algumas pessoas de que o CrediCorp é realmente confiável e só emitirá certificados corretamente.
Em particular, eles conseguiram convencer os criadores do Firefox, digamos. Como resultado, o CrediCorp entra na lista A do Firefox e seus certificados são confiáveis pelo Firefox por padrão. Então, realmente, Alice confia no Firefox, o Firefox confia no CrediCorp e o CrediCorp confiava em você (depois de verificar) quando afirmou que controlava yourdomain.com
. É quase como uma corrente .
Mas o Firefox não apenas confia na CrediCorp para emitir certificados yourdomain.com
, mas confia nos certificados da CrediCorp para qualquer domínio. E o Firefox também confia na ShabbyCorp, para qualquer domínio.
Isso tem consequências. Se alguém conseguir convencer o ShabbyCorp de que eles controlam yourdomain.com
(porque o ShabbyCorp não é muito completo), poderá obter um certificado do ShabbyCorp yourdomain.com
com a chave privada correspondente. E com esse certificado, eles podem se passar por seu servidor da web. Afinal, eles têm um certificado (chave mais) para o yourdomain.com
qual é confiável o Firefox!
CrediCorp e ShabbyCorp são as chamadas autoridades de certificação , CAs, para abreviar. No mundo real, o ComodoSSL e o Let's Encrypt são exemplos de CAs. Mas há muito mais deles; Até o momento em que este artigo foi escrito, o Firefox confia em 154 CAs .
Uau. Mas como isso responde à minha pergunta?
Estou ehm, chegando a isso ...
Aqui está a coisa. A mecânica descrita acima se aplica a todos os certificados. Se você tiver um certificado correto e confiável para o seu site, ele funcionará. Não há nada de especial nos certificados da marca A versus os certificados da marca B; todos estão sujeitos aos mesmos requisitos de CA e à mesma matemática criptográfica.
E mesmo que você goste mais do CrediCorp - porque você sabe, eles soam muito mais confiáveis - usá-los não ajudará. Se um invasor puder convencer a ShabbyCorp a fornecer um certificado para o seu site, ele poderá usar esse certificado para se passar por seu site, independentemente de onde você conseguiu o seu.
Enquanto o Firefox confiar no ShabbyCorp, os visitantes não verão a diferença. (Sim, os visitantes podem obter o certificado e procurar por lá, ver quem o emitiu. Mas quem faz isso?) No que diz respeito à falsificação de certificados, isso torna todo o sistema tão fraco quanto o mais fraco de mais de 150 CAs. Sim, isso é assustador e provavelmente é a maior crítica que as pessoas têm sobre todo esse esquema. Ainda assim, é com isso que estamos presos.
O ponto é que, se você não confiar em uma CA para fornecer certificados "bons", obter seus certificados em outro lugar não ajudará muito.
Entendi, tudo está igualmente condenado. Sem ressalvas?
Weeeelllll ...
Vamos começar matando o argumento que fiz na última seção. Atualmente, é possível bloquear seu domínio apenas com CAs de sua escolha usando DNS-CAA . Suponha que você confie na Comodo e não confie em outras autoridades de certificação. É possível solicitar que todas as autoridades de certificação que não sejam a Comodo não emitam certificados para o seu domínio. Em teoria. (Como o DNS-CAA não é verificado pelos navegadores, apenas pela emissão de CAs. Portanto, uma CA comprometida pode ignorar essa proteção.)
Se você estiver disposto a passar por esse problema, a pergunta se torna: o Let's Encrypt é realmente menos confiável? Ou menos seguro? A confiabilidade é difícil, como você quantifica isso? Tudo o que posso dizer é que, na minha percepção, Let's Encrypt não é menos confiável do que outras autoridades de certificação. Quanto à segurança de suas validações, elas são muito semelhantes às CAs comerciais (de qualquer maneira, para certificados de DV). Veja também esta pergunta .
Pelo que vale a pena: a rede StackExchange, da qual este site faz parte, atualmente usa certificados Let's Encrypt. A maioria das pessoas nunca notaria isso, e se o fizessem, sinceramente duvido que isso significasse muito para eles.
Para que um certificado seja significativo, a CA de emissão deve ser confiável pelos fornecedores de software , caso contrário, o certificado será inútil. Usei o Firefox como exemplo, mas na verdade você deseja que a CA seja confiável, pelo menos, nas versões atuais e um pouco mais antigas do Firefox, Chrome, Windows, Mac OS X, iOS e Android. E as dezenas de jogadores menores. As CAs que vale a pena considerar (que incluem ComodoSSL e Let's Encrypt) são confiáveis por todas essas entidades.
Se uma CA se comportar mal ou for revelada como não confiável, ela será removida dos vários armazenamentos confiáveis com rapidez suficiente para arruinar o dia dos proprietários de certificados. Dois exemplos notáveis que conheço são o DigiNotar e o StartCom / WoSign (confira os artigos, eles fornecem informações interessantes sobre a dinâmica da confiança!). Portanto, se você acha que o Let's Encrypt estragará ou será descartado por algum outro motivo, não usá-los impedirá que você seja pego nessa queda específica.
Os certificados empregam alguma mágica matemática criptográfica ; a pergunta é qual mágica de criptografia matemática ? E se for mágica fraca? Essa é realmente uma preocupação real, e as autoridades de certificação também demonstraram interesse em atualizar isso. Felizmente, os fornecedores de navegadores pegaram a folga definindo aqui os mínimos para que os certificados sejam aceitos. Por exemplo, os certificados que usam RSA-1024 ou SHA-1 agora são rejeitados pela maioria dos navegadores, portanto, qualquer certificado que funcione na prática não usa essas primitivas criptográficas obsoletas. O resultado é que é muito difícil para qualquer CA (Vamos criptografar incluído) decepcionar mais essa parte.
Antes, eu disse mais ou menos que todos os certificados são criados iguais. Eu menti, eles não são. Em particular, o que discuti até agora são " Certificados de domínio validado (DV)", que são usados pela grande maioria dos sites. Eles fornecem uma certa certeza de que seu navegador está realmente falando com o domínio que mostra na barra de URL. Também existem certificados "Organização validada (OV)" e " Validação estendida (EV)", que exigem verificações muito mais elaboradas das autoridades de certificação. Em particular, você só poderá obter um certificado EV para somebank.com
/ SomeBank Inc., se puder realmente provar que é SomeBank, Inc.
Os certificados EV são muito mais caros de obter (estimativa: centenas de EUR / USD por ano) e podem ser recompensados com uma barra de URL verde ou um cadeado no navegador, talvez exibindo "SomeBank, Inc." também. Ao contrário dos certificados DV, eles também oferecem alguma idéia de a quem o site realmente pertence. A vantagem é que eles podem parecer mais legítimos. A decepção é que os usuários raramente prestam atenção a eles, portanto sua eficácia é limitada.
Um invasor com um certificado DV forjado ainda pode se passar pelo site, apenas sem a pista visual extra que um certificado EV pode oferecer, e os usuários geralmente não percebem a distinção. Por outro lado, é possível obter um certificado EV enganoso para facilitar o phishing. Como resultado, tanto o Chrome quanto o Firefox lançam seus acenos visuais para os certificados EV, e algumas pessoas acreditam que desaparecerão completamente.
Se você é um banco, provavelmente ainda deseja um certificado EV por enquanto. Caso contrário, nem tanto. Mas se você faz precisa EV, Vamos Criptografar não é para você, porque eles simplesmente não oferecem certificados EV.
Os certificados são válidos apenas por um tempo limitado . Os certificados de uma CA comercial típica tendem a ser válidos por um ano, mas eu tenho visto de três meses a três anos. Os certificados Let's Encrypt são válidos por 90 dias , que estão no lado curto desse intervalo, portanto, você precisará renová-los com frequência. Para os usuários do Let's Encrypt, isso geralmente é automatizado para que os certificados sejam substituídos a cada 60 dias.
Ser capaz de automatizar a renovação com software amplamente disponível é realmente mais agradável do que a merda anual do meu certificado expirou? Qual é o meu login na CA? Como isso funciona novamente? ritual que a maioria dos sites pequenos parece ter nas CAs comerciais.
Antes, eu considerava assustador o fato de haver tantas autoridades de certificação em que todos devemos confiar. Ter muitas autoridades de certificação também é uma vantagem, no sentido de que remover uma única de nossas lojas de confiança tem um impacto limitado sobre os usuários. Em particular, a expulsão de uma única CA afetará apenas os certificados emitidos por essa CA. Se todo mundo acabar usando uma única autoridade de certificação (que algumas pessoas temem que possa acontecer com o Let's Encrypt ), concentramos toda a nossa confiança lá e perdemos as vantagens dessa fragmentação.
E, finalmente, há outros benefícios que uma CA paga pode oferecer, como suporte comercial ou uma garantia SSL de um milhão de dólares . Tenho pouca fé nesses dois aspectos, mas são coisas que o Let's Encrypt não oferece.
Minha cabeça dói ... Eu tinha uma pergunta, acho?
Use o que você se sentir confortável! Para certificados DV, há pouco que realmente diferencia as várias CAs. Uso o Let's Encrypt tanto profissionalmente quanto em particular, e estou feliz com isso.
Realmente, existem apenas quatro razões possíveis para evitar o Let's Encrypt:
- Se você precisar de certificados EV (ou OV).
- Se você não pode ou não deseja automatizar a renovação de certificados e a validade do certificado de três meses é muito curta para você.
- Se você não confia no Let's Encrypt (mas certifique-se de considerar outras medidas como DNS-CAA também, e provavelmente deve colocar na lista negra Let's Encrypt no seu navegador também).
- Se você acredita que o Let's Encrypt será descontinuado ou removido dos navegadores por algum motivo.
Se nenhum deles se aplicar a você, fique à vontade para não pagar por seus certificados.