Trusted computing i cyfrowe kajdany

ciemnastrona.com.pl 2 dni temu
Zdjęcie: Smutny człowiek z białą flagą oraz uśmiechnięty ludek z Monopoly po przeciwnych stronach znaku yin i yang.


Duże firmy technologiczne, zwane zbiorczo big techem, nieraz rzucają użytkownikom kłody pod nogi.
Pogarszanie jakości aplikacji przez spam reklamowy i nachalne zbieranie danych. Udostępnianie filmów tylko na wybranych systemach operacyjnych. Skądinąd sprawne sprzęty, które przestają działać, gdy producent splajtuje i wyłączy swoją infrastrukturę.

W takich sytuacjach dało się zwykle zwrócić ku alternatywnym systemom czy aplikacjom. Albo zdać się na „dobrych hakerów”, którzy przełamią zabezpieczenia i upublicznią otwartą wersję.
Niestety swoboda wyboru bywa – i może być coraz częściej – ograniczana. Przez tytułowy trusted computing, czyli użycie szyfrów do zyskania różnych gwarancji.

Zagrożenie jest o tyle subtelne, iż jego części składowe są rzeczami raczej pozytywnymi, chroniącymi prywatność. Ale połączenie ich w całość może mieć opłakane skutki.

Żeby to zademonstrować, postanowiłem stworzyć ten popularyzatorski wpis, w którym konstruuję trusted computing od podstaw. Krok po kroku, jak najprościej, stawiając intuicję ponad ścisłością.
Zapraszam! :smile:

Źródła (kliknij, żeby rozwinąć)

Ludek z Monopoly z aiophotoz.com; ikony z serwisu Flaticon: pistolety maszynowe (autor: Georgy), człowiek z białą flagą od Flat Icons, serwer od Smashicons, chip od Freepik.

Spis treści

  • Czym jest trusted computing
  • Trusted computing krok po kroku
    • Szyfrowanie
    • Cyfrowe podpisy
    • Warstwy systemu
    • Zwrot ku fizycznym chipom
    • Secure boot
  • Ciemne strony
    • Zdalna atestacja
    • Wiązanie programów do sprzętu
    • DRM
    • Dystopijne scenariusze
  • Co robić?

Czym jest trusted computing

Zwykle nie lubię kalkować z angielskiego i staram się pisać po polsku. Ale niełatwo znaleźć polskie tłumaczenie dla computing, czyli z grubsza czynności od słowa computer. „Obliczenia” czy „komputery” wydają mi się zbyt wąskie.

Dlatego wyjątkowo zachowam angielską nazwę. Gdybym miał stworzyć coś polskiego, to chyba postawiłbym na „informatykę mocnych gwarancji” albo „informatykę wysokiego zaufania”. Jest jakiśtam poziom ogólności, plus mgliste podobieństwo do broni masowego rażenia :wink:

Pojęcie ma względnie przystępny opis na angielskiej Wikipedii. Ale gdybym miał go uprościć do dwóch zdań, to napisałbym:

rozwiązania technologiczne mające dawać gwarancję, iż nikt nie zaingeruje w wybrane procesy. Opierają się na wykorzystaniu fizycznych chipów, szyfrowania i cyfrowych podpisów.

Takie zagonienie kryptografii do pracy, żeby dostawać zawsze to, czego się chce… Problem w tym, iż osobą dostającą niekoniecznie jest użytkownik. Mogą to być duże korporacje wpływające na standardy cyberbezpieczeństwa. Ale do tego przejdę później.

Źródło: filmik sprzed, bagatela, kilkunastu lat. Od początku dostrzegano możliwe zagrożenie.

Ciekawostka dotycząca słowa „zaufanie”

Również pierwsze słowo, trusted, niesie za sobą pewien niuans. Dotyczący nie tłumaczenia (bo to po prostu „zaufane”), tylko kontekstu.

Dla niektórych osób to słowo ma w języku potocznym znaczenie jednoznacznie pozytywne. Na równi z „dobry”, „rzetelny”, „kochany” i podobnymi. Rozumieją zwrot „jest zaufany” jak „na pewno nie wbije mi noża w plecy”.

