Przewodnik po alternatywnym internecie

Czy zastanawialiście się kiedyś, co dzieje się podczas ładowania strony www? Klikamy w link do strony na Wikipedii – jakie procesy zachodzą w chwili między kliknięciem a wyświetleniem strony na ekranie? Dzieje się całkiem sporo. Pozwólcie, że wyjaśnię. Niniejszy artykuł ma za zadanie zaspokoić waszą ciekawość, ale nie tylko.

✨ Ogłoszenie parafialne ✨

Otwieram kanał wideo. Od pewnego czasu pracuję nad pierwszym filmem. Kanał ma stanowić uzupełnienie treści Przewodnika po alternatywnym internecie. Uznałem, że taka forma prezentacji będzie bardziej przyswajalna.

Stworzenie filmu wymaga więcej nakładu pracy niż stworzenie artykułu. Nagrywanie dźwięku wymaga odpowiednich warunków. Nie można tego zrobić w drodze na zajęcia. Trzeba też przygotować materiały wizualne i wszystko to poskładać. Dlatego nie obiecuję, że inicjatywa się powiedzie, ani tym bardziej, że będę regularnie publikował. Ponieważ studiuję, mam wiele innych zajęć i niewiele czasu wolnego. Postaram się go jednak znaleźć i wykorzystać produktywnie.

👓 Przeglądarka a wyszukiwarka 🔎

Przeglądarka (www) służy do przeglądania stron. Jest to jedna z aplikacji zainstalowanych na waszym urządzeniu, obok gier, programów do obróbki zdjęć i modelowania 3D, odtwarzaczy muzyki, etc.

Wyszukiwarka służy do przeszukiwania internetu (tak naprawdę jego niewielkiej części). Jest to strona, obok Wikipedii, OpenStreetMap, Nextcloud czy Przewodnika, która pozwala odnaleźć inne strony.

Powszechne mylenie roli przeglądarki i wyszukiwarki ma kilka przyczyn, m.in. wbudowaną dla naszej wygody integrację przeglądarki z wyszukiwarką – w pasku przeglądarki wpisujemy frazę i jesteśmy odsyłani do wyszukiwarki. Możemy jednak łatwo zmienić wyszukiwarkę do jakiej nas odsyła w ustawieniach.

Ustawienia wyszukiwarki w Firefox mobile

Warto zdać sobie sprawę, że awaria wyszukiwarki to nie to samo, co brak internetu. Nadal możemy otwierać linki z zakładek i innych stron, po prostu nie działa wyszukiwanie. Dlatego warto korzystać z zakładek 👍. Poza tym, są jeszcze inne wyszukiwarki.

Linki 🔗

Disclaimer: w celu łatwiejszego odbioru artykuł stosuje pewne uproszczenia lub uogólnienia (np. pominięcie przypadków szczególnych odbiegających od reguły).

Strony www znajdują się na serwerach – specjalnych komputerach, które są zawsze włączone i można się z nimi połączyć przez internet. Serwują różne zasoby: dokumenty, grafiki, wideo, etc. tym urządzeniom, które o nie poproszą. Każdy taki zasób jest identyfikowany czymś, co nazywa się adres URL (czyli potocznie link).

Jeśli uważnie przyjrzymy się jego strukturze, zauważymy, że zawiera on 2 rzeczy – nazwę serwera i ścieżkę do zasobu na serwerze. Rzućmy okiem na kilka przykładów:

https://writefreely.pl/anedroid/f-droid-lepsze-aplikacje-na-twojego-smartfona https://pl.wikipedia.org/wiki/Skandal_Cambridge_Analytica-Facebook https://www.mimuw.edu.pl/~guzicki/materialy/Rekurencja.pdf

Kolorem czerwonym oznaczyłem nazwy serwerów, a kolorem niebieskim – ścieżki do zasobów. Zwłaszcza w ostatnim widzimy, że mamy do czynienia z plikiem pdf. Czasami w ścieżce widzimy autora, datę publikacji lub tytuł; innym razem tylko jakiś ciąg liczb. Dla przeglądarki nie ma on większego znaczenia – to serwer z początku adresu ma wiedzieć, co z nim zrobić. Dla przeglądarki liczy się nazwa serwera, by wiedzieć, dokąd skierować zapytanie.

Warto zauważyć, że nie zawsze ścieżki odpowiadają nazwom plików na serwerze. Serwer może być tak zaprogramowany, aby po otrzymaniu konkretnego zapytania wykonać pewną akcję – np. przeszukania bazy danych i zwrócenia wyników lub usunięcia zasobu.

Fragmentaryczne strony 🧩

Serwer może udostępniać różne zasoby, ale najczęściej są to dokumenty w internetowym formacie html. Jeśli otwieramy stronę na komputerze, wciskając ctrl-s możemy zapisać bieżącą stronę i otworzyć ją nawet, gdy nie będzie internetu – pisałem o tym tutaj.

Html pozwala na osadzanie w dokumencie elementów zewnętrznych, takich jak zdjęcia. Kiedy przeglądarka wczyta dokument html i zobaczy, że są tam odniesienia do dodatkowych elementów, wykonuje automatycznie kolejne zapytania. Takie elementy mogą nawet pochodzić z innych serwerów. Owszem, bez problemu osadzę tutaj obrazek znajdujący się na innej stronie, wystarczy tylko link.

Porównanie kodu html a zapytań przeglądarki 💡 Kliknij aby powiększyć

Niekiedy wczytane elementy wywołują jeszcze więcej zapytań. Przykładowo arkusz stylów (plik określający układ i szczegóły wizualne strony) może zawierać odnośniki do fantazyjnego kroju czcionki użytego w nagłówku. Jak więc widzimy, otwarcie pojedynczej strony wywołuje całą lawinę zapytań, i to do różnych serwerów.

☎️ Internetowy rejestr serwerów

Rozważmy teraz, jak zasób dociera z serwera do przeglądarki. Mamy tu kilka problemów do rozważenia:

  1. Kabel od internetu jest tylko jeden, a otwartych stron wiele. Z internetu korzystają też inne aplikacje. Z kolei do serwera w każdej chwili napływają dziesiątki zapytań od urządzeń całym na świecie, na które musi odpowiadać. Jak te wszystkie strumienie danych się ze sobą nie pomieszają?
  2. Naszego urządzenie i serwera dzieli duży dystans, a transmisję danych wspomagają pośrednicy. Skąd oni wiedzą, gdzie dostarczyć dane i którędy?
  3. Co nazwa serwera mówi nam na temat jego lokalizacji?

Aby rozwiązać te problemy, wymyślono podział komunikacji sieciowej na warstwy lub protokoły. Każde odpowiada za inną część problemu, a zebrane wszystkie razem kształtują internet jaki znamy.


Sama nazwa serwera w zasadzie nic nie mówi na temat jego fizycznej lokalizacji. Nawet końcówki krajowe, jak .pl, wcale nie znaczą, że serwer znajduje się w danym kraju, tym bardziej ogólne końcówki jak .com czy .org. Dużo więcej na temat lokalizacji mówią adresy IP. Kontynenty, kraje i regiony mają przyporządkowane pewne pule adresów (na tej stronie można sprawdzić przybliżoną lokalizację).

Nie da się przesłać pakietu przez sieć bez znajomości adresu docelowego, tak więc nazwy serwerów (tzw. domeny) pełnią głównie funkcję dekoracyjną, podobną do znaku towarowego; łatwiej skojarzyć coś z nazwą niż z ciągiem liczb. Gdyby nie domeny, nasze linki wyglądałyby bardziej tak: http://136.243.44.143/en/about – Fundacja nr 136.243.44.143 😉

Podobno u zarania internetu każdy komputer miał kopię pliku łączącego domeny z adresami. Szybko rosnąca liczba serwerów i domen zrodziła potrzebę bardziej skalowalnego rozwiązania. Obecnie funkcjonują specjalne serwery DNS, które, zapytane o domenę odsyłają adres IP. Tak więc zanim przeglądarka będzie mogła nawiązać połączenie z serwerem www, najpierw musi sprawdzić adres w takiej internetowej książce adresowej.

Wdrożenie DNS „niechcący” umożliwiło podpinanie wielu domen pod jeden adres. Z „wirtualnymi hostami” mamy do czynienia, gdy jeden serwer serwuje różne strony dla różnych domen. Dlatego próba podmiany w linku nazwy na IP może się nie udać – serwer nie będzie wiedział, o co nam chodzi.

Błąd odnajdywania adresu serwera

Warto zdać sobie sprawę, że awaria DNS-a to nie to samo, co brak internetu – być może z łącznością wszystko jest ok, tylko nie z naszą konfiguracją DNS (możemy to znaleźć w ustawieniach sieci systemu operacyjnego). Polecam pamiętać, że 9.9.9.9 to adres serwera DNS, który – jak dotąd – zawsze działał.


Co zatem znaczą końcówki w domenie, jeśli nie lokalizację serwera? Tutaj sprawa się komplikuje, gdyż serwerów DNS jest wiele. Jedne są przeznaczone dla nas – to te, które zaawansowani użytkownicy wpisują w ustawieniach. Inne są dla administratorów, aby mogli dodać rekordy wskazujące na ich stronę. To tam mogą zarejestrować swoje sub-domeny.

Na przykład UMCS ma swoją stronę główną na umcs.pl, ale materiały edukacyjne są na kampus.umcs.pl – subdomenie. Ma też kilka instancji BigBlueButton do zajęć zdalnych: 1.bbb.umcs.pl, 2.bbb.umcs.pl... Oraz wspólny system logowania – login.umcs.pl. Koło informatyczne ma wydzieloną subdomenę skni.umcs.pl, a z niej odchodzą git.skni.umcs.pl i vpn.skni.umcs.pl. Niektóre serwisy tworzą subdomeny dla każdego użytkownika. Zarządzanie tym wszystkim z centralnego, globalnego serwera DNS byłoby kłopotliwe i nieefektywne.

Wyżej w hierarchii stoją komercyjni rejestratorzy domen drugiego poziomu, a nad nimi właściciele końcówek krajowych i tematycznych (np. Polskim .pl zarządza NASK). Na samym szczycie stoją ogólnoświatowe hiperserwery root należące do ICANN.

Tak więc nasz DNS który ustawiamy w ustawieniach, jeżeli nie posiada żądanego rekordu w swojej bazie, przekazuje zapytanie do serwerów odpowiedzialnych za poszczególne strefy. Cały proces możemy prześledzić tutaj. Wszystko to dzieje się w mgnieniu oka 😉.

🔒 Bezpieczeństwo warstwy transportowej 🪪

W komunikacji ze stroną pośredniczy wiele urządzeń; infrastruktura internetowa składa się z routerów – urządzeń obecnych na „skrzyżowaniach”, kierujących ruchem sieciowym. Siłą rzeczy mają dostęp do bajtów, które kopiują z jednego portu do drugiego. Jest wiele punktów, w którym dane mogą zostać przechwycone, sfałszowane...

TLS (dawn. SSL) chroni poufność i integralność danych. Jest obecny na tych stronach, których linki zaczynają się od https://. Zanim zostanie wysłane jakiekolwiek zapytanie, przeglądarka i serwer wymieniają się kluczami kryptograficznymi. Następnie cała reszta komunikacji jest szyfrowana.

Co ważne, serwer uwierzytelnia się przed przeglądarką, prezentując jej certyfikat – plik zawierający m.in. domenę, klucz publiczny i podpis elektroniczny urzędu certyfikacji. To pozwala upewnić się przeglądarce, że rzeczywiście rozmawia ze stroną, za którą się podaje.

Certyfikat X.509 na stronie openstreetmap.org Certyfikat można podejrzeć na komputerze, klikając 🔒 na pasku adresu.

Przeglądarka weryfikuje podpis – sprawdza czy odpowiada podpisanym danym i czy zostały podpisane zaufanym przez zaufany urząd certyfikacji (CA). Przeglądarki mają wbudowaną listę takich urzędów. Oczywiście domena w certyfikacie musi odpowiadać domenie, z którą się łączymy.

Zasady działania podpisów elektronicznych nie będę tutaj wyjaśniał, poza tym, że wykorzystują kryptografię i są nierozerwalnie związane z podpisanym dokumentem. Nie ma podpisów in-blanco. Najmniejsza modyfikacja unieważnia podpis.

Jak strumienie się nie mieszają? 🌊

W jednej zakładce leci muzyka, w tym samym czasie odpalona gra sieciowa i jeszcze komunikator: jednocześnie, na jednym urządzeniu, przez jedno łącze. Jak to jest, że każdy bajt zawsze trafi do właściwej aplikacji? Dzieje się to za sprawą protokołu TCP.

TCP jest obsługiwany przez system operacyjny. Każdemu połączeniu nadaje indywidualny numer portu, dzieli strumień na pakiety, numeruje je i do każdego pakietu dokleja te dwie informacje. Tak przygotowane pakiety mogą być dowolnie przeplatane, nie wchodząc ze sobą w konflikt.

Ponadto, TCP każdorazowo wysyła potwierdzenie odbioru. Jeżeli takowego nie otrzyma w zadanym czasie, ponowi próbę wysłania. TCP umieszcza także na pakiecie sumę kontrolną do wykrywania błędów transmisji.

Dzielenie strumienia danych na pakiety nazywamy enkapsulacją, a ich przeplot – multiplexingiem.

