Korak-po-korak implementacija DRM-a i sigurne reprodukcije u Windowsu 11

  • PlayReady HWDRM u Windowsu 11 kombinira snažno šifriranje, TEE i kontrolu izlaza kako bi zaštitio HD i UHD sadržaj.
  • Razlika između HWDRM-a i SWDRM-a direktno utiče na zahtjeve licenciranja, korištenje HDCP-a i kompatibilnost kodeka.
  • UWP aplikacije mogu ispitivati ​​DRM mogućnosti, proaktivno pribavljati licence i upravljati sigurnim zaustavljanjima radi precizne kontrole.
  • Integracija PlayReady-a u preglednike i Xbox One ujedinjuje sigurno iskustvo strimovanja u cijelom Windows ekosistemu.

DRM i SafePlay u Windowsu 11

Napredna zaštita sadržaja u Windowsu 11 oslanja se na DRM tehnologije sljedeće generacije, s PlayReady kao osnovnom komponentom i snažnim naglaskom na korištenju sigurnog hardvera. Sve veći broj streaming platformi i provajdera usvaja ovaj pristup kako bi ponudio HD, 4K, pa čak i UHD video bez straha od ilegalnog kopiranja ili ekstrakcije.

U ovom kontekstu, razumijevanje kako implementacija DRM-a i sigurna reprodukcija funkcionišu korak po korak unutar Windows ekosistema (na Windowsu 11, Windowsu 10 i Xboxu) ključno je za svakog programera koji želi da isporuči premium sadržaj, da se pridržava pravila studija i da osigura pozitivno korisničko iskustvo. Smireno, ali detaljno ćemo analizirati sve uključene komponente: PlayReady HWDRM i SWDRM, Windows TEE, zaštita od izlaska, licenciranje, migracija UWP aplikacija i još mnogo toga.

Hardverski DRM sa PlayReady-jem: koncept i prednosti

U srcu sigurne reprodukcije u modernom Windowsu je PlayReady sa podrškom za hardverski DRM (HWDRM) , integriran direktno u operativni sistem kao ugrađena komponenta. Za razliku od isključivo softverski zasnovanog DRM-a (SWDRM), hardverski pristup koristi zaštićeno kriptografsko jezgro i pouzdano okruženje za izvođenje kako bi zaštitio sve što je kritično: privatne ključeve, ključeve sadržaja i komprimirane ili nekomprimirane video streamove.

Zahvaljujući ovom modelu, sadržaj visoke definicije (1080p) i ultra visoke definicije (UHD) može se reproducirati na širokom rasponu Windows uređaja, držeći sav osjetljivi materijal unutar sigurnih hardverskih zona. Praktični rezultat je drastično smanjena ranjivost na neovlašteno kopiranje, jer ključevi nikada nisu otkriveni, a video se "odmotava" tek u završnoj fazi zaštićenog cjevovoda.

PlayReady u Windowsu 10 i Windowsu 11 više nije jednostavna AppX komponenta: To je dio samog sistema. i izložen je UWP aplikacijama putem imenskog prostora Windows.Media.Protection.PlayReadyOsim toga, Windows SDK uključuje potrebne zaglavlja za obradu kodova grešaka specifičnih za PlayReady, što omogućava aplikacijama da precizno reaguju na probleme s licenciranjem ili zaštitom izlaza.

Među poboljšanjima u PlayReady-ju za moderni Windows, ističu se sljedeće: mogućnost proaktivnog sticanja više privremenih licenci u jednoj poruci, podrška za licence ograničenog trajanja (LDL) s istekom u stvarnom vremenu, odvajanje audio i video licenci i kontrolirane maksimalne rezolucije (MaxResDecode) čak i kada su dostupni moćniji ključevi.

PlayReady s DRM podrškom

Windows TEE: Kako je integrirano pouzdano okruženje za izvršavanje

Da bi hardverski DRM imao smisla, Windows se oslanja na vlastito pouzdano okruženje za izvršavanje (TEE) , poznato kao Windows TrEE. Iako interni detalji implementacije nisu javno dostupni, opisano je kako se uklapa u PlayReady arhitekturu za UWP.