Tymczasem w kontekście cyberbezpieczeństwa zaufanie ma inne znaczenie. Jest jak żeton w grze planszowej, który można położyć na wybranej przez siebie rzeczy. Oczywiście zwykle ma się ku temu jakieś powody, ale nie ma się żadnej gwarancji bezpieczeństwa.
Niektórzy – i to badacze, nie nihiliści – idą z definicją jeszcze dalej. Pokazują zaufanie jako celowe ujawnienie przed kimś swojego słabego punktu.

Źródło: wykład z 2009 roku (YouTube, ok. 2:00).

To chyba żadna tajemnica, iż w tym wpisie trusted computing pokaże swoje ciemne strony. Ale nie jest to przypadek, gdy ktoś nadaje dobrą nazwę złej rzeczy. To nie jak z Ministerstwem Miłości u Orwella; tutaj od początku użyto pojęcia technicznego, które nie miało niczego obiecywać.

Trusted computing krok po kroku

Omawiane tu metody opierają się na pewnej szczególnie ważnej rzeczy, odróżniającej świat realny od cyfrowego – w świecie cyfrowym porównywanie i kopiowanie różnych rzeczy jest w stu procentach dokładne i bardzo szybkie.

Można wykonywać najdokładniejsze kopie, ani trochę nie rozumiejąc kopiowanej rzeczy.
To jakby wydać polecenie: „przeskanuj wszystkie atomy (i kwarki, itd.), z jakich składa się ten przedmiot, i stwórz mi taki sam”. W świecie rzeczywistym by to nie przeszło, w cyfrowym to codzienność.

Zapamiętajmy tę adekwatność. A teraz czas ułożyć z kawałków, jak z puzzli, obraz trusted computingu.

Szyfrowanie

Kawałek pierwszy: szyfrowanie. Pokażę je na przykładzie przeglądania internetu.
Jest sobie nasze urządzenie (komputer, telefon…), a na nim zainstalowana przeglądarka, jak Firefox czy Chrome. I jest cudzy komputer, ale mocniejszy – serwer. Przechowuje całą zawartość jakiegoś portalu internetowego.

Podczas przeglądania internetu klikamy w link prowadzący do tego portalu. Za kulisami nasze urządzenie wysyła serwerowi prośbę (ang. request) o konkretną stronkę lub inny zasób, jak zdjęcie kota.

Między tymi dwoma punktami – naszym komputerem a czyimś serwerem – mogą tkwić podglądacze. Może jakiś zakapturzony haker, może więksi gracze podpięci do światłowodów. Ale najczęściej: operatorzy sieci telekomunikacyjnej.

Rodzaj podglądaczy jest drugorzędny, bo mają zbliżone możliwości. Mogą przechwytywać przelatujące dane i je oglądać. Wszystkie dane. jeżeli na widoku będą leciały informacje o naszym urządzeniu, hasła do kont bankowych czy wrażliwe wiadomości, to zostaną obejrzane i zapisane na później. Niedobrze.

Źródła: Flaticon (serwer jak wcześniej, laptop od vectorsmarket15, strzałki od Freepik), obrazek kota z Emojipedii. Przeróbki moje.

Jak ochronić te dane, żeby choćby po (nieuniknionym) przechwyceniu nie miały wartości dla podglądacza? Najlepiej przez szyfrowanie. W kontekście internetu upowszechniło się szyfrowanie przez HTTPS.
Zachodzi za każdym razem, gdy widzimy adres zaczynający się od https://. A jak to działa za kulisami? Czysto intuicyjnie:

  1. Nasz komputer/smartfon wysyła serwerowi prośbę o szyfrowany kontakt.
  2. Serwer odsyła odpowiednik otwartej kłódki (nie ujawniając klucza do niej).
    A iż kopiowanie jest łatwe – zob. wstęp – to odtąd mamy tyle kłódek, ile tylko chcemy.

  3. Nasze urządzenie odsyła serwerowi swoją otwartą kłódkę (też nie ujawniając klucza).
  4. Od teraz wszystkie rzeczy wysyłamy między sobą w pancernych pudełkach.

    My w pudełku zamkniętym na kłódkę serwera (do której tylko on ma klucz). Zaś serwer w pudełku zamkniętym na naszą kłódkę (do której tylko my mamy klucz).

