Upload via HTTPS é confiável?

2

Às vezes, estamos enfrentando um problema com arquivos corrompidos após o upload através do protocolo HTTP.

Hoje li um artigo que diz que o protocolo TCP não é 100% confiável devido a algoritmo CRC fraco e outras coisas diferentes.

Como eu entendi de RFC , o HTTPS usa TLS sobre TCP e usa funções hash durante o processamento. Ou seja a integridade dos dados é controlada adicionalmente.

Posso considerar que o upload é 100% confiável (ou quanto mais confiável?) se eu mudar o protocolo para HTTPS?

    
por Eugene 04.03.2011 / 08:29

2 respostas

3

Enquanto o TCP (o protocolo no qual o http / https é construído) tem detecção de erros na forma de uma soma de verificação a bordo (que provoca retransmissões), não é à prova de balas. É muito raro, mas vários bits de bits no mesmo pacote ainda podem resultar em uma soma de verificação válida. Se o restante do pacote ainda não estiver danificado, esses erros poderão percorrer todo o caminho até o aplicativo. Estou convenientemente pulando a detecção / correção de erros nas camadas inferiores da transferência aqui.

Geralmente, os algoritmos de criptografia incluem checksums muito mais strongs, como parte da segurança de dados. TLS / SSL (sobre TCP) certamente faz, então a sua conclusão é tecnicamente válida.

No entanto, observe que isso é muito, muito raro; na mesma escala que erros em (não-ECC), cabos sata e armazenamento em disco (no servidor e no lado do cliente!). Para fins de confiabilidade, mudar para https sem segmentar esses outros problemas em potencial é algo tolo e nunca atingirá a confiabilidade "100%".

Na minha experiência, é provável que a causa esteja em alguma outra parte do sistema (aplicativo que processa os dados carregados, talvez conversão de formato silencioso no banco de dados, ...).

Todo esse problema também se aplica a protocolos não-http.

    
por 04.03.2011 / 11:29
1

BTW - O artigo que você cita tem mais de 11 anos.

Eu nunca ouvi falar de HTTPS ser mais confiável do que HTTP (e não ouvi falar de HTTP não ser confiável mesmo) - então eu não acho que vai fazer a diferença. No entanto, posso estar errado.

O que eu diria é que, antes de começar a apontar o dedo para o protocolo, você tem certeza absoluta de que o procedimento de upload ou o aplicativo não está causando o problema? Por exemplo, eu me deparei com problemas surpreendentes de download / upload no PHP antes, que eram confusos, mas fáceis de corrigir no final.

Você também não menciona o que está enviando, o tamanho e o nível de corrupção que está ocorrendo.

    
por 04.03.2011 / 08:54