Analiza kosztów systemu ochrony treści Windows Vista

Zwiększone zapotrzebowanie na moc procesora

Ponieważ szyfrowanie danych pochłania dodatkowe cykle procesora, dostawca OEM może być zmuszony do zwiększenia wymagań dotyczących klasy CPU. Ten koszt ostatecznie ponosi nabywca multimedialnego peceta – ATI

Windows Vista wprowadza wymóg szyfrowania całej transmisji na szynie systemowej (przykładowo, dane przesyłane do układów graficznych muszą być szyfrowane algorytmem AES-128). Mało tego, szyfrowana musi być również komunikacja pomiędzy programami. Integralność i autentyczność komunikatów wymienianych pomiędzy aplikacjami działającymi w przestrzeni użytkownika i przestrzeni jądra jest zapewniana przez OMAC, co odbija się na prędkości tych połączeń. Procedura nawiązywania połączenia wygląda następująco:

sterownik -> aplikacja: ceryfikat + jednorazowy znacznik
aplikacja -> sterownik: RSA-OAEP-SHA512( znacznik || klucz || nrsekw1 || nrsekw2 )

W tym kroku sterownik wysyła swój certyfikat do aplikacji zgłaszającej żądanie połączenia za pomocą procedury DxgkDdiOPMGetCertificate() i dołącza jednorazowy identyfikator wywołując procedurę DxgkDdiOPMGetRandomNumber(). Jest to certyfikat COPP (stosowany w XP) lub OPM (stosowany w Viście). Istnieje też trzeci typ certyfikatu, którego używają sterowniki posiadające dostęp do UAB (User-Accessible Bus). Certfikat wymieniany między sterownikiem i aplikacją zawiera klucz RSA o długości 2048 bitów, który używany jest do zaszyfrowania 40-bitowego znacznika, 12-bitowy klucz sesji oraz dwa losowe, 32-bitowe numery sekwencyjne. Pierwszy z nich używany jest do przesyłania wiadomości statusu z wykorzystaniem DxgkDdiOPMGetInformation() a drugi do wysyłania komend poprzez DxgkDdiOPMConfigureProtectedOutput().

Gdy klucze zostaną już wymienione, każdą z funkcji wywołuje się poprzez:

in = OMAC( znacznik || nrsekw || dane )
out = OMAC( znacznik || nrsekw || dane )

(Użyłem konwencjonalnego zapisu „bity w szeregu”, choć w rzeczywistości poszczególne wartości są polami struktury). To rozwiązanie bardzo podobne, jak to, które zastosowano w SSL czy SSH (w praktyce pominięto niektóre kroki, jak negocjacja szyfru, bo w tym przypadku szyfry są z góry ustalone). Odkrycie, że oto aplikacje działające w pamięci komputera porozumiewają się poprzez coś w rodzaju SSL jest naprawdę dziwnym uczuciem.

Od dawna wiadomo że procesożerne szyfrowanie łączności jest jednym z najgorszych rozwiązań, jakie można zastosować w celu zapewnienia bezpieczeństwa danych. Już dwadzieścia lat temu inżynierowie IBM stwierdzili że szyfrowane szyny systemowe są po prostu niepraktyczne (odpowiednie opracowanie można znaleźć w pochodzących z 1987 roku materiałach sympozjum IEEE poświęconego bezpieczeństwu i prywatności – IEEE Symposium on Security and Privacy).