Rzeczy wysyłane w punktach 1-3 – prośba o kontakt i otwarte kłódki – same w sobie nie mają wartości dla podglądacza. Nie jest w stanie ich użyć przeciwko nam. A jednak, po zakończeniu całej wymiany, zyskamy silną ochronę.

Podglądacz musi się bezsilnie przyglądać, jak gramy z cudzym serwerem w tego ping‑ponga, wysyłając sobie kolejne składniki i stopniowo zacieśniając naszą szyfrowaną więź. A od punktu 4 widzi tylko nieprzeniknione, zaszyfrowane pakiety danych.
Podelektujmy się chwilę jego bezradnością, jeszcze do niej nawiążę.

Źródła: kłódki i klucze – Freepik (serwis Flaticon), skrzynki z gry Portal. Reszta jak wcześniej.

Morał z całej tej historii? Szyfrowanie pozwala rozpocząć i utrzymać bezpieczną komunikację między dwoma punktami. choćby gdy wszystko między tymi punktami to terytorium wroga.
Na tym etapie widać głównie jasne strony. Szyfry znakomicie chronią prywatność.

Możliwości podglądacza

Uparty przeciwnik na otarcie łez mógłby próbować coś wywróżyć z metadanych, czyli ogólnych informacji o czasie wysłania danych, ich rozmiarze itd.

Od biedy mógłby też przechwytywać niektóre wysyłane rzeczy i je wyrzucać do kosza, nie pozwalając im trafić do odbiorcy. Ale wtedy przestałby być biernym podglądaczem i stałby się aktywnym cenzorem.

Mógłby również masowo kopiować zaszyfrowane dane i je gromadzić. W nadziei na to, iż metody deszyfrowania się kiedyś poprawią i zdoła poznać wszystkie tajemnice. To z kolei zagrożenie związane z nadchodzącymi komputerami kwantowymi.

Cyfrowe podpisy

W rozwiązaniu z powyższego przykładu istnieje pewna luka.
Gdy w punkcie 2 otrzymujemy kłódkę, to skąd wiemy, iż należy do portalu, który chcemy przeglądać? Że nie jest podpuchą naszykowaną przez podglądacza?

Gdyby podglądacz podrzucił obu stronom komunikacji swoje fałszywe kłódki, do których ma klucz, to mógłby czytać wymieniane informacje w najlepsze. Nazywa się to oficjalnie atakiem Man in the Middle, w uproszczeniu MitM.

W tym miejscu wkraczają cyfrowe podpisy, czyli metody poświadczenia własności i integralności.

Można je sobie wyobrazić jak hologram (taki jak na legitymacji studenckiej). Pieczątkę przybijaną na dokumencie. Ogólniej: coś, co z założenia ma tylko osoba upoważniona. Nie dzieli się tym z innymi i używa tego do oznaczania swoich rzeczy. Ktoś inny, znając wygląd tego oznaczenia, może potem weryfikować jego autentyczność.

A przypomnę tu fundamentalną sprawę – w świecie cyfrowym można dokonywać weryfikacji stuprocentowo dokładnej. O ile w świecie realnym dałoby się podrobić podpis rodzica na zwolnieniu, o tyle w wirtualu to nie przejdzie. Porównany zostanie każdy cyfrowy “atom”, zaś osoba porównująca zawsze dokładnie ustali, czy ma do czynienia z tym, czego oczekiwała.

W praktyce z podpisami cyfrowymi wiąże się nieco niuansów (wykorzystanie haszy, ścisły związek z szyframi…). Ale na potrzeby tego wpisu potraktuję je po prostu jak trwałe, unikalne oznaczenie.

