É uma prática ruim usar certificados SSL autoassinados?

29

Os certificados SSL são muito caros para os indivíduos, especialmente se você precisar proteger subdomínios diferentes. Estou pensando em usar certificados autoassinados, pois meu foco principal é proteger a conexão e não me autenticar.

No entanto, vários navegadores exibem avisos desagradáveis ​​ao encontrar esse certificado. Você desencorajaria o uso de certificados autoassinados (por exemplo, para aplicativos da Web pequenos ou a página de administração de um site pequeno)? Ou está bom em alguns casos?

Wookai
fonte

Respostas:

14

Em geral, é ruim usar um certificado autoassinado. Se você fizer isso, estará correndo o risco de as pessoas deixarem o site quando receberem um aviso sobre seu certificado ser ruim. Mais importante, você corre um risco maior de ter alguém fazendo um ataque por injeção, onde eles usam seu próprio certificado autoassinado no lugar do seu e o visitante não saberá melhor.

Confira o artigo aqui, http://www.sslshopper.com/article-when-are-self-signed-certificates-acceptable.html para obter um pouco mais de informações sobre ele.

Ben Hoffman
fonte
14

Como disse RandomBen, os certificados autoassinados geralmente são desaprovados pelas razões que ele explicou. Mas há uma situação em que eles estão bem: se o conjunto de pessoas que precisam enviar dados confidenciais para o seu site for pequeno e limitado, todos eles são tecnicamente competentes e você pode se comunicar com todos eles. Nesse caso, você pode fornecer a cada pessoa os detalhes do certificado e, em seguida, eles podem verificar o certificado manualmente quando acessam o site e adicionar uma exceção de segurança, se apropriado.

Como exemplo extremo, no meu VPS pessoal, tenho um subdomínio administrativo, que só deve ser acessado por mim. Não haveria problema em proteger esse domínio com um certificado autoassinado, pois posso verificar manualmente se o certificado do servidor usado para proteger a conexão é o mesmo que eu instalei no servidor.

Nos casos em que um certificado autoassinado não funciona ou você prefere um "real", recomendo o Let's Encrypt , um projeto iniciado pelo Internet Security Research Group e apoiado por grandes empresas de Internet, que oferece certificados SSL em sem custo. Eles podem fazer isso porque o processo de verificação usado é completamente automatizado e, de fato, um servidor da Web que suporta o protocolo ACME (como o Caddy , que atualmente uso) pode obter certificados totalmente por conta própria. Vamos Criptografar não verifica se você, como pessoa, é quem você diz que é; verifica apenas se o seu servidor da web é capaz de veicular conteúdo no domínio ao qual afirma. O Let's Encrypt é suportado por todos os principais navegadores, mas é sabido que a verificação é mínima. Portanto, se você estiver executando algo como um site de comércio eletrônico ou qualquer coisa em que as pessoas enviem informações confidenciais, provavelmente gaste o dinheiro para obter uma certificado com um nível mais alto de validação.

Eu costumava recomendar os certificados StartSSL gratuitos da StartCom para pessoas que não queriam pagar pela validação, mas não mais. A StartCom foi adquirida secretamente pela WoSign em 2016 e posteriormente emitiu certificados ilegítimos para vários domínios. Como resultado, os principais navegadores removeram o suporte aos certificados StartCom. (Até onde eu sei, o IE nunca os apoiou de qualquer maneira.) De qualquer forma, o Let's Encrypt é muito mais conveniente.

David Z
fonte
+1 no primeiro parágrafo. Uso um certificado autoassinado para o Webmin no meu servidor, porque sou eu e o designer que o usamos, mas não recomendo fazê-lo para uso público em geral.
usar o seguinte
3

É não má prática para usar certificados auto-assinados. Os certificados autoassinados têm muitos propósitos práticos para os quais simplesmente não faz sentido usar um certificado assinado pela CA.

Por exemplo, em muitos dos meus servidores, tenho o login sem senha configurado. Estes são servidores aos quais eu me conecto com tanta frequência e, às vezes, mantêm várias conexões SSH abertas, que é um incômodo digitar meu nome de usuário e senha todas as vezes.

Em vez disso, uso um certificado SSL autoassinado que eu gero em cada uma das minhas máquinas clientes (uma estação de trabalho no escritório, um laptop e minha estação de trabalho doméstica). Esse tipo de configuração permite que eu use frases-passe bastante longas, seguras e completamente exclusivas para cada um dos meus servidores sem afetar a produtividade. E como tenho acesso direto aos servidores em que posso instalar a chave pública de cada certificado, não faz sentido usar um certificado assinado pela CA.

Eu poderia configurar minha própria CA raiz com a qual posso assinar todos os certificados de uso interno da nossa empresa e, dessa forma, só precisaria instalar uma única chave pública em cada servidor. No entanto, nossa organização não cresceu para o tamanho que realmente exige isso e, para os propósitos do HTTP seguro, isso ainda seria o mesmo que ter um certificado autoassinado.

Da mesma forma, os certificados autoassinados são frequentemente usados ​​para conexões de email, assinatura PGP e conexões servidor a servidor, onde é trivial pré-trocar chaves públicas. Em muitos desses casos, isso é realmente mais seguro do que depender de uma cadeia de certificados que pode ser comprometida em qualquer ponto da cadeia.

Lèse majesté
fonte
Não entendi por que você está usando certificados SSL no seu caso? Você menciona não querer digitar sua senha várias vezes: você pode simplesmente usar uma chave privada SSH com ssh-agent, para autenticar automaticamente em cada servidor sem precisar digitar sua senha mais de uma vez.
Wookai
@ Wookai: Essa seria uma maneira de fazer isso para SSH, mas o uso de certificados de cliente SSL é um método muito mais geral de autenticação de cliente. Também uso meus certificados de cliente para autenticação HTTPS e também para e-mail e, se optar por configurar uma CA interna posteriormente, ela se tornará ainda mais flexível / poderosa. Nesse ponto, não precisarei instalar chaves privadas individuais para cada cliente / usuário. É apenas uma solução IMO mais robusta.
Lèse majesté
2

Se você estiver protegendo vários subdomínios, convém usar certificados curinga , que (dependendo de quantos subdomínios estão protegendo) podem funcionar significativamente mais baratos do que comprar um por domínio; por exemplo, o RapidSSL faz com que o curinga fique mais barato que os certificados individuais depois que você tiver quatro domínios em uso.

Cebjyre
fonte