Download as pdf or txt
Download as pdf or txt
You are on page 1of 61

Univerzitet u Novom Sadu

Fakultet tehničkih nauka


Odsek za računarsku tehniku i
računarske komunikacije

Projektovanje Namenskih
Računarskih Struktura

Sistemsko programiranje u Androidu

Multimedijalni podsistem 2
(potreba, struktura, softverska arhitektura, DRM, CAS)
Zimski semestar školske godine 2017/2018
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 2
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 3
Multimedijalni podsistem
Uvod

Sigurnost u Android operativnom sistemu se sa


svakom novom verzijom operativnog sistema
dodatno unapređuje.
Trenutno je višeslojna i sastoji se od:
SELinux
Application Sandboxes
ASLR
Hardware Cryptography
Permissions

2017 PNRS 4
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 5
Multimedijalni podsistem
Zaštita video podataka

 Usled pojave rapidnog povećanja online piraterije


komercijalno dostupnih materijala pojavila se potreba za
zaštitom podataka
 Mobilne platforme, kakva je Android, izuzetno su
podložne napadima prilikom transfera i obrade
multimedijalnog sadržaja koji dolazi sa interneta
 Da bi se obezbedila odgovarajuća zaštita (zaštićeni podaci
od prijema do prikaza), potrebno je obezbediti:
 Softversku zaštitu kroz integraciju DRM podrške
 Hardversku podršku
Trusted video path
Secure boot
2017 PNRS 6
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 7
Multimedijalni podsistem
DRM osnove
 DRM = Digital rights management

 Predstavlja sistematičan pristup za zaštitu autorskih prava digitalnog


sadržaja
 Smisao DRM je da spreči neautorizovanu re-distribuciju digitalnog
sadržaja i ograniči način kako se kupljeni sadržaj od strane korisnika
može kopirati
 DRM proizvodi su nastali kao odgovor na rapidno povećanje online
piraterije komercijalno dostupnih materijala (najčešće kroz peer-to-
peer tehnologije)
 Tipičan DRM implementira ugrađen kod koji sprečava kopiranje,
specificira vremenski period u kom se sme pristupiti sadržaju, i
limitira broj i tip uređaja na kojima se multimedijalni sadržaj može
reprodukovati

2017 PNRS 8
Multimedijalni podsistem
DRM uvod

2017 PNRS 9
Multimedijalni podsistem
DRM uvod

 Tipična DRM organizacija:

2017 PNRS 10
Multimedijalni podsistem
DRM uvod

 Tipična DRM organizacija:

2017 PNRS 11
Multimedijalni podsistem
DRM uvod

 Enkriptovani sadržaj je pripremljen korišćenjem servera


za enkripciju i sačuvan u biblioteci sadržaja
 Enkriptovani sadržaj se dobavlja iz biblioteke sadržaja do
krajnjeg uređaja putem servera sadržaja
 Licence za gledanje se dobavljaju od servera licenci
 Ključevi se traže od servera licenci putem zahteva za
dobavljanjem ključa
 Provizioni server je ponekad neophodan da obezbedi
ovlašćenja specifična za uređaj (engl. device-unique
credentials)

2017 PNRS 12
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 13
Multimedijalni podsistem
Android DRM radno okruženje

 Android platforma obezbeđuje proširivo DRM radno


okruženje koje dozvoljava aplikacijama da upravljaju
zaštićenim sadržajem
 DRM radno okruženje podržava više DRM šema, pri čemu
tačna šema koja će biti podržana na samom uređaju
zavisi od proizvođača uređaja
 DRM radno okruženje uvedeno od verzije 3.0, obezbeđuje
unificiranu spregu za aplikacije koja krije svu
kompleksnost DRM operacija

2017 PNRS 14
Multimedijalni podsistem
Android DRM radno okruženje

 DRM radno okruženje obezbeđuje:


 Konzistentan mod funkcionisanja i za zaštićen i za
nezaštićen sadržaj
 Vezu između DRM sadržaja (zaštićenog sadržaja) i njegove
licence, kao i upravljanje pravima
 Apstrakciju multimedijalnog player-a od tipa sadržaja
