O usłudze Firefox Send pisałem pod koniec 2017 roku, gdy działała w ramach projektu Firefox Test Pilot (taki poligon doświadczalny dla różnych usług). I od tego czasu właściwie zawsze, gdy miałem do przesłania jakiś plik poniżej jednego gigabajta, który nie musiał być dostępny dłużej niż 24 godziny, to korzystałem właśnie z usługi Firefox Send. Najwidoczniej nie tylko ja (i moim znajomi), bo usługa właśnie wyszła z fazy testów…

Firefox Send wyszedł z testów zwycięzko

Główna idea została bez zmian – usługa Firefox Send w prosty i szybki sposób pozwala na udostępnienie plików, z limitem liczby porań i czasu. Choć w wersji finalnej otrzymaliśmy kilka usprawnień, choćby takich jak lepsze zarządzanie swoimi plikami za pomocą konta Firefox (jako zalogowany użytkownik możemy przesyłać też większe pliki – aż do 2,5 GB):

Mamy teraz też lepszą kontrolę nad tym, kiedy plik wygaśnie, czyli przestanie być dostępny. Obecnie możemy wybrać liczbę pobrań dla danego pliku od 1 do 200 (1, 2, 3, 4, 5, 20, 50, 100, 200), oraz – i to jest największa nowość – możemy zarządzać czasem, w jakim plik będzie dostępny. Od 5 minut do 7 dni (5 minut, 1 godzina, 1 dzień, 7 dni):

Możliwość ustawienia hasła była i została. Zwłaszcza że Mozilla przy tym projekcie mocno podkreśla bezpieczeństwo, łącznie z tym, że pliki są szyfrowane w przeglądarce podczas wysyłania i deszyfrowane również w przeglądarce, podczas pobierania:

Send uses end-to-end encryption to keep your data secure from the moment you share to the moment your file is opened. It also offers security controls that you can set. You can choose when your file link expires, the number of downloads, and whether to add an optional password for an extra layer of security.

Choć skoro pliki są szyfrowane i mogą być pobierane przez inne osoby, to jakoś musimy przekazywać klucz deszyfrujący. Odbywa się to za pomocą samego linku, w któym – po znaku # – znajduje się klucz:

https://send.firefox.com/download/06fe80a3a1/#1AbWIe5PkpAiJ8ptA51-PR

Link do pliku:

https://send.firefox.com/download/06fe80a3a1/

Klucz (de)szyfrujący:

1AbWIe5PkpAiJ8ptA51-PR

Co istotne, jest to para nierozdzielna, czyli nie da się pobrać pliku bez klucza. Więcej informacji na temat zastosowanego szyfrowania (128-bit AES-GCM + Web Crypto API) znajdziecie w tym dokumencie…

Własna usługa typu Firefox Send

W serwisie GitHub znajdziemy nie tylko wspomniany dokument z opisem metod szyfrowania, ale również całe repozytorium usługi, więc prawdopodobnie (prawdopodobnie, bo nie testowałem) nic nie stoi na przeszkodzie, by postawić tego typu usługę na swojej maszynie.

Wygląda na to, że wystarczy Node.js (10.0+), oraz opcjonalnie serwer Redis (testy) i jakaś usługa typu S3, gdybyśmy planowali przesyłać więcej plików, niż mamy miejsca na serwerze.

A skoro serwer u nas, to nie tylko możemy wstawić własne logo, ale oczywiście mamy pełną dowolność również, jeśli chodzi o limity (liczba pobrać, czas przechowywania), dzięki czemu można usługę dostosować do własnych potrzeb…

(!) Zgłoś błąd na stronie | Lub postaw nam kawę :-)
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk