Plataformes de Publicació I Distribució - PAC3

You might also like

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

PAC 3

Plataformes de publicaci i
distribuci

Jaume Reig Carrascosa, maig de 2015

Activitat 1.1 - Autenticaci


Es pot veure el resultat dins de lestructura de directoris de la PAC3:
Exercici 1 -> Exercici 1.1 Executant laxiu index.html

Activitat 1.2 - Geolocalitzaci


Es pot veure el resultat dins de lestructura de directoris de la PAC3:
Exercici 1 -> Exercici 1.2 Executant laxiu index.html

Activitat 1.3
Comenta els passos realitzats en aquest exercici i adjunta el resultat dels punts
anteriors en un .zip.
Es pot veure el resultat dins de lestructura de directoris de la PAC3:
Exercici 1 -> Exercici 1.2 Executant laxiu index.html

Passos:
Es crea un formulari simple HTML per validaci dusuari i contrasenya.
El bot del formulari crida la funci check(form)
Aquesta funci t uns condicionals:
function check(form) {
if (form.id.value==user) {
if (form.pass.value==pass) {
setCookie(auth, true, 365);
location=video1.html ;
} else {
setCookie(auth, false, 365);
alert(Invalid Password);
}
} else {
alert(Invalid UserID);
}
}

Si les dades coincideixen crida la funci setCookie() i aquesta una crida a la funci
getCookie() que crea una cookie amb el nom auth el valor true i data dexpiraci 365
dies.
function setCookie(c_name, value, expire) {
var exdate=new Date();
exdate.setDate(exdate.getDate()+expire);
document.cookie = c_name+ = +escape(value) + ((expire==null) ? :
;expires=+exdate.toGMTString());
}
function getCookie(c_name) {
if (document.cookie.length > 0 ) {
c_start=document.cookie.indexOf(c_name + =);
if (c_start != -1){
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(;,c_start);
if (c_end == -1) {
c_end=document.cookie.length;
}
return unescape(document.cookie.substring(c_start,c_end));
}
}
return ;

}

Mostra com sha creat una cookie amb nom auth i valor true, quan les dades dautenticaci sn correctes.

Si la funci checkAuth() s igual a true llavors deixa veure el vdeo des de la pgina
video1.html.
function checkAuth(){
if (getCookie(auth) == true){
return true;
}else{

return false;
}
}

En el cas de la geolocalitzaci, la funci de la capalera del index.html initialize()


comparar la nostra IP en funci del pais i estableix una cookie amb el nom de loc i valor
el codi del pais. En el nostre cas ES, que ser validada per la funci checkLoc()
function initialize() {
$.getJSON(http://ipinfo.io/json, function(data) {
setCookie(loc, data.country, 365);
});
}
function checkLoc(){
if (getCookie(loc) == ES){
return true;
}else{
return false;
}
}

Activitat 1.4
Proposa breument una alternativa dautenticaci i geolocalitzaci que siguin vlids per
a producci.
Podrem utilitzar diverses tecnologies, mtodes i programaris propietaris com Adobe
amb el seu Flash Media Server, Microsoft Silverlight, o el protocol RTSP entre daltres . Jo en
aquest cas per aix em decantaria per utilitzar el protocol HLS (HTTP Live Streaming)
desenvolupat per Apple i alliberat no fa massa. Amb aquesta tecnologia podem servir
vdeo sota demanada VOD (Video On Demand) utilitzant un servidor convencional (per
exemple un servidor http Apache).

Qu s HLS?
s bsicament un protocol que funciona amb http o https (encriptat) indistintament, i
que ens permet la distribuci de media tant en temps real (streaming) com vdeo sota
demanda VOD, o sigui vdeo emmagatzemat per a servir als clients.

Com funciona i en qu consisteix?


El protocol HLS no es limita a cap codificaci de vdeo en concret, tot i aix i segons el seu
creador (Apple) es recomana codificaci MPEG-2 amb H.264 per vdeo i AAC per udio.
Una estructura simple HLS pot ser:
SERVIDOR streaming

Encoder

Distribuci
.ts

Stream
Segmenter

Usuari

.ts

Index file

.ts

HTTP

Larxiu index (s el Playlists) amb extensi .M3U8 que cont la informaci de tots els
segments del vdeo amb extensi .ts. El reproductor sencarrega de reconstruir el video
a partir daquests arxius.
Aix doncs la meva soluci esquemtica proposada per autenticaci i geolocalitzaci
utilitzant el protocol HLS seria:

Servidor
Autenticaci

Usuari

Servidor
Streaming

Usuari fa petici de vdeo identificant-se


amb user i password
Aquest, en cas que user i password
siguin correctes i que la IP de la petici sigui
de la zona geogrfica permesa, retornar
un link amb el token dautenticaci

Mitjanant el link amb el token dautenticaci


es demana el flux de dades del vdeo al servidor
streaming.

Aquest consulta al servidor dautenticaci si s correcte que resoldr mitjanant la clau privada

Si s correcte senvia un codi destat http 200 OK


Aquest envia al mateix temps codi destat http
200 OK i assigna una cookie de sessi a lusuari
Lusuari comena a rebre el flux de dades i
reproduir-se (reprodueix les dades que ja t en
emmagatzemades en cach)

