Zabezpieczenia telewizji cyfrowej
Wakacje w pełni, na dworzu ciepło, przestępcy przenoszą się pewnie do popularnych kurortów (i tam warto na nich bardzo uważać, o czym też piszemy). A w ramach relaksu możecie poczytać sobie o tym, jak wyglądają (i wyglądały przez lata) zabezpieczenia cyfrowej telewizji, prosto z Raportu CERT Orange Polska 2018, piórem Arkadiusza Zembrowskiego. Jeśli kiedykolwiek Was ciekawiło dlaczego widzicie to, co widzicie na ekranach (a ci, którzy mają tego nie widzieć – nie widzą), zapraszamy do lektury.
A najlepiej rzecz jasna do przeczytania całego Raportu!
Co to w ogóle jest?
„Podpisuję umowę i dostaję sprzęt od dostawcy. Czasami sam tuner/dekoder, a czasami dodają jeszcze kartę z czipem. Jeśli wyjmę kartę to nie wyświetla obrazu. Jeśli zapomniałem zapłacić to też przestaje działać nawet jak jest karta.”. Tyle powinien wiedzieć typowy użytkownik dekodera, a właściwie to mówiąc fachowo urządzenia STB (z ang. Set-Top Box).
Starająć się wyjaśnić jak to działa, skoncentrujmy się wyłącznie na kluczowych aspektach mających znaczenie ze względu na bezpieczeństwo, pomijając kwestie sposobu nadawania, kodeków obrazu, dźwięku oraz medium transmisji. Po szczegóły zapraszamy do standardu ISO/IEC 13818 oraz DVB (www.dvb.org). Niezależnie od tego jaką drogą nadawca dostarcza sygnał: czy to jest DVB-T (naziemną), DVB-S(satelitarną), DVB-C(kablową) czy IPTV opiera się o system dostępu warunkowego (z ang. CAS – Conditional Access System). CAS działa w ten sposób, że po stronie nadawcy znajdują się urządzenia szyfrujące transmisje tzw. Scramblery. Scrambler szyfruje cyfrowy obraz audio/wideo używając algorytmu CSA z ang. Common Scrambling Algorithm czasami delikatnie zmodyfikowanego (dot. systemu BISS). Taki zaszyfrowany obraz po przejściu przez Multiplexer przekazywany jest za pomocą dowolnego medium do STB i tam jest deszyfrowany. CAS służy również do zabezpieczenia kluczy używanych do deszyfrowania obrazu oraz kontroli uprawnień na STB/karcie. Klucz używany do deszyfrowania obrazu zaszyfrowanego CSA nazywany jest Control Word w skrócie CW o długości 64bit z czego tylko 48bit nie jest znane.
Jak STB/SmartCard wie co i w jaki sposób ma deszyfrować?
Jak można zauważyć np. w technologii DVB-S komunikacja odbywa się tylko w jednym kierunku tj. do STB. Dlatego też wszelkie nietypowe operacje, jak wyzerowanie PIN-u czy ponowna aktywacja przeprowadzana jest przez klienta telefonicznie lub przez specjalny portal zamiast być automatycznie zlecana przez STB. Należy tu dodać kolejne dwa kluczowe pojęcia ECM i EMM.
EMM – entitlement management message – za pomocą tych instrukcji system CAS zarządza kartą/STB. Ponieważ EMMy z reguły są widziane przez wszystkich abonentów możemy je podzielić ze względu na ilość docelowych odbiorców pojedynczej instrukcji na:
EMMy globalne, przeznaczone dla wszystkich odbiorców jednocześnie – tym trybem wysyłane są zwykle np. aktualizacje firmware czy kasowanie starych uprawnień, aby zwolnić miejsce na karcie.
EMMy na grupę kart – tym kanałem wysyłane są zwykle informacje cykliczne, jak aktualizacja uprawnień i klucze deszyfrujące CW na kolejny miesiąc. Grupa zwykle obejmuje do 255 kart.
EMMy unikalne – przeznaczone dla kart/STB o konkretnym numerze seryjnym, tym trybem wysyłane są zwykle zmiany pakietów, blokady windykacyjne czy instrukcje aktywacyjne.
ECM – entitlement control message – za pomocą tych instrukcji do STB/karty przekazywany jest zaszyfrowany CW. ECM jest wysyłany do karty w zależności od kanału co ~7-20 sekund. CW z ECM jest dekodowane kluczem wprowadzonym wcześniej przez EMM, jeżeli tylko pakiet i data uprawnień pozwala na oglądanie kanału, z którego otrzymujemy ECM.
Z ciekawostek, o których warto wspomnieć – jak to się dzieje, że nie ma przerwy w obrazie, skoro CW działają tylko przez kilka sekund? Przecież karta musi je jeszcze zdekodować z ECM i dodatkowo obraz pojawia się od razu po wejściu na kanał.
W każdym ECM zawarte są dwa zaszyfrowane CW tj. aktualny i przyszły. Przykładowo na kanale X ECMy wysyłane są co 10 sekund, czyli CW zmienia się co 10 sekund. W 40 sekundach mamy 4 losowe klucze CW (1-4) w pierwszym po wejściu na kanał ECM zawarte są klucze CW (1) i CW (2), w drugim do 10 sek. CW (2) i CW (3), w kolejnych CW (3) i CW (4) itd. Dzięki takiej konstrukcji zawsze jest bufor bezpieczeństwa, dzięki któremu w STB obraz jest płynny, nawet jeśli występują opóźnienia w dostarczaniu zdekodowanych CW do descramblera w STB. Takie opóźnienia występują często np. w przypadku, gdy karta przetwarza EMM lub robi ponowny odczyt uprawnień. Wtedy CW z ECM jest dekodowane z opóźnieniem.
Rysunek przedstawia opisaną powyżej logikę działania:
Źródło obrazka https://www.headendinfo.com/ecm-emm-ca-system/
Operator wysyłając sygnał do karty EMMy ustawia ją w odpowiedni sposób, nadaje uprawnienia do kanałów na najbliższy miesiąc, przesyła klucze do dekodowania CW z ECM. Jeśli karta jest odpowiednio ustawiona to pozwala zdekodować CW i przesłać je do descrambler-a. Jeśli nie, to wysyła do STB kod błędu, który jest przekształcany w odpowiedni komunikat. Użytkownik dzwoni wtedy do biura obsługi przekazując go, a operator wnioskuje co się na karcie nie powiodło. Zwykle wykonywana jest wtedy reaktywacja karty, czyli zlecenie wysłania wszystkich EMMów ustawiających kartę. Użytkownik jest proszony o przełączenie na konkretny kanał.
O co chodzi z tym przełączeniem?
Należy przełączyć STB na częstotliwość, gdzie bitrate EMMów jest największy jak również, na którym EMMy reaktywacyjne pojawia się najwcześniej. Dzięki temu proces reaktywacji będzie trwał krócej. Dlaczego to mimo wszystko tyle trwa? Policzcie, ile każdy dostawca ma klientów i załóżcie, że każda karta abonencka powinna dostać wszystkie uprawnienia w maksymalnie jedną godzinę od włączenia. To są setki tysięcy instrukcji EMM i wszystkie one trafiają do STB i zatykają pasmo, a filtrowane i przesyłane do urządzenia są tylko te, które dotyczą konkretnej karty. W ten sposób karta/STB wie czy może zdekodować dany kanał.
Pora na trochę historii zabezpieczeń CAS u polskich dostawców telewizji. Na początku był analog ..i proste przestawienie linii w systemie PAL. Był to System Nagravision oraz modulowanie dźwięku. Szybko powstały dekodery obrazu na PC. Działały w ten sposób, że na PC posiadającym tuner TV uruchamiane było oprogramowanie, które po doczytaniu i zdekodowaniu kluczy odpowiednim filtrem ustawiało linie w PAL i dźwięk.
źródło: https://pl.wikipedia.org/wiki/Nagravision
Później pojawiła się w Polsce telewizja cyfrowa (1998 r.), zabezpieczenia przeszły na zupełnie inny poziom, zaczęto zabezpieczać obraz i dźwięk algorytmem CSA i przesyłać CW w ECM. W tym czasie w Polsce powstało dwóch dostawców telewizji cyfrowej. Jeden z nich wprowadził CryptoWorks (stworzony przez Philips) drugi system MediaGuard potocznie nazywany Seca (stworzony przez SECA) – obydwa zostały dość szybko złamane. Były pierwsze i raczej nieprzygotowane na to, że ktoś może je dość dokładnie przetestować. W ich przypadku odpowiednio spreparowanymi poleceniami do karty wydobyto klucze dekodujące CW z ECM oraz z użyciem inżynierii wstecznej, odtworzono cały algorytm dekodujący ECM. Chwile później pojawił się trzeci operator, który zabezpieczał CW szwajcarskim systemem Nagravision (stworzonym przez Kudelski Group), który z podobnych powodów został dość szybko złamany.
Mając cały algorytm i klucz mógł powstać emulator sprzętowy takiego systemu. W Polsce była to popularna „zielonka” składająca się z eepromu i układu PIC. Miała ona wdrożony algorytm systemu CAS oraz dogrywane programatorem Phoenix klucze wydobyte w danym miesiącu z oryginalnej karty lub z przechwyconej transmisji. Emulacja mogła być również realizowana na oryginalnym STB operatora, ale z zaprogramowanym, zmodyfikowanym lub alternatywnym software. Zaczęły się również pojawiać przeróbki odbiorników DVB wyposażone w system Linux oraz port Ethernet (STB D-Box2). Możliwości tych STB były ograniczone jedynie wyobraźnią twórców pluginów i software. Były dość popularne, ponieważ nie posiadały ograniczeń, które mają STB operatorów np. miały możliwość swobodnego kopiowania z STB odkodowanych nagrań, czy też strumieniowania obrazu na żywo z dowolnego kanału po SCISI(D-Box) lub po sieci LAN(D-Box2) i LPT (Pioneer). Kolejną ważną rzeczą była możliwość uruchomienia „multicam” (dbox1 interface CA) czyli kart z różnych systemów CAS oraz wprowadzono standard modułów CI.
W 2002 nastąpiło połączenie polskich operatorów oraz rezygnacja z systemu CryptoWorks. W związku ze złamaniem wersji pierwszej systemu MediaGuard operator rozpoczął wymianę systemu na wersję drugą. Warto podkreślić, że systemu CAS nie da się, a przynajmniej wtedy nie dało się załatać w taki sposób, aby zapobiec nieuprawnionemu odbiorowi, należało go wymienić w całości. Dodatkowo te same wersje systemu CAS, sprzedawane do operatorów telewizyjnych na całym świecie różnią się zwykle zestawami kluczy i czasami minimalnymi modyfikacjami algorytmów. Złamanie danej wersji systemu u operatora np. Hiszpanii spowoduje prawdopodobnie to samo w Polsce. Jest to tylko kwestią czasu. W 2002 roku pojawiły się na rynku karty emulujące karty MediaGuard 2 providerów hiszpańskiego i włoskiego, a 2004 był już dostępny emulator softwarowy System MediaGuard 2 polskiego operatora. W 2005 roku wymieniono Nagravision na wersje 2 („Aladin”), ale bardzo szybko został złamany za granicą, a niedługo potem w Polsce i emulowany na kartach tzw. „Funkach” (procesor AT90S8515 + EEPROM) podobnie jak wersja
Twórcy systemów CAS w wersjach 2.x zabezpieczyli się przed tym, że zostaną złamane i wprowadzili możliwość definiowania algorytmu dekodowania CW z ECM, gdy karta była w posiadaniu użytkownika. Algorytm mógł być zmodyfikowany poprzez wysłanie instrukcji EMM aktualizującej firmware karty i/lub zmianą w ECM, która definiowała ustawienia algorytmu dekodowania CW. Początkowo dawało to mizerne efekty, ponieważ każda modyfikacja algorytmu owocowała dość szybkim wypuszczeniem zaktualizowanych emulatorów. Ostatecznie platforma MediaGuard 2 zatrzymała działanie emulatorów prawdopodobnie przez zastosowanie algorytmu z elementu sprzętowego karty, a nie z jego pamięci, przynajmniej takie informacje pojawiały się na forach internetowych w tamtym czasie. Niestety, w przypadku Nagravision 2 nie udało się zablokować emulacji ze względu na głębokie rozpracowanie systemu. Wydaje się, że jeśli nie można wykonać analizy wstecznej algorytmu to system staje się bezpieczny. Otóż nic bardziej mylnego, tu pojawia się kolejne ważne pojęcie:
MOSC – (ang. Modified Original Smart Card) – czyli oryginalna karta operatora, ale ze zmodyfikowaną zawartością. Zwykle MOSC pozwalał na podniesienie uprawień lub zrzut/wgranie EEPROMu.
W pierwszych wersjach systemów można było zmodyfikować kartę samymi poleceniami wysyłanymi do karty. W kolejnych modyfikacja karty była przed tym zabezpieczona w sposób kryptograficzny, a klucz posiadał operator bądź dostawca systemu. Dlatego standardowa modyfikacja odbywała się wyłącznie przez oficjalne EMMy. Jak więc zmusić kartę, aby przyjęła polecenie, mimo że nie ma się klucza – na rynku pojawiły się urządzenia noszące tajemniczą nazwę „unlooper”. W ich działaniu chodziło głównie o to, żeby zmusić kartę do nie wykonania jakiejś funkcji sprawdzającej. Wyzwalał on pewien skok na karcie – częstotliwości lub napięcia („Glitch”) w określonym momencie i o określonej długości trwania podczas wysyłania instrukcji do karty. Takie działanie miało na celu destabilizację np. wykonania funkcji kryptograficznej sprawdzającej, przez co karta przyjmowała instrukcję robioną ręcznie bez użycia niejawnych kluczy operatora. Pozwalało to np. dodać wyższe uprawnienia na kolejny miesiąc, klucze itp. lub też odczyt danych z pamięci eeprom karty.
W 2006 roku na polskim ryku pojawiło się dwóch nowych, dużych graczy. Jeden z nich użył do zabezpieczania ECM sytemu Viaccess (stworzony przez France Télécom) drugi system Conax (stworzony przez Conax AS). Były one dość odporne na złamanie, przynajmniej Conax.
Gdy zabezpieczenia nie pozwoliły na dalszą emulację systemów i modyfikację kart dostępowych, do zwiększenia dostępności do treści został wykorzystany i spopularyzowany tzw. sharing.
„Sharing” polega na używaniu jednej lub kilku kart operatów do dekodowania CW z ECM, ale w architekturze klient-serwer. Karta jest włożona w serwer z odpowiednim oprogramowaniem i czytnikiem kart, natomiast nieautoryzowany odbiorca łączy się przez IP. Urządzeniem klienckim może być np. STB z systemem Linux. Łączy się ono z serwerem, do którego jest włożona karta operatora i komunikuje się z nią w celu dekodowania ECM. Przy założeniu, że ECMy na danym kanale są wysyłane co ok. 7-10 sekund, a CW wraca od klienta w ok. 400ms, daje to możliwość oglądana 17-25 różnych kanałów jednocześnie na jednej karcie. Jakie szkody przynosi ten proceder należy ocenić samemu.
Każda akcja wywołuje odpowiednią reakcję. Pierwszą była wymiana systemu na taki, który jest odporny na MOSC. W roku 2008 zakończyła się wymiana kart i systemu z Nagravision 2 do Nagravsion 3, oraz u drugiego operatora wymiana kart MediaGuard 2 na karty MediaGuard 3. W praktyce był to pierwszy w Polsce system tunelowany, który nie wymagał wymiany CAS w odbiorniku a jedynie tunelowania instrukcji do systemu Nagravision. Klientom wymieniono tylko karty bez STB. Takie posuniecie było możliwe, ponieważ w 2004 roku Grupa Kudelski przejęła konkurencję tj. zakupiła technologię MediaGuard od ówczesnego właściciela Thomson’s Canal+ Technologies.
Dodatkowym zabezpieczeniem było tzw. „Parowanie”. Polegało na tym, że komunikacja pomiędzy kartą a STB była zabezpieczona kryptograficznie. Karta może być użyta wyłącznie w oficjalnym STB, a nie np. w serwerze sharingu. Pierwsza wersja parowania występowała już w Nagravision jednak to zostało szybko złamane. Klucz potrzebny do zdekodowania transmisji znajdował się we flashu STB. Podobna sytuacja miała miejsce w systemie Conax. Początkowo po włączeniu parowania na kanałach system był uważany za bezpieczny, ale po pewnym czasie znaleziono sposób, aby wyciągnąć z flasha STB klucz RSA potrzebny do zdekodowania CW wysyłanego przez kartę.
Następną odpowiedzią producentów był licznik ECM/CW. W tym przypadku karty były w stanie określić, czy są używane przez jednego użytkownika czy przez wielu. Ograniczając możliwość oglądania do np. 3 kanałów jednocześnie, jeżeli ich liczba była przekroczona, karta zaczynała wysyłać fałszywe CW – nie wyrzucała kodów błędu, ale obraz nie był dekodowany. Żeby wrócić do typowego dekodowania ECM użytkownik musiał odczekać odpowiedni czas. Dokładniejsze informacje jak to działa można znaleźć w internecie, w dokumentach zgłoszonych do amerykańskiego urzędu patentowego np. przez „NagraCard SA”.
Kolejnym, dość znaczącym krokiem przeciwdziałania nieuprawnionemu odbiorowi, było przeniesienie kluczy parujących z pamięci do wnętrza procesora. Potocznie nazwano to parowaniem sprzętowym lub „Chip Pairing”. Świetne posunięcie. Niestety, prawdopodobnie ze względu na koszty operatorzy nie zdecydowali się na szerszą wymianę na zabezpieczone zestawy. Wydawali je tylko nowym klientom, więc wymiana była stopniowa.
Rok 2012. Wtedy wszyscy operatorzy zaczęli już wydawać nowym użytkownikom karty parowane z dekoderami. Były to systemy Conax, Nagravision i Viaccess. Wydawało się, że nieuprawiony odbiór stopniowo będzie blokowany, ale nie obyło się bez małego falstartu. Badacze z firmy Security Explorations, odkryli pomyłkę w implementacji przechowywania kluczy parujących w rejestrach procesorów firmy Stmicroelectronics, dzięki czemu firma szybko naprawiła błąd. Nie opublikowali wtedy szczegółów ataku wiadomo było jednak, że POC wykonali na STB polskiego operatora i systemie Conax.
Od tego czasu kwestie zabezpieczeń TV w Polsce nie zmieniły się szczególnie. Stary, podatny na rozparowanie sprzęt i algorytmy są stopniowo wycofywane z rynku, a zastępują je STB oferujące np. odbiór kanałów UHD. Pojawiają się również STB bezkartowe, gdzie funkcjonalność SmartCard została przeniesiona do wnętrza STB. Obecnie takie rozwiązania uważane są za bezpieczne.
Co czeka nas w najbliższych latach?
Przeniesienie całego CAS do wnętrza dekoderów i oparcie zabezpieczeń na rozwiązaniach producentów sprzętu współpracującego z dostawcami CAS. Oprócz ochrony dostępu do komunikacji CAS, stawia dodatkową barierę ekonomiczno-formalną dostępności do urządzeń. Z jednej strony mamy zintegrowany system pozbawiony komunikacji zewnętrznej. Z drugiej możliwość enumeracji całego systemu oraz zwiększony koszt dla operatora, związany z ponownym zabezpieczeniem treści w przypadku złamania systemu. Jak uczy nas ponad 20-letnia historia zabezpieczeń treści multimedialnych – to tylko postawienie kolejnej bariery i kolejne przesunięcie w czasie nieautoryzowanego dostępu.
Kolejnym problemem jest streaming kanałów i wydarzeń PPV. Ostatnie kilka lat przyniosło znaczący wzrost dostępności i szybkości internetu. Użytkownicy nie potrzebują już telewizora z tunerem, a odbiornikiem staje się komputer i komórka. Obecnie głównym problemem dla dostawców CAS staje się zabezpieczenie treści w internecie. Jest to dodatkowo utrudnione, bo tym razem dostawca nie ma po stronie klienta bezpiecznego odbiornika czy karty z uprawnieniami, a jedynie standardową przeglądarkę lub smartfon, który w 100% jest pod kontrolą użytkownika.