È possibile ottenere un download danneggiato con http?


11

Per molto tempo ho ipotizzato che non è davvero possibile scaricare un file danneggiato tramite http purché non sia danneggiato sul server e l'implementazione del protocollo http sia corretta, il che è molto probabilmente il caso del moderno software tradizionale.

Quindi ho sempre riso quando ho visto un sito di download offrire un hash md5 di un file che forniscono per il download. Non ho mai visto un caso prima, in cui scarico un file, la dimensione è corretta ma il contenuto no.

Bene, oggi ho avuto un primo caso di questo. Ho scaricato un iso di Ubuntu, ho provato a installarlo, non è riuscito e dopo una lunga ricerca (non riuscivo a credere che il motivo potesse essere un download corrotto) Ho controllato l'MD5 e, cosa sai, era sbagliato (la dimensione era corretta). Quindi l'ho scaricato di nuovo e ho sbagliato ancora un altro md5. Solo al mio terzo download il md5 era corretto.

Quindi la mia domanda è: è possibile in linea di principio ottenere il download danneggiato su http, supponendo che l'implementazione sia corretta, il trasferimento sia terminato correttamente e che il file sia corretto sul server. Se questo è possibile, come può accadere?


Risposte:


9

Sì, è possibile, soprattutto su connessioni Internet di scarsa qualità - di solito wireless, ma alcune connessioni cablate (come quella che ho) hanno anche alti tassi di errore ad alta velocità.

Il protocollo HTTP non prevede disposizioni per garantire l'integrità dei dati. A livello di trasporto, TCP rileva errori utilizzando un checksum, ma non è molto affidabile .


C'è un altro motivo per fornire hash o firme digitali. Spesso, i file effettivi sono distribuiti su molti server mirror, che non possono essere garantiti come sicuri al 100%. Se non è presente alcun hash o firma da verificare, qualcuno con accesso a un mirror (non necessariamente legittimo) potrebbe sostituire i file e rimanere inosservato, senza dover accedere a un server completamente diverso in cui è ospitato il sito Web.


Puoi ottenere la verifica automatica dei file se scarichi Ubuntu su BitTorrent anziché HTTP. (Ogni pezzo è verificato al momento del download, quindi non devi mai scaricare nuovamente l'intera cosa.)


1
Buona risposta. Tuttavia, mi piacerebbe esplorare l'argomento un po 'di più, se non ti dispiace. La parte "ad alta velocità" si è rivelata molto rilevante. Non ho mai avuto problemi a casa, ma questo download di Ubuntu ISO che ho fatto era al lavoro e la velocità era di circa 5 Mb / s. È difficile per me accettare che TCP non sia affidabile, perché quasi tutto intorno si basa su TCP. C'è nient'altro che questo articolo di Wikipedia sull'inaffidabilità di TCP? Sai esattamente come l'alta velocità influisce sul problema? Grazie in anticipo.
Andrew Savinykh,

1
@zespri: TCP dovrebbe essere affidabile, ma il checksum non può rilevare il 100% di tutti gli errori. L'alta velocità è solo un fattore con determinati tipi di connessione o tramite collegamenti inaffidabili ... Che purtroppo può verificarsi ovunque tra te e il server, non necessariamente immediatamente alla tua fine. (Testerei il download da mirror situati in diversi paesi.) Naturalmente c'è anche la possibilità che il tuo file fosse già corrotto sul filesystem del server ...
user1686

1
se c'è una piccola probabilità di corruzione, aumentare il numero di hop tra te e il server aumenterebbe la possibilità di corruzione ???
Trevor Boyd Smith,

1
@Trevor: dipende dalla qualità del collegamento. Dieci hop su Ethernet sono molto più affidabili di un singolo hop su WiFi. (I router / si
scambiano

Questo non significa che HTTP stesso è rotto e dovrebbe essere corretto?
still_dreaming_1

1

Come ha detto Grawity, è possibile, ma in aggiunta, quello che ho notato:

Anche con connessioni Internet stabili, è possibile che un download finisca presto senza alcun tipo di motivo valido - può semplicemente succedere.

E, soprattutto, se si dispone di memoria insufficiente, è possibile che il download memorizzi nella cache prima di essere scritto su disco e, poiché la memoria è danneggiata, sta scrivendo il file in modo errato. Se hai costantemente download errati, questa è un'alta possibilità.


Oh, odio i server web che tagliano casualmente i download al ~ 50% senza alcun supporto per riprendere ...
user1686

1
Wil: Sì, i tagli sono spesso, e per questo li ho espressamente esclusi dalla mia domanda, dicendo che presumo che le dimensioni siano esattamente giuste. Grazie per il tuo commento.
Andrew Savinykh,

Sì, questa è un'affermazione chiave per questa domanda "le dimensioni sono esatte"
Trevor Boyd Smith,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.