(zaštićen/nezaštićen)

2017 PNRS 15
Multimedijalni podsistem
Android DRM HAL

2017 PNRS 16
Arhitektura DRM radnog
okruženja

 DRM radno okruženje je dizajnirano tako da bude


nezavisno od implementacije specifične DRM šeme (u
odgovarajućem DRM plugin-u)
 DRM radno okruženje obezbeđuje jednostavnu spregu za:
 Upravljanje kompleksnim DRM operacijama
 Registrovanje korisnika i uređaja na online DRM servise
 Dobavljanje informacija o ograničenjima (engl. constraints)
iz licence
 Povezivanje DRM sadržaja i njegove licence
 Dekriptovanje DRM sadržaja

2017 PNRS 17
Arhitektura DRM radnog
okruženja

 Android DRM radno okruženje je implementirano u dva


softverska sloja:
 DRM sprega radnog okruženja (engl. DRM framework API)
koja je omogućena aplikacijama kroz aplikativno radno okruženje
i izvršava se kroz Dalvik VM za standardne aplikacije
 Izvršni DRM menadžer koji implementira DRM radno okruženje
i obezbeđuje spregu za DRM plugin-e (agente), koji upravljaju
pravima i dekripcijom različitih DRM šema

2017 PNRS 18
Arhitektura DRM radnog
okruženja

2017 PNRS 19
DRM Plug-ins
Arhitektura

2017 PNRS 20
DRM Plug-ins
Uvod

 DRM radno okruženje koristi arhitekturu plug-in-ova da bi


podržalo različite DRM šeme
 DRM menadžer servis se izvršava kao nezavisan proces da
bi obezbedio izolovano izvršavanje DRM plug-in-a
 Svaki sprežni poziv od DrmManagerClient ka
DrmManagerService modulu prelazi između dva
procesa korišćenjem Binder IPC poziva
 DrmManagerClient obezbeđuje:
 Java implementaciju, kao zajedničku spregu za aplikacije
 Izvršnu implementaciju, kao spregu za izvršne aplikacije
 Korisnik DRM radnog okruženja koristi samo
DrmManagerClient spregu i nije svestan svake DRM
2017 šeme PNRS 21
DRM Plug-ins
Proces učitavanja

 Plug-in-i se učitavaju automatski kada se


DrmManagerService pokrene.
 DRM plug-in menadžer je zadužen da učitava sve
raspoložive plug-in-ove u sistemu.
 DRM radno okruženje automatski učitava sve plug-in-ove
sa sledeće lokacije:
/system/lib/drm/plugins/native/
 Programer koji razvija plug-in-ove mora da obezbedi da
se isti nalaze na u odgovarajućem direktorijumu (gde ga
DRM radno okruženje očekuje)

2017 PNRS 22
DRM Plug-ins
Proces učitavanja

2017 PNRS 23
DRM Plug-ins
Implementacija

 Za uspešnu implementaciju jednog DRM plug-ina


neophodno je ispratiti sledeće korake:
 IDrmEngine
 DRM Info
 DRM prava
 License Metadata podaci
 Decrypt sesija
 DRM plug-in slušaoci
 Generisanje programskog koda i integracija

2017 PNRS 24
DRM Plug-ins Implementacija
IDrmEngine

 IDrmEngine je sprega sa setom funkcija za korišćenje


DRM
 Programeri moraju da implementiraju sprege, koja su
definisane u IDrmEngine i sprege slušaoca (engl.
listener)
 Definicija sprege je raspoloživa u okviru AOSP na lokaciji:
<platform_root>/frameworks/base/drm/libdrmframework/
plugins/common/ include

2017 PNRS 25
DRM Plug-ins Implementacija
DRM Info

 DrmInfo je klasa koja apstrahuje protokol za


komunikaciju sa DRM serverom
 Obezbeđuje metode za registraciju, de-registraciju,
dobavljanje licenci i sve ostale transakcije sa DRM
serverom
 DRM radno okruženje definiše spregu za dobavljanje
instance DrmInfo klase pomoću metode
acquireDrmInfo()

