Co pewien czas politycy, krajowi albo światowi, próbują nam zaserwować jakieś niesmaczne danie. Choć z wierzchu wygląda sensownie.

Menu na dziś to kontrola czatów. W praktyce – groźba niesłusznego oskarżenia przez tępy automat. Polana sosem troski o dobro dzieci.

W tym wpisie pokażę ciemne strony nowych przepisów:

  • spore ryzyko fałszywych oskarżeń, zilustrowane historią portalu Tumblr;
  • niską skuteczność wobec złoczyńców wyższego poziomu;
  • groźbę rozszerzenia obserwacji na inne sfery życia.
Uwaga

Jak zawsze, gdy jakiś wpis porusza kwestię szyfrów – przypominam, że jestem w tym temacie hobbystą-amatorem.
Wpis możecie potraktować jako punkt wyjścia do zbierania dalszych informacji. Ale nie opierajcie na nim swojej prywatności. Nie chcę jej mieć na sumieniu :wink:

Spis treści

Czym jest kontrola czatów?

Kontrola czatów (będę czasem skracał do KC) to przepisy mające obowiązywać na terenie Unii. Zaproponowane przez Ylvę Johansson z Komisji Europejskiej, we współpracy z zewnętrzną (pozarządową) grupą lobbującą za zacieśnieniem kontroli.

Wyszukując słów kontrola czatów, możemy znaleźć wzmianki o tym, że przepisy już weszły w życie.
Ale zapewne mowa o wersji pierwszej, z 2021 roku. Która jedynie zalecała autorom komunikatorów analizę treści. Obecnie pod głosowanie w grudniu ma trafić wersja druga, zmieniająca to w obowiązek.

Obowiązek nałożony na autorów programów od komunikacji (jak maile, Messenger, WhatsApp…).
Nie będą mogli zostawiać użytkowników samym sobie. Będą musieli analizować ich komunikację.
Jeśli wykryją coś, co może być przykładem wykorzystania nieletnich, to powinni to zgłosić odpowiednim służbom.

Brzmi sensownie? Problem w tym, że wykrywanie z założenia ma się opierać na automatycznych systemach. Które za nic nie są gotowe do takiego zadania. O czym pisze wprost grupa naukowców, która podpisała petycję przeciw KC.

Inni, jak chociażby szwedzka firma Mullvad od VPN-ów, zwracają uwagę na możliwość późniejszego łatwego nadużycia infrastruktury kontrolującej.

Dokładniejsze streszczenie sprawy, w formie najważniejszych punktów i dat, znajdziemy na stronie Patricka Breyera.

Czy na pewno „unijny pomysł”?

Źródła wspominające o kontroli czatów nieraz mówią, że to „Unia narzuca obowiązek śledzenia”. Jest w tym ziarnko prawdy, bo pomysł faktycznie wypłynął z Komisji Europejskiej.

…Ale już nieraz się zdarzało, że KE wychodziła z czymś kontrowersyjnym.
Jak umowa handlowa TTIP, obniżająca unijne standardy, byle wpuścić produkty z USA. Jak dawniej ACTA.

I nieraz się zdarzało, że pomysły były ubijane przez kolejne instancje. Choćby przez Parlament Europejski, który też jest przecież „unijny”.
Również ten nowy pomysł ma swoich przeciwników w unijnych instytucjach. A także w służbach krajów członkowskich.

Jeśli kontrola czatu wejdzie w życie, to będę mógł szczerze przyznać, że Unia mnie zawiodła na tym polu.

Ale jeśli nie? Jeśli demokracja zadziała, a projekt zostanie ubity dzięki unijnym instytucjom?
O tym już będzie ciszej. Ale w świadomości ludzi pozostanie mem „Unia próbowała nas wszystkich śledzić”. Takie sentymenty, zwłaszcza w Polsce, mogą potem wykorzystywać do swojej gry Rosjanie i inni.

Dlatego skłaniam się ku temu, żeby – jeszcze, póki co, asekuracyjnie – nazywać winowajców „grupą polityków”, a nie Unią. Wydżwięk podobny, ale nie sprzyja budowaniu nieufności.

No ale to taka dygresja. I tak każdy będzie pisał swoje, świata nie zmienię :roll_eyes:
Przejdźmy do konkretniejszych spraw.

Kontrola od strony technicznej

Wiele komunikatorów chroni nas obecnie przed podglądaczami z zewnątrz – jak teoretyczni hakerzy i ich fałszywe hotspoty. Ale częściej jednak oficjalne firmy telekomunikacyjne.

