A feltöltés sérültnek tűnik: hasonlítsa össze a hash-eket mindkét végén
A sikertelen feltöltés nem bizonyítja, hogy az alagút bájtokat változtatott. Hasonlítsa össze a szánt fájlt a tárolt eredménnyel, majd keresse meg az első határt, ahol eltérnek.
A címzettek, akik nem tudják megnyitni a feltöltött fájlt, gyakran hallják, hogy a VPN tönkretette. Ez hipotézis, nem megfigyelés, és tesztelhető. Mielőtt hozzányúlna az alagúthoz, állapítsa meg, hogy a célnál most tárolt objektum eltér-e attól az objektumtól, amelyet el kellett volna küldeni. Minden más ebből a válaszból következik.
A szánt bájtokkal kezdje, ne a panasszal
Válasszon egy ártalmatlan fájlt, amely reprodukálja a problémát, vagy a valódi fájlt, ha a szabályzat engedi, hogy elhagyja a forráskörnyezetet. Két dolgot jegyezzen fel az átvitel előtt: a pontos méretet bájtban és egy modern tartalomhash-t. A fájlnevek, időbélyegek és előnézetek metaadatok, és egyik sem azonosítja a tartalmat.
Számítsa ki a hash-t olyan algoritmussal, amelyet mindkét vég futtathat, és írja le, melyiket használta. Az SHA-256 és az MD5 összehasonlítása nem összehasonlítás, és két különböző, véletlenül azonos nevű fájl összehasonlítása sem az.
PS> Get-FileHash -LiteralPath "C:\uploads\report.csv" -Algorithm SHA256
Hash Path
---- ----
9F2C... C:\uploads\report.csv
A Microsoft Get-FileHash-referenciája dokumentálja a parancsot és annak algoritmusparaméterét, pontosan azt a részt, amelyet az emberek kihagynak, amikor az összehasonlítás értelmetlen eltérést ad.
Egy hash szakaszonként, ugyanaz az algoritmus
Most számítsa ki ugyanazt az algoritmust a tárolt objektumon ott, ahol végül él, engedélyezett módszerrel, nem egy másik eszközön átment másolaton. A fogadott fájl helyi mentése és annak a másolatnak a hashelése olyan lépést ad hozzá, amelyet nem tesztelt.
Ha a szolgáltatás saját integritásértéket tesz közzé, kezelje külön megfigyelésként. A szolgáltató által jelentett ellenőrzőösszeg megmondhatja, mit hisz a szolgáltató tároltnak, és ez nem ugyanaz az állítás, mint amit az ügyfele küldött.
Három eredmény lehetséges, és különböző irányokba mutatnak. Az egyenlő hash-ek azt jelentik, hogy a bájtok változatlanul megérkeztek. Az eltérő hash-ek ismert átalakítással azt jelentik, hogy a szolgáltatás szándékosan új objektumot állított elő. Az eltérő hash-ek átalakítás nélkül azt jelentik, hogy valami a két pont között megváltoztatta a tartalmat, és a következő lépés megkeresni a legkorábbi határt, ahol ez történt.
Válassza szét az átviteli hibát az átalakítástól
A részleges feltöltés és a sérült feltöltés azonosan néz ki egy fájlböngészőben, és különböző hibák. Ellenőrizze, befejeződött-e az átvitel: egy megszakított kérést mutató alkalmazásnapló, egy tárolt fájl, amelynek mérete a forrás előtagja, vagy egy objektum, amely valójában a várt kiterjesztés alatt mentett hibaoldal, mindegyik hiányos átvitelre utal, nem megváltozott bájtokra.
Az átalakítás a másik gyakori magyarázat. Egy szolgáltatás, amely újratömöríti a képeket, átírja a CSV sorvégeit vagy konvertál egy dokumentumot, jogszerűen olyan hash-t állít elő, amely eltér a forrástól, és ez nem sérülés. Azt a szakaszt hasonlítsa össze, amely azt állítja, hogy a hű másolat, nem a végső megjelenítési formátumot.
A késleltetés és a veszteség a harmadik kategóriába tartozik. Ezek miatt az ügyfél időtúllépést kaphat, újrapróbálkozhat vagy feladhatja, és ezek egyike sem jelenti azt, hogy a szerver által elfogadott bájtok csendben megváltoztak. Nézze meg az átvitel eredményét, mielőtt bármit az alagútnak tulajdonítana.
Próbáljon második útvonalat anélkül, hogy mindent megváltoztatna
Ha a hash-ek valóban eltérnek, és nincs átalakítás, ismételje meg ugyanazt a fájlt, ügyfelet, protokollt és célt egy másik támogatott útvonalon, például helyi hálózaton a VPN helyett. Változtasson egy változót. Az ügyfél, a végpont és az eszköz egyidejű megváltoztatása olyan eredményt ad, amelyet nem tud tulajdonítani.
Tartsa őszintén az összehasonlítást mindkét irányban. A hash megmondja, hogy két pont egyetért vagy nem ért egyet a tartalomról; nem mondja meg, melyik oldal megbízható, ezért tartsa a várt értéket és az ellenőrzést abban a bizalmi modellben, amelyre valóban támaszkodik.
Fejezze be egy konkrét mondattal a jegyben: az átvitel korán leállt, az alkalmazás átalakította az objektumot, a tároló megváltoztatta, vagy a bájtok megegyeznek, és az olvasásuk a hiba. Mindegyiknek más a tulajdonosa, és egyik sem a VPN alapértelmezés szerint.