2017 PNRS 26
DRM Plug-ins Implementacija
DRM Info

DrmInfo* acquireDrmInfo(int uniqueId, const


DrmInfoRequest* drmInfoRequest);
Dobavlja neophodne informacije za registraciju, de-
registraciju ili dobavljanje prava

DrmInfoStatus* processDrmInfo(int uniqueId,


const DrmInfo* drmInfo);
processDrmInfo() se izvršava asinhrono i rezultat
transakcije se može dobaviti od strane OnEventListener
ili OnErrorListener

2017 PNRS 27
DRM Plug-ins Implementacija
DRM prava

 Veza DRM sadržaja i licence je neophodna da bi se


obezbedilo uspešno reprodukovanje DRM sadržaja
 Jednom kada se asocijacija napravi, licenca se obrađuje u
okviru DRM radnog okruženja, tako da MediaPlayer
aplikacija je apstrahovana od postojanja licence
int checkRightsStatus(int uniqueId, const String8& path, int
action);
status_t saveRights(int uniqueId, const DrmRights&
drmRights, const String8& rightsPath, const String8&
contentPath);
Čuva DRM prava na odgovarajuću putanju i pravi asocijaciju sa
putanjom sadržaja. Najbitniji ulazni parametri su DrmRights koje je
potrebno sačuvati i putanja gde je DRM sadržaj sačuvan
2017 PNRS 28
DRM Plug-ins Implementacija
License Metadata podaci

 Najvažniji metadata podaci za licence uključuju:


 Vreme isteka licence
 Broj ponavljanja
 Najčešće se nalaze ugrađeni u prava zaštićenog sadržaja
 Android DRM radno okruženje obezbeđuje sprege za
dobavljanje ograničenja za ulazni sadržaj
DrmConstraints* getConstraints(int uniqueId,
const String path, int action);
getConstraint() funkcija će vratiti parove ključ-vrednost za sva
ograničenja u zaštićenom sadržaju. Da bi se ograničenja dobavila
potrebno je proslediti uniqueIds (identifikator za sesiju) i putanja
do zaštićenog sadržaja
2017 PNRS 29
DRM Plug-ins Implementacija
Dobavljanje Metadata podataka

2017 PNRS 30
DRM Plug-ins Implementacija
License Metadata podaci

DrmMetadata* getMetadata(int uniqueId, const


String path);
Dobavlja metadata podatke povezane sa ulaznim sadržajem na
prosleđenoj putanji zaštićenog fajla. Vraća parove ključ-vrednost
metadata podataka

2017 PNRS 31
DRM Plug-ins Implementacija
Decrypt sesija

 Da bi se održala sesija dekriptovanja, korisnik DRM


radnog okruženja mora da pozove
openDecryptSession() na početku svake sekvence
dekriptovanja.
 openDecryptSession() pita svaki DRM plug-in da li je
u mogućnosti da obradi ulazni DRM sadržaj
status_t openDecryptSession( int uniqueId,
DecryptHandle* decryptHandle, int fd, off64_t offset,
off64_t length);
Ovaj poziv služi za inicijalizaciju odgovarajućeg plug-in-a
(Widevine, OMV, ili neki drugi)

2017 PNRS 32
DRM Plug-ins Implementacija
DRM plug-in slušaoci

 Neke sprege u DRM radnom okruženju se izvršavaju


asinhrono
 Aplikacija može da registruje 3 različite slušalac klase u
DRM radnom okruženju:
 OnEventListener za rezultate asinhronih sprega
 OnErrorListener za prijem grešaka asinhronih sprega
 OnInfoListener za bilo koje dodatne informacije tokom
DRM transakcija

2017 PNRS 33
DRM Plug-ins Implementacija
Generisanje programskog koda i integracija

 Generisanje programskog koda DRM plug-in-a:


 Dodati sledeći programski kod u Android.mk vaše plug-in
implementacije

PRODUCT_COPY_FILES +=
$(TARGET_OUT_SHARED_LIBRARIES)/<plugin_library>:
system/lib/drm/plugins/native/<plugin_library>
e.g.,