Cała komunikacja jest szyfrowana. Nadal można dość łatwo przechwycić cyfrowy odpowiednik listów lecących w świat. Ale nie zajrzy się do ich wnętrza.

Jako przykładu użyję komunikatora Signal. Ta apka, choć bezpieczna, nie jest jakoś wybitnie buntownicza. Na żądanie władz zapewne by przekazali wszystko, co z nami związane.

…Ale to „wszystko” nie byłoby imponujące. Bo Signal został tak zaprojektowany, żeby mieć jak najmniej wglądu.
Zaszyfrowane wiadomości. Których szyfrów nikt nie powinien złamać, łącznie z samym Signalem. Parę prostych metadanych, jak godziny wysłania.

Schemat pokazujący komunikację między dwiema osobami przy udziale apki Signal

Źródła schematów: głównie ikony z Linuksa, loga programów, Emojipedia, Flaticon.
Szczegóły pod koniec wpisu. Przeróbki każdorazowo moje.

Plan oparty na zaglądaniu do naszej korespondencji, przechwyconej albo zdobytej drogą prawną, spaliłby na panewce. Choćby ktoś bardzo chciał, matma stojąca za szyframi jest bezwzględna.

Dlatego koncepcja kontroli czatu opiera się na nałożeniu wymogów bezpośrednio na autorów aplikacji.
Szyfrowanie mamy nadal. Ale zanim treść zostanie zaszyfrowana i bezpiecznie przesłana, przeczesze ją algorytm. Jeśli coś wykryje, to zaalarmuje służby.

Schemat pokazujący, jak wewnątrz apki Signal osadzono wrogi algorytm, oznaczony tu ikoną wszechwidzącego oka. Od aplikacji odchodzą dwie strzałki. Jedna z nich jest identyczna jak na poprzednim schemacie, skierowana w stronę apki drugiej osoby, znajduje się nad nią ikona zamniętej pancernej skrzyni. Nad drugą strzałką, czerwoną i prowadzącą na ukos ku górze w stronę znaku zapytania, widać ikonę wykrzyknika.

Signal tym razem na fioletowo, bo zmieniła się jego natura.

Schemat praktycznie by się nie zmienił, gdyby – zamiast ostrzegania służb – był tu obowiązek dzielenia się z nimi pierwotnymi treściami. Ot, zamiast znaku ostrzegawczego byłaby druga szyfrowana skrzynka, wysyłana na policję.

Z pozoru zdanie się na automat daje nieco więcej prywatności. W niepowołane ręce poleci tylko to, co uzna on za złe.
Problem w tym, że jego rozumienie zła może być mocno wadliwe.

Realna głupota sztucznej inteligencji

Pisałem już na tym blogu o tym, ile krwi napsuli użytkownikom YouTube’a niedoskonali, automatyczni cenzorzy. Zresztą kto ogląda filmy, ten widzi, że twórcy często stosują autocenzurę na wyrost, byle uniknąć kar.

Mam również nieco ogólniejszy wpis, o nieracjonalnej wierze niektórych menedżerów w AI.
Często nie wiedzą nic o technice. Ale mają mindset, drivemotivation.

Bardzo by chcieli, żeby wizja automatyzacji się spełniła. Więc łykają bajki o możliwościach algorytmów. Zastępują nimi część personelu.
I nieraz się przekonują, że słowo „inteligencja” było bardzo na wyrost. Zwłaszcza gdy pojawi się coś wykraczającego poza schemat.

Efekt taki jak w przykładzie ze wspomnianego wpisu. Ktoś zastąpi operatorów kamery automatem. A ten podczas jednego meczu skupi się na łysinie sędziego zamiast na piłce.

Pruderyjny Tumblr

Albo może spójrzmy na coś bardziej pasującego do kontekstu. Przykład portalu Tumblr. Kiedyś słynął jako miejsce bardzo wyzwolone, uwielbiane przez artystów i mniejszości wszelkiego rodzaju. Każdy mógł tam znaleźć grafiki dla siebie, również niegrzeczne.

Ale w 2018 roku strona zrobiła ostry zwrot ku reklamodawcom z USA. A ci, jakby odwołując się do purytańskich korzeni, zagrzmieli: „nasze reklamy nigdy nie staną obok tej moralnej zgnilizny!”.

Tumblr szybko pochylił głowę i zaczął wyrzucać sztukę dla dorosłych do swojego cyfrowego getta. Wykrywając ją właśnie za pomocą automatów, marketingowo nazwanych AI.