Windows implementira OEM proxy sloj koji serijalizira PRITEE pozive i šalje ih upravljačkom programu korisničkog načina rada unutar podsistema Windows Media Foundation. Odatle se ovi pozivi usmjeravaju ili na Windows TrEE upravljački program ili na OEM grafički upravljački program, ovisno o konfiguraciji uređaja i odabranoj izlaznoj putanji.

Ovaj dizajn omogućava primjenu svih zaštita izlaza u HWDRM-u iz Windows TEE-a. Drugim riječima, sistem u svakom trenutku zna koji su izlazi povezani, šta podržavaju (HDCP, tipovi konektora, Miracast, itd.) i primjenjuje pravila PlayReady licence prije nego što se sadržaj prikaže na monitoru ili televizoru.

Ako proizvođač ili organizacija treba razviti specifičan TEE port za PlayReady na Windowsu, Microsoft nudi podršku putem direktnih kanala (npr. namjenskih tehničkih kontakata), budući da je ovo vrlo osjetljivo područje u smislu sigurnosti i usklađenosti.

Chrome, Edge i drugi preglednici: podrška za PlayReady i iskustvo streaminga

U području preglednika, trend je jasan: iskoristiti izvorni DRM svake platforme kako bi se smanjile ovisnosti o dodacima i omogućilo sigurno strujanje u najvišoj mogućoj kvaliteti. Do sada se Chrome na Windowsu prvenstveno oslanjao na Widevine, Googleovo DRM rješenje, koje u nekim scenarijima ograničava maksimalnu rezoluciju dostupnu premium sadržaju.

Google radi na tome da omogući Chromeu korištenje PlayReady DRM-a s hardverskom podrškom na Windowsu 11. Ovo otvara vrata reprodukciji 4K i UHD videa, slično kao što to radi Microsoft Edge. U stvari, velike platforme poput Netflixa već koriste PlayReady za zaštitu svojih vrhunskih naslova unutar Windows ekosistema.

Googleov plan je da Chrome istovremeno podržava PlayReady i Widevine , omogućavajući korisnicima da odaberu najbolju opciju za svaki uređaj. Osim toga, preglednik će uključivati ​​indikator privatnosti vidljiv u adresnoj traci kada stranica pristupi sadržaju zaštićenom PlayReady-jem, dajući korisnicima informiranu mogućnost da dozvole ili blokiraju taj pristup.

Ovaj potez stavlja Chrome u konkurentniju poziciju u streaming iskustvu na Windowsu 11 , približavajući njegove performanse i vizualni kvalitet onome što Edge već nudi zahvaljujući dubokoj integraciji sa sistemom i PlayReady HWDRM-om.

DRM Windows

Osnove DRM-a u Windowsu: Od Windowsa 2000 do Windowsa 11

DRM podrška za digitalni zvuk u Windowsu nije nova. Postoji još od Windowsa 2000 i Windowsa 98/Me. Međutim, sigurnost na nivou kernela je tek počela da se učvršćuje u Windowsu XP i kasnijim verzijama. U tim verzijama, sistem je prestao da dozvoljava neovlašćene drajvere koji bi mogli da zaobiđu zaštićeni zvuk i snime ga nešifrovano na disk.

Tradicionalna arhitektura se oslanja na pohranjivanje zaštićenog sadržaja na disk u šifriranom formatu . Tokom reprodukcije, stream ostaje šifriran/kodiran dok se čita i pohranjuje u memoriju sve dok ne stigne do DRMK kontrolera (Drmk.sys). Ova komponenta dešifrira sadržaj i šalje ga direktno pouzdanom audio kontroleru, čime se minimizira dio puta podataka gdje se sadržaj pojavljuje u otvorenom tekstu.

Kada se graf filtera konstruiše za reprodukciju nekontrolisane audio sekvence, DRMK autentifikuje upravljačke programe adaptera i uključene KS filtere. Ako bilo koja komponenta grafa ne ispunjava DRM zahtjeve , sistem odbacuje cijeli lanac reprodukcije kako bi spriječio curenje informacija.