Quan el servidor ha entregat totes les dades, li


torna a enviar estat 200

s clar que per lautenticaci dusuari no podrien emprar un llenguatge de programaci de


client com Javascript i haurien de fer-ho amb un de servidor com per exemple PHP.
En cas que lusuari tanqus a mig fer el navegador, aquest perdria la sessi i hauria de
tornar a identificar-se generant-se un nou link amb un nou token dautenticaci i validant
novament la IP del usuari (aix es faria consultant bases de dades dubicacions IP i permetent
o denegant servei segons IP).
El punt ms debil del sistema s la clau privada que s fixe per tota la sessi, pel que si hi
ha alguna filtraci tot el contingut desxifrat quedaria exposat.

Exercici 2: Solucions comercials DRM


Activitat 2.1
Busca la documentaci, a la web de Microsoft PlayReady, i comenta breument quins
passos se segueixen per preparar un contingut per a la seva distribuci.
Primer de tot crec s important explicar una mica que s PlayReady i perqu serveix.
PlayReady s tot un sistema desenvolupat per Microsoft i enfocat bsicament a ajudar a
distribudors a distribuir aquests mitjanant un sistema que sigui segur i que restringeixi
laccs a aquests continguts. O sigui PlayReady s un DRM (Digital Rights Management) i
s levoluci de lantic model de Microsoft Windows Media DRM.
El sistema de PlayReady protegeix els arxius mitjanant el xifrat de dades. Com que els
arxius estan xifrats, no fa falta protecci addicional. PlayReady funciona com un sistema
de dominis i llicncies. Aix s important, ja que aquestes llicncies defineixen com
es podran utilitzar els arxius i sota quines condicions. Per exemple es pot fer que una
llicncia estigui lligada a una mquina o a un reproductor nic en concret, o que noms
dins dun domini es puguin visualitzar certs continguts.
Els principals elements de lestructura de PlayReady sn:
Servidors dempaquetament de continguts: recullen els continguts sense
protecci i els empaqueten, copiant-los i xifrant-los al servidor de distribuci. La
informaci de llicncies es transmet al servidor de llicncies.
Servidors de distribuci: Emmagatzemen i distribueixen els continguts.
Controladors de domini: Controlen tot el que fa referncia als dominis.
Servidors de llicncies: Emmagatzemen la informaci i protecci dels drets
dutilitzaci dels continguts.
Comptadors: Conten les vegades que es reprodueixen i es descarrega continguts.

Grfic que mostra com funciona el sistema de PlayReady. Extret de la pgina oficial de Microsoft.
https://www.microsoft.com/playready/licensing/faq/

Aix doncs els passos a seguir per a preparar continguts per la seva distribuci sn:
1. Abans que el contingut pugui ser distribut per la reproducci, aquests han
codificar-se i encriptar-se per a protegir-los.
El codificador fa el segent:
- Codifica el media
- Encripta el resultat del media codificat i guarda la clau dencriptaci en el servidor
de llicncies.
- Afegeix una capalera al media. Aquesta capalera cont els drets de reproducci,
s, etc.. i la clau pblica dencriptaci.
2. Els paquets de media codificats senvien al servidor de distribuci per a poder-los
distribuir als clients

Grfic extret de la documentcai oficial de Microsoft. PlayReady_Content_Protection White paper.doc

Activitat 2.1
Descriu, tamb breument, quins sn els passos que se segueixen perqu el destinatari
pot visualitzar el vdeo preparat en lactivitat anterior.
Lgicament primer de tot haurien de ser clients de PlayReady i seguir els passos de
lactivitat anterior. Codificar els continguts, encriptar i enviar la llicncia encriptada al
servidor de llicncies. (En documentaci de PlayReady recomanen fer servir en el cas de vdeo
per web en HTML5 la utilitat que proporcionen als clients PlayReady Device Porting Kit).
(Sincerament no mha quedat clar si podem fer servir els nostres prpis servidors o si hem de
posar els arxius en els servidors de distribuci de PlayReady obligatriament)
Aix doncs suposem que ja tenim els arxius codificats, xifrats i amb la llicncia a disposici
del servidor de llicncies de PlayReady, els passos que seguiria internament un usuari per
a visualitzar un vdeo serien:
1. En resposta a la petici dun client el servidor de distribuci envia el vdeo. En la
capalera del vdeo hi ha la informaci de la llicncia especfica amb la clau pblica.
2. Aquesta capalera amb un identificador nic i amb clau pblica s enviada al
servidor de llicncies, que fa el segent:
- Autentifica el dispositiu

- Executa la lgica de negoci segons la llicncia per estar segur que el dispositiu pot
executar el recurs
- Construeix dinmicament les poltiques ds per recurs en concret per tal de
mostrar-lo al client. Tamb inclou la clau per al recurs.
- Encripta la llicncia amb la clau pblica del client.
- Envia la llicncia resultant al client.
3. Quan el client rep la llicncia i la desencripta utilitzant la seva clau privada, podr
utilitzar el recurs segons les poltiques especfiques establertes pel recurs.

Jaume Reig Carrascosa


Maig de 2015

You might also like