Porty występują po obu stronach, ale u aplikacji nawiązującej połączenie (tzw. klienta) mają charakter tymczasowy, a u serwera port jest zawsze ten sam, w trybie oczekiwania na połączenia od wielu klientów jednocześnie. Różne usługi mają swoje standardowe numery portów, np. dla https jest to 443, a dla DNS – 53.

Schemat obrazujący enkapsulację i multiplexing protokołu TCP Schemat nie uwzględnia adresów IP. Są na innych etykietach. Edit: na rysunku jest błąd. Numery paczek są w odwrotnej kolejności

Serwer http Pythona

Jak pakiet dociera do celu? 🗺️

Tym sposobem dotarliśmy do fundamentów internetu – protokołu IP (Internet Protocol). Tutaj rzeczy robią się najbardziej skomplikowane. Niestety nie mamy w pełni autonomicznego systemu wyznaczania tras. Szkoda. 😒

Tak w ogóle, mamy teraz 2 typy adresów IP. Stary – IPv4 ma postać 159.69.138.33 – czterech liczb 0-255. Wszystkich ich możliwych kombinacji jest tylko 4 miliardy – za mało. Nowy typ – IPv6 ma postać 2a01:4f8:231:1ec7::60:1 – ośmiu liczb 0-65535, ale zapisanych w systemie szesnastkowym (tam gdzie zera, można skrótowo umieścić :: ale tylko w jednym miejscu).

Wciąż używa się starego IP, choć nowe liczy sobie prawie 30 lat, a liczba adresów już dawno się wyczerpała. Obecnie za jednym adresem upycha się kilka osób. Tak działają choćby domowe routery. W lokalnej sieci urządzenia mają unikalne adresy, ale z internetu wszystkie połączenia mają ten sam adres – adres routera. Dlatego gdy ktoś w sieci coś przeskrobie, banem obrywają wszyscy. Odpowiedzialność zbiorowa to relikt przeszłości, dlatego powinniśmy już dawno przejść na IPv6.


Kto tak w ogóle przydziela adresy? W małych sieciach adresy przydzielają się same, w większych – administrator musi skonfigurować pule adresów na routerach – albo nie będzie między nimi łączności. Potrzebna jest tu umiejętność jak najlepszego wykorzystania otrzymanej puli, ponieważ nie można podzielić jej w dowolny sposób.

Istnieje kilka algorytmów wyznaczania tras. Jeden z najstarszych – RIP – co 30 sekund rozgłasza po sieci tablicę routingu, tak że routery wiedzą, gdzie kierować pakiety pod wskazany adres. Trasowanie między zorganizowanymi sieciami lokalnymi odbywa się za pomocą algorytmu BGP, który spaja cały internet.

Na tak niskim poziomie trudno o zmiany i ulepszenia, ponieważ trzeba by było wymieniać działające od lat urządzenia sieciowe na całym świecie. Nic nie stoi jednak na przeszkodzie, aby prowadzić badania i eksperymentować z nowymi rozwiązaniami. W internecie (również tym alternatywnym) funkcjonują nakładkowe sieci, które kierują się innymi zasadami. Niestety są zależne od zwykłego internetu, ale zawierają wiele ulepszeń od których „zwykły internet” mógłby czerpać inspiracje.

Weźmy za przykład sieć Yggdrasil: – Urządzenie ma stały, losowy adres IPv6, niezależny ani od lokalizacji ani połączonych węzłów. – Każde inne urządzenie może się z nim połączyć – nie trzeba kupować publicznego adresu IP aby udostępnić stronę z własnego komputera. – Cała komunikacja jest szyfrowana na poziomie sieci (por. TLS, który szyfruje tylko indywidualne porty dla aplikacji, które to obsługują). – Sieć wykorzystuje własny, w pełni autonomiczny algorytm routingu. Jedyne, co muszą wybrać użytkownicy, to swoich sąsiadów.

Z wad – DNS jeszcze się tam nie rozwinął. Większość stron nie ma domen, sam adres. Choć i w tym obszarze prowadzone są badania.