DRM-kompatibilan kontroler mora blokirati neovlašteno kopiranje tokom reprodukcije digitalnog sadržaja i onemogućiti standardne digitalne izlaze podložne snimanju (kao što je S/PDIF). Zanimljivo je da se ovo ograničenje ne odnosi na USB uređaje. Trenutno, DRMK omogućava reprodukciju sigurnog sadržaja samo putem USB zvučnika koji ne otkrivaju dodatne digitalne izlaze.

Hardverski DRM u odnosu na softverski DRM: Ključne razlike i uslovi

Prilikom razvoja UWP aplikacija fokusiranih na sadržaj visoke vrijednosti, ključno je razumjeti kada se koristi hardverski DRM (HWDRM) u odnosu na softverski DRM (SWDRM) . Ponašanja se značajno razlikuju, posebno u pogledu zaštite izlaza.

Sa PlayReady HWDRM na Windows 10 i 11, sistem primjenjuje strožije nivoe zaštite izlaza (OPL) za nekomprimovani digitalni video.

Još jedna važna razlika je to što se kod HWDRM-a zaštita izlaza primjenjuje na sve monitore na osnovu onoga koji je najmanje sposoban . Ako korisnik ima dva ekrana , jedan sa HDCP-om i jedan bez njega, a licenca zahtijeva HDCP, reprodukcija neće uspjeti čak i ako se sadržaj prikazuje samo na HDCP-kompatibilnom monitoru. U SWDRM-u, reprodukcija bi bila dozvoljena sve dok se prikazuje samo na HDCP-kompatibilnom ekranu.

Nadalje, HWDRM ne podržava Protected Media Path (PMP) , kodek Windows Media Video/VC-1, a konfiguracije s više grafičkih procesora imaju ograničenja za trajno licenciranje. To zahtijeva oprez prilikom promjene grafičkog hardvera na korisničkim računarima.

Upravljajte više grafičkih procesora i trajnim licencama pomoću PlayReady-a

U scenarijima gdje računar ima više od jedne grafičke kartice (na primjer, integriranu grafiku plus namjensku karticu), upravljanje trajnim licencama u HWDRM-u postaje složenije. PlayReady povezuje ove licence sa skladištem podataka o heširanju (HDS) povezanim s hardverskim ključevima grafičke kartice koja se koristi u trenutku kupovine.

Zamislimo tipičan radni tok: kupac kupi računar sa integrisanom grafičkom karticom, koristi aplikaciju koja nabavlja trajne licence pod hardverskim DRM-om , a kasnije instalira novu namjensku grafičku karticu. U tom trenutku, sve HDS licence povezane sa integrisanom grafičkom karticom više neće raditi sa novom karticom, koja će imati svoj vlastiti nezavisni HDS.

Kako bi se spriječili kvarovi reprodukcije zbog nemogućnosti novog hardvera da dešifrira starije licence, PlayReady održava zaseban HDS za svaki detektovani GPU . To znači da ako aplikacija detektuje promjenu GPU-a, možda će morati ponovo nabaviti licence za sadržaj koji bi, iz perspektive SWDRM scenarija ili bez promjena hardvera, već bio riješen.

U praksi, aplikacije koje upravljaju trajnim licencama u HWDRM-u trebale bi predvidjeti potencijalni gubitak licenci nakon promjene grafičke kartice. Međutim, budući da je ovo relativno rijetka pojava, mnogi dobavljači odlučuju se za rješavanje ovog problema putem korisničke podrške kada se, nakon modifikacije hardvera, sadržaj prestane ispravno reproducirati.

DRM

Kako prisiliti korištenje softverskog DRM-a (nadjačati HWDRM)

Neki sadržaji, zbog svoje prirode ili korištenih tehnologija, nisu kompatibilni s hardverskim DRM-om . To je slučaj s nekim "koktel" sadržajem, određenim video kodecima osim H.264/HEVC-a, ili čak HEVC sadržajem na uređajima čiji HWDRM ne podržava taj kodek.