Mimo trwających czystek zrobiło się wesoło. Bo wadliwy algorytm Tumblra był jak nastolatek, któremu wszystko się kojarzy. Którego wszystko deprymuje.
Podtekst miały dla niego między innymi pokraczne rysunkowe lwy. Otagował je jako niegrzeczne zdjęcie.

Kolaż złożony z trzech elementów. U góry po lewej mamy odręczny, pokolorowany rysunek pokazujący kilka ujęć lwów. Po prawej widać panel z mangi, na którym zarumieniony młody mężczyzna, na którego czoło nałożono logo Tumblra, robi przestraszoną minę. Krzyczy do kogoś, że nie może nosić tak obcisłych ubrań. Pod spodem mamy komunikat z portalu Tumblr, na czerwonym tle, mówiący że post został oznaczony jako treść dla dorosłych.

Źródła: post użytkownika Sketchshark z Tumblra, manga Deadman Wonderland. Przeróbki moje.

Niemoralnych rzeczy dopatrzył się również w gołych ramionach.

Kolaż złożony z trzech elementów. U góry mamy fragment mema pokazujący brodatego mężczyznę w szarym t-shircie ze wzorem, z rękami splecionymi za głową, mówiącego coś do dziewczyny w bluzce. Pod spodem widać komunikat Tumblra o tym, że post został oflagowany. Na dole mamy czarno-biały panel z mangi, na którym zarumieniony młody człowiek leży w łóżku i mówi po angielsku 'Zmień te cholerne ciuchy'. Na głowę ma nałożone logo Tumblra.

Źródła: Twitter, Deadman Wonderland.

Inny przykład – miniaturka artykułu o tym, że wadliwy policyjny algorytm oznaczał zdjęcia pustyni jako nagość. No cóż, Tumblr chyba się z nim zgodził, bo też to oflagował.

Zrzut ekranu pokazujący w górnej części komunikat Tumblra na czerwonym tle, mówiący o oflagowaniu udostępnionego wpisu. Poniżej widac zdjęcie pustynnych wydm podpisane nazwę portalu gizmodo.com, a pod zdjęciem widać nagłówek i streszczenie artykułu. Mówią o tym, że brytyjska policja ma algorytm, którego zadaniem będzie wyłapywanie zdjęć nieletnich. Ale póki co uznaje za nagość nawet pustynię.

Inne przykłady? Zdjęcie kurczaka w folii, zabawkowych żołnierzyków, rysunkowego skorpiona w kasku. Robotów. Fraktali. I wiele innych rzeczy.

Sprawa doczekała się nawet prześmiewczego hasztaga na Twitterze, #TooSexyForTumblr, gromadzącego inne przykłady wpadek tego Ej-Aj.

Pandora Gate dla każdego?

Śmieszki śmieszkami, dopóki jedyną konsekwencją jest ukrycie paru fotek. Oraz kilka minut sławy, kiedy się tym faktem podzielimy na forum publicznym.

Gorzej, jeśli przez fałszywe oskarżenie trafimy na listę podejrzanych i celownik tłumu.

Niedawno na polskim YouTubie miała miejsce afera nazwana Pandora Gate. Kilku znanych youtuberów zalecało się do nieletnich. Może nawet dosypywali środki usypiające do drinków. Inni od lat wiedzieli i ich kryli.

Niektóre dowody były niepodważalne. Ale oprócz tego oberwało się całkiem niewinnej osobie.
Ktoś, nie chcąc ujawnić pełnych danych, napisał że przestępstwa dopuściła się też „osoba na G.”. A tłum połączył sobie kropki – tyle że na początku źle – i zasypał groźbami kompletnie niewinnego tworcę. 

Jedna litera nazwiska. Tyle wystarczyło. A tutaj mamy konkretne oskarżenie przekazane na policję. Od automatu, ale nie każdy wie o jego niedoskonałościach.

Ktoś powie, że wpadki w stylu Tumblra były dawno, że od tego czasu algorytmy się poprawiły?
Tym gorzej. Kiedy algorytm myli się notorycznie, ludziom łatwiej uwierzyć w cudzą niewinność. Kiedy myli się raz na miliard przypadków – każda niesłusznie oznaczona osoba może być osamotniona w swojej walce.