W celu utrudnienia życia włamywaczom każdy sterownik musi co 30ms (dla wyjść cyfrowych, dla analogowych co 150 ms) wysyłać sygnał kontrolny do nadzorowanego przez siebie sprzętu. Oznacza to, że nawet wtedy, gdy w systemie nie dzieje się absolutnie nic, cała gromada sterowników musi się uaktywniać trzydzieści razy na sekundę tylko po to, żeby upewnić się… że nic się nie dzieje (Leo Laporte w podkaście Stevena Gibsona „Security Now” nazywa Vistę “paranoicznym systemem operacyjnym”. Są jeszcze dodatkowe wymagania, uzależnione od sprzętu. Vista sprawdza na przykład „bity spustowe” karty graficznej co każdą przesłaną ramkę obrazu. Docierają do mnie informacje o problemach w odtwarzaniu obrazu i dźwięku nawet na bardzo wydajnych systemach.[1] Z czasem okaże się, czy problem ten spowodowany jest przez niedopracowane sterowniki, czy też jednak jest efektem działania systemu ochrony treści. Stopień skomplikowania procesu obsługi mediów w nowym systemie Microsoftu łatwo sobie uzmysłowić zapoznając się z diagramem przedstawiającym MIG. Składa się na niego jedenaście elementów, z czego tylko dwa (sterowniki audio i video) służą do przedstawiania treści. Przeznaczeniem pozostałych dziewięciu jest ochrona danych.

Jeszcze większy radykalizm w kwestii rozwijania zabezpieczeń znaleźć można w materiałach przygotowanych przez dział badawczy Microsoftu. Jako przykład niech posłuży opracowanie ASPLOS X pt. Enabling Trusted Software Integrity, w którym proponuje się dodawanie zaszyfrowanych danych do każdego bloku instrukcji procesora, co miałoby zapobiec możliwości wykorzystania kodu do czegokolwiek innego niż przewidział to jego twórca. To coś daleko więcej niż zwykłe podpisywanie. W tym rozwiązaniu każdy blok instrukcji przekazywanych procesorowi zawiera zaszyfrowane dane, których odkodowaniem zajmuje się specjalna jednostka wbudowana bezpośrednio w CPU (około 20 000 bramek logicznych w przypadku układów RISC, ale o wiele więcej w dla bardziej skomplikowanych procesorów x86). Jednostka ta „w locie” odszyfrowuje dane i sprawdza w ten sposób, czy kod który ma zostać wykonany nie został zmieniony. W tym układzie oprogramowanie odtwarzające media jest w momencie instalacji przypisane do procesora i instalowane jest w specjalnym trybie „single-user” z wykorzystaniem pamięci wirtualnej i wyłączonymi wszystkimi przerwaniami. Po zastosowaniu optymalizacji proces dekodowania MPEG czy JPEG jest wolniejszy o jakieś 10-20%.

Zintegrowane z płytami głównymi karty graficzne stwarzają dodatkowy problem – odtwarzany materiał przechowują przecież w pamięci systemowej, skąd mogą być przeniesione do pliku wymiany. W celu ich ochrony Vista oznacza strony pamięci przechowujące dane audio/video za pomocą specjalnego bitu, który zmusza system do zaszyfrowania ich przed przeniesieniem na dysk i powtórne odszyfrowania przy wczytaniu do pamięci.((Takie szyfrowanie wspierały będą wersje Enterpise i Ultimate ale z tego dobrodziejstwa nie będzie miał szansy skorzystać przeciętny użytkownik. W dodatku jest to szyfrowanie typu „wszystko albo nic”, któremu podlegają wszystkie pliki systemowe i użytkownika, gdy tymczasem najważniejszy jest plik wymiany, tam bowiem trafiają naprawdę cenne dane. Właściwym rozwiązaniem problemu jest tu technika stosowana w OpenBSD, który podczas startu generuje losowy klucz, którym następnie szyfruje wszystkie dane trafiające do partycji wymiany. Co ciekawsze, Windows Readyboost szyfruje dane zapisywane na napędach USB, więc odpowiednia technologia jest już obecna w każdej Viście, z niewiadomych tylko względów nie działa w odniesieniu do pliku wymiany.)). Vista traktuje w tak szczególny sposób jedynie dane będące obiektem zainteresowania systemu ochrony treści – bez żadnych problemów przeniesie do pliku wymiany na przykład nieszyfrowane PIN-y Waszych kart kredytowych. Wygląda na to, że dla Microsoftu ramka filmu HD ma większe znaczenie niż poufne dane użytkownika.

Prawdę mówiąc w odniesieniu do „treści kwalifikowanych” firma stosuje wyższe standardy bezpieczeństwa niż proponowane przez kogokolwiek i kiedykolwiek zabezpieczenia danych TOP SECRET lub TS/SCI (najbliżej był moduł LOCK
z dalszymi modułami SIDEARM oraz BED
, który nie był aż tak śmiałym posunięciem jak Vista i po 17 latach rozwoju trafił do kosza). Tak, poziom bezpieczeństwa jaki Vista stara się osiągnąć jest bardziej wyrafinowany niż jakiekolwiek wymagania rządu Stanów Zjednocznych stawiane przy przetwarzaniu największych rządowych tajemnic.

Co jeszcze przynosi realizowana przez Microsoft strategia całkowitego odcięta użytkownika od chronionych danych? Na przykład to, że dekompresja filmów przez procesor nie jest już możliwa, żaden bowiem sprzęt nie poradzi sobie jednocześnie z dekompresją i szyfrowaniem. Zadanie to zostanie więc przerzucone na układ graficzny, który będzie musiał umieć się uporać przynajmniej z IDCT, kompensacją ruchu w MPEG oraz microsoftowym kodekiem VC-1. Czasy tanich kart graficznych bez dekodera video mamy już za sobą.

Niemożność dekodowania strumienia wideo na drodze programowej oznacza również, że żaden algorytm kompresji nie obsługiwany przez dekodery sprzętowe nie będzie miał racji bytu. Gdyby na przykład Ogg został kiedyś jakimś cudem użyty jako format przesyłania danych HD, to powinien używać kodeka w rodzaju Windows Media VC-1, bo inaczej nie ma szans w nowym systemie Microsoftu i na sprzęcie „Vista Ready”. Problem ma również cyfrowe kino wysokiej jakości (D-Cinema), które bazuje na Motion JPEG2000, ponieważ MPEG i jego odpowiedniki nie zapewniają odpowiedniego poziomu jakości obrazu. Jako że JPEG2000 używa kompresji bazującej na teorii falek (wavelet-based compression) a nie – tak jak MPEG – na DCT, to na kartach nie obsługujących tego algorytmu nie będzie możliwe odtworzenie filmów w tym standardzie. Pamiętajmy, że wszystkie filmy D-Cinema będą „treściami kwalifikowanymi” – czyli że na Viście nie będzie można ich odtworzyć dopóty, dopóki w nieokreślonym momencie w przyszłości nie pojawią się karty graficzne wspierające takie operacje. Porównajmy to z sytuacją z filmami MPEG, gdzie właśnie kodeki programowe, jak XingMPEG, w praktyce otworzyły i zbudowały rynek dla „video na PC”. Dziś taka historia nie ma prawa się powtórzyć – a to wszystko dzięki systemie ochrony treści Microsoft Vista.

Z punktu widzenia przeciętnego użytkownika problem ten okazuje się zupełnie odmienny. Często spotyka się pecety tak zainfekowane (oprogramowaniem szpiegowskim, wirusami, trojanami, botami i tak dalej), że z ledwością można na nich pracować. Dodatkowe wymagania systemu ochrony treści będą dla nich przysłowiowym gwoździem do trumny (według różnych badań przeciętny podłączony do sieci PC jest zainfekowany 20-30 egzemplarzami niechcianego oprogramowania). Teoretycznie komputery takie mogą mieć spory zapas „mocy”, ale konieczność utrzymywania prawdziwego „małego zoo” ukrytych szkodników oraz spadek wydajności spowodowany działaniem systemu ochrony treści mogą doprowadzić do systuacji, gdy odtwarzanie nagrań stanie się w praktyce niemożliwe. Większość użytkowników poczeka cierpliwie na otwarcie dokument Worda, zdenerwuje się jednak solidnie, gdy film zacznie gubić klatki a sygnał audio zanikać.


Przypisy:

  1. Informacje, które do mnie dotarły wskazują, że naprawdę stabilne sterowniki firm trzecich pojawią się dopiero w połowie 2007 roku. Dostawcy są zdesperowani, by mieć je gotowe w chwili premiery Visty, choć nie udało im to w chwili skierowania nośników do tłoczenia, więc to oprogramowanie trzeba będzie pobierać z internetu. Wtedy sterowniki te określano mianem „w najlepszym razie wersji beta”, więc na pewno usłyszymy o tym opóźnieniu po premierze nowego systemu Microsoftu. []

strona: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24