Os certificados SSL autoassinados são seguros?

32

Eu quero ter uma conexão segura, quando eu fizer login no meu webmail, phpMyAdmin , etc.

Por isso, assinei meus próprios certificados SSL com o OpenSSL e disse ao Apache para escutar na porta 443.

Isso é de fato seguro? Todas as minhas senhas são realmente enviadas por meio de uma camada segura e protegida? Que diferença faz se eu comprar um certificado SSL de Verisign ou assinar o meu próprio? No final do dia, todos os dados estarão no meu servidor de qualquer maneira. Então, qual é a grande diferença?

    
por cherrun 25.02.2012 / 15:44

4 respostas

39

Isso é tudo sobre confiança. Se você obtiver um certificado assinado da verisign, provará a clientes aleatórios que seu certificado é confiável. Se você autoassinar o certificado, as pessoas que não tiverem seu certificado instalado em seu computador não podem ter certeza de que não estão sendo atacadas por um Ataque man-in-the-middle .

Se o seu servidor web é apenas usado por você, então você não precisa de uma CA real (como verisign) para assinar seu certificado. Basta instalar o certificado nas máquinas que você deseja usar e pronto.

Editar: Então, para responder à sua pergunta: Sim, tudo é criptografado e você pode ter certeza de que ninguém pode ler seus dados confidenciais se souber que o certificado apresentado ao navegador da Web é de fato o que você configurou. com.

    
por 25.02.2012 / 15:50
14

Isso é tudo sobre confiança.

Digamos que você visite um site popular que apresenta um certificado. Este é o site que diz "Isto é quem eu sou, você pode confiar em mim, porque eu tenho esta carta de apresentação assinada por alguém em que você confia."

Nesse caso, o "alguém em quem você confia" é uma das autorizações de certificado que realizaram (esperamos) o trabalho de perna para estabelecer a identidade do apresentador do certificado em seu nome.

O que você realmente confia é a confiança do autor do navegador na confiança da autoridade de certificação na identidade da pessoa que apresenta o certificado. Há também muitas vezes mais de uma autoridade entre você e o apresentador, daí o termo: "Cadeia de Confiança". [1]

Quando você assina seu próprio certificado, não há uma cadeia de confiança. Seu site está apresentando seu próprio certificado de volta para você. Se você instalar seu próprio certificado em seu navegador como um que você confia, isso será tratado como uma autoridade, a mesma que vem pré-instalada. Você então tem uma cadeia de confiança com apenas um link.

Se você visitar seus sites e seu navegador avisar que está apresentando um certificado não confiável, você deve ter motivos para preocupação, pois, como em qualquer outro site que apresente um certificado não confiável, você pode Certifique-se de estar se comunicando com o site real.

Note que eu não fiz menção de criptografia, ainda. Os certificados são sobre autenticar a identidade da parte com quem você está se comunicando. Através de certificados confiáveis, há uma maneira de você estar razoavelmente seguro de que sua loja ou seu banco é o real. Depois de estabelecer sua identidade, garantir as comunicações entre você é o próximo passo. Acontece que os certificados também contêm dentro deles as chaves necessárias para facilitar essa segurança. Supondo que você tenha configurado seu SSL corretamente, então essa comunicação é tão segura quanto a que você teria com sua loja ou banco, e suas senhas são igualmente protegidas. [2]

[1] Este não é de forma alguma um sistema sem falhas. Um mercado livre e um negócio de baixa margem e alto volume inevitavelmente levam ao corte de custos: link

[2] Pelo menos, protegido o suficiente de que seja muito mais barato alguém invadir sua casa, tire seus segredos de você em vez de tentar quebrá-los:

    
por 25.02.2012 / 16:20
11

Na verdade, os certificados auto-assinados podem ser seguros, mas não abaixo do modelo que estamos usando agora.

No modelo de CA (autoridade de certificação) de grande difusão que everyone usa atualmente, o objetivo do certificado que está sendo assinado por uma CA confiável é fornecer autenticação.

Quando recebemos um certificado, tudo o que realmente vemos são 1s e 0s vindo do jack na parede; nós não temos idéia de onde esses 1's e 0s vieram. No entanto, como o certificado é assinado por uma autoridade de certificação - algo que ninguém no mundo além da autoridade de certificação pode fazer - e porque confiamos na autoridade de certificação para verificar a identidade do proprietário do certificado, o certificado vem de quem ele alega.

Claro, se a CA estiver comprometida ou não verifica corretamente o proprietário , todas as apostas estão desativadas.

No entanto, existe outro modelo, no qual certificados auto-assinados do fornecem autenticidade. É chamado de modelo notarial .

Essencialmente, em vez de confiar em uma única CA, distribuímos a confiança para qualquer número de notários . Esses notários vasculham a Internet em busca de certificados, mantendo um cache de todos os certificados que viram. Quando você visita um site pela primeira vez e obtém o certificado, você pergunta a um número de notários distribuídos globalmente qual foi o último certificado que eles viram. Se eles não concordarem com o que você está vendo, você pode ser parte de um ataque man-in-the-middle.

Nesse modelo, os certificados autoassinados são perfeitamente seguros, desde que suponhamos que o servidor não seja imediatamente comprometido antes que qualquer notário possa visualizar seu certificado.

O modelo de notário ainda está em sua infância, e é duvidoso que ele venha a assumir o modelo de CA (na verdade, ele não precisa - eles podem ser usados em conjunto) . O projeto mais promissor até agora é o Convergence.io , que tem um plugin para o Firefox.

    
por 25.02.2012 / 20:51
2

Não é tudo sobre confiança ...

SSL certs pode servir a dois propósitos - 1) é o servidor da Web ao qual você está se conectando ao servidor ao qual deseja se conectar; e 2) para criptografar as comunicações.

Você pode ter # 2 sem # 1, o que você conseguiu. O que resta, então, é a verificação de que a caixa à qual você está se conectando é a que você quer.

Se for o meu servidor, não tenho nenhum problema em usar um certificado auto-assinado de mim mesmo - embora haja algum risco de alguém falsificar as coisas para que eu me conecte ao servidor em vez do meu. Como ninguém se importa comigo e com meu servidor e eu tenho pouco valor aqui, não vejo muito risco nisso.

Por outro lado, se em vez de um servidor meu fosse um servidor seu, então eu ficaria preocupado.

    
por 25.02.2012 / 17:09