U ovim slučajevima, preporučuje se onemogućavanje korištenja HWDRM-a i prisiljavanje PlayReady-a da koristi sloj zaštite softvera . Podrazumevano, ako sistem podržava hardverski DRM, on će se koristiti. Dakle, morate ga eksplicitno onemogućiti prije početka reprodukcije. I uvjerite se da u memoriji nema PlayReady objekata.

Jedan od načina da se ovo uradi je kreiranje kontejnera za konfiguraciju u ApplicationData.LocalSettings i unesite vrijednost SoftwareOverride = 1 u ključu PlayReadyDa biste ponovo omogućili HWDRM, jednostavno postavite tu vrijednost na 0. Dodatno, za svaku reprodukciju, MediaProtectionManager sa imovinom Windows.Media.Protection.UseSoftwareProtectionLayer = true, što prisiljava korištenje softverskog sloja.

Najlakši način da saznate koja se vrsta DRM-a koristi u UWP aplikaciji je da provjerite mapu PlayReady unutar LocalCache-a paketa iz aplikacije. Ako se pojavi datoteka mspr.hdsRadimo sa SWDRM-om. Ako ono što vidimo je druga datoteka .hds U ovom slučaju, bit ćemo pod HWDRM. Brisanjem mape PlayReady i ponavljanjem testa možete provjeriti promjene konfiguracije.

Detekcija hardverskih DRM mogućnosti (uključujući AES128CBC i HEVC)

Prije nego što odlučite koju vrstu sadržaja ćete prikazivati ​​ili koje licence ćete izdati, toplo se preporučuje da aplikacija Provjerite koje hardverske DRM funkcije uređaj podržavaDa bi to uradio, PlayReady nudi metodu PlayReadyStatics.CheckSupportedHardware, koji kao parametar prima vrijednost iz nabrajanja PlayReadyHardwareDRMFeatures.

Konsultujući, na primjer, karakteristiku Hardverski DRM Da li je moguće saznati da li postoji opšta podrška za DRM hardver? Pitanjem... HEVC Utvrđuje da li hardver podržava visokoefikasni video kodek H.265. Počevši od Windows 10 verzije 1709, također je moguće provjeriti da li uređaj podržava hardversko šifriranje AES128CBC pomoću funkcije Aes128Cbc.

Budući da u ranijim verzijama sistema ovo nabrajanje možda nije postojalo i moglo bi uzrokovati izuzetke ako se koristi bez provjere, mora se kombinirati sa ApiInformation.IsApiContractPresent (verzija 5 od Windows.Foundation.UniversalApiContract) prije izvršavanja upita. Tipičan obrazac je prvo provjeriti prisustvo ugovora i, samo ako je dostupan, pozvati CheckSupportedHardware.

Osim toga, nekretnina PlayReadyStatics.PlayReadyCertificateSecurityLevel vraća nivo sigurnosti klijentskog certifikataAko je vrijednost 0, klijent nije individualiziran ili dodijeljen. Ako je manja od 3000, to znači da se hardverski DRM ne koristi. A ako je jednaka ili veća od 3000, to znači da uređaj ispunjava uvjete za HWDRM.

Zaštita izlaza: OPL, HDCP, Miracast i eksplicitna ograničenja

Jedan od temelja PlayReady modela u Windowsu 10 i 11 je sveobuhvatna kontrola nad video i audio izlazima . Licence mogu definirati različite nivoe zaštite izlaza (OPL) za komprimirani digitalni video, nekomprimirani digitalni video, analogne konektore, HDMI, DVI, DisplayPort, MHL ili Miracast.

U slučaju videa, OPL od 100 obično omogućava prolaz sadržaja bez daljnjih ograničenja. Viši nivoi uključuju uslove kao što je interakcija sa HDCP-om ili ograničavanje efektivne rezolucije sadržaja. Iznad određenih pragova, Windows 10 nikada ne šalje komprimovani digitalni video na izlaze, bez obzira na specifičnu vrijednost, u skladu sa smjernicama za usklađenost sa PlayReady-jem.