Wyobrażam sobie nawet scenariusz, kiedy błędnej klasyfikacji mógłby dokonać i algorytm, i człowiek z drugiej linii.

  • Znów mamy pandemię i teleporady medyczne.
  • Czyjeś dziecko ma wypadek na rowerze, rani się w okolicy pachwiny. Rana kiepsko się goi, więc rodzic wysyła lekarzowi zdjęcie urazu.
  • Algorytm wyłapuje to zdjęcie i wysyła twórcom do ręcznej weryfikacji.
  • Ci patrzą. Jest nagość, jest dziecko – lepiej to przekazać policji.
  • Informacja trafia na lokalną komendę. Zaczyna się śledztwo.

    A że rodzic znany, bo społeczność mała, to ktoś z policjantów dzieli się informacją ze znajomymi. Plotka wychodzi poza komendę, wywołuje oburzenie.

  • Sprawa się wyjaśnia, nie ma zarzutów karnych.

    Ale w oczach lokalsów ktoś ma zniszczoną reputację. Bo „gdyby nie miał nic na sumieniu, to by go nie wzywali”.

A cały czas mówimy tutaj o obrazkach. W tej kwestii komputery są nieco lepsze, trudniej o pomyłkę wyuczonego algorytmu. Proponowana kontrola czatu ma natomiast dotyczyć również tekstu i wyłapywać próby manipulacji nieletnimi.

Ej-Aj temu nie podoła.

Algorytm nie będzie wiedział, ile kto ma lat. Ale może sobie skorelować, że w czacie jakiegoś zboczeńca widział sporo zdrobnień i komplementów. I ciach, jakaś pełnoletnia parka trafia na komisariat.

Kto chce, ten zaszyfruje

Można mocno kwestionować również skuteczność kontroli czatu w łapaniu prawdziwych złoczyńców.

Jeśli niektóre aplikacje zaczną ich monitorować, to po prostu przejdą na inne aplikacje. O ile jeszcze tego nie zrobili.

Obstawiałbym (bez twardych danych), że mało który złodupiec, poza płotkami, korzysta ze zwykłych komunikatorów.
Grubsze ryby raczej wiedzą, co im grozi w razie odkrycia, i od dawna dbają o anonimowość.

To właściwie wyczerpuje temat z mojej strony. Ale w ramach eksperymentu myślowego wyobraźmy sobie świat, w którym musimy używać oficjalnych programów do komunikacji. A one nas podglądają.

Przypomnijmy sobie schemat takiej sytuacji:

Schemat pokazujący, jak wewnątrz apki Signal osadzono wrogi algorytm, oznaczony tu ikoną wszechwidzącego oka. Od aplikacji odchodzą dwie strzałki. Jedna z nich jest identyczna jak na poprzednim schemacie, skierowana w stronę apki drugiej osoby, znajduje się nad nią ikona zamniętej pancernej skrzyni. Nad drugą strzałką, czerwoną i prowadzącą na ukos ku górze w stronę znaku zapytania, widać ikonę wykrzyknika.

Musimy użyć czatu, a czat jest na podsłuchu. Ale przecież oprócz niego mamy inne programy. Zaś aplikacje, przynajmniej na smartfonach, są całkiem niezależne. Nie mogą do siebie zaglądać.

Jeśli aplikacja zawiera podsłuch, można poza nią (choćby „w realu”) uzgodnić z odbiorcą hasło. I przed wysłaniem wrażliwych rzeczy szyfrować je w innej, zaufanej apce.

Tę zaszyfrowaną treść przenosimy z apki zaufanej do wścibskiej. Można przez Kopiuj/Wklej, można zapisać do pliku i potem go załadować. Obojętne.

Aplikacja-podglądacz nie zdoła zajrzeć do szyfrowanej treści. Może co najwyżej wysłać ją naszemu odbiorcy. A ten weźmie plik i otworzy go, korzystając z hasła, które sobie uzgodniliśmy.

Oto schemat obejścia cenzora. Jako zaufanej apki użyłem tutaj Firefoksa:

Schemat pokazujący szyfrowanie plików w innej aplikacji niż komunikator. Składa się z dwóch trapezów symbolizujących aplikacje, stojących na podstawie podpisanej 'System operacyjny'. Apka po lewej ma na sobie logo Firefoksa, ta po prawej logo Signala. Widzimy, że wewnątrz Firefoksa zwykła wiadomość z tekstem 'Hej' zmienia się w skrzynkę ze znakiem serduszka. Strzałki pokazują, jak ta sama skrzynka trafia, idąc dołem przez system operacyjny, do wnętrza Signala, a następnie wylatuje poza schemat, zamknięta wewnątrz drugiej skrzynki.

