Plik uszkodzony po transferze? Jak zapobiec utracie danych
Pliki uszkodzone po transferze? Dowiedz się dlaczego i jak temu zapobiec. Poznaj weryfikację sum kontrolnych i usługi gwarantujące integralność.
Uszkodzenie pliku po transferze jest rzadkością w nowoczesnych usługach opartych na HTTPS, ponieważ sumy kontrolne TCP, integralność TLS 1.3 i tagi uwierzytelniające AES-GCM wykrywają błędy bitowe podczas transmisji. Gdy uszkodzenie jednak wystąpi, zwykle ma miejsce po stronie endpointów: przerwane pobieranie zapisało niekompletny plik, błędy dysku podczas zapisu albo bug klienta obcinający strumień. Weryfikacja przebiega przez porównanie skrótów SHA-256 po obu stronach. Jeśli skróty się zgadzają, plik jest identyczny. Jeśli nie — należy powtórzyć transfer. Usługi używające AES-256-GCM mają wbudowane uwierzytelnianie, więc pomyślne odszyfrowanie samo w sobie jest dowodem integralności.
Dlaczego transfery rzadko korumpują dane w tranzycie
Każde żądanie HTTPS niesie ze sobą sprawdzenie integralności TLS. TLS 1.3 z szyframi AEAD takimi jak AES-256-GCM lub ChaCha20-Poly1305 generuje tag uwierzytelniający dla każdego rekordu — jeśli bit przeskoczy na łączu, weryfikacja tagu zawodzi i rekord jest odrzucany, zanim dotrze do aplikacji. TCP dodaje własną 16-bitową sumę kontrolną dla każdego segmentu. Łączne prawdopodobieństwo, że ciche uszkodzenie przejdzie przez oba mechanizmy, jest astronomicznie niskie — rzędu 1 na 2^128 dla samego TLS.
Niezaszyfrowane protokoły (FTP, plain HTTP) są mniej odporne. Suma kontrolna TCP pomija niektóre błędy; bity mogą się cicho przestawiać na pośrednim sprzęcie z wadliwą pamięcią RAM. To realny powód, by unikać zwykłego FTP dla dużych transferów — niezależnie od problemu wycieku poświadczeń.
Gdzie uszkodzenie faktycznie powstaje
Najczęstsze przyczyny uszkodzeń po transferze, w kolejności od najczęstszych:
Przerwane pobieranie zapisane jako niekompletny plik. Pobieranie z przeglądarki, które traci połączenie przy 75 procentach, często zapisuje plik w 75 procentach kompletny, wyglądający w Pobrane jak skończony, ale otwierający się z błędem. Chrome i Firefox oznaczają teraz takie pliki jako .crdownload lub .part, ale starsze wersje i niektóre menedżery pobierania tego nie robią.
Błędy zapisu na dysku lokalnym. Wadliwy dysk zewnętrzny, pełen dysk lub uszkodzony sektor powoduje zapis tylko części pliku. Windows nie zawsze raportuje to czytelnie; macOS czasem tak.
Kwarantanna antywirusa modyfikująca plik. Antywirus działający w czasie rzeczywistym czasami usuwa sekcje wykonywalne lub modyfikuje archiwa podczas pobierania, aby je „zdezynfekować" — zostawiając plik technicznie obecny, ale logicznie uszkodzony.
Bug klienta obcinający strumień. Rzadkość w dobrze utrzymanym oprogramowaniu, ale niektóre starsze klienty FTP, stare wersje SyncToy lub niestandardowe skrypty uploadowe mają znane błędy obcinania.
Weryfikacja przez skróty SHA-256
Jedynym pewnym sposobem na potwierdzenie integralności transferu jest obliczenie kryptograficznego skrótu po obu stronach i porównanie. SHA-256 jest powszechny, szybki (500 MB/s na nowoczesnych CPU z AES-NI) i odporny na kolizje.
macOS/Linux: shasum -a 256 plik.mov. Windows 10+: certutil -hashfile plik.mov SHA256. Oba generują 64-znakowy ciąg hex. Warto wysłać skrót razem z linkiem („SHA256: a1b2c3..."), by odbiorca mógł go zweryfikować po pobraniu.
Jeśli skróty się zgadzają, plik jest identyczny bit-po-bicie. Jeśli nie — należy ponowić transfer.
AES-GCM daje integralność w pakiecie
Usługi szyfrujące przy użyciu AES-256-GCM (uwierzytelnione szyfrowanie z powiązanymi danymi) umieszczają tag uwierzytelniający w każdym bloku. Gdy odbiorca odszyfrowuje, błąd weryfikacji tagu oznacza, że szyfrogram był zmodyfikowany lub uszkodzony — a odszyfrowanie twardo zawodzi z błędem „GCM authentication failed".
Oznacza to, że jeśli plik pomyślnie się odszyfrował, jest gwarantowanie niezmieniony. Nie jest potrzebne osobne sprawdzenie SHA-256 po stronie odbiorcy. HexaTransfer, tryb Secure Smash, SwissTransfer, Tresorit Send i Proton Drive używają AES-GCM lub XChaCha20-Poly1305 (podobny tryb uwierzytelniony) właśnie z tego powodu.
Wykrywanie niekompletnych pobrań
Charakterystyczny znak częściowego pobrania: rozmiar pliku na dysku jest mniejszy niż reklamowany na stronie transferu. Kliknięcie prawym przyciskiem na pobrany plik i sprawdzenie rozmiaru — jeśli nie zgadza się z podanym przez nadawcę, pobieranie nie dobiegło końca.
Pliki multimedialne dobrze ujawniają ten problem. Niekompletny plik MP4 odgrywa się przez chwilę, a potem się urywa. Niekompletne ZIP zwraca „archiwum jest uszkodzone" przy rozpakowywaniu. Niekompletny PDF pokazuje pierwsze strony, a potem błąd. Pliki tekstowe często otwierają się prawidłowo, ale są cicho obcięte — to najgorszy przypadek, bo nie widać od razu, że czegoś brakuje.
Wznawialne pobieranie przy niestabilnym połączeniu
Jeśli połączenie odbiorcy zerwie się podczas pobierania, wsparcie dla wznawiania jest kluczowe. Żądania HTTP range (RFC 7233) pozwalają klientowi zrestartować od określonego bajtu. curl obsługuje to opcją -C -, wget z -c. Menedżery pobierania w przeglądarkach różnie sobie z tym radzą; Firefox i Chrome wznawiają w ramach tej samej sesji, jeśli serwer obsługuje zakresy.
Usługi używające zwykłego POST lub nieeksponujące nagłówków Range wymuszają pełny restart przy zerwaniu — co przy pliku 10 GB przez komórkę 20 Mbps to bardzo nieprzyjemna sytuacja.
Zakłócenia ze strony antywirusa
Windows Defender, Avast, Bitdefender i McAfee czasami przechwytują pobieranie w połowie strumienia, by je przeskanować. Zazwyczaj przebiega to transparentnie. Sporadycznie jednak — dla formatów archiwów lub plików wykonywalnych — antywirus decyduje o „wyczyszczeniu" pliku i usuwa zawartość lub zastępuje go szkieletem kwarantanny.
Jeśli plik konsekwentnie pobiera się uszkodzony na maszynie odbiorcy, warto poprosić go o tymczasowe wyłączenie ochrony w czasie rzeczywistym i ponowną próbę. Jeśli ponowna próba zakończy się sukcesem, winowajcą jest antywirus. Należy dodać domenę usługi transferowej do listy wyjątków.
Miejsce na dysku i problemy z systemem plików
Pobieranie może się też uszkodzić, jeśli dysk docelowy zapełni się w trakcie zapisu. macOS zapisuje przez warstwę migawek APFS i zazwyczaj czytelnie raportuje błędy. Windows NTFS ma tendencję do cichego obcinania. Na dyskach zewnętrznych warto sprawdzić wolne miejsce przed pobieraniem 10 GB.
Błędy systemu plików są rzadkie, ale realne. exFAT na starszych wersjach Windows miał historycznie błędy obcinania plików powyżej 4 GB. ext4, NTFS i APFS są niezawodne w bieżących wersjach systemów.
Weryfikacja przez walidatory specyficzne dla formatu
Pliki wideo: ffprobe -v error plik.mp4 raportuje błędy cicho. Jeśli wynik jest pusty, struktura kontenera jest prawidłowa. Dla dogłębnej kontroli: ffmpeg -v error -i plik.mp4 -f null - przechodzi przez każdą klatkę i raportuje błędy dekodowania.
Pliki PDF: polecenie „Waliduj" w Acrobat sprawdza strukturę obiektów. qpdf --check plik.pdf robi to samo z linii poleceń.
Archiwa: unzip -t plik.zip i 7z t plik.7z testują bez rozpakowywania. Szybko i wykrywa większość uszkodzeń.
Wybór usług z wbudowaną integralnością
Przy krytycznych transferach warto wybrać usługę zapewniającą kryptograficzną integralność z założenia. Szyfrowanie end-to-end AES-GCM, wyświetlanie skrótu SHA-256 na stronie pobierania lub jawna walidacja sumy kontrolnej w kliencie dają dowód poprawności zamiast nadziei. HexaTransfer używa AES-256-GCM, więc pomyślne odszyfrowanie samo w sobie weryfikuje, że plik nie został zmieniony. Limit 10 GB per transfer pokrywa większość profesjonalnych materiałów.
Wypróbuj na hexatransfer.com — bezpłatnie, bez konta, do 10 GB.
Wysyłaj duże pliki bezpiecznie z szyfrowaniem end-to-end
Przesyłaj pliki do 10 GB za darmo z szyfrowaniem end-to-end. Bez rejestracji. Twoje pliki są szyfrowane w przeglądarce przed przesłaniem — nikt inny nie może ich odczytać.
Wyślij plik