Odnosząc cyfrowy podpis do opisanej wyżej szyfrowanej komunikacji:

  • Wyrabiając dla siebie kłódkę, właściciel strony wypala na niej nazwę tejże strony.
  • Na ten napis zostaje nałożone unikalne oznaczenie instytucji certyfikującej.

    Z założenia to organizacja, która nie daje oznaczeń byle komu; jeżeli je umieściła, to znaczy iż zweryfikowała właściciela kłódki. jeżeli nakładających się oznaczeń jest więcej, bo jedna organizacja poświadcza za tą pod sobą, to mamy do czynienia z łańcuchem zaufania.

    Źródła: Flaticon (kłódka jak wcześniej, nalepka 1 od mynamepong, nalepka 2 od juicy_fish).

  • Kiedy przeglądarka dostaje kłódkę (pkt 2 części o szyfrach), to porównuje oznaczenie na wierzchu z krótką, wbudowaną w siebie listą oznaczeń zaufanych.
  • Jeśli znajdzie je na liście, to znaczy iż właściciel kłódki dostał oznaczenie od zaufanego certyfikatora. Tylko w tym wypadku przeglądarka nawiąże szyfrowane połączenie; w innym razie wyświetli błąd.

    Warto jednak pamiętać, iż pomyślna weryfikacja oznacza jedynie, iż szyfrujemy połączenie z tym, z kim chcieliśmy. Nie mówi natomiast niczego na temat (nie-)złośliwości samej odwiedzanej strony.

W ten sposób poznaliśmy kolejny element układanki – cyfrowy podpis pozwala ustalić, iż jakaś konkretna osoba/organizacja oznaczyła jakąś konkretną rzecz.

Oczywiście cyfrowe podpisy są znacznie ogólniejsze niż komunikacja internetowa. Mają zastosowanie w każdym przypadku, gdy jedna strona coś znakuje w swój unikalny sposób, zaś druga strona zna wzorzec, z którym porównuje to oznaczenie.
Łapserdaki stojące między tymi dwiema stronami nie zdołają niczego podrobić w sposób niezauważalny. W końcu w świecie cyfrowym da się porównywać najmniejsze „atomy”.

Warstwy systemu

Kolejnym składnikiem, po szyfrach i podpisach, są fizyczne chipy. Ale zanim do nich przejdę, pokażę ich szczególną rolę na tle całego systemu.

Każde konsumenckie urządzenie (laptopa, telefona, peceta…) można sobie wyobrazić jak piramidkę, w której warstwy wyższe są zależne od niższych.
Fundamentem piramidy są fizyczne elementy, jak procesor czy dysk twardy. Warstwa wyżej to małe programy przypisane do tych elementów i wgrane przez producentów – firmware.
Na nich opiera się system operacyjny, który można umownie podzielić na dwie warstwy:

  • jądro – bebechy systemu i różne pliki wewnętrzne,
  • przestrzeń użytkownika – interfejs i opcje, które można sobie zmieniać.

Na tym systemie opierają się z kolei różnorodne programy: Firefox, Word, apka TikToka… Na każdym z tych programów mogą się opierać jakieś dodatki, dopasowane specjalnie do niego (jak dodatki blokujące w przeglądarkach).

Źródło: ikony Firefoksa i Signala; Flaticon (CPU od Freepik); Emojipedia; piramidka z Wikimedia Commons. Aranżacja i przeróbki moje.

Ciekawostka

Serwery, takie jak te wspomniane przy szyfrowaniu, nie są jakimś odstępstwem od zasad. Też można je przedstawić jako piramidki.
Na samym dole fizyczny sprzęt (ale mocniejszy, inny niż na urządzeniach osobistych; np. procesory Intel Xeon). Wyżej system operacyjny, zwykle Linux. A jeszcze wyżej programy – często Nginx, swoisty dyrygent od obsługiwania nadlatujących zapytań. Plus jego orkiestra, czyli inne zainstalowane programy, którym przekazuje zadania.

Ta hierarchia dobrze obrazuje również kontrolę. Warstwy niższe narzucają wyższym sposób działania. Pomijając szczególne przypadki (np. wirusy), programy są na łasce ustawień systemowych i nie mogą ich zmieniać. Zaś elementy fizyczne kontrolują wszystko.
Wniosek? Jeśli czyjaś kontrola sięgnie najniższych warstw, to ma kontrolę nad całością.

Zwrot ku fizycznym chipom

Wszystkie powyższe rzeczy to takie podstawowe składowe współczesnego cyberświata. Wyprzedzają trusted computing i istniałyby niezależnie od niego. A teraz powoli wchodzimy w świat samego TC.

Nie jest w żadnym razie niczym nowym, pierwsze realne koncepcje liczą ponad 20 lat. Historię TC opisał na swojej stronie Microsoft. Przytaczają tam również mail właściciela firmy, Billa Gatesa, napisany w 2002 roku i sugerujący potrzebę zwrotu ku czemuś, co nazwał trustworthy computing.

