ffsend a 0x0.st (μblog)

Včera | 17:25 | Richard | Richard

V roku 2023 sme si povedali o službe oshi.at, ktorá slúžila na nahrávanie veľkých súborov na ich servre z pohodlia príkazového riadku. Žiaľ, ten minulý čas je správne, služba už nefunguje. Aké sú ďalšie alternatívy?

Úvod

Ten článok si možno prečítať len pre zaujímavosť, avšak už nie je aktuálny.

Aké existujú možnosti na nahrávanie veľkých súborov, ktoré nám následne vygenerujú link na ich stiahnutie s rôznou expiráciou, a súčasne sa dajú použiť v príkazovom riadku shellu?

Nuž, veľa ich nie je. V tomto článku sa budem venovať dvom. Tá prvá je postavená na už neexistujúcom Firefox Send. Bola to bezplatná „transfer“ služba od Mozilly, ktorá umožňovala bezpečné a dočasné zdieľanie súborov cez internet. Jej používatelia nahrali súbor na server, získali jedinečný odkaz a ten poslali príjemcovi. Súbory boli voliteľne zašifrované na strane klienta a bolo možné nastaviť expiráciu odkazu a limit počtu stiahnutí. Mozilla ukončila Firefox Send v roku 2020 po zneužití služby (široké šírenie škodlivého obsahu cez anonymné odkazy).

A tu sa ukazuje sila a krása slobodného sveta. Kódy a myšlienku prevzali iní a táto služba žije naďalej vďaka dobrovoľníkom.

Send (ffsend)

Na jeho prežití a vylepšení sa podieľa najväčšou zásluhou Tim Visée, mladý vývojár z Holandska. Jednak udržiava jednu serverovú inštanciu na nahrávanie, ale čo je dôležitejšie, spravuje a vylepšuje program ffsend.

A ten slúži práve na nahrávanie (a iné operácie) súborov na jeho alebo iný server.

Na github-e sú uvedené príklady použitia i linky na stiahnutie zdrojových kódov i skompilovaných bináriek. Ak človek nemá všetky potrebné knižnice nainštalované, potom je rozumné stiahnuť si staticky zostavenú binárku so zahrnutými knižnicami (označenú ako ffsend-v*-linux-x64-static).

Niekoľko príkladov použitia:

0x0.st

0x0 v ukazovateľoch (C/C++) označuje nulový pointer. A tak sa volá i web 0x0.st: NULL POINTER.

Je to úložisko, kde maximálna veľkosť súboru je 512 MiB a dĺžka úschovy 365 dní, ale platí to podľa tejto závislosti:

retention = min_age + (min_age - max_age) * pow((file_size / max_size - 1), 3)

 počet dní
  365 |  \
      |   \
      |    \
      |     \
      |      \
      |       \
      |        ..
      |          \
197.5 | ----------..-------------------------------------------
      |             ..
      |               \
      |                ..
      |                  ...
      |                     ..
      |                       ...
      |                          ....
      |                              ......
   30 |                                    ....................
        0                      256.0                      512.0
                                                            MiB

Nahratie nie je pomocou nejakého „špeci“ programu, alebo pomocou web rozhrania, ale posielaním HTTP POST požiadavky na https://0x0.st s údajmi zakódovanými ako multipart/form-data. A to spravíme pomocou curl.

Pár príkladov:

Záver

Veľmi šikovné programy možno samozrejme zaobaliť do pekných aliasov alebo funkcií, či už pre shell, alebo aj iný interpreter.

Krása slobodného softvéru, ktorý nesleduje užívateľa, spočíva v niekoľkých aspektoch, ako je ochrana súkromia, transparentnosť, komunitná podpora,…

Tieto faktory prispievajú k tomu, že slobodný softvér, ktorý nesleduje užívateľa, je nielen praktický, ale aj etický a udržateľný vo svojom prístupe k technológii.