Tabela mapiranja pokazuje da će, za OPL 270, SWDRM pokušati omogućiti HDCP i, ako ne uspije, smanjiti rezoluciju na 520.000 piksela. Međutim, kod HWDRM-a, reprodukcija je blokirana na HDMI/DVI ako se HDCP ne može uspostaviti . Za OPL 300, ako je definirano ograničenje tipa HDCP-a, bit će dozvoljen samo sadržaj sa HDCP 2.2 i tipom streama 1. U suprotnom, reprodukcija će biti zaustavljena.

Za audio, OPL-ovi također određuju da li je dozvoljen komprimirani ili nekomprimirani digitalni audio i pod kojim uslovima je potrebno konfigurirati HDCP ili SCMS u CopyNever-u. Opet, kako se nivoi povećavaju, ograničenja postaju stroža, a reprodukcija može biti potpuno blokirana ako se ne ispune.

Miracast se u Windowsu 10 smatra digitalnim izlazom. PlayReady omogućava reprodukciju sadržaja putem Miracasta sve dok je omogućen HDCP 2.0 ili noviji. U zavisnosti od OPL-a dodijeljenog u licenci, uređaj će pokušati uspostaviti HDCP. Ako ne uspije, neće proslijediti sadržaj na taj izlaz. Kada se kombinuju visoki OPL-ovi i ograničenja tipa HDCP-a, reprodukcija je dozvoljena samo ako se postigne HDCP 2.2 i odgovarajući tip streama.

Preduslovi i migracija PlayReady UWP aplikacija

Da biste kreirali UWP aplikacije koje koriste prednosti PlayReady-ja i njegovih HWDRM mogućnosti , prvo morate ispuniti neke zahtjeve okruženja. Neophodno je raditi na Windowsu 10 ili novijem, a ako kompajlirate službene PlayReady uzorke za UWP, morate koristiti Visual Studio 2015 ili noviji (za aplikacije 8.1, VS 2013 je i dalje podržan).

U procesu migracije sa aplikacija Windows Store 8.xa UWP na Windows 10, najočiglednija promjena je imenski prostor: morate zamijenite sve reference na Microsoft.Media.PlayReadyClient por Windows.Media.Protection.PlayReadyReference na metapodatke WinMD-a sada dolaze iz univerzalnih ugovora sistema (na primjer, windows.foundation.universalappcontract.winmd).

Za reprodukciju zaštićenog 1080p HD ili UHD sadržaja, mora biti implementiran PlayReady hardverski DRM . Za tipove sadržaja koji nisu kompatibilni sa HWDRM-om, koristi se logika hardverskog nadjačavanja i korištenje SWDRM-a opisano gore.

