Prijenos izgleda oštećeno: uporedite heševe na oba kraja
Neuspjeli prijenos nije dokaz da je tunel promijenio bajtove. Uporedite predviđenu datoteku sa sačuvanim rezultatom, pa pronađite prvu granicu na kojoj se razilaze.
Primaoci koji ne mogu otvoriti prenesenu datoteku često čuju da ju je VPN oštetio. To je hipoteza, a ne zapažanje, i ona je provjerljiva. Prije nego dirnete tunel, utvrdite razlikuje li se objekat koji je sada sačuvan na odredištu od objekta koji je trebalo poslati. Sve ostalo slijedi iz tog odgovora.
Počnite od predviđenih bajtova, a ne od pritužbe
Odaberite bezopasnu datoteku koja reprodukuje problem, ili stvarnu datoteku ako politika dopušta da napusti izvorno okruženje. Zabilježite dvije stvari prije prijenosa: tačnu veličinu u bajtovima i savremeni heš sadržaja. Nazivi datoteka, vremenske oznake i pregledi su metapodaci, i nijedan od njih ne identificira sadržaj.
Izračunajte heš algoritmom koji obje strane mogu pokrenuti i zapišite koji ste koristili. Poređenje između SHA-256 i MD5 nije poređenje, a ni poređenje između dvije različite datoteke koje slučajno dijele naziv.
PS> Get-FileHash -LiteralPath "C:\uploads\report.csv" -Algorithm SHA256
Hash Path
---- ----
9F2C... C:\uploads\report.csv
Microsoftova referenca za Get-FileHash dokumentuje komandu i njen parametar algoritma, upravo dio koji ljudi preskoče kada poređenje proizvede besmisleno neslaganje.
Jedan heš po fazi, isti algoritam
Sada izračunajte isti algoritam na sačuvanom objektu tamo gdje on konačno živi, ovlaštenom metodom, a ne na kopiji koja je prošla kroz drugi alat. Lokalno čuvanje primljene datoteke i heširanje te kopije dodaje korak koji niste testirali.
Ako usluga izlaže vlastitu vrijednost integriteta, tretirajte je kao odvojeno zapažanje. Kontrolni zbir koji prijavljuje pružalac može vam reći šta pružalac misli da je sačuvao, i to nije ista tvrdnja kao ono što je poslao vaš klijent.
Moguća su tri ishoda i oni pokazuju u različitim smjerovima. Jednaki heševi znače da su bajtovi stigli nepromijenjeni. Različiti heševi s poznatom konverzijom znače da je usluga namjerno proizvela novi objekat. Različiti heševi bez konverzije znače da je nešto između dvije točke promijenilo sadržaj, a sljedeći korak je pronaći najraniju granicu na kojoj se to dogodilo.
Odvojite neuspjeh prijenosa od transformacije
Djelimični prijenos i oštećeni prijenos izgledaju identično u pregledniku datoteka i različite su greške. Provjerite je li prijenos završen: zapisnik aplikacije koji pokazuje prekinut zahtjev, sačuvana datoteka čija je veličina prefiks izvora, ili objekat koji je zapravo stranica greške sačuvana pod očekivanim nastavkom, sve to ukazuje na nepotpun prijenos, a ne na izmijenjene bajtove.
Transformacija je drugo uobičajeno objašnjenje. Usluga koja ponovo kompresuje slike, prepisuje završetke redova CSV-a ili konvertuje dokument legitimno će proizvesti heš koji se razlikuje od izvora, i to nije oštećenje. Uporedite fazu koja tvrdi da je vjerna kopija, a ne konačni format prezentacije.
Kašnjenje i gubitak pripadaju trećoj kategoriji. Oni mogu natjerati klijenta da istekne, pokuša ponovo ili odustane, i ništa od toga ne implicira da su bajtovi koje je poslužitelj prihvatio tiho promijenjeni. Pogledajte rezultat prijenosa prije nego što bilo šta pripišete tunelu.
Isprobajte drugi put bez mijenjanja svega
Ako se heševi zaista razlikuju i nema konverzije, ponovite istu datoteku, klijenta, protokol i odredište preko drugog podržanog puta, poput lokalne mreže umjesto VPN-a. Promijenite jednu varijablu. Mijenjanje klijenta, krajnje točke i alata odjednom daje vam rezultat koji ne možete pripisati.
Neka poređenje ostane pošteno u oba smjera. Heš vam kaže da se dvije točke razilaze ili slažu oko sadržaja; ne kaže vam koja je strana pouzdana, zato čuvajte očekivanu vrijednost i verifikaciju unutar modela povjerenja na koji se zaista oslanjate.
Završite konkretnom rečenicom u tiketu: prijenos je stao rano, aplikacija je transformisala objekat, pohrana ga je promijenila, ili se bajtovi slažu i čitanje ih je kvar. Svaki od tih ima drugog vlasnika, i nijedan od njih nije VPN po defaultu.