Wydarzenia z zeszłego roku – od wrześniowych ataków terrorystycznych po głośne przypadki złośliwych wirusów komputerowych – przypomniały nam wszystkim, jak ważne jest zapewnienie integralności i bezpieczeństwa naszej infrastruktury krytycznej; zarówno linii lotniczych, jak i systemów komputerowych.

Źródło: mail Billa Gatesa. Tłumaczenie moje.

Ciekawostka

Jest pewna ironia losu w tym, iż Microsoft tak bardzo chciał swoim uszczelnianiem świata zabezpieczyć infrastrukturę, w tym linie lotnicze… A tymczasem najmocniejsze dotychczasowe uderzenie, paraliżujące wiele lotnisk, nie przyszło ze strony jakichś hakerów. Wynikało z błędnego działania antywirusa (w uproszczeniu) korporacji CrowdStrike, mającego uprzywilejowane możliwości w jądrze systemu Windows.

A przechodząc do przykładów konkretniejszych niż abstrakcyjne „ataki hakerskie” – faktycznie było i jest parę problemów, które trudno rozwiązać wyłącznie programowaniem:

  • Przechowywanie szczególnie wrażliwych danych.

    Żeby działało odblokowanie telefonu odciskiem palca, telefon musi gdzieś zapisać wzorzec, z którym będzie porównywał przykładane palce. Fajnie, gdyby nie był to zwykły plik na „dysku” telefona, gdzie każdy może sięgnąć.

  • Kradzież dysku twardego.

    Ktoś mógłby wyjąć dysk z komputera (np. oddanego do serwisu) i skopiować z niego wszystkie dane. Rozwiązaniem mogłoby być zaszyfrowanie dysku. Tylko gdzie wtedy zapisywać tajny klucz?

  • Bootkity i rootkity, czyli wirusy infekujące niższe warstwy.

    Niektóre wredne wirusy potrafiły przeniknąć do najgłębszych rejonów piramidki. choćby jeżeli całkiem „ścięło się czubek” (przeinstalowało cało system) – potrafiły to przeczekać, na przykład wewnątrz firmware’u, a potem zainfekować nowy, świeży system.

Wszystkie te problemy można rozwiązać, tworząc na urządzeniach miejsca tak odizolowane, iż choćby użytkownik nigdy nie zdoła tam sięgnąć.

W takich miejscach można trzymać skompresowany odcisk palca. Klucz szyfrujący dysk. Listę kontrolną pozwalającą uruchamiać system w sposób ściśle kontrolowany, żeby znaleźć wszelkie bootkity. A to zaledwie początek listy możliwości.

Na bazie tego ogólnego założenia powstały rozmaite wdrożenia. Czasem odizolowane miejsce to jakiś fragment pamięci, odgrodzony jedynie cyfrowymi barierami. Innym razem to część procesora. Albo osobny, wyspecjalizowany chip. TPM, TEE, HSM… Mnóstwo nazw i odmian, których w tym wpisie nie będę omawiał.

Wszystko sprowadza się do jednej rzeczy, izolacji. I dlatego lubię gromadzić wszystkie warianty pod zbiorczym pojęciem: enklawy (inspirowane secure enclave, nazwą używaną przez Apple). Ta nazwa, jako jedna z niewielu, podkreśla nie jakieś abstrakcyjne zaufanie, ale właśnie izolację. Odrębność.

Analogie

Takie małe niezależne obszary kojarzą mi się z kilkoma rzeczami z realnego świata. Streszczę je tutaj, bo może ułatwi to intuicyjne złapanie tematu.

Po pierwsze: są jak ambasady. Choć każdy kraj ma zwykle pełną kontrolę nad swoim terytorium, może mieć u siebie ambasady innych krajów. A te są niezależne i choćby w świetle prawa międzynarodowego są jak malutkie wycinki cudzego terytorium wewnątrz jakiegoś większego kraju.

Ciekawostka

