Ścieżka chronionego nośnika
W tym temacie omówiono trzy powiązane tematy: chronione środowisko, bramę współdziałania multimediów oraz odwoływanie i odnawianie.
- Chronione środowisko (PE) to zestaw technologii, które umożliwiają przepływ zawartości chronionej z systemu Windows Vista i przez system Windows Vista w sposób chroniony. Wszystkie składniki w środowisku chronionym są zaufane, a proces jest chroniony przed manipulowaniem.
- Ścieżka chronionego nośnika (PMP) to plik wykonywalny uruchamiany w chronionym środowisku.
- Jeśli zaufany składnik w środowisku PE zostanie naruszony, po odpowiednim procesie zostanie odwołany. Firma Microsoft udostępnia jednak mechanizm odnawiania umożliwiający zainstalowanie nowszej, zaufanej wersji składnika, gdy stanie się dostępny.
Aby uzyskać informacje na temat składników chronionych multimediów podpisywania kodu, zobacz oficjalny dokument Podpisywanie kodu dla składników chronionych multimediów w systemie Windows Vista.
Ten temat zawiera następujące sekcje:
- chronione środowisko
- projektowanie środowiska chronionego
- ścieżki chronionych multimediów
- omówienie negocjacji zasad
- odwoływania i odnawiania
- ochrony linków wyjściowych
- Tematy pokrewne
Chronione środowisko
Ochrona zawartości obejmuje wiele technologii, z których każda próbuje zapewnić, że nie można używać zawartości w sposób niezgodny z intencją właściciela zawartości lub dostawcy. Te technologie obejmują ochronę kopii, ochronę linków, dostęp warunkowy i zarządzanie prawami cyfrowymi (DRM). Podstawą każdego z nich jest zaufanie: dostęp do zawartości jest udzielany tylko składnikom oprogramowania, które są zgodne z warunkami użytkowania przypisanymi do tej zawartości.
Aby zminimalizować zagrożenia przed chronioną zawartością, oprogramowanie Windows Vista i Media Foundation Software umożliwia uruchamianie zaufanego kodu w chronionym środowisku. PE to zestaw składników, wytycznych i narzędzi mających na celu zwiększenie ochrony przed piractwom zawartości.
Przed dokładniejsze zbadaniem pe ważne jest, aby zrozumieć zagrożenia, które ma na celu zminimalizowanie. Załóżmy, że uruchamiasz aplikację multimedialną w procesie trybu użytkownika. Aplikacja jest połączona z różnymi bibliotekami linków dynamicznych (DLL), które zawierają wtyczki multimedialne, takie jak dekodatory. Inne procesy działają również w trybie użytkownika, a różne sterowniki są ładowane w jądrze. Jeśli nie istnieje żaden mechanizm zaufania, istnieją następujące zagrożenia:
- Aplikacja może uzyskiwać bezpośredni dostęp do chronionych nośników lub włamać się do pamięci procesu.
- Wtyczki mogą uzyskiwać bezpośredni dostęp do zawartości lub włamać się do pamięci procesu.
- Inne procesy mogą włamać się do pamięci procesu nośnika bezpośrednio lub przez wstrzyknięcie kodu.
- Sterowniki jądra mogą włamać się do pamięci procesu nośnika.
- Zawartość może być wysyłana poza systemem za pośrednictwem niechronionego nośnika. (Ochrona łączy została zaprojektowana w celu wyeliminowania tego zagrożenia).
Projektowanie chronionego środowiska
Chronione środowisko jest uruchamiane w osobnym procesie chronionym od aplikacji multimedialnej. Funkcja procesu chronionego systemu Windows Vista uniemożliwia innym procesom dostęp do chronionego procesu.
Po utworzeniu chronionego procesu podstawowe składniki jądra identyfikują niezaufane składniki i wtyczki, dzięki czemu chronione środowisko może odmówić ich załadowania. Zaufany składnik to składnik, który został odpowiednio podpisany przez firmę Microsoft. Jądro śledzi również moduły ładujące się do niego, umożliwiając chronionemu środowisku zatrzymanie odtwarzania chronionej zawartości, jeśli zostanie załadowany niezaufany moduł. Przed załadowaniem składnika jądra jądro sprawdza, czy jest zaufany. Jeśli tak nie jest, zaufane składniki już w pe odmawiają przetwarzania chronionej zawartości. Aby to umożliwić, składniki PE okresowo wykonują kryptograficzne uzgadnianie z jądrem. Jeśli jest obecny niezaufany składnik trybu jądra, uzgadnianie kończy się niepowodzeniem i wskazuje pe, że istnieje niezaufany składnik.
Jeśli zaufany składnik zostanie naruszony, po odpowiednim procesie można go odwołać. Firma Microsoft udostępnia mechanizm odnawiania umożliwiający zainstalowanie nowszej zaufanej wersji, jeśli jest dostępna.
Ścieżka chronionego nośnika
Ścieżka chronionego nośnika (PMP) to podstawowy plik wykonywalny PE dla programu Media Foundation. PMP jest rozszerzalny, dzięki czemu można obsługiwać mechanizmy ochrony zawartości innych firm.
PMP akceptuje chronioną zawartość i skojarzone zasady z dowolnego źródła programu Media Foundation przy użyciu dowolnego systemu ochrony zawartości, w tym tych udostępnianych przez osoby trzecie. Wysyła zawartość do dowolnego ujścia programu Media Foundation, o ile ujście jest zgodne z zasadami określonymi przez źródło. Obsługuje również przekształcenia między źródłem a ujściem, w tym przekształcenia innych firm, o ile są zaufane.
PMP działa w procesie chronionym izolowanym od aplikacji multimedialnej. Aplikacja ma możliwość wymiany komunikatów poleceń i sterowania za pomocą protokołu PMP, ale nie ma dostępu do zawartości po przekazaniu jej do PMP. Na poniższym diagramie przedstawiono ten proces.
Zacienione pola reprezentują składniki, które mogą być dostarczane przez inne firmy. Wszystkie składniki utworzone wewnątrz chronionego procesu muszą być podpisane i zaufane.
Aplikacja tworzy wystąpienie sesji multimediów wewnątrz chronionego procesu i odbiera wskaźnik do sesji multimediów serwera proxy, która marshaluje wskaźniki interfejsu przez granicę procesu.
Źródło multimediów można utworzyć w ramach procesu aplikacji, jak pokazano tutaj, lub wewnątrz chronionego procesu. Jeśli źródło multimediów jest tworzone wewnątrz procesu aplikacji, źródło tworzy serwer proxy dla siebie w procesie chronionym.
Wszystkie inne składniki potoku, takie jak dekodatory i ujścia multimediów, są tworzone w procesie chronionym. Jeśli te obiekty uwidaczniają jakiekolwiek interfejsy niestandardowe dla aplikacji, muszą podać serwer proxy/wycinkę DCOM, aby przeprowadzić marshaling interfejsu.
Aby wymusić zasady dotyczące chronionej zawartości podczas przepływu potoku, PMP używa trzech typów składników: wejściowych urzędów zaufania (ITA), urzędów zaufania danych wyjściowych (OTA) i obiektów zasad. Te składniki współpracują ze sobą w celu udzielenia lub ograniczenia praw do korzystania z zawartości oraz określenia ochrony linków, które muszą być stosowane podczas odtwarzania zawartości, takiej jak ochrona zawartości cyfrowej o wysokiej przepustowości (HDCP).
Wejściowe urzędy zaufania
Usługa ITA jest tworzona przez zaufane źródło multimediów i wykonuje kilka funkcji:
- Określa prawa do korzystania z zawartości. Prawa mogą obejmować prawo do odtwarzania zawartości, transferowania jej na urządzenie itd. Definiuje uporządkowaną listę zatwierdzonych systemów ochrony danych wyjściowych i odpowiednie zasady wyjściowe dla każdego systemu. ItA przechowuje te informacje w obiekcie zasad.
- Udostępnia odszyfrowywanie wymagane do odszyfrowywania zawartości.
- Ustanawia relację zaufania z modułem jądra w chronionym środowisku, aby upewnić się, że usługa ITA działa w zaufanym środowisku.
ItA jest skojarzona z pojedynczym strumieniem zawierającym chronioną zawartość. Strumień może mieć tylko jedną ita, a wystąpienie ITA może być skojarzone tylko z jednym strumieniem.
Wyjściowe urzędy zaufania
Usługa OTA jest skojarzona z zaufanymi danymi wyjściowymi. OTA uwidacznia akcję, którą zaufane dane wyjściowe mogą wykonywać na zawartości, na przykład odtwarzanie lub kopiowanie. Jej rolą jest wymuszenie co najmniej jednego systemu ochrony danych wyjściowych, które są wymagane przez ita. Usługa OTA wysyła zapytanie do obiektu zasad dostarczonego przez ITA, aby określić, który system ochrony musi wymuszać.
Obiekty zasad
Obiekt zasad hermetyzuje wymagania dotyczące ochrony zawartości ita. Jest on używany przez aparat zasad do negocjowania obsługi ochrony zawartości w usłudze OTA. OtA wysyła zapytania do obiektów zasad w celu określenia, jakie systemy ochrony muszą wymuszać na poszczególnych danych wyjściowych bieżącej zawartości.
Tworzenie obiektów w PMP
Aby utworzyć obiekt w ścieżce chronionego nośnika (PMP), IMFMediaSource wywołuje IMFPMPHostApp::ActivateClassById, z określonym wejściem IStream sformatowane w następujący sposób:
Format: (All DWORD values are serialized in little-endian order)
[GUID (content protection system guid, obtained from Windows.Media.Protection.MediaProtectionSystemId)]
[DWORD (track count, use the actual track count even if all tracks are encrypted using the same data, note that zero is invalid)]
[DWORD (next track ID, use -1 if all remaining tracks are encrypted using the same data)]
[DWORD (next track's binary data size)]
[BYTE* (next track's binary data)]
{ Repeat from "next track ID" above for each stream }
Omówienie negocjacji zasad
Istnieją trzy podstawowe wymagania, które należy spełnić przed przetworzeniem chronionej zawartości w PMP. Najpierw chroniona zawartość musi być wysyłana tylko do zaufanych danych wyjściowych. Po drugie, do strumienia muszą być stosowane tylko dozwolone akcje. Po trzecie, do odtwarzania strumienia należy używać tylko zatwierdzonych systemów ochrony danych wyjściowych. Aparat zasad koordynuje się między itas i OTAs, aby upewnić się, że te wymagania zostały spełnione.
Najprostszym sposobem zrozumienia procesu jest zapoznanie się z uproszczonym przykładem, który identyfikuje kroki niezbędne do odtwarzania zawartości Advanced System Format (ASF) chronionej przez usługę Windows Media Digital Rights Management (WMDRM).
Gdy użytkownik uruchamia aplikację odtwarzacza i otwiera plik ASF z chronionym strumieniem audio i chronionym strumieniem wideo, należy wykonać następujące czynności:
- Aplikacja tworzy źródło multimediów ASF i sesję ścieżki chronionego nośnika (PMP). Program Media Foundation tworzy proces PMP.
- Aplikacja tworzy częściową topologię zawierającą węzeł źródłowy audio połączony z modułem renderowania audio, a węzeł źródłowy wideo połączony z rozszerzonym modułem renderowania wideo (EVR). W przypadku modułów renderujących aplikacja nie tworzy bezpośrednio modułu renderowania. Zamiast tego aplikacja tworzy w procesie niechronionym obiekt znany jako obiekt aktywacji . PMP używa obiektu aktywacji do utworzenia modułów renderujących w procesie chronionym. (Aby uzyskać więcej informacji na temat obiektów aktywacji, zobacz obiekty aktywacji.)
- Aplikacja ustawia częściową topologię w sesji PMP.
- Sesja PMP serializuje topologię i przekazuje ją do hosta PMP w procesie chronionym. Host PMP wysyła topologię do aparatu zasad.
- Moduł ładujący topologii wywołuje IMFInputTrustAuthority::GetDecrypter w itas i wstawia odszyfrowywania do topologii natychmiast podrzędnej odpowiednich węzłów źródłowych.
- Moduł ładujący topologii wstawia dekodatory audio i wideo podrzędne węzłów odszyfrowywania.
- Aparat zasad skanuje wstawione węzły, aby określić, czy którykolwiek implementuje interfejs IMFTrustedOutput. EVR i renderer audio implementują zarówno IMFTrustedOutput, ponieważ wysyłają dane poza PMP.
- Każda usługa ITA potwierdza, że działa wewnątrz chronionego procesu, wykonując uzgadnianie kryptograficzne z modułem jądra chronionego środowiska.
- Dla każdego strumienia aparat zasad negocjuje zasady, uzyskując obiekt zasad z ITA i przekazując go do OTA. OTA zawiera listę systemów ochrony, które obsługuje, a obiekt zasad wskazuje, które systemy ochrony muszą być stosowane wraz z odpowiednimi ustawieniami. OTA następnie stosuje te ustawienia. Jeśli nie można tego zrobić, zawartość zostanie zablokowana.
Odwoływanie i odnawianie
Zaufany składnik można odwołać, jeśli zostanie naruszony lub zostanie wykryty naruszenie umów licencyjnych, na podstawie których początkowo był zaufany. Istnieje mechanizm odnawiania umożliwiający zainstalowanie nowszej, bardziej zaufanej wersji składnika.
Zaufane składniki są podpisane przy użyciu certyfikatu kryptograficznego. Firma Microsoft publikuje globalną listę odwołania (GRL), która identyfikuje składniki, które zostały odwołane. Lista GRL jest podpisana cyfrowo, aby zapewnić jego autentyczność. Właściciele zawartości mogą zapewnić, za pomocą mechanizmu zasad, że bieżąca wersja listy GRL jest obecna na komputerze użytkownika.
Ochrona łącza wyjściowego
Po wyświetleniu zawartości wideo w warstwie Premium odszyfrowane, nieskompresowane ramki są przesyłane przez łącznik fizyczny do urządzenia wyświetlania. Dostawcy zawartości mogą wymagać, aby klatki wideo były chronione w tym momencie, ponieważ są one przesyłane przez łącznik fizyczny. W tym celu istnieją różne mechanizmy ochrony, w tym High-Bandwidth Digital Content Protection (HDCP) i DisplayPort Content Protection (DPCP). Wideo OTA wymusza te zabezpieczenia przy użyciu Output Protection Manager (OPM). Program Output Protection Manager wysyła polecenia do sterownika graficznego, a sterownik graficzny wymusza wszelkie mechanizmy ochrony łączy wymagane przez zasady.
Tematy pokrewne
-
architektura Media Foundation
-
GPU-Based ochrony zawartości
-
programu Output Protection Manager