Hat.sh – kapelusz zakrywający tajemnice

A dlaczego Firefoksa? Przecież znalazłoby się wiele innych, łatwych w obsłudze szyfratorów/deszyfratorów.

Ale przeglądarki mają tę zaletę, że działają na wielu systemach. Często mają również wbudowane własne narzędzia od szyfrów. Choć mnie osobiście urzekło coś innego, niewbudowanego.

To projekt Hat.sh. Będę go w skrócie nazywał Hat.
Ma postać lekkiej stronki internetowej. W najprostszym przypadku:

  1. wybieramy między szyfrowaniem a deszyfracją;
  2. ładujemy wybrane przez siebie pliki;
  3. wpisujemy hasło;
  4. otrzymujemy zaszyfrowane/odszyfrowane pliki.

Hat zapewnia, że działa całkiem offline i nie wysyła danych. Chętni mogą zajrzeć w kod źródłowy.
Dla pewności całkiem wyłączyłem internet krótko po odwiedzeniu strony, nim zacząłem korzystać z interfejsu. Hat nadal robił swoje w obu trybach.

Fajne narzędzie, może się jeszcze przydać przy innych wpisach. Dlatego instrukcje na temat korzystania z niego wydzieliłem do osobnego samouczka.

Dystopijny wyścig zbrojeń

OK. Czyli kontrola czatu może wyłapywać niewinnych i nie działać na winnych.
Spójrzmy na jeszcze jedno zagrożenie. Pokusy związane z nadużyciami i poszerzaniem zakresu śledzenia.

Pokusa numer jeden – mając infrastrukturę, można łatwo ją wzbogacać o nowe filtry, niezwiązane z dziećmi.
Wykrywanie treści antyrządowych, niezadowolenia społecznego, opozycyjnych myśli. Idealna zabawka dla rządów autorytarnych, gdyby kiedyś doszły do władzy.

Wyżej na schemacie widzimy, że można użyć jednej aplikacji do obejścia ograniczeń obecnych w innej.
Politycy mogą to dojrzeć. I, zamiast uznać swoją wizję za bezcelową, ulec pokusie numer dwa. Spróbować wcisnąć śledzenie na bardziej pierwotne poziomy.

W pierwszej kolejności mogliby uderzyć do twórców systemów operacyjnych i to na nie przerzucić obowiązek monitorowania. De facto wystarczyłoby nakłonić Apple, Microsoft i Google, bo mają miażdżącą przewagę na rynku.

Zapewne poszłoby z nimi szybko. W końcu Apple już od 2021 roku próbował na własną rękę wprowadzić monitoring treści. Ale wycofał się po protestach użytkowników.

W takiej sytuacji nie miałoby znaczenia, na ile ufamy aplikacjom. Warstwy wyższe są zależne od niższych. System, będąc fundamentem dla aplikacji, ma nad nimi władzę. Widziałby wszystko.

W takiej sytuacji ludzie chcący choć namiastki prywatności mogliby się zwrócić ku alternatywnym systemom, takim jak Linux w różnych postaciach. Zapewne przeżyłby renesans. A że jest rozproszony i niezależny od konkretnej firmy, to trudniej byłoby naciskać na jego twórców.

Tyle że w tej sytuacji politycy zeszliby jeszcze niżej. Do producentów hardware’u – złożonych fizycznych elementów, na których opiera się współczesna elektronika. Obserwator umieszczony na tym poziomie widziałby wszystko, co robi nasze urządzenie. Dla większości osób byłby niemożliwy do usunięcia.

Schemat rozszerzający poprzednie piramidki o dwie niższe warstwy. Jedna jest podpisana jedynie trzema kropkami, a ta pod nią, najniższa, jako 'hardware'. Widać tam ikonę procesora, częściowo zakrytą przez ikonę wszechwidzącego oka. Odchodzi od niego na obie strony czerwona ramka, otaczająca cały schemat.

Wizja ingerencji na tym poziomie to nie science fiction. Już teraz mamy chipy, które niekoniecznie służą użytkownikom:

  • „komputery w komputerze”, jak nieprzenikniony Intel Management Engine zagnieżdżony w procesorach Intela;
  • mniejsze chipy niezależne od reszty systemu. Zdolne ujawniać pytającym, czy nasz system był w jakiś sposób modyfikowany względem stanu domyślnego.

    Google planował oprzeć na nich swoje rozwiązanie, nazwane Web Environment Integrity. Zdolne zamienić internet w coś na kształt grodzonych osiedli deweloperskich, wpuszczających tylko aprobowane urządzenia.