Swego czasu wewnątrz ambasady Ekwadoru, takiej enklawy w świecie rzeczywistym, ukrył się Julian Assange, twórca portalu WikiLeaks. Choć amerykańscy politycy bardzo chcieli go dorwać za ujawnianie ich brudów, nikt nie mógł tak po prostu wtargnąć na teren ambasady. Mogli jedynie czatować na zewnątrz.
W podobny sposób hakerzy nie mogą się dorwać do wzorca odcisku palca zamkniętego w enklawie (choć tutaj bariery są techniczne, nie prawne).

Inne porównanie: enklawy są jak zdolności z niedawno zakończonej mangi Jujutsu Kaisen.

Nie wchodząc w szczegóły: to manga o walkach czarodziejów. Niektórzy mają specjalną zdolność zwaną rozszerzeniem terytorium (właściwie domeny, ale to mogłoby się zanadto kojarzyć komputerowcom :wink:). Po jej użyciu czarodzieje narzucają na pewnym obszarze swoją rzeczywistość. Ich ataki mogą zyskać gwarancję trafienia itede.

Niektórzy mogą to kontrować różnymi „terytoriami kieszonkowymi”, które tworzą wycinek bezpiecznej przestrzeni w tej wrogiej rzeczywistości. Zupełnie jak enklawy na kontrolowanych przez nas urządzeniach.

…Tylko czy to by nie sugerowało, iż ktoś traktuje wnętrze naszego urządzenia jak wrogie terytorium?

Secure boot

…I trusted boot, bo są ze sobą powiązane. Tutaj będzie o tym bardzo pobieżnie, bo zostawię temat na inne wpisy.

Przy każdym uruchomieniu urządzenia piramidka systemowa buduje się od dołu. Najpierw malutki program na płycie głównej, potem większy bootloader, potem system, na koniec ten system włącza różne swoje programy.

Słowa booting oraz boot odnoszą się po prostu do uruchamiania urządzenia. Stąd również bootloader.

Enklawy są w stanie być integralną częścią procesu budowania systemu. Na każdym kroku analizują, czy wszystko jest jak powinno, a dolne partie systemu nie są zainfekowane wspomnianymi wcześniej bootkitami. Werdykt zostaje szczelnie zamknięty w enklawie i jest okazywany tylko na żądanie.

I owszem, przed czymśtam to chroni… Tylko iż w ten sposób pojawia się możliwość ustalenia, poza kontrolą użytkowników, czy ich system jest niemodyfikowany. Zgodny z fabrycznymi ustawieniami, prosto ze stajni takiego np. Microsoftu. A stąd już krótki krok do ciemnych stron.

Ciemne strony

Do tej pory wszystko było piękne i bajeczne. Nasz komputer, ściśle chroniony przed wirusami. Cudzy serwis – jak inne, pewnie też bezpieczne terytorium. Internet między nimi – czasem groźny, ale dzięki szyfrowaniu można go bezpiecznie przemierzać.

Niestety ta sielanka była tylko pozorna. Firmy postanowiły wykorzystać kryptograficzne gwarancje do zacieśnienia swojej kontroli. Pokażę kilka sposobów, w jakie to zrobiły.

Zdalna atestacja

To chyba najbardziej jaskrawy przykład nadchodzących patologii, więc to od niego zacznę. Zdalna atestacja polega w uproszczeniu na tym, iż cudzy serwis rozmawia z naszą enklawą ponad naszymi głowami.

  • Zewnętrzny serwis wysyła otwartą kłódkę do naszego komputera, żeby rozpocząć szyfrowaną komunikację. Leci to sobie przez internet, odporne na podglądaczy.
  • Dociera do programu/aplikacji na naszym urządzeniu… i nie zatrzymuje się tam, lecąc prosto do enklawy.
  • Enklawa odsyła własną kłódkę.

    Cyfrowo podpisaną, więc żaden nasz program jej nie przechwyci ani nie podrobi. Zaś narzędzie do cyfrowych podpisów tkwi wewnątrz enklawy, poza naszym zasięgiem.

  • Kłódka od enklawy trafia do zewnętrznego serwisu.
  • Od teraz korespondują ze sobą, wymieniając się informacjami.

    A wśród tych informacji mogą być na przykład fakty na temat naszego systemu, zgromadzone przez enklawę na etapie uruchamiania. Mówiące, czy nasz system jest na przykład niezmienianym Windowsem 11 prosto od producenta. jeżeli odpowiedź nie spodoba się zewnętrznemu portalowi, bo np. nasz system jest niestandardowy, to może nas spławić.