PRODUCT_COPY_FILES +=
$(TARGET_OUT_SHARED_LIBRARIES)/
libdrmpassthruplugin.so:system/lib/drm/plugins/
native/libdrmpassthruplugin.so

2017 PNRS 34
DRM Plug-ins Implementacija
Generisanje programskog koda i integracija

 Primer DRM plug-in-a:


 AOSP sadrži u okviru DRM radnog okruženja primer
„propusti“ (engl. passthrough) DRM plug-in-a
 Implementacija se može pronaći na putanji:

<platform_root>/frameworks/base/drm/libdrmframework/
plugins/passthru

2017 PNRS 35
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 36
DRM sprega
Tipično korišćenje
 U tipičnoj DRM sesiji, Android aplikacija koristi DRM radno okruženje
da instancira DrmManagerClient klasu
 Potom, tipična sekvenca API poziva izgleda ovako (u zavisnosti od
DRM šeme ova sekvenca može i drugačije da izgleda)
1. Registrovanje uređaja na online DRM servis
 Metoda acquireDrmInfo() praćena processDrmInfo()
metodom
2. Dobavljanje licenci koje su povezane sa zaštićenim sadržajem
 Metoda acquireRights()
3. Ekstrahovanje ograničenja iz licence
 Metoda getConstraints()
4. Povezivanje zaštićenog sadržaja sa svojom licencom
 Metoda saveRights()

2017 PNRS 37
DRM sprega
Tipično korišćenje

 Pošto se uspostavi asocijacija između zaštićenog sadržaja


i njegove licence, DRM menadžer automatski obrađuje
rukovanje pravima za taj sadržaj
 DRM menadžer će sam obrađivati sve buduće provere
licence kada se pokuša puštanje sadržaja putem
MediaPlayer sprege.

2017 PNRS 38
DRM sprega
Tipično korišćenje
//Register the device with an online DRM service.
DrmManagerClient mDrmManager;
DrmManager = new DrmManagerClient(context);

DrmInfoRequest drmInfoRequest;
rightsAcquisitionInfo = new DrmInfoRequest(DrmInfoRequest.TYPE_RIGHTS_ACQUISITION_INFO, MIME);
mDrmManager.acquireRights(drmInfoRequest);

//Extract constraint information from the license.


ContentValues constraintsValues = mDrmManager.getConstraints(String path, int action)
ContentValues constraintsValues = mDrmManager.getConstraints(Uri uri, int action)

//Associate the rights-protected content with its license.


int successFailure = mDrmManager.saveRights(DrmRights drmRights, String rightsPath, String contentPath)

//acquireDrmInfo
DrmInfo drmInfo = mDrmManager.acquireDrmInfo (DrmInfoRequest drmInfoRequest)

//processDrmInfo
int successFailure = mDrmManager.processDrmInfo(DrmInfo drmInfo)

//canHandle
boolean canhandle = mDrmManager.canHandle(Uri uri, String mimeType)
boolean canhandle = mDrmManager.canHandle(String path, String mimeType)

//checkRightsStatus
int status = mDrmManager.checkRightsStatus(filePath)

//saveRights
int successFailure = mDrmManager.saveRights(DrmRights drmRights,String rightsPath, String contentPath)

2017 PNRS 39
DRM sprega
Tipično korišćenje
//setOnErrorListener, setOnEventListener, setOnInfoListener
mDrmManager.setOnEventListener(new DrmManagerClient.OnEventListener() {
public void onEvent(DrmManagerClient client, DrmEvent event) {
switch (event.getType()) {
case DrmEvent.TYPE_DRM_INFO_PROCESSED:
//INFO PROCESSED
break;
} } });

