O Https funciona sem um certificado?

9

Recentemente, nossa equipe de infraestrutura disse à nossa equipe de desenvolvimento que você não precisa de um certificado para https. Eles mencionaram que o único benefício de comprar um certificado era dar ao consumidor a tranquilidade de saber que ele está se conectando ao site correto.

Isso vai contra tudo que eu supus sobre https.

Eu leio wikipedia e ele menciona que você precisa de um certificado confiável ou um certificado auto-assinado para configurar https.

É possível configurar o IIS para responder a https sem qualquer certificado ?

    
por Mark 22.12.2011 / 13:46

3 respostas

24

Não. Você deve ter um certificado. Ele pode ser auto-assinado, mas deve haver um par de chaves pública / privada no local para trocar a chave simétrica da sessão entre o servidor e o cliente para criptografar os dados.

    
por 22.12.2011 / 13:48
12

Em suma, não, mas pode haver casos sutis dependendo de como você deseja implantar o sistema.

HTTPS é HTTP sobre SSL / TLS e você pode usar SSL / TLS sem certificado ou com certificados de outros tipos além de X .509 .

  • Conjuntos de criptografia anônimos: eles podem fornecer criptografia, mas sem autenticação. Bastante inútil no que diz respeito à segurança ... Para citar RFC 4346 : " anônimo Diffie-Hellman é strongmente desencorajado porque não pode impedir ataques man-in-the-middle. "
  • Chaves pré-compartilhadas : possui seu próprio mecanismo para verificar a identidade remota, mas a natureza compartilhada das chaves traz sua própria conjunto de problemas (em particular a implantação limitada).
  • Pacotes de criptografia Kerberos : o cliente pode verificar a identidade do servidor em relação ao nome principal do Kerberos.

Estritamente falando, a especificação HTTP sobre TLS diz o seguinte:

In general, HTTP/TLS requests are generated by dereferencing a URI. As a consequence, the hostname for the server is known to the client. If the hostname is available, the client MUST check it against the server's identity as presented in the server's Certificate message, in order to prevent man-in-the-middle attacks.

If the client has external information as to the expected identity of the server, the hostname check MAY be omitted. (For instance, a client may be connecting to a machine whose address and hostname are dynamic but the client knows the certificate that the server will present.) In such cases, it is important to narrow the scope of acceptable certificates as much as possible in order to prevent man in the middle attacks. In special cases, it may be appropriate for the client to simply ignore the server's identity, but it must be understood that this leaves the connection open to active attack.

Em suma, é claramente destinado ao uso com um certificado X.509 (ele claramente se refere à RFC 2459, mais tarde substituída pelas RFC 3280 e 5280: PKIs com certificados X.509).

Pode haver um caso extremo quando você está usando conjuntos de criptografia do Kerberos. Pode fazer sentido tratar que o tíquete de serviço Kerberos do servidor possa ter a mesma finalidade que o certificado X.509 no HTTPS comum, para a verificação da identidade da parte remota. Ele não se encaixa perfeitamente nas regras do RFC 2818 (embora possa estar em " Se o cliente tiver informações externas quanto à identidade esperada do servidor, a verificação do nome do host PODE ser omitida. ") , mas não seria completamente absurdo. Dito isto, não acho que os navegadores habituais suportem conjuntos de cifras TLS Kerberos em geral (um número pode suportar o Kerberos através da autenticação SPNEGO, mas isso não é relacionado). Além disso, isso também funcionaria somente em um ambiente em que o uso do Kerberos fosse adequado.

" [Oferecer] ao consumidor a tranquilidade de que eles estão se conectando ao site correto " é, na verdade, um dos principais requisitos para garantir a comunicação entre eles e seu servidor. Use um certificado que possa verificar, com as convenções de nomenclatura apropriadas (RFC 2818 ou mais recentemente, RFC 6125).

    
por 22.12.2011 / 19:15
1

Você NÃO PODE usar https sem nenhum certificado. Você precisa comprar um certificado confiável ou criar um certificado auto-assinado para teste. Parte de configurar seu servidor da Web para usar https é apontá-lo para os arquivos de chaves corretos. Claro, isso se aplica a todos os servidores da web, não apenas para iis.

    
por 22.12.2011 / 13:49