Rozwiń

  1. Przeglądarka zgłasza systemowi operacyjnemu chęć połączenia się z serwerem example.com, port 443.
  2. System operacyjny wysyła zapytanie o domenę example.com do skonfigurowanego serwera DNS (9.9.9.9 aka Quad9).
  3. Zapytanie dociera do serwera DNS. Szuka w bazie danych rekordu dla example.com, ale go nie znajduje.
  4. Quad9 rozpoczyna rekurencyjne rozwiązywanie: wysyła zapytanie o domenę example.com do globalnego serwera DNS (e.root-servers.net)
  5. Globalny DNS nie zajmuje się domenami 2 poziomu i przekierowuje Quad9 do serwera odpowiedzialnego za .com (a.gtld-servers.net)
  6. Quad9 kieruje zapytanie do a.gtld-servers.net o example.com.
  7. a.gtld-servers.net wyciąga ze swojej bazy rekord od example.com. Jest w nim przekierowanie do DNS-a administratora example.com (b.iana-servers.net). Przekierowuje tam Quad9.
  8. Quad9 kieruje się do b.iana-servers.net z tym samym zapytaniem.
  9. b.iana-servers.net zwraca adres IP domeny example.com (93.184.215.14).
  10. Quad9 zapamiętuje rekordy aby na przyszłość skrócić czas oczekiwania. Odsyła wynik komputerowi.
  11. Komputer nawiązuje połączenie TCP z 93.184.215.14 (example.com) na porcie 443 z portu 10598 (SYN).
  12. example.com potwierdza połączenie (SYN ACK).
  13. Komputer odsyła potwierdzenie przyjęcia potwierdzenia (ACK ACK).
  14. System operacyjny przekazuje kontrolę nad połączeniem przeglądarce.
  15. Przeglądarka rozpoczyna sesję TLS.
  16. Serwer wysyła swój certyfikat (dla example.com, podpisany przez DigiCert Inc.)
  17. Przeglądarka weryfikuje podpis, stwierdza, że należy do zaufanego CA i kontynuuje nawiązywanie bezpiecznego połączenia.
  18. Przeglądarka i serwer ustalają klucz sesji.
  19. Przeglądarka wysyła zapytanie o stronę https://example.com
  20. Serwer odsyła plik HTML i zamyka połączenie.
  21. Przeglądarka odbiera plik i postanawia załadować ikonę favicon.ico (https://example.com/favicon.ico).
  22. Przeglądarka nawiązuje kolejne połączenie z example.com i wysyła zapytanie.
  23. Serwer stwierdza, że nie ma u siebie takiego pliku i odsyła błąd 404, ponownie zamykając połączenie.
  24. Przeglądarka przechodzi w stan gotowości.

Napisałem dla własnej satysfakcji. Dużo, prawda? Nie wspomniałem tu o podziale na pakiety i routingu! 😆

Właśnie dlatego dokonano podziału sieci na warstwy, które można rozpatrywać niezależnie.

Zagrożenia 💀🌋

Jedne ujawniają się przy źle zaprojektowanych, wdrożonych lub skonfigurowanych systemach, inne wykorzystują ludzką niewiedzę czy naiwność. W internecie jest wiele zagrożeń różnego rodzaju.

Wiedza, którą tutaj przedstawiłem ma nie tylko zaspokoić waszą ciekawość – posłuży za podstawę do zrozumienia możliwych ataków w przyszłych wpisach. Przyjrzymy się różnym próbom skłonienia użytkownika do odwiedzenia fałszywej strony, gdzie poda swoje dane logowania i nauczymy się odpowiednio zabezpieczyć swoją przeglądarkę i konfigurację sieci. O ile najpierw nie opublikuję filmu, oczywiście.

Do zobaczenia! 👋

Co to jest Big Tech? Jest to jedno z ogólnych określeń Internetu wielkich korporacji, ich produktów i usług lub nich samych. Czasami korzystając z technologii czujemy, że coś jest na nas wymuszane, a tych którzy nie zaakceptują zaistniałego stanu rzeczy czekają srogie konsekwencje – wykluczenie z życia społecznego, izolacja. Dlatego będąc istotami społecznymi, godzimy się na pewne niedogodności – ot, choćby korzystanie ze środków komunikacji, które nie do końca nam odpowiadają, może np. wyświetlają nam reklamy, rozładowują i spowalniają telefon, lub zajmują zbyt dużo miejsca.

Czasem są to groźniejsze problemy, jak algorytmy rekomendacyjne żerujące na naszych emocjach, słabościach i lękach lub powodujące uzależnienie. Czasem opłaty za coś, co nic nie kosztuje (np. odblokowanie ciemnego motywu, usunięcie reklam, etc.), wymuszone aktualizacje, nieuzasadniony wymóg logowania, posiadania stałej łączności z Internetem czy nawet podawania numeru telefonu. Lub wycofanie usługi z której korzystaliśmy, usunięcie ulubionej książki, serialu.

Niektóre trudności pojawiają się na naszej drodze dopiero gdy poczujemy potrzebę odzyskania kontroli i łapiemy za kierownicę: dyskryminacja przeglądarkowa, dark patterny, blokady regionalne, utrudniona migracja do innej usługi czy szeroko pojęta niekompatybilność ze światem. Całe mnóstwo złośliwości. Nawet nasze własne urządzenia zaczęły odmawiać nam posłuszeństwa. Jak to się stało, że staliśmy się chłopami na nie-swojej ziemi? Co robić, jak żyć?

Co to dyskryminacja przeglądarkowa?

Mamy z nią do czynienia, gdy strona mówi „twoja przeglądarka nie jest obsługiwana” i odmawia współpracy, choć używana przeglądarka ma w sobie wszystko co trzeba. Strony robią to, aby zmusić użytkowników do używania przeglądarek, które są gorzej zabezpieczone przed śledzeniem.

Co to dark patterny?

Manipulacyjne interfejsy, zaprojektowane aby użytkownik zrobił coś innego niż chciał. Najczęstszym przykładem są pop-upy o cookiesach śledzeniu z najważniejszymi informacjami zapisanymi drobnym druczkiem, rozwleczoną polityką prywatności, aby nikomu nie chciało się jej czytać, w których zgodę można wyrazić jednym kliknięciem w wyróżniony przycisk, a sprzeciw wymaga wejścia w opcje zaawansowane i szukania switchy do odznaczenia.

Manipulacyjny pop-up

Przykłady dark patternów

Co to blokady regionalne?

Ograniczenia, w jakim kraju można oglądać film. Weryfikacja odbywa się na podstawie adresu IP, który ujawnia przybliżoną lokalizację. Jeśli ktoś korzysta z proxy, VPN-a lub TOR-a, strona widzi inny adres IP i jeśli się zorientuje – może to uznać za próbę ominięcia blokady. Równie dobrze prawdziwym powodem może być ochrona metadanych przed dostawcą Internetu. Jeśli tymczasowo przebywasz za granicą – również możesz doświadczyć blokad regionalnych.


Ktoś kiedyś powiedział, że „jeśli nie podobają mi się warunki, zawsze mogę odejść. Wyprowadzić się w Bieszczady, uciec od cywilizacji i żyć w zgodzie z naturą”. Ironiczny komentarz sugerujący, jakoby to wszystko było nierozerwalnie związane z postępem cywilizacyjnym i stanowiło warunek egzystowania we współczesnym świecie, a przeciwstawianie się temu to jak walka z wiatrakami. Zwykły szary człowiek nic sam nie zdziała.

...ale czy na pewno? Czyżbyśmy naprawdę byli całkowicie bezsilni, zdani na łaskę i niełaskę Big Techu? Śmiem twierdzić, iż jest zgoła inaczej. Wiele możemy nawet jako indywidualne jednostki, a jako społeczeństwo – jeszcze więcej. Nawet jeśli uzyskana w ten sposób wolność cyfrowa nie będzie zupełna, moim skromnym zdaniem, lepiej mieć jej trochę, na tyle na ile to możliwe, niż poddać się już na starcie, nie spróbowawszy czy da się.

Jak kiedyś wspomniałem, alternatywny internet (outernet, small net) jawnie sprzeciwia się Big Techowi. Razem stworzyliśmy alternatywny ekosystem technologii (nie ograniczając się do samych tylko aplikacji). Tworzone przez nas rozwiązania istnieją aby rozwiązywać problemy – nie pomnażać kapitał. Toteż korzystanie z tych rozwiązań zapewnia inne doświadczenie, w którym nasze prawa są respektowane, a wręcz stawiane na pierwszym miejscu, wszak działamy dla wspólnego interesu.

obrazek Davida Revoy'a

Nasz główny problem dotyczy marginalnej siły przebicia do mainstreamu. Tak już jest, że najpopularniejsze rozwiązania rzadko bywają tymi dobrymi. Jeśli chcesz wolności, nie musisz wyjeżdżać w Bieszczady. Będziesz musiał jednak wymienić prawie wszystkie swoje aplikacje i serwisy internetowe z których korzystasz na alternatywy. Może się to wydawać przerażające, ale na szczęście nie musisz zmieniać wszystkiego naraz. Zmień jedną rzecz i systematycznie się jej trzymaj, a gdy się przyzwyczaisz – następną.

Przedstawiam kilka kroków, od których możesz zacząć swoją migrację z Big Techu.

Krok 1 – przestań promować korpo

Pierwszy krok jest trywialny – zmiana dotyczy jedynie używanych sformułowań. Powstrzymaj się od robienia reklamy. W swojej mowie zastępuj nazwy firm i ich produktów ogólnymi wyrażeniami, o ile oczywiście nie jest to kluczowe dla informacji jaką chcemy przekazać.

Przykłady:

  • wygoogluj → wyszukaj
  • Excel → arkusz kalkulacyjny
  • Photoshop → edytor grafiki
  • oglądamy Netflixa → oglądamy seriale
  • na Instagramie → w Internecie (*Instagram ≠ Internet!)

Inni nie muszą wiedzieć, że to właśnie WhatsAppem ktoś wysłał ci śmieszny filmik. Z zasady tej możesz wyłączyć Wikipedię – to dobry i pożyteczny serwis i warto go promować.

Krok 2 – zmień domyślną wyszukiwarkę

Frazy które wpisujemy w wyszukiwarkę to jedne z najwięcej mogących o nas zdradzić danych. Są wśród nich takie rzeczy, których byśmy nikomu nie powiedzieli. To również najcenniejsze informacje dla reklamodawców. Jeśli korzystasz z wyszukiwarki Google, powinieneś to zmienić, ponieważ może łatwo powiązać wyszukiwania z twoją tożsamością, co wynika z pośrednictwa w znacznej ilości twoich interakcji internetowych (często nawet nie zdajesz sobie z tego sprawy) i swoim zasięgiem obejmuje znaczną część twojej cyfrowej przestrzeni. Nawet jeśli obecnie nie odczuwasz potrzeby ochrony prywatności, twoje zaufanie do instytucji może w przyszłości ulec zmianie, a danych, które raz trafiły w obieg, już nie wycofasz.

Po co mi prywatność?

W prywatności chodzi o kontrolę nad tym, z kim dzielimy się jakimi informacjami. Nie każda informacja jest przeznaczona dla każdego – jednymi chcemy się podzielić tylko z bliskimi, inne zachować dla siebie. Prywatność jest jednym z praw człowieka, choć przez niektórych bywa kryminalizowana w imię walki z przestępczością. Takim osobom rekomenduję interaktywną lekturę pt. Social Cooling i może utrzymany w satyrycznym tonie komentarz Oliwiera Jaszczyszyna (o ile go nie usunął).

Jeszcze do niedawna powiedziałbym „użyj DuckDuckGo”, jednak obecnie mam spore obiekcje co do faktycznego poziomu prywatności, jaką rzekomo zapewnia. Nie polecam, chyba że miałbym wybierać między nim a Google.

Oto kilka alternatyw:

  • StartPage zaciąga wyniki od Google, ale w sposób anonimowy
  • Mojeek z własnym, niezależnym indeksem wyszukiwania
  • Wyszukiwarka Brave

A może coś z polskiego podwórka – SVMetaSearch? To tzw. metawyszukiwarka, która zaciąga wyniki z wielu innych wyszukiwarek jednocześnie, pozwalając wybrać źródła. Buduje również swój własny mini-indeks.

Wybierz to, co najlepiej odpowiada twoim potrzebom i trzymaj się z dala od Google.

Krok 3 – zainstaluj wtyczkę blokującą reklamy

Blokowaniu reklam poświęciłem cały wpis, skupiając się na przedstawieniu wtyczki zwanej „uBlock Origin”. Reklamy potrafią być irytujące, marnują nasz czas i wydłużają ładowanie stron. To zarazem jedna z rzeczy powszechnie akceptowanych w korporacyjnym Internecie, bez wyrazu sprzeciwu. Przy tym generują ogromną ilość śladu węglowego, zanieczyszczając naszą planetę, a nas pozbawiają prywatności.

Nie daj sobie wmówić, że ingerencja w działanie czyjejś strony w twojej przeglądarce jest czymś złym. Że twórca ma prawo zmusić cię do oglądania reklam. Przeglądarka jest twoja i masz prawo skonfigurować ją tak, jak tobie się to podoba, tak samo jak masz prawo wyprosić obcego ze swojego domu. Instalując bloker reklam, stawiasz na swoim, mówisz „w mojej przestrzeni cyfrowej rządzę ja”.

To pierwszy krok, w którym twoje dotychczasowe doświadczenia z Internetem zaczną się poprawiać. Do tej pory byłeś bombardowany krzykliwymi banerami starającymi się przyciągnąć twoją uwagę, wyskakującymi okienkami, powiadomieniami i autoodtwarzającym się wideo. Teraz (zwłaszcza gdy włączysz wszystkie filtry w UBO) znikną wszystkie rozpraszacze i zostaniesz z niemalże samą treścią. Początkowo może to wywołać lekki szok, ale niewątpliwie pozytywny.

Dodatkowo UBO ostrzega przed niektórymi stronami rozpowszechniającymi zainfekowane oprogramowanie. I – uwaga – można go zainstalować na urządzeniach mobilnych! (dzięki przeglądarce Firefox)

Jednocześnie, na tym etapie niektórzy będą starali się ciebie zawrócić, powiedzieć „zaraz zaraz, gości z adblockami nie wpuszczamy na imprezę. Albo wyłączasz, albo żegnam”. Działanie UBO możesz łatwo wstrzymać dla wybranych stron. Z czasem zaczniesz preferować serwisy, które nie czepiają się twojej konfiguracji przeglądarki.

Krok 4 – zmień przeglądarkę

Na początek wystarczy Firefox. Naprawdę.

Chrome vs Firefox
Ciemna strona – Manifest v3. Jak Google zabija blokowanie reklam

Poza działaniem w interesie użytkowników, Firefox ma jedną wielką zaletę – jest to jedyna przeglądarka, której wersja mobilna obsługuje wtyczki! Od niedawna wszystkie desktopowe wtyczki można zainstalować na mobilce i dzięki temu lepiej kontrolować strony otwierane na smartfonie.

I tutaj ponownie kilka stron może kręcić nosem, na szczęście obecnie zdarza się to coraz rzadziej.

Ciekawostka

Czy wiecie skąd strony wiedzą z jakiej przeglądarki korzystacie? Przeglądarki wysyłają im swoją „wizytówkę” – user agent.

User-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0

Jeśli przekonacie ją, aby przedstawiała się jako Chrome, te same strony, które twierdziły, że nie działają w tej przeglądarce, nagle zaczynają działać bez szwanku. Dziwne, prawda?

Możecie chcieć przenieść swoje zakładki i hasła. Firefox umożliwia taki import z innych przeglądarek. Zanim zdecydujecie się usunąć Chroma, powinniście ponownie się zalogować do wszystkich stron, oczywiście jeśli nie chcecie utracić dostępu do ważnych kont. Nic, rzecz jasna, nie stoi na przeszkodzie, aby trzymać je obie zainstalowane.

Krok 5 – przełącz się na alternatywnego klienta YouTube

Są 2 rodzaje oprogramowania sieciowego: serwerowe – zapewniające jakąś usługę, oraz klienckie – pozwalające się z nią połączyć. Np. przeglądarka www jest klientem, ale gdyby nie oprogramowanie na serwerze, mielibyśmy tylko interfejs, bez stron do przeglądania.

Działanie protokołu HTTP

W alternatywnym internecie ten rozdział jest bardzo silny, tymczasem w mainstreamowym – strony i aplikacje, przeglądarki i wyszukiwarki, wraz z firmami za nimi stojącymi, noszą jedną i tę samą nazwę. To powoduje liczne nieporozumienia, a prostowanie tego nie jest w interesie korporacji. Wolą, byśmy nie rozumieli, że klient jest niezależnym tworem i może zostać zastąpiony klientem pozbawionym ograniczeń producenta, a nawet z wartością dodaną.

NewPipe to nieoficjalny klient YouTube na system Android:

  • Nie ma żadnych reklam
  • Subskrybowanie kanałów i podział na kategorie
  • Dodawanie playlist do biblioteki i tworzenie własnych
  • Odtwarzanie w tle lub w trybie Picture-In-Picture
  • Pobieranie materiałów w wybranej jakości – wideo lub sam dźwięk – nawet napisy
  • Dostosowanie prędkości odtwarzania, wycinanie ciszy
  • Automatyczna kolejka
  • Transmisje na żywo
  • Jest lekki i szybki
  • Wspiera także platformy: SoundCloud, Bandcamp, media.ccc i PeerTube

Istnieje wersja tej aplikacji z tzw. SponsorBlockiem, czyli autopomijaniem sponsorowanych fragmentów filmu.

Minusy:

  • Brak logowania – subskrypcje i playlisty zostają na urządzeniu
  • Okazjonalne błędy wynikające ze zmian na stronie YouTube, naprawiane w kolejnej wersji


    InnerTune, jest to aplikacja do odkrywania i słuchania muzyki, podobna do Spotify, też de facto klient YouTube (Music). Zresztą niejedyny.

  • Ładny interfejs

  • Spersonalizowane sugestie

  • Ulubione utwory, albumy i wykonawcy

  • Tworzenie własnych playlist

  • Logowanie do konta Google.

  • Teksty piosenek.

Niektóre strony (tzw. proxy) pełnią rolę pośrednika, anonimizując przeglądanie, a przy okazji poprawiając czytelność i pozbywając się niepożądanych cech.

Często korzystanie z takich rozwiązań to łamanie regulaminu. Niedawno YouTube wypowiedział wojnę Invidious i zaczął blokować adresy IP znanych serwerów (należy zauważyć, iż nie jest to pojedyncza strona, a cała masa identycznych stron – serwerów z zainstalowanym oprogramowaniem Invidious). Blokada sprawia, że proxy przestaje działać dla wszystkich. Mimo przeciwności, Invidious wymyśla nowe sposoby na ominięcie blokady, co się chwali.

Oliwier Jaszczyszyn – YouTube odjaniepawla. Co z tym robimy? (Prawie) nic.

Czy ów wyścig zbrojeń będzie trwał wiecznie? Czy któraś ze stron w końcu odpuści? Większość serwerów Bibliogram, Nitter i Libreddit/Teddit – proxy do Instagrama, Twittera i Reddita – już padła. Nie wytrzymali oporu.

Proxy i alternatywne klienty to tylko powierzchowne rozwiązania. Leczenie objawowe. Tak czy inaczej nadal korzystamy z korpo-platform i powinniśmy mieć świadomość, że pewnego dnia nasze ulubione obejście może zostać zamknięte i wtedy zostaniemy postawieni przed ultimatum. Dlatego nasza wędrówka nie powinna się na tym zakończyć. Teraz będzie już tylko łatwiej.

Co zatem powinieneś zrobić? Zainstaluj NewPipe lub InnerTune, korzystaj z Invidious i ciesz się, póki działają. Z wtyczką Libredirect możesz ustawić automatyczne przekierowanie. Oto dwa z działających w chwili pisania serwerów:

Krok 6 – odkryj Nextcloud

Gdy byłem młodszy, byłem wielkim fanem Googla. Nie wyszukiwarki oczywiście, lecz firmy i jej produktów. Wiecie – dysku, map, tłumacza, kalendarza, etc., dostęp do wszystkich usług z jednego konta. Inne duże firmy też tworzą takie środowiska. W przyszłości chciałem nawet pracować w Google.

Czasy się zmieniły, dorosłem i dziś mam innego faworyta – jest nim Nextcloud oraz znacznie szersze uniwersum FOSS. To ekosystem zdolny zastąpić inny ekosystem przy odrobinie chęci. Poszczególne pod-usługi (tzw. “aplikacje”) instaluje administrator serwera.

  • Przechowywanie plików z zarządzaniem z poziomu przeglądarki, aplikacji lub menedżera plików
  • Przeglądarkę zdjęć
  • Kalendarz i kontakty
  • Notatki
  • Zakładki
  • Ankiety/formularze

W internecie znajdziemy różnych dostawców Nextcloud różniących się zestawem aplikacji, przestrzenią dyskową czy regulaminem. Jeśli posiadamy własny serwer, też możemy zainstalować na nim Nextcloud – ja tak robiłem w ramach eksperymentu.

Pliki i foldery możemy udostępniać generując link i dostosowując uprawnienia, oraz ustawiając hasło dostępu – idealnie nadaje się do dzielenia się materiałami na studiach. Podobnie można udostępniać kalendarze i przykładowo stworzyć terminarz egzaminów, który można zasubskrybować w telefonie przez ICS.

Udostępniony folder Mała ciekawostka: obrazki na tym blogu są hostowane w Nextcloud.

Nextcloud umożliwia zdalny dostęp do danych przez WebDAV. Jeśli odpowiednio skonfigurujesz menedżer plików, możesz wygodnie kopiować pliki na chmurę bez odpalania przeglądarki. W ten sam sposób ogarniemy synchronizację swoich kontaktów, kalendarza i zakładek, aby ich nigdy nie zgubić. A w aplikacji mobilnej ustawimy automatyczny upload zdjęć z telefonu.

Nextclouda możesz wykorzystać do stworzenia ankiety. Co ważne, odpowiedzi wypełniających pozostaną poza zasięgiem Google czy Microsoftu – tylko ty i administrator serwera będą mieli dostęp.

Podsumowując: to jedno z najlepszych miejsc, gdzie może trafić ktoś opuszczający ekosystem Google. Polecam polski nch.pl (Nasza Chmura), utrzymywany przez FTdL (Fundacja Technologie dla Ludzi). Oferuje na start 15 GB za darmo. Jest to organizacja non-profit, ta sama co od pol.social. Jeśli uważasz, że robi dobrą robotę, rozważ jej wsparcie. Swojego Nextclouda mają także m.in. Disroot czy Hostux. Oprócz tego oferują inne alternatywne usługi, o których jeszcze napiszę.

Krok 7 – Pokaż innym, czego się nauczyłeś

Nie mamy reklamy, jeśli więc metody alternatywnego internetu mają trafić pod strzechy, sami musimy je reklamować tam, gdzie jesteśmy, czy to w przestrzeni cyfrowej, czy w świecie realnym. Bądźmy w tym szczerzy i naturalni, absolutnie nie chodzi bowiem o podbijanie statystyk, zdobywanie rynku czy zadowalanie inwestorów. W mojej liście celów znajdują się:

  1. Wskazanie rozwiązania problemu,
  2. Poszerzanie kompetencji cyfrowych u innych,
  3. Promowanie zdrowego stylu życia.

Nie jest to więc krok zupełnie przeciwstawny do kroku 1.

Wykorzystuj okazje:

  • Reklama przerwała muzykę na imprezie? → Wspomnij o NewPipe/InnerTune (Android) lub Invidious/uBlock Origin (web).
  • Udostępniasz katalog z plikami? → Wrzuć je na Nextclouda.
  • Zakładasz grupowy kalendarz? → Ponownie, Nextcloud.
  • Planujecie termin spotkania? → Powiadom wszystkich mailem.
  • Spotykacie się online? → Zaproponuj Jitsi. Oszczędzicie sobie logowania i limitów czasu.

Po co mailem?

Dla zachowania porządku. Ważne ogłoszenia mogą zgubić się pośród luźnych rozmów. Poza tym, dajmy szansę tym, którzy nie mogą lub nie chcą korzystać z korporacyjnego komunikatora. Dla wygody polecam Delta Chat. Możecie nawet przenieść tam całą swoją konwersację, ale to wymaga współpracy uczestników.

Co to Jitsi?

Platforma do wideokonferencji. Można w niej bez logowania utworzyć spotkanie i udostępnić link uczestnikom. Zawiera m.in. wbudowany czat, ankiety i umożliwia udostępnianie zawartości ekranu. Moderator może zabezpieczyć dostęp do spotkania hasłem lub ręczną akceptacją.

Przykładowe serwery: – calls.disroot.orgjitsi.tildeverse.orgmeet.techsaviours.org

Niestety nie na wszystko będziemy mieć wpływ, nie zawsze też inni zaakceptują nasze rozwiązania. Może się zdarzyć tak, że pewne narzędzia będziemy mieli narzucone odgórnie, przez szkołę lub pracodawcę. Ale warto podejmować próby, nie wszystko przecież okaże się barierą nie do przejścia.


Napisanie kompletnej listy kroków do osiągnięcia wolności cyfrowej nie byłoby możliwe. To nieustanny rozwój, mnóstwo nowych możliwości i technologii, które warto poznawać i promować, zamiast zamykać się na kilka popularniejszych aplikacji.

Wiemy, że strony www które widzimy w przeglądarce to pliki HTML, które mogą być statyczne lub generowane na żądanie. W zamierzchłych czasach, gdy większość polaków nie miała dostępu do internetu, ale niektórzy mieli w domu komputer, funkcjonowały tzw. „kafejki internetowe” – miejsca w których za opłatą można było skorzystać z komputera z internetem – coś a'la publiczne komputery w bibliotece.

Kafejka internetowa w Bielsko-Białej (2014)

Z takiej kafejki korzystałem swego czasu i ja. Zapisywałem sobie rzeczy do wyszukania w internecie i raz na tydzień szedłem z pendrivem 1 GB, ściągałem strony i czytałem na spokojnie w domu. Wiecie, stronę można było zapisać (naciskając ctrl-s w przeglądarce) i później otworzyć ją offline. O ile linki nie działały, zachowywał się tekst i obrazki. Zapisana strona mniej-więcej przypominała wersję online. Sądzę, że nie tylko ja tak robiłem.


Dziś zapisywanie stron jest już niemodne. Zwyczajnie nie ma takiej potrzeby, wystarczy zakładka. Chyba, że spodziewamy się w najbliższym czasie odcięcia od sieci, np. lotu samolotem, przejazdu pociągiem czy wyjazdu za granicę.

Z powodu małego zapotrzebowania na ten feature, funkcja ctrl-s w przeglądarkach to już relikt przeszłości, a developerzy nie biorą tego pod uwagę przy projektowaniu. Sprawdźcie sami – o ile Wikipedia po zapisaniu wygląda niemal identycznie, wiele nowoczesnych stron w najlepszym wypadku traci style:

Dokumentacja mermaid bez css-a

A w najgorszym jest całkowicie pozbawiona treści:

Lista serwerów DNScrypt bez JS-a

Jeśli kogoś tu interesuje techniczne wyjaśnienie, nie zapisano istotnych zasobów zewnętrznych, tylko sam „szkielet”. Jak ładuje się coś dynamicznie (można to poznać po sygnalizowaniu wczytywania lub aktualizacjach na żywo), to najprawdopodobniej przeglądarka tego nie zapisze. Tak więc posty na socialach, jednoosobowe gry i inne apki webowe, nie ruszą.

Co zatem możemy zrobić?

Najłatwiej zrzut ekranu. Faktycznie, to właśnie zrobi większość osób. Opcja ta ma kilka zalet, m.in. łatwość zrobienia, wysłania i otwarcia, ma również mnóstwo wad:

  • nie można kopiować ani przeszukiwać tekstu,
  • kompresja utrudniająca przeczytanie przy długich zrzutach,
  • rozmiar pliku,
  • brak interaktywności.

Jeśli kiedyś dostaliście snipetkę kodu w formie graficznej, wiecie jakie to potrafi być irytujące. Jednocześnie jest to całkiem niezły sposób na omijanie zautomatyzowanej cenzury.

Można stworzyć PDF-a. Wciskamy ctrl-p (jak print) i wybieramy drukowanie do pliku. Zalety:

  • przenośność,
  • niewielki rozmiar w porównaniu z grafiką rastrową,
  • klikalne linki,
  • strony mogą dostosować swój wygląd pod drukowanie (wada jeśli używane złośliwie),
  • generowane z już wyświetlanej strony po załadowaniu dynamicznej treści.

Wady:

  • kopiowanie bywa uciążliwe (lubią pojawić się dodatkowe białe znaki),
  • wymuszony podział na strony,
  • nie nadaje się do stron interaktywnych.

Logo SingleFile SingleFile

SingleFile zrzuca całą zawartość strony do jednego, samo-rozpakowującego się pliku HTML, którego stan odpowiada stanowi Dla zmniejszenia rozmiaru domyślnie pomija zapis audio i wideo.

W ustawieniach można włączyć zapis JavaScript (sieć/skrypty), niezbędny do działania aplikacji webowych, ale mogą występować błędy.


Pozwólcie, że pokażę wam coś tak niewiarygodnego, że wam szczęka opadnie. Gdybym sam tego nie sprawdził, nie uwierzyłbym.

Magiczny plik PNG

💡 Kliknij aby przejść do strony pobierania

Zapiszcie sobie ten obrazek i spróbujcie otworzyć. OK, a teraz zmieńcie rozszerzenie na html i spróbujcie otworzyć.

Zaskoczeni? Na tym nie koniec. Teraz zmieńcie rozszerzenie na zip i otwórzcie.

Za każdym razem plik otwierał się poprawnie: jako obrazek, strona www i archiwum z plikami strony.

Jak?!

🛑 Uwaga: niskopoziomowe wyjaśnienie i zagłębianie się w binarną strukturę pliku!

Pierwsze 8 bajtów, to sygnatura PNG – jest ona stała dla każdego pliku tego typu. Reszta pliku to następujące po sobie ramki:

  • 4 bajty – długość danych
  • 4 bajty – typ ramki
  • dane
  • 4 bajty – suma kontrolna CRC

Pierwsza ramka to IHDR (ang. Image Header). Zawiera metadane grafiki: wymiary, kolory, kompresja, etc. niezbędne do prawidłowego wyświetlenia. Po niej następuje ramka tTXt – ramka tekstowa. W niej znajduje się początek HTML-a:

<html data-sfz><meta charset=windows-1252><title></title><meta name=viewport content="width=device-width, initial-scale=1"><body hidden><!--

Z uwagi na poprzedzającą zawartość, nie jest to prawidłowy plik HTML, ale przeglądarki są bardzo tolerancyjne. <!-- oznacza początek komentarza. W tym miejscu kończy się też ramka tekstowa. Dla przeglądarki dalsza treść do odwołania będzie nieistotna.

Następnie mamy sRGB – przestrzeń kolorów, a potem od 0xCA do 0x88A8 to już skompresowane piksele (IDAT). Ciekawostka: cały plik łącznie z zip-em waży 140 kB. Bez kompresji PNG same piksele ważyłyby 2 MB.

Aż dochodzimy do kolejnego pola tTXt stanowiącego większość pliku. Tutaj komentarz HTML-a się zamyka i wstawiony zostaje zminifikowany kod JavaScript (około 47 kB), który wyciąga ze znajdującego się dalej ZIP-a poszczególne pliki do pamięci i składa z nich stronę.

--><script>var e,t;e=this;t=function(e)
...
</script><!--PK

PK\x03\x04 sygnalizuje ramkę ZIP-a. Specyfikacja tego formatu pozwala, aby przed pierwszą ramką i za ostatnią znajdowały się dowolne dane. Program od archiwów po prostu je zignoruje, szukając sygnatury ZIP-a. Tak więc jest to prawidłowy plik ZIP. Nie będziemy się w niego bardziej zagłębiać, ponieważ nie to tutaj znaczenia.

Podsumowując, struktura zagadkowego pliku przedstawia się następująco:

  • sygnatura PNG
  • ramka IHDR
  • ramka tTXt
    • HTML
  • ramka sRGB
  • 5 ramek IDAT
  • ramka iTXt
    • HTML
      • ZIP
  • ramka IEND

Przy czym nie jest to prawidłowy kod HTML. Nie trzyma się standardowej struktury. Mimo wszystko – działa.


Wracamy na wysoki poziom!


Plik ten pochodzi stąd: https://gildas-lormeau.github.io i przy pomocy wtyczki SingleFile sami możemy je wytworzyć z dowolnej strony!

  1. Wchodzimy w ustawienia wtyczki, w zakładkę format pliku.
  2. Wybieramy format „samorozpakowujący się ZIP (uniwersalny)
  3. Zaznaczamy niedołączanie danych po ZIP i osadzanie obrazu.

Niestety muszę was rozczarować – wtyczka nie zrobi za was zrzutu ekranu zapisywanej strony, tylko poprosi was o obrazek do osadzenia. Nie działa to też w każdym przypadku, zdarzają się błędy i glitche, jako że funkcja ta została stworzona niedawno. Osobiście trzymam ją wyłączoną.

Obsługiwane są nawet zaszyfrowane archiwa i je również można otworzyć w przeglądarce!

Program do archiwów pyta o hasło Przeglądarka prosi o hasło

Opcji konfiguracji i automatyzacji jest naprawdę wiele. Można np. ustawić automatyczne wysyłanie zapisanych stron do chmury, autozapis stron dodanych do zakładek albo zamykanie karty po skończonym zapisie. Łatwo jest też zapisać wiele stron naraz.


A wracając do głównego wątku, jest jeszcze jeden warty odnotowania sposób zapisu stron offline, tym razem z wszystkimi linkami. Przypuszczalnie to właśnie z tego narzędzia korzystają cyberprzestępcy tworząc idealne kopie popularnych serwisów internetowych. Cóż, u nas podobne strony są na porządku dziennym – są przecież setki identycznych instancji Mastodona, Invidiousa czy Nextclouda i jakoś nikt nie próbuje logować się na nie-swoim serwerze. Zawsze sprawdzamy domenę, VPN-a i czy nie ma wycieków DNS-a.

To są tematy, które planuję poruszyć w kolejnych wpisach, a o HTTrack wspomnę może innym razem. Jeśli podobał ci się ten wpis, pamiętaj, że możesz otrzymywać powiadomienia o kolejnych, subskrybując mój kanał RSS. Jest to całkowicie anonimowe, a ja nie mam żadnych statystyk ile osób mnie subskrybuje. Jak zauważyłem, wyszukiwarki straciły już zainteresowanie moją stroną, a ja zamierzam tworzyć treści nie pod nie, ale dla was, dlatego zachęcam również do dzielenia się opinią zwrotną w komentarzach.

Które zdjęcie lepsze?

Spider's Web – bez filtra

Spider's Web – z filtrem

Oba zdjęcia przedstawiają tę samą stronę Internetową.

Na pierwszym, stronie pozwolono robić co chce. Została przewinięta, bo cały ekran wypełniały billboardy i inne zbędne elementy. Ma również zamiar wysyłać powiadomienia, by non-stop serwować użytkownikowi świeży content.

Na drugim, aktywowano uBlock Origin (patrz: czerwona ikonka na pasku przeglądarki), pilnujący, by strona nie pozwalała sobie na zbyt wiele. Użytkownik nie jest rozpraszany, może skupić się na czytaniu.

Kolejny przykład:

TechRadar – bez filtra

TechRadar – z filtrem

💡 Kliknij aby powiększyć.

Zmierzyłem, ile danych zużywa się na załadowanie strony i jej wagę po odcięciu balastu. Różnica jest przytłaczająca – ponad 85% transferu stanowią reklamy i skrypty śledzące. Zaledwie 7% zapytań było związanych z treścią, którą zainteresowany jest użytkownik – tekstem, obrazkami i menu.

Wiecie, ile to jest 23 MB? 40 minut słuchania muzyki. 80-sekundowy filmik w jakości 720p. Lub wczytanie pojedynczej strony z korpo-netu. Nim użytkownik zdążył podjąć jakikolwiek wybór w kwestii swojej prywatności (którą strona rzekomo ceni), szczegółowe dane o jego wizycie już zostały przetworzone przez setki podmiotów.

Takie przestępstwo jest niezwykle powszechne, lecz administratorom uchodzi na sucho, bo mało kto wie jakie prawa mu przysługują i mało komu chce się fatygować do UODO z pisemną skargą.

Prawo prawem, a strony mają techniczną możliwość komunikowania się z kimkolwiek, kiedykolwiek (patrz: AJAX z poprzedniego wpisu). Mogą też wiele innych rzeczy. Choć przy pomocy dodatków, można w swojej przeglądarce ustanowić własne zasady. Tym akcentem rozpoczynamy serię o dodatkach (zakładam, że masz Firefoxo-podobną przeglądarkę? 😉)

uBlock Origin

To absolutne minimum. Z tą wtyczką jest choć odrobinę zaznajomiony każdy obywatel alternatywnego internetu, aby mógł bez przeszkód surfować po niebezpiecznych zakamarkach sieci. Specjalizuje się (jak wskazuje nazwa) w blokowaniu, które realizuje się na 2 poziomach:

  1. sieciowym – zatrzymywanie żądań HTTP zanim zdołają wyrządzić szkodę,
  2. html-owym – ukrywanie elementów spełniających określone kryteria.

Reguły filtrowania definiują tzw. listy filtrów. Polecam wejść w opcje i zaznaczyć wszystkie listy, w tym elementy irytujące: czatboty, newslettery, powiadomienia, „ciasteczkowe pop-upy” i te o apkach mobilnych – są to rzeczy, które nas niepotrzebnie spowalniają.

Warto też zaznaczyć listy stron phishingowych i ze złośliwym oprogramowaniem. Nie jest to oczywiście panaceum, ale nie zaszkodzi mieć ten dodatkowy środek ostrzegawczy. Brakujące listy zostaną pobrane.

Nie podoba nam się jakiś element? Klikając ikonę pipety przechodzimy w tryb zaznaczania elementów na stronie. Po kliknięciu któregoś z nich, pokaże się okno dialogowe, w którym suwakiem wybieramy jak wiele chcemy usunąć. Zwróćcie uwagę na klasy obiektów – czasami mają czytelną nazwę, jak .cookie-banner czy .ad-video. Po zatwierdzeniu zostanie dodana nowa reguła.

Czy to bloker reklam?

Niezupełnie. Zależy kogo spytasz. Niektórzy nawet podstawową ochronę przed śledzeniem wbudowaną w przeglądarkę uważają za blokowanie reklam. Faktycznie, w większości przypadków wyświetlenie reklamy oznacza załadowanie wielkiej i ciężkiej korpo-machiny, która tą reklamę wybierze w oparciu o posiadaną wiedzę na temat docelowego odbiorcy i dołoży kilka nowych cegiełek. Właśnie te machiny są celem uBlock Origin. Zniknięcie reklam odbywa się niejako przy okazji, co dla wielu stanowi cel sam w sobie.

Co ciekawe, kilka najpopularniejszych blokerów reklam, tych które wyskakują na początku wyników wyszukiwania, są mniej skuteczne. Należą do programu acceptable ads, który dopuszcza pewne kategorie niezbyt inwazyjnych reklam. Niestety program ten ogranicza się jedynie do sfery wizualnej, z pominięciem aspektu prywatnościowego. Nasza wtyczka sięga głębiej, do źródła (origin) problemu.

Z drugiej strony, jeśli zamieścisz na swojej stronie klikalny baner lub sponsorowane treści, uBlock Origin ich nie zablokuje. Bo nie taka jest jego rola.

uBlock Origin is not just an “ad blocker“, it's a wide-spectrum content blocker with CPU and memory efficiency as a primary feature.

źródło: strona projektu

Co z finansowaniem twórców?

Nie wspomniałem, że w monopolu Google i Facebooka na rynku AdTech, na koniec przekazują symboliczną kwotę do portfeli autorów stron. Gdyby tego nie robili, świat byłby piękniejszym miejscem, nikt bowiem nie umieszczałby u siebie AdSense ani Facebook Ads. Być może rozwinęłaby się technologia reklamy kontekstowej niewymagającej analizowania aktywności.

Jakiś alternatywny model finansowania jest potrzebny, a obecny system narusza prawa człowieka i nie powinien być wspierany. Jeśli jesteś twórcą, rozważ umożliwienie użytkownikom wspierania cię w inny sposób, np. przez darowizny. Są do tego usługi takie jak Patronite, LiberaPay czy buycoffee.to. Za określone kwoty wsparcia możesz oferować nagrody, takie jak dostęp do ekskluzywnych treści, spotkań online lub wpisanie imienia i nazwiska wspierającego na końcu materiału.

A nade wszystko, nie zmuszaj do wyłączania adblocka i innych zabezpieczeń. Nie mów, z jakiej mają korzystać przeglądarki. Generalnie nie zniechęcaj do przychodzenia do ciebie, ani nie sprawiaj, że osoby odwiedzające twoją stronę czują się przytłoczone nadmiarem bodźców, lecz traktuj ich z szacunkiem, tak jak sam chciałbyś być traktowany. Dobro powraca. Twórz fajne treści, realizuj swoje pasje, ciesz się życiem. 🙂

Konkluzja

Jeśli jeszcze nie próbowałeś, z całego serca polecam ci przez tydzień korzystać z Internetu z włączonym filtrem. To proste: wejdź na stronę ublockorigin.com i pobierz wersję wtyczki do swojej przeglądarki. Zobaczysz zupełnie inny Internet.

Bądź przygotowany na to, że dla niektórych stron staniesz się rebeliantem i będą starały się ciebie nakłonić do zrobienia dla nich wyjątku. Zanim jednak go zrobisz, najpierw rozważ, czy aby na pewno taka strona zasługuje na twoją uwagę?

Na podstawie:

WWW/w3 (ang. World Wide Web) – internetowy system organizacji informacji składający się z dokumentów tekstowych w formacie html. Dokumenty te mogą zawierać odnośniki do innych dokumentów, również na innych serwerach, dzięki temu, że każdy dokument posiada unikalny adres URL. Przykładowo adres:

https://writefreely.pl/anedroid/www

wskazuje na dokument:

  • o ścieżce „/anedroid/www”,
  • na serwerze writefreely.pl.

Przeglądarka www – program, który przy pomocy protokołu http pobiera wybrany dokument z serwera i go wyświetla. Przykładem takiego programu jest LibreWolf.

HTML (ang. HyperText Markup Language) – język opisu dokumentów pozwalający m.in. na formatowanie tekstu, zamieszczanie w nim obrazków ładowanych ze wskazanego adresu URL i elementów interaktywnych, np. formularzy w celu przesłania na serwer danych wprowadzonych przez użytkownika.

<!DOCTYPE html>
<html>
<head>
<meta name="author" content="anedroid">
<title>Przewodnik po alternatywnym internecie</title>
</head>
<body>
<h1>Nagłówek 1-go stopnia</h1>
<p>Treść pierwszego akapitu</p>
<p>Treść drugiego akapitu z <b>pogrubionym tekstem</b></p>
<a href="https://internet-czas-dzialac.pl">link do zewnętrznej strony</a>
</body>
</html>

Wyżej przykładowy dokument HTML zawierający: metadane (autor i tytuł), nagłówek, 2 akapity i odnośnik. Wyprodukuje następującą stronę:

Nagłówek 1-go stopnia

Treść pierwszego akapitu

Treść drugiego akapitu z pogrubionym tekstem

link do zewnętrznej strony


HTTP (ang. HyperText Transfer Protocol) – protokół typu klient-serwer. Umożliwia m.in.:

  • określenie rozmiaru dokumentu i wznowienie przerwanego pobierania,
  • tzw. wirtualny hosting (wiele domen w obrębie jednego serwera),
  • wysyłanie plików na serwer,
  • uwierzytelnianie klienta loginem i hasłem,
  • sygnalizowanie błędów kodami odpowiedzi (np. kod 404 – strona nie istnieje).

Aby wyświetlić stronę www, przeglądarka:

  1. Sprawdza odpowiadający domenie adres IP w rejestrze DNS. Domena to np. writefreely.pl, a adres IP to 195.117.15.126. Serwer DNS przechowuje u siebie tabelę takich powiązań, dzięki czemu możemy mieć czytelne linki bez ciągów liczb.
  2. Nawiązuje połączenie z serwerem o tym IP i wysyła żądanie zawierające ścieżkę do żądanego pliku + nagłówki HTTP z dodatkowymi informacjami (np. preferowany język).
  3. Serwer odsyła kod odpowiedzi, własne nagłówki oraz treść dokumentu (albo i nie). Kod odpowiedzi mówi, czy wszystko poszło ok lub jakiego rodzaju problem wystąpił. W nagłówkach odpowiedzi może być np. format pliku (html, jpeg, pdf, etc.)
  4. Przeglądarka przetwarza otrzymany kod HTML na jego graficzną reprezentację.
  5. W dokumencie mogą być osadzone elementy wskazane adresem URL (np. obrazy). Przeglądarka wykonuje kolejne żądania dla każdego z tych elementów.

HTTP jest protokołem tekstowym – komunikację przeglądarki z serwerem można podejrzeć i przeanalizować. Oto przykładowe żądanie HTTP:

GET /wiki/Domain_Name_System HTTP/2
Host: en.wikipedia.org
User-Agent: curl/8.2.1
Accept: */*
Accept-Language: en-US,en;q=0.5

A to jest fragment odpowiedzi:

HTTP/2 200
date: Fri, 23 Feb 2024 04:15:21 GMT
content-language: en
content-type: text/html; charset=UTF-8
content-length: 282749

<!DOCTYPE html>
...

Odpowiedź może być generowana dynamicznie, np. na podstawie zawartości bazy danych i/lub danych dostarczonych przez użytkownika (tak działają np. wyszukiwarki). Do generowania odpowiedzi wykorzystuje się skrypty CGI – programy uruchamiane przy każdym żądaniu, których wyjście jest odsyłane do przeglądarki.

Mamy więc 2 rodzaje stron www: statyczne i dynamiczne. Zazwyczaj strony zawierają powtarzające się fragmenty, jak nagłówek, stopka czy spis treści. Dla łatwiejszego zarządzania, albo są one sklejane „w locie” z treścią dokumentu (pseudostatyczność), albo automatyzuje się przygotowywanie takich plików jakimś systemem szablonów.

Generator stron statycznych – program, który wstępnie wytwarza kod HTML i inne pliki składające się na stronę www na podstawie plików źródłowych, szablonów i zdefiniowanej konfiguracji. Przykładem takiego programu jest Hugo.

Ponieważ przeglądarka „widzi” tylko rezultat przetwarzania, dopóki nie jest się właścicielem serwera, nie można ze stuprocentową pewnością odróżnić tych dwóch typów stron.

Skąd TO się wzięło?

Idea sieci www (jest to sieć za sprawą odnośników łączących dokumenty HTML) zrodziła się około 1990 roku w ośrodku naukowym CERN, a jej autorem jest Tim Berners-Lee. Pierwotnie system miał służyć celom naukowym – aby koordynować działania współpracowników między ośrodkami i umożliwić dzielenie się projektami, wynikami badań czy pomysłami.

Przeglądarka Mosaic

W owym czasie funkcjonowało kilka podobnych systemów, zwłaszcza Gopher. Oba standardy były obsługiwane przez pierwsze przeglądarki, a strony z obu systemów linkowały do siebie nawzajem.

Powyższy zrzut przedstawia Mosaic – pierwszą graficzną przeglądarkę, powstałą w 1993 roku. Okazała się strzałem w dziesiątkę i bezpośrednio przyczyniła do sukcesu www, który stał się najpopularniejszym typem usługi internetowej.

O tym, jak to poszło w złą stronę

Przez kolejne lata można obserwować, jak do standardów www dokładane jest coraz więcej rzeczy.

  • CSS (ang. Cascading Style Sheets) (nie mylić z: Content Scrambling System) – język stylowania. W arkuszu stylów wybiera się elementy spełniające określone kryteria za pomocą selektorów, a następnie ustawia ich właściwości, takie jak: czcionka, tło, obramowanie, wymiary i marginesy, ułożenie w stosunku do innych elementów, a nawet animacje i przejścia tychże parametrów. Bywa upierdliwy ze względu na swoje czasem nieoczekiwane zachowanie.
  • Applety – osadzone w dokumencie aplikacje Flash Playera. Przez lata wykorzystywane do odtwarzaczy wideo i gier online, obecnie nieużywane i niewspierane przez przeglądarki.
  • Ciasteczka – porcje danych, na żądanie serwera zapisywane przez przeglądarkę i odsyłane z każdym zapytaniem w nagłówku HTTP Cookie, dzięki którym serwer może dostosować swoją odpowiedź. Wykorzystywane do zapamiętywania preferencji użytkownika, utrzymywania zalogowanej sesji i... śledzenia.
  • Referer – nagłówek HTTP mówiący, jaki jest adres URL strony, z której się przeszło na obecną stronę. Powoduje wyciek części historii przeglądania.
  • User Agent – nagłówek HTTP mówiący, z jakiej przeglądarki na jakim systemie operacyjnym zostało wysłane żądanie. Np. Mozilla/5.0 (X11; Linux x86_64; rv:123.0) Gecko/20100101 Firefox/123.0 (Firefox 123.0, Linux 64-bitowy). Stworzony w celu dostosowania strony do różnych przeglądarek (różniących się obsługiwanymi funkcjami), obecnie używany głównie do dyskryminacji.
  • JavaScript (nie mylić z: Java) – język programowania. Skrypty osadzone w dokumencie HTML zostaną automatycznie uruchomione w przeglądarce po załadowaniu. Mogą modyfikować wyświetlany dokument i reagować na zdarzenia typu scrollowanie, kliknięcie, etc. Mają dostęp do wielu interfejsów przeglądarki, a ich moc stale rośnie. Początkowo stanowiły jedynie dodatek, dziś – wiele stron w ogóle nie działa bez JavaScript.
  • AJAX (ang. Asynchronous JavaScript and XML) – możliwość wysyłania żądań przez JavaScript w czasie rzeczywistym, nie tylko w momencie kliknięcia w link lub wysłania formularza.
<div id="content">wczytywanie...</div>
<noscript>Musisz włączyć JavaScript aby korzystać z tej strony</noscript>

<script>
fetch("https://example.com/article.json")
.then(data => data.json())
.then(data => {
    const content = markdownToHTML(data.content);
    document.querySelector("#content").innerHTML = content;
});
</script>

Przykład strony, która nie zadziała bez JavaScript. Pobiera treść w tle i zamiast budować HTML na serwerze, robi to w przeglądarce.

  • Odtwarzanie wideo i audio.
  • Canvas i WebGL – Renderowanie grafiki 2D i 3D w przeglądarce, np. gier wideo. Pomiędzy obrazami renderowanymi przez różne karty graficzne występują subtelne różnice. JavaScript może zapisać otrzymany obraz z Canvas i wykorzystać go do fingerprintingu – jeszcze skuteczniejszej identyfikacji urządzenia niż ciasteczka. Canvas wcale nie musi wyświetlić się na ekranie.
  • WebRTC (ang. Real Time Communication) – transmisja obrazu i dźwięku lub innych danych. Przydatna przy aplikacjach do wideorozmów lub wspólnej pracy nad dokumentem. Skutek uboczny: wyciek lokalnego adresu IP.
  • PWA (ang. Progressive Web Apps) – we wspieranych systemach strona www instaluje się jako aplikacja (z ikoną na pulpicie) i potrafi działać offline. Fajna alternatywa dla aplikacji mobilnych, szkoda że tak mało usług online z tego korzysta.
  • Web Bluetooth i WebUSB – od teraz instalację GNU/Linuxa można przeprowadzić z przeglądarki!
  • DRM (ang. Digital Rights Restrictions Management) – system blokujący pobieranie treści multimedialnych, dając ich posiadaczowi pełną kontrolę nad tym, w jaki sposób korzystają z nich użytkownicy. Bardzo trudny w obejściu, ulubiona zabawka różnych serwisów streamingowych.

Lista jest naprawdę długa, trudno jest nawet przypomnieć sobie o wszystkich funkcjach, jakie oferuje web. To zagrożenie dla konkurencji na rynku przeglądarek: wszystkie (z wyjątkiem Firefoxa) są zbudowane na silniku Chromium. Stworzenie nowego silnika byłoby niewyobrażalnie kosztowną inwestycją. Jak zaimplementować te dziesiątki funkcji, których użytkownicy oczekują?

Pominąłem fakt, że w międzyczasie strony „nauczyły się” wysyłać nam powiadomienia push, sprawdzać czy przełączyliśmy karty, wykrywać blokowanie reklam, zaglądać w listę zainstalowanych czcionek, poziom naładowania baterii, liczbę rdzeni procesora, i wiele, wiele więcej. Każda kolejna funkcja to kolejne potencjalne pole do nadużyć. A niestety wyścig zbrojeń nie przewidział problemów takich jak prywatność, dostępność, bezpieczeństwo czy kontrola użytkownika nad technologią.

Co więcej, świadomi użytkownicy blokujący to czy tamto, aby ograniczyć ilość zbieranych o nich danych, uwolnić się od rozpraszaczy, czy choćby zaoszczędzić transferu zużywanego na megabajty skryptów śledzących, sami mają [większą szansę bycia zablokowanym].

Blokada Cloudflare Blokada YouTube

Oto co stało się z system, który od początku miał być otwarty, zdecentralizowany i sprzyjać nauce przede wszystkim.

Konkluzja

Podsumowując, www przekształcił się z sieci dokumentów elektronicznych w sieć aplikacji. Nie da się zaprzeczyć, że wiele z dodanych funkcji przyniosło dużo korzyści. Na przykład dostęp do świata cyfrowego bez względu na urządzenie. Jednak wdrażanie tych funkcji nie było dość przemyślane i w konsekwencji Internet stał się miejscem bardzo nieprzyjaznym dla użytkownika.

Oczywiście wciąż są serwisy, które szanują nasze prawa i nie wykorzystują mechanizmów www przeciwko nam. Gdy nas blokują, domagając się akceptacji ich warunków, możemy zareagować na 2 sposoby:

  1. Zrobić co nam każą – wyłączyć adblocka, wyłączyć VPN-a, nie używać „nietypowych” przeglądarek, założyć konto, podać numer telefonu i zainstalować aplikację mobilną na niezmodyfikowanym Androidzie, a najlepiej iOS-ie.
  2. Trzymać się tych usług, które nas nie blokują i nie utrudniają nam życia z wyżej wymienionych powodów. Niewielu jest takich, którzy wybierają tę ścieżkę. Tylko ci, którzy mają w sobie dość odwagi, determinacji, tęsknią za wolnością i nie stracili nadziei, opowiedzą się po stronie alternatywnego internetu.

Co daje się we znaki, to to, że coraz trudniej jest pozostać neutralnym. Trzeba coś wybrać. Przepaść dzieląca dwie strony internetu, stale rośnie.

W następnym wpisie opowiem o kilku przydatnych wtyczkach przeglądarkowych, które pomogą choć trochę poprawić warunki na tych mniej przyjaznych stronach. Zachęcam do komentowania i obserwowania mnie na RSS-ie.


Opracowano na podstawie:

Schemat pokazujący platformy fediversowe

Fediverse (ang. federated universe), jest to przeniesienie idei poczty elektronicznej na platformy społecznościowe, z tą różnicą, że wspólny protokół nie służy w tym przypadku prywatnej komunikacji, lecz interakcji z publicznymi treściami. Podobnie, profile mają swoje adresy, np. @anedroid@wspanialy.eu odpowiada profilowi o nazwie anedroid na serwerze wspanialy.eu.

Jest to uniwersum, gdyż łączy różne platformy o różnych zastosowaniach: jedne służą do publikowania wideo, drugie do podcastów, a jeszcze inne funkcjonują jako fora dyskusyjne, blogi, etc.

Można powiedzieć, że to właśnie wokół fediverse kręci się zasadnicza część alternatywnego internetu. W tym miejscu pozwolę sobie przytoczyć niektóre z dziesiątek opisujących ten fenomen wpisów, od osób, które lepiej zbadały temat:

To pewna część linków, jaka pokazała się w moim czytniku RSS po wpisaniu słowa fediverse.


Czy coś mam do dodania od siebie? Mój profil to @anedroid@wspanialy.eu, niestety na Mastodonie (wciąż nie zdecydowałem się na coś mniej popularnego).

WriteFreely również jest częścią fedi; indywidualne wpisy można podbijać, jak również zaobserwować całego bloga – na dzień dzisiejszy robi tak 9 kont.

curl https://writefreely.pl/anedroid/szczesliwego-nowego-roku -H 'Accept: application/activity+json' | jq Na zdjęciu: jeden z wpisów w formacie ActivityPub, metoda odkryta dzięki m0bi

Jako że WriteFreely sam w sobie jest dość ubogi i jako autor nie widzę komentarzy pod wpisami, postawiłem na prowizoryczne wstawianie toota z hashtagiem #blogging i linkowanie do niego. Gdyby to była strona na WordPressie, mógłbym zintegrować komentarze z fediverse bez podpinania usług zewnętrznych dzięki odpowiedniej wtyczce. Ponownie, komentarz można wstawić z dowolnego serwera kompatybilnego z ActivityPub, niekoniecznie wspanialy.eu.


Osobiście jestem entuzjastycznie nastawiony do fediverse, które jest nam w stanie dać bardzo dużo interoperacyjności. Nie musimy być więcej uwiązani u jednego dostawcy, który trzyma wszystkie nasze kontakty. Coraz więcej organizacji społecznych, a nawet rządowych, zakłada tu swoje profile. I mam nadzieję, że stopniowo zwiększy się świadomość jego istnienia wśród globalnej społeczności.

Moim ulubionym projektem jest PeerTube, szkoda, że tak mało na nim polskich treści. Może pewnego dnia sam zacznę publikować tutoriale uzupełniające „przewodnik po alternatywnym internecie”?

To coś wspólnego z poprzednim wpisem. Pamiętacie moje spojrzenie na pocztę elektroniczną jako punkt styku w podzielonym Iinternecie? Dziś przedstawię wam komunikator, którym dotrzecie do każdego – nawet jeśli nie posiada tej aplikacji! Idealnie sprawdzi się przy braku wspólnego medium – częsty case w alternatywnym internecie, którego (póki co) wasi znajomi jeszcze nie odkryli.

🎁 Przy okazji, po raz pierwszy na łamach tego bloga, przygotowałem dla was ofertę specjalną, o której powiem pod koniec wpisu.


logo Delta Chat Delta Chat, to nietypowy klient poczty, który zamiast obskurnej skrzynki odbiorczej (u niektórych pełnej śmieci na dodatek), prezentuje nam interfejs znany z popularnych komunikatorów internetowych, czyniąc komunikację przez e-mail łatwiejszą i wygodniejszą niż kiedykolwiek wcześniej.

Aplikacja jest dostępna na platformy: 🤖 Android, 🍎 iOS, 🐧 GNU/Linux (wiele dystrybucji, jest nawet nieoficjalna wersja na Ubuntu Touch), 🪟 MS Windows i 🍔 MacOS. Można ją pobrać ze strony:

https://delta.chat

Po instalacji zostaniemy poproszeni o zalogowanie się do swojego konta pocztowego. Następnie możemy ustawić swoją nazwę i awatar. Aby zacząć rozmowę, wystarczy dotknąć ikonę '+' i podać adres e-mail lub wybrać osobę z kontaktów. Gdy odpowie na naszą wiadomość, zobaczymy ją jako dymek czatu.

🗄️ Jak Delta Chat utrzymuje porządek?

Nasza aplikacja tworzy specjalny folder na czaty i domyślnie ukrywa wiadomości przychodzące (potencjalny spam), chyba że zostały wysłane z „delty”. W ustawieniach możemy dostosować to zachowanie (opcja „pokaż klasyczne e-maile”):

  • Nie, tylko czaty – jak wyżej
  • Dla zaakceptowanych kontaktów – jeśli napisze do nas ktoś, z kim kontaktowaliśmy się wcześniej przez DC
  • Wszystkie – wyświetl wszystko, co trafia do skrzynki odbiorczej

🔒 Zabezpieczenia

Gdy obie strony korzystają z DC (lub innej aplikacji kompatybilnej ze standardem Autocrypt), automatycznie aktywuje się szyfrowanie. Szyfrowanie nie jest możliwe gdy druga strona tego nie obsługuje, dlatego też zwykłe e-maile nie są szyfrowane, co oznacza, że wasi dostawcy poczty mogą je przeczytać.

W kodzie QR zaproszenia poza adresem znajdują się też dane do weryfikacji bezpieczeństwa szyfrowania (czy ktoś nie zrobił sztuczki z podmianą klucza). Od niedawna zweryfikowane sesje oznakowane są zielonym symbolem.

Sesja zweryfikowana

Jeśli chodzi o wersję na Androida, jak w każdym szanującym się bezpiecznym komunikatorze, dostępna jest tu opcja włączenia FLAG_SECURE blokującej nagrywanie i zrzuty ekranu. Niestety brakuje wbudowanego zabezpieczenia aplikacji kodem PIN lub odciskiem palca.

Z innych feature'ów związanych z bezpieczeństwem:

  • eksport/import klucza prywatnego przez wiadomość konfiguracyjną Autocrypt,
  • znikające wiadomości i autousuwanie starych wiadomości z serwera,
  • kopia zapasowa czatów (oraz oczywiście, przywracanie).

🎉 Nie-zabezpieczenia

Delta Chat zawiera większość tego, czego możemy oczekiwać po tego rodzaju aplikacji, m.in przesyłanie zdjęć, nagrań głosowych i innych plików, powiadomienia push, czaty grupowe, awatary, ustawianie własnego tła.

Przy odczytanych wiadomościach pokazują się potwierdzenia odczytu. Ciekawostka: czysty e-mail posiada analogiczną funkcję, nie jest jednak często stosowana. W eksperymentalnych funkcjach znajdziemy m.in. reakcje, nie wszędzie jeszcze wspierane.

Czat z potwierdzeniami odczytu

Z innych funkcji:

  • globalne przeszukiwanie wiadomości,
  • zintegrowany widok multimediów i szybkie przewijanie między zdjęciami,
  • zintegrowana edycja (przycinanie, zakreślanie, blurowanie, etc.).

O ile aplikacja stara się wyświetlać powiadomienia, o tyle z ich docieraniem na czas bywa... różnie, w zależności od: serwera, platformy i... humorów Androida. Zaleca się włączenie „niezawodnego połączenia w tle”. I jak z każdym medium, warto pamiętać, aby nie polegać na powiadomieniach i okresowo sprawdzać, czy nie otrzymaliśmy nowej wiadomości – zwłaszcza jeśli nie działo się to od dłuższego czasu – tak jak okresowo sprawdzamy social media i pocztę. To niekoniecznie jest tak, że nikt do nas nie napisał.


WebXDC. Killer feature. „Web apps shared in a chat, with no logins, no coins and no platforms 🎉”.

Nie pytajcie mnie o rozwinięcie skrótu. To miniaplikacje które choć nie mają dostępu do sieci, mogą zamieszczać wiadomości kontrolne na czacie i w ten sposób na żywo aktualizować swój stan. Chyba najbardziej znanym przykładem jest gra Tower Builder, w której można zobaczyć, któremu z uczestników udało się zbudować najwyższą wieżę. Widziałem również m.in. kalendarz, „tablicę korkową”, czy ankiety.

Jeżeli umiesz we front-end, z zaledwie kilkoma dodanymi funkcjami API JavaScript możesz stworzyć własną mini-aplikację.

👨‍👩‍👧‍👦 Aspekty społeczne

Opisywana aplikacja to jeden z najlepszych przykładów tego, co można osiągnąć dzięki interoperacyjności i decentralizacji – dwóch filarów stanowiących podwaliny alternatywnego internetu. Zamiast wymyślać koło na nowo, buduje na pomysłach, technologiach i standardach znanych i stosowanych już wcześniej.

Aby wymienić tylko kilka:

  1. Autoconfig – autokonfiguracja klienta poczty stworzona przez Mozillę (wykorzystywana m.in. w Thunderbirdzie),
  2. PGP – szyfrowanie,
  3. Autocrypt – wymiana kluczy, konfiguracja nowego urządzenia,
  4. OAuth – uwierzytelnianie przez przeglądarkę, używane przez niektóre popularniejsze serwery pocztowe,
  5. IMAP IDLE – powiadomienia push i komunikacja w czasie rzeczywistym.

Kiedy jest taka potrzeba, DC definiuje własny standard – choćby wspomniany WebXDC czy też SecureJoin – protokół bezpiecznej wymiany kluczy w czatach grupowych. Niektóre z nich przyjęły się w innych aplikacjach 😄 (co stanowi o ich sukcesie).

Inne komunikatory przeważnie zamykają użytkowników w jednej bańce – niezależnie, po której stronie Iinternetu się znajdują ani czy są zdecentralizowane – ponieważ oczekują, że wszyscy będą używać tego samego.

Z doświadczenia wiem, jak niewiarygodnie trudne potrafi być przekonanie choćby części swoich znajomych do przejścia na cokolwiek innego niż Messenger. Niezależnie jak dobra nie byłaby to alternatywa, ludzie są z natury niechętni do zmian 😥. Nie chcą zakładać kolejnych kont i instalować aplikacji tylko dla jednej osoby. Delta Chat może być dobrym punktem startowym w dyskusji odnośnie alternatywnych technologii internetowych; nawet gdybym tylko ja miał z niego korzystać, i tak będę mógł pozostać w kontakcie ze znajomymi.

Ku przestrodze

Drugą równie kluczową cechą DC, a raczej technologii stojącej za nią, jest decentralizacja – niezależność infrastruktury od centralnego punktu awarii (ang. Single Point of Failure).

Posłużę się przykładem: w 2021 roku w wyniku błędu doszło do awarii serwerów Facebooka trwającej 6 godzin. 3 mld światowej populacji zostało odcięte od Messengera, WhatsAppa i Instagrama 😱. Najbardziej dotknęło to osoby, które nie posiadały zapasowych kanałów komunikacji.

Jednak awaria jednego z serwerów e-mail nie spowoduje zerwania łączności na całym świecie. Pozostali mogą bez przeszkód wysyłać i odbierać wiadomości, a ci, którzy utracili dostęp, mogą po prostu założyć nowe konto gdzie indziej i powiadomić swoje kontakty 👍.

➡ Nie można nikogo całkowicie wykluczyć z danej technologii. Nie trzeba zgadzać się na niekorzystne warunki jednego dostawcy. Jest pole do konkurencji.


Warto nadmienić, że Gmail lubi wrzucać do spamu maile z pomniejszych serwerów. Dlatego jeśli jesteś użytkownikiem Gmaila, sprawdzaj spam. Być może bez twojej wiedzy ktoś do ciebie napisał i został 🤐 ukarany za nieposiadanie skrzynki na jedynym słusznym serwerze. Rozważ też opcję przeniesienia konta. Dzięki temu:

  1. zadbasz o prywatność osób, z którymi się komunikujesz,
  2. wyróżnisz się z tłumu sufiksem swojego adresu,
  3. wesprzesz rozwój alternatywnego internetu.

✨✨ Oferta specjalna! ✨✨

Tylko dla subskrybentów mojego RSS-a

Jeśli z jakiegoś powodu nie możesz/nie chcesz logować się do swojej poczty w Delta Chat, nie ma problemu! Wystarczy że wejdziesz na stronę mailchat.pl i zeskanujesz kod QR, a automatycznie zostanie dla ciebie utworzone konto e-mail na serwerze specjalnie zoptymalizowanym pod czaty.

Usługa jest utrzymywana przez niejakiego Michała Nareckiego z alternatywnego internetu, użytkownika DC.

Zapasowy serwer: nine.testrun.org


Tak naprawdę oferta jest dostępna dla każdego za darmo, a subskrypcje RSS są anonimowe. Mój blog ukazał się w wynikach wyszukiwarek, ale tylko niektóre wpisy; to taki mały SEO-eksperyment, mam nadzieję, bez szkody dla czytelników. Artykuł niesponsorowany ✌️. Tutaj moim nadrzędnym celem jest edukacja i promowanie „zdrowego stylu życia” (cyfrowego). Postaram się też częściej publikować.

Trzymajcie się ciepło! 😊

O Delta Chat pisał Michał Narecki na swoim blogu:

E-mail (ang. electronic mail – poczta elektroniczna) to technologia zdecentralizowanej komunikacji mająca swoje początki na przełomie lat '70 i '80 jeszcze w sieci ARPANET będącej praprzodkiem Internetu, i powszechnie wykorzystywana do dzisiaj.

Serwery e-mail przesyłają wiadomości między sobą za pomocą protokołu SMTP (ang. Simple Mail Transfer Protocol), gdzie następnie oczekują na odebranie w skrzynkach pocztowych użytkowników.

Skrzynka pocztowa jest identyfikowana przez adres e-mail, mający postać nazwa@serwer. Dostęp do skrzynki jest chroniony loginem i hasłem. Zawartość skrzynki jest podzielona na foldery, z których często występujące to:

  • odebrane – trafiają tam domyślnie odebrane wiadomości,
  • wysłane – tu przechowywana jest kopia wiadomości wysłanych,
  • drafts – folder na wiadomości, których redagowanie nie zostało ukończone,
  • kosz – miejsce na wiadomości usunięte, może podlegać okresowemu czyszczeniu,
  • spam – tu trafiają wiadomości śmieciowe według filtrów serwera lub klienta.

Użytkownik może stworzyć więcej folderów i segregować swoją korespondencję.

Klient e-mail (MUA – Mail User Agent) – program w którym użytkownik może czytać i wysyłać pocztę i zarządzać nią. Klient uzyskuje dostęp do skrzynki za pomocą protokołu POP3 (dawniej) lub IMAP. Niektóre serwery po otrzymaniu wiadomości wysyłają powiadomienie push do klienta, co pozwala na bardziej niezawodne funkcjonowanie aplikacji takich jak Delta Chat, które nie muszą okresowo odświeżać poczty.

Wiadomość składa się z pola nadawcy, odbiorcy (odbiorców), tematu i zawartości. Może zawierać też inne metadane. Treść wiadomości może być w formacie czystego tekstu lub HTML (ten sam, w jakim są tworzone kanały RSS i strony www). Wiadomość może zawierać załączniki dowolnego typu. Serwery nakładają ograniczenia na wielkość wiadomości, dlatego większe pliki lepiej przesyłać w inny sposób.

Na wiadomości można odpowiadać, tworząc wątki.

Zastosowanie, kwestie prywatnościowe i wielka zaleta decentralizacji

Trudno byłoby obecnie znaleźć internautę, który nie posiada konta mailowego. Niestety nie każdy wie, jak się nim posługiwać. Nieraz widywałem, jak ludzie mieli bałagan w skrzynce pocztowej, nie wiedzieli do którego folderu trafi wiadomość na którą oczekują, jak pobierać załączniki, etc. Obecnie zdecydowana większość maili w Internecie to wiadomości automatyczne, przeważnie zaliczające się do jednej z trzech kategorii:

  • kody i linki autoryzacyjne,
  • alerty bezpieczeństwa, powiadomienia,
  • reklamy.

Poprzez e-mail często przekazywane są informacje poufne, co wynika z założenia, że tylko właściciel skrzynki posiada do niej dostęp. Jednak ten system nie chroni przed administratorem serwera, który może przekazywać prywatną korespondencję organizacjom rządowym, analizować pocztę w celu profilowania (Gmail), karmienia wyszukiwarki linkami (Outlook) i wysyłać wiadomości jako któryś z użytkowników. A skoro może administrator, to i każdy kto włamie się do serwera i zdobędzie jego uprawnienia.

Niektóre instytucje (jak banki, korporacje czy operatorzy sieci komórkowej) szyfrują załączniki ustalonym z użytkownikiem hasłem. Zabezpieczyć można również treść główną wiadomości za pomocą PGP. Przy okazji wiadomości będą się automatycznie deszyfrować w kliencie poczty. Pisałem o tym w tym artykule.

Ponieważ maila w zasadzie każdy ma, warto wymieniać się adresami e-mail ze znajomymi, aby mieć zapasowy kanał komunikacji gdyby preferowane nowoczesne komunikatory padły. Zdecentralizowana natura e-maila sprawia, że gdy padnie jeden serwer, nie paraliżuje to całej sieci. Zaafektowani użytkownicy ponownie dołączą do sieci z innego serwera i powiadomią swoje kontakty o zmianie adresu e-mail. Tylko użytkownicy z jednego serwera nie będą mogli się odnaleźć (o ile nie mają zapasowych kanałów komunikacji). Dużą katastrofą mógłby być upadek Gmaila..., więc może lepiej unikać dużych serwerów?

Walka ze spamem

Jedną z dużych wad systemu e-mail jest jego podatność na spam. Spam zwiększa ryzyko zgubienia się ważnej wiadomości w morzu śmieci. Użytkownicy podają swoje adresy e-mail w wielu miejscach – aby się zarejestrować, zapisać na newsletter, odebrać paczkę... Skutkuje to tym, że adres e-mail ląduje w wielu miejscach, u wielu podmiotów. A wysłać maila może w zasadzie każdy, nie jest wymagane żadne zaproszenie i zaakceptowanie jak w social mediach. Jak w życiu. Równie łatwe jest przekazanie takiego adresu dalej.

I choć administratorzy prowadzą walkę ze spamem, utrzymując listy znanych spamerskich serwerów i kont, zaostrzając własny regulamin, czy jak Gmail – naznaczają wszystkie nowe serwery (ze szkodą dla reszty sieci), przyczyna spamu w skrzynce pocztowej to w dużej mierze zasługa użytkowników. Przedstawiam kilka rzeczy, które użytkownicy mogą zrobić, aby zmniejszyć (lub całkowicie wyeliminować) ilość spamu.

  1. Prowadzisz stronę www? Pamiętaj, że odwiedzają ją nie tylko ludzie. Jeśli zamieściłeś tam swój adres e-mail, rozważ wprowadzenie prostego zabezpieczenia, typu:
    • captcha: „ile jest 8+4*1?”, „zaznacz najbardziej podobny kolor”, „kliknij w gwiazdkę na obrazku”,
    • zapisanie adresu inaczej: „andrzej na serwerze disroot kropka org”, „andrzej_wytnij-to_@disroot.org”, wstawienie jako obrazek, etc.,
    • formularz kontaktowy z honeypotem, czyli ukrytą pułapką na boty niewidoczną dla zwykłych użytkowników (np. ukryty checkbox z napisem „akceptuję regulamin”).
  2. Przejrzyj spam, który otrzymujesz. Zwróć uwagę na nadawcę – może wystarczy go zablokować. Poszukaj na dole którejś z wiadomości link w stylu „zrezygnuj z subskrypcji” – może wystarczy go otworzyć.
  3. Rejestrujesz się w kolejnym serwisie? Jeśli nie zależy ci tak bardzo na tym koncie, rozważ skorzystanie z usługi typu disposable mail – w sieci www jest tego na pęczki. Dostaniesz skrzynkę pocztową o randomowym adresie na określony czas (godzina, doba, etc.) w celu rejestracji o potwierdzenia adresu. Pamiętaj, że ⚠️ nie będziesz mógł później zresetować hasła w danym serwisie, za to będzie mógł to zrobić administrator. W zależności od usługi, twoją skrzynkę może też otrzymać inny użytkownik.
    • Wyjątkiem jest stronka niepodam.pl – tam wszystkie skrzynki są publiczne!
  4. Niektóre usługi e-mail (czasem za dodatkową opłatą) oferują aliasy – dodatkowe adresy, które możesz podać zamiast twojego głównego. W razie napływu spamu można je odciąć. Dodatkowa zaleta – dowód gdy taki adres zostanie bezprawnie udostępniony stronom trzecim.
  5. Zapisujesz się na newsletter? A znasz stronkę Kill the Newsletter!? Wygeneruje skrzynkę pocztową i przekieruje pocztę przychodzącą na spersonalizowany kanał RSS, co pozwoli zintegrować newslettera ze swoim feedem. Skrzynka jest permanentna, więc nada się też do odzyskiwania haseł ze śmieciowych kont.
  6. Jeśli nic nie pomaga, sprawdź czy twój serwer umożliwia ustawianie własnych reguł filtrowania spamu. Spróbuj dodać kilka w oparciu o adres nadawcy, słowa w temacie lub treści. W aplikacji Thunderbird można takie filtry ustawić po stronie klienta („sprzątanie” uruchamia się przy starcie aplikacji).
  7. Broń ostateczna – nowe konto, powiadomienie kontaktów i przepisanie połączonych serwisów na nowy adres. Ważne wiadomości można wyeksportować.
  8. Procedury prawne, RODO? Prawo do bycia zapomnianym?

A do czego e-mail jest używany w alternatywnym internecie? Do normalnych konwersacji, do wysyłania patchy git na niektórych stronach, do powiadomień z forów dyskusyjnych i łatwego odpowiadania w wątkach na nich. Do list mailingowych... ale nie wiem co to, tak daleko jeszcze nie zaszedłem.

Pozdrawiam serdecznie i zapraszam do subskrybowania mojego kanału RSS oraz – już wkrótce – komentowania.

Serdeczne pozdrowienia dla wszystkich moich czytelników z okazji Nowego Roku. Macie już jakieś postanowienia noworoczne? Moim postanowieniem noworocznym jest, aby po tych 3 latach, od kiedy przestałem używać Facebooka (wraz z wszystkimi jego usługami), napisać odręczny list, zeskanować i wysłać do każdego, kto próbował się ze mną kontaktować w tym czasie, i udostępnić w nim namiary na mojego Mastodona i Matrixa. Odręczny, aby wymknąć się algorytmom, które lubią cenzurować pewne linki i słowa. 😉

A cóż to jest ten Mastodon i Matrix? – zapytacie. O tym między innymi planuję wspomnieć na łamach mojego bloga w roku 2024, jak również o innych ciekawych technologiach i platformach znanych w alternatywnym internecie, a które leżą na moim stosiku, czekając, aż się nimi zajmę.

W planach jest również dodanie obsługi komentarzy, realizowanych najprawdopodobniej za pośrednictwem sieci fediversum, jak u Davida Revoy'a. Jako że nie mam dostępu do serwera, trzeba będzie korzystać z serwisów zewnętrznych... zobaczymy, coś się ogarnie.


Posumowanie 2023 roku: Ofensywa Google'a, dziadowskie przepisy i afera kolejowa (???)

Jeszcze raz życzę wszystkim, aby ten rok był lepszy od poprzedniego. 😃

Jak bardzo cenicie waszą cyfrową przestrzeń? W korporacyjnym Internecie wśród użytkowników często lekceważy się sprawy cyberbezpieczeństwa. Do czasu aż w tę przestrzeń wkroczy ktoś nieuprawniony i osoby na własnej skórze doświadczą skutków kradzieży tożsamości, pieniędzy czy wrażliwych danych. Do zaniedbań dochodzi wskutek niewiedzy lub ignorancji. Jest ich trochę, ale dzisiaj skupimy się na polityce haseł.

Przestarzały model bezpieczeństwa

Login i hasło to jedna z najstarszych metod uwierzytelniania. Hasła zostały stworzone z myślą o tym, aby je pamiętać, jednakże gdy mamy 20+ różnych kont, wymyślenie i zapamiętanie ich wszystkich wymagałoby nadludzkiego intelektu. Dlatego wiele osób idzie na łatwiznę i używa tylko jednego hasła.

Wtedy wystarczy, że wyciekną dane z choćby jednej słabo zabezpieczonej strony, a przestępcy pierwszą rzecz jaką spróbują zrobić, to zalogować się do pozostałych kont tym samym hasłem. Jest to szczególnie niebezpieczne w przypadku skrzynki e-mail biorącej udział w resetowaniu haseł we wszystkich połączonych serwisach.


Istnieje sposób zabezpieczenia haseł w bazie nawet po wycieku – hashowanie. Jest to nieodwracalna operacja przekształcająca dowolne dane w ciąg o stałej długości. Oto kilka przykładów:

'The alternative internet, apps & lifestyle'
9c35ede2e1c3e32ec6304753b1c3db20db807a463279f6bf27f16f393fe31399

'e=~2.718281828459'
6c6686cd86fe2a29fa6f1a03651a95de42f0dcac6fc5ad012ac9c0f167c0429f

'uBlock origin'
49ac7879d24464edc5788fe7e224683b7e1f3bbe0ba70e5e6fbaa3c849e87383

O hashowaniu było pisane także na ciemnej stronie

W skrócie: 1. Użytkownik podaje hasło. 2. Serwer je hashuje i porównuje z tym w bazie. 3. Jeśli są identyczne, wpuszcza użytkownika.

Co się stanie gdy zawartość bazy wycieknie? Ano nic. Atakujący będzie mógł co najwyżej zgadywać, aż trafi na właściwe hasło, ale to równie dobrze mógłby próbować w formularzu logowania. Jedyny minus, że od martwych danych nie dostanie bana po nieudanych próbach, dlatego warto mieć 🔒 silne hasła.

Uwaga! Nie mamy żadnej gwarancji, że administrator przechowuje hasła w sposób bezpieczny. Dlatego nie zakładajmy, że hashowanie ma miejsce, tylko ustawiajmy inne hasło dla każdej strony.

Wszystkie hasła w jednym miejscu

Moglibyśmy na przykład zapisać swoje hasła na kartkach papieru. Zminimalizowałoby to wspomniane zagrożenie, ktoś jednak mógłby taką kartkę znaleźć. Bezpieczniej byłoby przechować je w miejscu, do którego tylko my mamy dostęp. Takim miejscem może być zaszyfrowany plik lub menedżer haseł.

Menedżerem haseł nazywamy taki program, który pozwala użytkownikowi zarządzać danymi logowania przechowywanymi w zabezpieczonej (zaszyfrowanej) bazie danych. Przykładem takiego programu jest KeePassXC.

Logo KeePassXC

  • trzyma wpisy w zaszyfrowanym pliku *.kdbx,
  • generuje hasła złożone z losowych znaków, np: |@1QLY|u#QKCu}u*O8|> eraser frostlike retrial skeletal emerald regulate playset purify,
  • pozwala segregować wpisy w folderach, znacznikach, kolorach, dodać ikony, etc.,
  • sprawdza, czy nasze hasło nie znalazło się w znanym wycieku,
  • umożliwia dodawanie załączników i innych parametrów,
  • automatycznie czyści schowek,
  • kompatybilna aplikacja mobilna KeePassDX.

Dotychczas hasło wpisywaliśmy z pamięci. Od teraz będziemy je wklejać. Warto upewnić się, że ustawiliśmy mocne hasło główne i lepiej go nie zgubić (na początek można je sobie zapisać na kartce).

Poza tym, koniecznie wykonujemy kopie zapasowe bazy haseł – na pendrivie, dysku zewnętrznym, czy też u zaufanej osoby.

Uwaga! Pewne firmy jak Google czy Apple oferują przechowywanie danych logowania w chmurze zintegrowanej z przeglądarką czy systemem operacyjnym. Korzystanie z tego to w zasadzie powierzanie wszystkich swoich haseł podmiotowi trzeciemu bez odpowiedniej ochrony przed nim samym.

Hasła pamięciowe

W pewnych okolicznościach będziemy potrzebować hasła pamięciowego – takiego, które musimy wpisać przed odblokowaniem menedżera haseł – na przykład... hasła głównego, ale też hasła do systemu operacyjnego, szyfrowania dysku, etc. Teraz przedstawię metodę wymyślania takich haseł, aby były mocne i łatwe w zapamiętaniu dla osoby, która je wymyśliła. Wymaga to 💡 kreatywności, ale możemy posłużyć się pewnymi schematami.

Zaczynamy od znalezienia pewnej nieoczywistej inspiracji: ulubionego zdania z książki, cytatu, fragmentu piosenki lub innego pomysłu. Ważne, żeby nie była to pierwsza rzecz, jaka przyjdzie do głowy naszym znajomym. Następnie bierzemy po jednej literze (lub dwóch) z każdego wyrazu. Na koniec wedle uznania dokonujemy mutacji typu: zmiana wielkości liter, zastąpienie, wstawienie dodatkowych znaków, cyfr, etc.

4N1522prtlci&za;jeirasi
„Przyprowadźcie tłuste cielę i zabijcie; jedzmy i radujmy się.” – Łukasza (4 księga Nowego Testamentu) 15:22

Drugi sposób: budujemy długie hasło ze słów, które sobie wymyślimy (im bardziej bezsensowne, tym lepiej) lub ich wariacji. Możemy zapożyczać wyrazy z obcych języków, mieszać, robić błędy, wykorzystać w sposobie pierwszym i w ten sposób tworzyć coś unikatowego. Szkoda, że trzeba trzymać to w sekrecie...

[siląc się na resztki kreatywności o tej porze dnia]:

lepszy kaloryfer w garści niż tokio w remoncie
uwielbiam dźwięk czworonoga lidlowym popołudniem
nieśmiałe dokumenty ujrzały rudowłosą szybę

Kopia zapasowa i synchronizacja (KeePassXC)

Teraz gdy nasze hasła znajdują się już zabezpieczone w bazie, musimy pilnować, żeby nie zgubić dwóch rzeczy, bo nie będziemy mogli się zalogować:

  • hasła głównego,
  • samej bazy haseł.

Najprościej jest tworzyć nową kopię przy każdej aktualizacji. Jeśli posiadamy kilka urządzeń, może się zdarzyć, że przypadkowo dokonamy aktualizacji w dwóch różnych miejscach, wskutek czego wersje nam się „rozjeżdżają” – innymi słowy, zsynchronizowanie w obie strony spowodowałoby utratę pewnych nowych danych.

Problem ten rozwiązuje funkcja scalania – importowania zmian do lokalnego pliku zamiast nadpisywania. Załóżmy, że mamy urządzenia a i b oraz współdzielone medium (np. pendrive, dysk sieciowy, etc.).

W razie wątpliwości:

x+1------0------x+2            mamy konflikt wersji
x+1->>>-x+1-----x+2            kopiujemy wersję 1 do medium
x+1-----x+1->>>-x+1+2 = x+3    scalamy z wersją 2
x+1-----x+3-<<<-x+3            kopiujemy do medium
x+3-<<<-x+3-----x+3            nadpisujemy wersję 1

Używając zewnętrznych programów jak Nextcloud czy Syncthing można zautomatyzować kopiowanie między urządzeniami, najlepiej z włączonym wykrywaniem konfliktów lub wersjonowaniem, aby uniknąć przypadkowego nadpisania wersji.

Przy scalaniu musimy każdorazowo podawać hasło, jednak jeśli ustawimy dysk sieciowy, funkcja KeeShare może automatycznie synchronizować zmiany do wybranego pliku. Niestety nie jest ona dostępna dla wersji mobilnej.

Ostatnie słowo

Korzystanie z menedżera haseł potrafi być uciążliwe, szczególnie, jeśli mamy zamiar zalogować się z nowego urządzenia. ⚠️ Tutaj chciałbym was przestrzec przed wpisywaniem hasła na komputerach poza waszą kontrolą (np. w szkole, pracy, urzędzie) – mogą zawierać złośliwe oprogramowanie wykradające hasła, sesje przeglądarki lub inne dane.

Istnieją także inne menedżery haseł, w tym takie z wbudowaną synchronizacją, jednak ich nie wypróbowywałem. Dokonując wyboru, miejcie na uwadze przede wszystkim:

  1. otwartość kodu źródłowego i przeprowadzone audyty bezpieczeństwa,
  2. odpowiednie szyfrowanie (hasło do bazy nie może być takie samo jak do chmury),
  3. reputację autorów w kwestii ochrony prywatności.

Istnieją też inne metody uwierzytelniania niewykorzystujące haseł, a kryptografię asymetryczną, ale nie są szeroko wykorzystywane pod sztandarem technologii www. Są za to codziennością np. w SSH, o którym być może napiszę pewnego dnia. Póki co natomiast jesteśmy skazani na hasła z wszystkimi ich wadami i zaletami.