Uwierzytelnianie dwuskładnikowe plików: dodatkowa warstwa bezpieczeństwa
Dodaj uwierzytelnianie dwuskładnikowe do transferów. Łącz hasła z jednorazowymi kodami lub weryfikacją email.
Uwierzytelnianie dwuskładnikowe (2FA) dla plików łączy coś, co odbiorca zna (hasło wyprowadzające klucz AES-256-GCM przez PBKDF2), z czymś, co posiada (kod TOTP z Authy, magiczny link e-mail lub passkey WebAuthn powiązany z jego urządzeniem). Nawet jeśli atakujący wyłudzi hasło lub przechwyci link do pobrania, nie będzie w stanie odszyfrować ładunku bez drugiego czynnika. Ten wzorzec odpiera przekazywanie linków znajomym, ataki credential stuffing i większość ataków shoulder-surfing skutecznych wobec jednofaktorowego udostępniania na platformach pokroju WeTransfer.
Dlaczego samo hasło do linku nie wystarczy
Udostępniony link do pobrania jest zaskakująco podatny na wycieki. Slack automatycznie rozwija go w podgląd, Gmail archiwizuje go przez siedem lat, a korporacyjne proxy rejestrują pełny ciąg zapytania. Jeśli hasło trafia w osobnym mailu, oba kanały często prowadzą do tej samej skrzynki — jedno naruszenie Microsoft 365 oddaje atakującemu cały plik. Dane z raportów rzeczywistych incydentów (Verizon DBIR 2025) wskazują, że 68% kradzieży danych opartych na uwierzytelnieniu dotyczyło wielokrotnie używanych haseł. Drugi czynnik przełamuje ten łańcuch, bo ziarno TOTP nigdy nie opuszcza aplikacji uwierzytelniającej odbiorcy.
Jak TOTP działa z linkiem do pobrania
Nadawca generuje 160-bitowy wspólny sekret zakodowany jako ciąg base32 i kod QR (RFC 6238). Odbiorca skanuje go aplikacją Google Authenticator, 1Password lub Yubico Authenticator. Co 30 sekund aplikacja wykonuje HMAC-SHA1 na sekrecie i znaczniku czasu Unix podzielonym przez 30, obcinając wynik do sześciu cyfr. Gdy odbiorca wpisuje ten kod, serwer sprawdza bieżące i poprzednie okno czasowe, by tolerować rozbieżność zegara. Dopiero po walidacji kodu serwer udostępnia zaszyfrowany plik — klucz deszyfrujący pozostaje po stronie klienta, wyprowadzony z hasła odbiorcy.
Magiczne linki e-mail jako lekki drugi czynnik
Nie każdy odbiorca zainstaluje aplikację uwierzytelniającą. Magiczny link wysyłany na wcześniej zadeklarowany adres e-mail to rozsądna alternatywa. Nadawca podaje adres jane@szpital.pl przy przesyłaniu; serwis przechowuje skrót SHA-256 tego adresu. Gdy Janina klika link do pobrania, serwis wysyła 128-bitowy losowy token ważny przez 10 minut. Kliknięcie tokenu odblokowuje stronę pobierania, gdzie Janina wciąż wpisuje hasło do pliku. Token jest powiązany ze skrzynką odbiorcy — link przekazany do znajomego jest bezużyteczny, bo ten nie otrzymał wyzwania e-mailowego.
WebAuthn i passkeys dla stałych odbiorców
Dla zespołów wymieniających pliki co tydzień (np. audytor odbierający dowody PCI DSS 4.0) passkeys wyprzedzają kody. Odbiorca rejestruje dane uwierzytelniające FIDO2 przy pierwszym użyciu; klucz prywatny trafia do Secure Enclave lub YubiKey 5C. Kolejne pobrania wymagają jednego dotknięcia zamiast wpisywania TOTP. Podpis obejmuje origin, więc strony phishingowe proxy nie mogą odtworzyć uwierzytelnienia. Chrome, Safari 17 i Firefox 122 obsługują warunkowy interfejs, który wyświetla monit passkey bez dodatkowych kliknięć.
Ochrona dużych transferów fragment po fragmencie
Archiwum DICOM 10 GB lub projekt Adobe Premiere 4 GB nie pasują do modelu jednorazowego pobrania. Podziel ładunek na fragmenty 5 MB, każdy zaszyfrowany własnym podkluczem wyprowadzonym z klucza głównego przez HKDF (RFC 5869). Przed dostarczeniem każdego fragmentu serwer weryfikuje świeży token sesji wybity po pomyślnym 2FA. Token wygasa po np. 30 minutach, więc wstrzymane pobieranie nie wznowi się z ukradzionego ciasteczka po kilku dniach. To podejście odpowiada temu, jak Signal obsługuje segmenty notatek głosowych i jak Backblaze B2 stosuje autoryzację serwerową do przesyłań wieloczęściowych.
Limitowanie żądań, blokady i pułapka ataku offline
TOTP to tylko sześć cyfr, więc naiwny endpoint pozwala atakującym wypróbować 1 000 000 kombinacji w ciągu sekund. Wymuś wykładnicze spowolnienie po trzech błędnych próbach, zablokuj link po dziesięciu i wyślij nadawcy webhooka z powiadomieniem. Nie informuj atakujących, czy zawodzi hasło, czy kod — zwróć ten sam ogólny błąd dla obu przypadków. I nigdy nie umieszczaj weryfikacji TOTP po stronie klienta; wysłanie sekretu do przeglądarki niweczyłoby cały zamysł. Waliduj po stronie serwera, wewnątrz zabezpieczonego endpointu za Cloudflare Turnstile lub hCaptcha.
Odtwarzanie dostępu bez osłabiania modelu
Klasyczny scenariusz awarii to odbiorca, który traci telefon podczas 48-godzinnego okna transferu. Wbudowany kod awaryjny — 20-znakowy ciąg base32 drukowany przy tworzeniu linku — daje mu możliwość odtworzenia dostępu bez zależności od e-maila. Równie ważne: wygaś transfer po pobraniu, nawet jeśli drugi czynnik nie był używany. W ten sposób zgubiony laptop z kodem awaryjnym nie może zostać wykorzystany miesiąc później. Niektóre usługi, w tym HexaTransfer, pozwalają też nadawcy unieważnić link z poziomu panelu, kończąc aktywne tokeny sesji.
Koszty dla doświadczenia użytkownika
Dodanie 2FA do 30-sekundowego transferu wydaje się uciążliwe, więc dopasuj je do ryzyka. Dla albumu zdjęć urodzinowych — pomiń. Dla pliku .psd 500 MB z premierą produktu — wymagaj hasła. Dla archiwum 2 GB danych RODO z wniosku o dostęp (art. 15) — wymagaj TOTP i magicznego linku. Warstwowy interfejs (publiczny, hasłowy, 2FA, passkey) pozwala nadawcom wybierać bez czytania dokumentacji. Konkurenci jak SwissTransfer udostępniają tylko jeden przełącznik hasła; Dropbox Transfer chowa 2FA za plan Teams; Smash oferuje weryfikację e-mail, ale nie TOTP. Luka jest warta wypełnienia.
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