Što se tiče Upravitelj zaštite medija, bitno ga je konfigurirati s ispravnim svojstvima: GUID-om PlayReady sistema zaštite (MediaProtectionSystemId), mapiranje sistemskih identifikatora u niz PlayReadyWinRTTrustedInput i GUID kontejnera (MediaProtectionContainerGuidOva konfiguracija omogućava Windows multimedijskom cjevovodu da poveže zahtjeve za zaštitu s odgovarajućim PlayReady mehanizmom.

Proaktivno sticanje netrajnih licenci i lanaca licenci

Jedno od ključnih poboljšanja u novijim verzijama PlayReady-a je proaktivno pribavljanje privremenih licenci prije početka reprodukcije. U prethodnim verzijama, one su se mogle dobiti samo reaktivno, tokom procesa reprodukcije. Ovo je povećalo vrijeme do prvog kadra.

Preporučeni tok se sastoji od:

  1. Kreirajte sesiju reprodukcije u kojoj će se pohraniti privremene licence.
  2. Povežite tu sesiju sa klasom za sticanje licence.
  3. Generirajte zahtjev za uslugu licenciranja (LAServiceRequest).
  4. Završite proces akvizicije.
  5. Povežite tu sesiju s multimedijskim izvorom koji koristi uređaj za reprodukciju.

PlayReady vam također omogućava da kupovinu više privremenih licenci objedinite u jednoj poruci . Ovo štedi vrijeme povratnih veza do servera. Također omogućava korisniku da pregleda biblioteku sadržaja dok se licence za različite isječke preuzimaju u pozadini. Ovo smanjuje vrijeme čekanja kasnije kada korisnik odluči šta će gledati.

Nadalje, licence mogu uključivati ​​napredna vremenska ograničenja : apsolutni istek, istek nakon prve reprodukcije ili istek u stvarnom vremenu. Kombiniranjem ovih mehanizama s više licenci u jednoj poruci, moguće je pokriti scenarije u kojima se kratkoročne licence (STL) prvobitno kupuju tokom pregledavanja, a kasnije se nabavlja dugoročna licenca koja omogućava neprekidnu reprodukciju do kraja sadržaja.

Sigurno zaustavljanje i kontrola sesije

Još jedna funkcija uvedena u PlayReady se zove Sigurno zaustavljanje . Ova funkcija je dizajnirana tako da uređaj može pouzdano obavijestiti streaming servis da je reprodukcija određenog segmenta završena.

Ovaj mehanizam omogućava mnogo precizniju kontrolu ograničenja korištenja i generiranje izvještaja o potrošnji na servisima za više uređaja. Postoje dva tipična scenarija :

  • Kada se reprodukcija završi prirodno (kraj sadržaja) ili je korisnik namjerno zaustavi.
  • Kada prethodnu sesiju neočekivano prekine prisilno zatvaranje aplikacije ili pad sistema.

Aplikacija bi trebala provjeriti ima li sigurnosnih zaustavljanja na početku i kraju sesije i poslati odgovarajuće izazove neovisno o bilo kojoj drugoj reprodukciji. Microsoft pruža konkretne primjere koji pokazuju kako implementirati ovaj tok u UWP aplikaciji.

Korištenje PlayReady-a na Xbox One i sigurnosna razmatranja

Ako želite koristiti PlayReady DRM u UWP aplikaciji za Xbox One , prvi korak je dobijanje autorizacije za račun Partnerskog centra povezan s aplikacijom. Ova autorizacija se može dobiti putem Microsoftovog kontakta ili slanjem podataka o vašem računu i kompaniji putem određenih kanala.

Nakon što je dozvola odobrena, potrebno je Ručno dodajte mogućnost uređaja (DeviceCapability) u manifestu aplikacije (Package.appxmanifestTo se postiže uređivanjem datoteke u XML modu i dodavanjem odgovarajućeg unosa unutar sekcije <Capabilities> da biste omogućili korištenje PlayReadyja na konzoli.

Razvojni kompleti za Xbox imaju ograničenje nivoa sigurnosti: oni dozvoljavaju reprodukciju sadržaja samo sa SL150 licencama, dok maloprodajni uređaji mogu podnijeti više nivoe kao što su SL2000 ili SL3000. Za testiranje na razvojnim kompletima , trebali biste koristiti testni sadržaj koji zahtijeva samo SL150 licence. Druga opcija je implementacija logike tako da određeni testni računi dobiju snižene licence za određenu imovinu.

S ovom konfiguracijom, aplikacije mogu pružiti sigurno iskustvo streaminga na Xbox One. Ovo je usklađeno s iskustvom koje se nudi na Windows 10/11 s HWDRM-om, kombinirajući PlayReady, TEE i zaštitu od izlaska pod istim pravilima usklađenosti.

Sveukupno, DRM i ekosistem sigurne reprodukcije u Windowsu 11 oslanja se na vrlo zrelu kombinaciju PlayReady-ja, pouzdanog okruženja za izvođenje, sveobuhvatne kontrole izlaza i fleksibilnog upravljanja licencama, što omogućava programerima i platformama za streaming da isporučuju HD i UHD sadržaj s visokim nivoom sigurnosti bez žrtvovanja glatkog korisničkog iskustva.

Šta je Widevine CDM-7
Vezani članak:
Šta je Widevine CDM i zašto utiče na kvalitet streaminga?

Dodaj kao preferirani izvor na Googleu