Pamiętacie wcześniejszy punkt o szyfrowaniu, gdy mogliśmy się napawać bezradnością podglądacza? No to teraz sami jesteśmy bezradni wobec szyfrowanej, podpisanej cyfrowo komunikacji. Część naszego własnego urządzenia nas zdradza z cudzym serwisem i działa przeciwko nam. Przypomnę obrazek wprowadzający:

W ten sposób miało działać Web Environment Integrity – rozwiązanie proponowane przez Google’a, które pozwoliłoby każdej stronie internetowej wysyłać do przeglądarki Chrome prośbę o weryfikację systemu.
Nie dość, iż umocniłoby to monopol Chrome’a, to do tego mogłoby służyć wykluczeniu rzadziej używanych systemów, jak Linux czy mobilne alternatywy. Zniknęłoby wyjście bezpieczeństwa na wypadek ogólnej monopolizacji.
Na szczęście porzucili feralny pomysł pod naciskiem opinii publicznej… Ale czy na długo?

Wiązanie programów do sprzętu

Wspomniałem, iż fundamentami piramidki są: hardware, czyli fizyczny sprzęt, oraz firmware, czyli programy sterujące tym sprzętem. Zwykle nieprzeniknione i wgrane przez producentów. Czasem, ze względu na cięcie kosztów, firmware nie wykorzystuje w pełni potencjału sprzętu.

Tu jednak może pomóc pewien fakt – w świecie cyfrowym zera i jedynki są sobie równe. Nie ma czegoś takiego jak zera/jedynki „graficzne” czy „dźwiękowe”. Istnieje oczywiście jakiś właściwy sposób ich czytania, ale to już poziom wyżej, kwestia interpretacji.

Zwykle da się dzięki temu podmienić cudzy, dziadowski firmware i wgrać tam coś własnego, lepszego, o otwartym kodzie źródłowym. Dopóki będzie to emitowało ciągi zer i jedynek o odpowiednim formacie, zrozumiałym dla sprzętu, to powinno działać sprawnie.

Problem w tym, iż poprzez cyfrowe podpisy sprzęt może weryfikować, czy firmware jest taki, jakiego oczekuje. Zabezpieczenie sztuczne, motywowane głównie chęcią kontroli… Ale skuteczne.
Kiedy producent przestanie wspierać sprzęt, to rośnie szansa, iż nikt nie stworzy otwartego firmware’u, żeby go wskrzesić, bo chętni nie będą w stanie podrobić wymaganego, unikalnego oznaczenia. Wszystko będzie musiało trafić do elektrośmieci.

DRM

DRM to skrót od Digital Rights Management. Jak sugerują pierwsze dwa słowa, ma związek z prawami (autorskimi) w świecie cyfrowym. W praktyce to różne metody służące zabezpieczaniu cyfrowych produktów przed kopiowaniem.

Więcej informacji

DRM to pojęcie szerokie, które nie musi się wiązać z TC. Można to uznać za dwa niezależne zbiory, które pokrywają się tylko w niektórych obszarach.
Bardzo interesujące filmy po polsku na temat DRM-ów, w tym również tych klasycznych, sprzed ery TC, stworzył Kacper Szurek (YouTube).

O ile atestacja uderza w ideę swobody w doborze programów, o tyle DRM godzi w koncepcję własności.

To przez niego mogą istnieć takie rzeczy jak filmy czy ebooki, z których choćby po kupnie można korzystać jedynie na zasadach ustalonych przez wydawcę. I działają tylko dopóty, dopóki istnieje ten wydawca.

Nie jest to zresztą mój wymysł. W przypadku ebooków Microsoft wyłączył kiedyś swoją platformę. Użytkownicy otrzymali komunikat: „w dniu X twoje książki przestaną działać”.

W przypadku filmów istnieją zabezpieczenia takie jak Widevine od Google’a. Ma kilka poziomów restrykcji. jeżeli chce się oglądać filmy w lepszej jakości, to trzeba mieć urządzenie wspierające poziom najwyższy, L1. Wymagający enklawy i niemodyfikowanego systemu.