mDrmManager.setOnErrorListener(new DrmManagerClient.OnErrorListener() {
public void onError(DrmManagerClient client, DrmErrorEvent event) {
switch (event.getType()) {
case DrmErrorEvent. TYPE_RIGHTS_NOT_INSTALLED:
//RIGHTS NOT INSTALLED
break;
}

mDrmManager.setOnInfoListenr(new DrmManagerClient.OnInfoListener() {
public void onInfo(DrmManagerClient client, DrmInfoEvent event) {
if (event.getType() == DrmInfoEvent.TYPE_RIGHTS_INSTALLED) {
//RIGHTS INSTALLED
} } });

2017 PNRS 40
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 41
Multimedijalni podsistem
DRM sa Media Codec spregom
 Aplikacije koje koriste Media Codec spregu, mogu da koriste i DRM
spregu
 Primer: MPEG DASH CENC
 Koristi MediaCrypto i MediaDRM
 MediaDRM obezbeđuje aplikacijama spregu za:
 Proviziju DRM klijenata
 Dobavljanje licenci/ključeva
 Generisanje session ID koji može da se koristi za kreiranje
crypto objekata
 MediaCrypto objekti iz MediaDRM se potom mogu koristiti sa
MediaCodec
 Prosleđivanje pomoću:
public final void queueSecureInputBuffer (int index, int
offset, MediaCodec.CryptoInfo info, long presentationTimeUs,
int flags)
2017 PNRS 42
Multimedijalni podsistem
DRM sa Media Codec spregom

2017 PNRS 43
Multimedijalni podsistem
DRM sa Media Codec spregom
1. Aplikacija prvo konstruiše MediaExtractor i MediaCodec objekte
2. Pristupa identifikatoru za DRM šemu (UUID) iz metadata podataka, i
pomoću njega instancira MediaDrm objekat
3. Aplikacija potom poziva openSession() da bi generisala sessionId
4. Potom koristi MediaDrm objekat da uputi zahtev za ključem od
strane servera za licence
5. Kada dobije sessionId, aplikacija konstruiše MediaCrypto objekat
6. Objekat MediaCrypto se potom registruje u MediaCodec pomoću
metode configure(MediaFormat, Surface, MediaCrypto, int)
7. Kada aplikacija konstruiše MediaExtractor, MediaCodec i
MediaCrypto objekte, može da nastavi sa dovlačenjem ulaznih
semplova iz ekstraktora i da ih prosleđuje dekoderu
8. Za enkriptovane podatke, iz ekstraktora oni i dalje izlaze
enkriptovani (dekriptuju se interno pre prosleđivanja dekoderu)
2017 PNRS 44
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 45
CAS
Uvod

 Uslovni pristup (Conditional access – CA, odnosno


Conditional Access System – CAS) predstavlja poseban tip
zaštite sadržaja (video)
 Izraz se najčešće koristi u vezi sa sistemima za digitalnu
televiziju (TV/STB)
 U okviru DVB (engl. Digital Video Broadcasting) standarda
uslovni pristup je definisan u nekoliko specifikacija:
 DVB-CA (conditional access)
 DVB-CSA (the common scrambling algorithm)
 DVB-CI (the Common Interface)

2017 PNRS 46
CAS
Uvod

 Zaštita je obezbeđena kombinacijom skremblovanja i


enkripcije
 Podaci su skremblovani sa 48-bitnim tajnim ključem, koji
se zove kontrolna reč (engl. Control Word, CW)
 Iz razloga što bolje zaštite, proizvođači sadržaja (engl.
Content Providers) menjaju CW nekoliko puta u minutu
 Da bi prijemnik (TV/STB) mogao da deskrembluje sadržaj
mora konstantno biti obavešten o CW
 Ovo se obezbeđuje slanjem enkriptovane CW u okviru
ECM (engl. entitlement control message) poruke. Ova
poruka se šalje u okviru DVB MPEG transportnog toka

2017 PNRS 47
CAS
Uvod

 CA sistem u prijemniku će dekriptovati CW, samo onda


kada je za to autorizovan
 Autorizacija se šalje u formi EMM poruke (engl.
entitlement management message)
 EMM poruke su specifične za svakog pretplatnika, ili
grupu pretplatnika (spram smart kartice u prijemniku) i
emituju se značajno ređe od ECM poruka (najčešće na
intervalu od par meseci)
 Sadržaj ECM i EMM poruka nije standardizovan i zavisi od
CAS koji se koristi (Nagravision, Conax, Verimatrix, …)

2017 PNRS 48
CAS
Uvod

2017 PNRS 49
CAS
Uvod

2017 PNRS 50
CAS
vs DRM

 Za razliku od DRM mehanizma za zaštitu, CAS sistem ne


zahteva da uređaj bude povezan na Internet
 Informacije o tome da li neki sadržaj sme ili ne sme da se
reprodukuje se nalazi u okviru samog sadržaja (DVB
MPEG transportni tok)
 DRM koristi dvosmernu razmenu podataka (ključevi,
licence, zaštićen sadržaj) između servera i klijenata
 CAS koristi jednosmernu razmenu podataka (isključivo u
pravcu server -> klijent)
 CAS zahteva posebna hardverska rešenja
 CAM/smart card
 Siguran SoC (secure boot, trusted video path)
2017 PNRS 51
CAS
Evolucija

 Postoji tri tipa CAS sistema:


1. Broadcasting
 Komunikacija u jednom pravcu
 Hardverski bazirana zaštita pomoću smart kartica
2. IPTV
 Komunikacija u dva pravca
 Softverski bazirana zaštita
3. Hibridni sistemi
 Dvosmerna tranzicija od smart kartica ka softverski
baziranim CAS sistemima za IPTV i Broadcast

2017 PNRS 52
CAS
Potreba

 CAS i dalje predstavlja osnovni mehanizam zaštite


podataka (i danas u doba Interneta i DRM šema) na
tržištu digitalnih TV prijemnika
 Proizvođači sadržaja (najčešće filmski studiji) zahtevaju
od proizvođača TV/STB uređaja CAS podršku za
najkvalitetniji sadržaj (HD filmovi, premium naslovi)

 Android trenutno u sebi poseduje isključivo sistemsku


podršku za DRM (ne i CAS)

 Razlog?

2017 PNRS 53
CAS
Potreba

 Android je i dalje prvenstvo platforma za mobilne uređaje


(telefoni, tableti)

 Problem?

Android TV

2017 PNRS 54
Agenda

Uvod
Sigurnost podataka u Android platformi
Zaštita video podataka
DRM
Uvod
Android radno okruženje
Tipično korišćenje
DRM i MediaCodec sprega
CAS
Android TV i zaštita podataka
2017 PNRS 55
Multimedijalni podsistem
AndroidTV i zaštita podataka

 Za potrebe video zaštite uvedena je i podrška i za TEE


(Trusted Execution Environment), koja obezbeđuje
sigurnu video putanju (Trusted Video Path, TVP)
 Video sadržaj se ni u jednom momentu ne nalazi
dekriptovan u memoriji (glavnoj)
 Zahteva posebna hardverska rešenja (secure SoC)

 Osim TVP, uvedena je podrška za Secure Boot


 Mehanizam kojim se sprečava root-ovanje uređaja i
potencijalno podmetanje nepotvrđene sistemske slike

2017 PNRS 56
Android TV
Zaštita upotrebom TEE

Android TEE Video Decoder


Video Player

DRM
Video Key Keybox

Key processing Decryption


Encrypted Media
Stream

2017 PNRS 57
Android TV
CAS i Android TV

Android TEE Video Decoder


Premium content

Video Key HW Key block

Key processing Decryption

2017 PNRS 58
Android TV
Zajedno

Android TEE Video


Decoder
Video Player
Premium content
DRM HW Key
Keybox Block
Video Key
Decryption

Key processing
Encrypted
Premium
Media
TV Stream
Stream

2017 PNRS 59
Kraj

Pitanja?

2017 PNRS 60
Literatura

 Pap dr Ištvan, Lukić dr Nemanja, “Projektovanje i arhitekture


softverskih sistema – Sistemi zasnovani na Androidu”
 https://developer.android.com/reference/android/drm/package-
summary.html
 https://source.android.com/devices/drm.html
 https://developer.android.com/reference/android/drm/DrmManagerCl
ient.html
 https://developer.android.com/reference/android/media/MediaDrm.ht
ml

2017 PNRS 61

You might also like