Gdyby śledzenie zeszło na poziom fizycznego sprzętu, to raczej koniec gry. W tym segmencie jest niewiele alternatyw.

A gdyby nawet ktoś opracował sposób na obejście ograniczeń, to tylko promil ludności umiałby coś zrobić.
Bo sposób nie polegałby już na prostym „pobierzcie i zainstalujcie X”. Zaczynałby się od słów „weźcie mikroskop i lutownicę…”.

I tym dystopijnym akcentem kończę część główną. Mam nadzieję, że dość jasno pokazałem swoje nastawienie względem kontroli czatów :wink: Zachęcam do zrobienia hałasu w internecie albo dołączania do petycji przeciw zmianom.

Dla chętnych mam jeszcze szybki i prosty – ale bardziej dla zabawy niż na serio – sposób na uczynienie czatów nieco mniej czytelnymi.

Bonus: szybkie maskowanie tekstu

Dzięki Hatowi mamy pełnoprawne szyfry, ale ma to wadę od strony praktycznej – otrzymujemy pliki binarne. Surowe bloki zer i jedynek.

Raczej w żaden czat tego nie wkleimy, bo te wymagają formy tekstowej.
Pozostanie nam dodawanie zaszyfrowanych plików jako załączników. Do przeżycia przy zdjęciach. Ale męczące przy zwykłych wiadomościach tekstowych.

Ale – jeśli nie wysyłamy wrażliwych rzeczy – można użyć szybkiego i powierzchownego zamaskowania tekstu. Przez zmianę kodowania.

Współczesne przeglądarki mają taką opcję w pakiecie. Wystarczy zero umiejętności koderskich oraz kilka sekund, żeby zmienić wiadomości w postać nieczytelną dla człowieka. A po stronie odbiorcy – żeby odzyskać pierwotną postać.

Użyjemy do tego funkcji btoa oraz atob, wbudowanych w przeglądarki. Pozwalają przekształcić tekst do postaci nazwanej Base64.

Siadamy sobie do komputera, uruchamiamy przeglądarkę (sprawdzałem na Firefoksie i Chromium). Naciskamy klawisze Ctrl+Shift+I (jak Irena).
Otworzą się narzędzia przeglądarki. Wybieramy u góry zakładkę Konsola. Tam możemy sobie wpisywać różne komendy. Żeby zakodować tekst w formie Base64, wpisujemy:

btoa(unescape(encodeURIComponent("NASZ TEKST")))

Pod spodem albo obok powinien się wyświetlić nasz tekst w nowym kodowaniu:

Dwie linijki konsoli. W górnej widać wiadomość o treści 'Piąteczka, mistrzu!' oraz emotkę dłoni zbijających piątkę. Pod spodem widać tę wiadomość w kodowaniu base64, złożonym z liter oraz liczb, z kilkoma znakami równości na końcu

Zakodowaną wiadomość możemy sobie skopiować do czatu i komuś wysłać.
Po odebraniu druga osoba otwiera u siebie konsolę i wkleja zakodowaną treść w odwrotność wcześniejszej funkcji. Zobaczy tekst od nas.

decodeURIComponent(escape(atob("ZAKODOWANY TEKST")))

Dwie linijki konsoli. W górnej widać wiadomość zakodowaną w formacie base64 wewnątrz funkcji dekodującej. Pod spodem mamy oryginalną treść wiadomości.

Uwaga

Dla jasności – Base64 to nie jest szyfr. Komputery byłyby w stanie łatwo wykryć, że wiadomość zawiera to kodowanie i je odwrócić.
Osoby chętne mogłyby dorzucić na wierzch trochę innych przekształceń i utrudnić im zadanie. Ale to nadal kwestia czasu i pracy. Gdyby podglądaczom zależało, to odczytają.
Z tego względu B64 można użyć bardziej w ramach obywatelskiego nieposłuszeństwa. Żeby hipotetyczny podglądacz musiał nieco mocniej wysilić procesor :smiling_imp:

Źródła obrazków

  • plik tekstowy z systemu Linux;
  • pudło z sercem z gry „Portal”;
  • kłódki i kluczyki z Emojipedii;
  • ostrzeżenie – Fatema Khanom z serwisu Flaticon;
  • oficjalne ikonki Signala i Firefoksa.