W tym trybie zarówno przeglądarka, system, jak i procesor działają przeciw użytkownikowi, tworząc szyfrowany „tunel” między platformą streamingową a monitorem. Z założenia taki, żeby na żadnym etapie nie dało się niczego zescreenować ani przechwycić.

Użytkownik ma konsumować. A kiedy producent na dobre wycofa coś z repertuaru, nie uwalniając jednak licencji, to konsument ma grzecznie pochylić główkę. I pogodzić się z tym, iż dorobek kulturowy zniknął na dobre.

Dystopijne scenariusze

Trusted computing raczej nie pozostanie zjawiskiem marginalnym i może rosnąć w siłę. Za jego upowszechnieniem lobbuje organizacja Trusted Computing Group, która niedawno napisała chociażby:

Hakerzy coraz częściej przejmują kontrolę nad urządzeniami podłączonymi do sieci, wyposażonymi między innymi w kamery, mikrofony i GPS. Ze względu na naturę zagrożenia, potrzeba zwiększania bezpieczeństwa jest większa niż kiedykolwiek wcześniej.

Źródło: tweet Trusted Computing Group. Tłumaczenie moje.

Google również działa aktywnie na rzecz uszczelniania systemu Android. Pomijając wspomniany wcześniej pomysł Web Environment Integrity, niedawno dali aplikacjom na Androida możliwość ustalania, czy zostały zainstalowane przez oficjalną bazę Play Store (należącą do Google’a).

Niektóre z nich prawdopodobnie wykorzystają tę wiedzę do blokowania użytkowników alternatywnych, przyjaznych systemów mobilnych, jak LineageOS czy GrapheneOS. To ograniczenie sztuczne, nieuzasadnione. Do tego niekoniecznie związane z bezpieczeństwem, bo Graphene akurat góruje pod tym względem nad zwykłym Androidem. Jego twórcy rozważają pozwanie Google’a za działania antykonkurencyjne.

Najnowszy system Microsoftu, Windows 11, wprost wymaga modułu TPM w wersji 2.0 lub nowszej. Czyli: fizycznego chipa poza zasięgiem użytkowników, rodzaju enklawy.
Oznacza to, iż różne programy z upływem lat coraz częściej będą mogły zakładać jego obecność i nakładać na użytkowników dowolne restrykcje.

Wszystkie te trajektorie są niepokojące. Ale scenariusz prawdziwie cyberpunkowy nastąpiłby wówczas, gdyby do gry weszli gracze państwowi.
Gdyby obywatele musieli na mocy przepisów mieć jakąś aplikację, zaś aplikacja dopuszczałaby poprzez trusted computing tylko nieliczne, najpopularniejsze systemy od dużych firm – to mamy gotowy przepis na dystopijne, zmonopolizowane państwo.
To zagrożenie na razie teoretyczne. Ale na tyle istotne, iż warto cały czas mieć je w głowie.

Co robić?

Przede wszystkim – szerzyć świadomość zagrożenia, bo jest bardzo niska.

Można też przesiąść się na alternatywne produkty. W miarę możliwości odgooglować swojego Androida; spróbować Linuksa zamiast Windowsa (jest naprawdę przystępny; szczególnie w przypadku, gdy większość czasu spędza się w przeglądarce).

Protestować z całą mocą, gdyby państwo próbowało wprowadzić przymusem programy lub aplikacje, nie gwarantując zarazem pełnej otwartości ich kodu.

Warto wykazać zrozumienie i wsparcie dla pomniejszych projektów open source, choćby jeżeli mają swoje niedogodności. Im więcej osób wejdzie w ten ekosystem, tym większy opór napotkają korporacje przy próbach jego stłamszenia.

Widzę również pewne możliwości na poziomie społecznym.
Warto publicznie odtrącać gadżety, ślepy konsumpcjonizm i tandetną „nowoczesność”. Nie wpuszczać do swojego domu pierdół z Doliny Krzemowej czy jej chińskiego odpowiednika, opartych na zamkniętym oprogramowaniu: badziewnych gadżetów, asystentów głosowych, samojezdnych odkurzaczy i podobnego szmelcu.

Oczywiście marketingowa propaganda będzie się wtedy miotać, wyzywać od luddystów i jaskiniowców. Ale te słowa w moich oczach stopniowo stają się komplementami :wink:

Idź do oryginalnego materiału