Pergunta

É possível enviar uma mensagem por https que não esteja criptografada?Por exemplo, exigir que ocorra a validação e autorização do certificado, mas não criptografar os dados reais que estão sendo enviados pelo soquete?

Foi útil?

Solução

Sim, TLS e SSL suportam modos "sem criptografia".Se o cliente e o servidor específicos em questão estão configurados para ativação é uma questão separada.

É possível, embora improvável, que um servidor habilite um desses conjuntos de criptografia por padrão.O que é mais provável é que um servidor habilite conjuntos de criptografia fracos (como os conjuntos baseados em DES de grau de "exportação") por padrão.É por isso que você deve revisar cuidadosamente a lista branca de conjuntos de criptografia do servidor e deixe apenas alguns algoritmos confiáveis ​​e amplamente suportados.

Você pode usar o conjunto de criptografia TLS_RSA_WITH_NULL_SHA, entre outros, para proteger a autenticidade e integridade do tráfego, sem criptografia.

O "RSA", neste caso, refere-se ao algoritmo de troca de chaves, enquanto "SHA" refere-se ao algoritmo de autenticação de mensagens usado para proteger o tráfego de alterações.“NULL” é o algoritmo de criptografia ou, neste caso, a falta de criptografia.

É importante perceber que o tráfego, embora não seja criptografado, está agrupado em registros SSL.O cliente e o servidor devem estar habilitados para SSL.

Se você está procurando uma solução step-down onde alguns dados são trocados por SSL, então o SSL é desativado, mas o tráfego do aplicativo continua, isso também é possível, mas lembre-se de que não oferece absolutamente nenhuma segurança para o tráfego de texto não criptografado;ele pode ser adulterado por um invasor.Assim, por exemplo, autenticar com SSL e depois passar para um protocolo "in-the-clear" para receber comandos que usam a autenticação negociada via SSL seria inseguro.

Outras dicas

As especificações SSL/TLS definem uma "cifra nula" que você poderia usar para isso. A maioria dos softwares de clientes e servidores o desative por razões óbvias.

No entanto, se você estiver escrevendo seu próprio software, poderá convencer sua biblioteca a negociá -lo.

Eu acho que você pode.

Mas seria estúpido, você perderá o ponto da autenticação e se deixará exposto a atacantes que podem interceptar e alterar seus pacotes.

Não, o protocolo não permite isso.

Uma solução que você pode fazer é conectar -se ao HTTPS, verificar a conexão e soltar as conexões subsequentes ao HTTP com um cookie de sessão. Sem esse cookie, redirecione para HTTPS para que o cliente sempre se conecte sobre ele.

Isso pode não ser relevante para você; portanto, se você fornecer mais informações sobre o problema que está tentando resolver, poderíamos ter mais ajuda.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top