Huella digi al de na egado es
B owse Finge p in ing
Po
Ad ián Agudo Ga cía-He as, Jesús Ma ín González, Rubén Peña Ga cía,
Samuel Solo de Zaldí a Ba be o
T abajo de in de g ado
G ado en Ingenie ía In o má ica
Facul ad de In o má ica
Di ec o es
En ique Ma ín Ma ín, Ad ián Riesco Rod íguez
Mad id, 2019–2020
Resumen
El p oyec o consis e en el desa ollo de una aplicación web que ecopila á la in o ma-
ción del na egado donde se ejecu a y ob end á su huella digi al. Es o se consegui á median e
dis in as écnicas que pe mi en cap a en su p ác ica o alidad los da os del disposi i o, y el
conjun o de es os pe mi i á elabo a y singula iza un pe il. Los dis in os da os ob enidos se
almacena án en una base de da os y se ha á sabe al usua io en cues ión si su pe il es único o
no. A su ez, se in o ma á al usua io sob e cuán o de único es en e e encia a cada da o de su
disposi i o y espec o al global de los da os ya almacenados en el sis ema. El p oyec o cuen a
con la licencia Apache e sión 2.0.
Puede accede espec i amen e a la aplicación web y a odos los ecu sos del p oyec o en los
siguien es enlaces:
h p://b owse inge p in ing.educa ionhos .cloud/
h ps://gi hub.com/ bn423/b owse Finge p in ing/
Palab as cla e
Huella digi al, na egado , can as, cookies, Ja aSc ip
III
Abs ac
The p ojec consis s o de eloping a web applica ion ha collec s he in o ma ion om
he b owse and ge s i s inge p in . This will be achie ed h ough di e en echniques ha
pe mi he cap u e o p ac ically all he da a o he de ice, and ha da a se will allow us o
c ea e and singula ize a p o ile. The collec ed da a will be s o ed in a da abase and i will le
he use know whe he his p o ile is unique o no . In u n, he use will be in o med abou how
much unique i is in e e ence o each da a o his de ice and wi h espec o he global da a
al eady s o ed in he sys em. The p ojec is licensed unde he Apache License e sion 2.0.
You can access espec i ely he web applica ion and all he esou ces o he p ojec in he o-
llowing links:
h p://b owse inge p in ing.educa ionhos .cloud/
h ps://gi hub.com/ bn423/b owse Finge p in ing/
Keywo ds
Finge p in , b owse , can as, cookies, Ja aSc ip
V
Índice gene al
Página
1. In oducción 1
1.1. Obje i os ..................................... 1
1.2. Plande abajo .................................. 2
1.3. O ganización de la memo ia . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. In oduc ion 5
2.1. Objec i es..................................... 5
2.2. Wo kplan ..................................... 6
2.3. Con en ...................................... 6
3. P elimina es 9
3.1. Huella digi al de na egado es . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.1. Impac o: pelig os y casos de uso . . . . . . . . . . . . . . . . . . . . . 10
3.1.2. Técnicas de inge p in ing ........................ 12
3.1.3. Técnicas de e asión . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2. Tecnologías empleadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.1. Tecnologías básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.2. Lenguajes de p og amación y de desc ipción de da os . . . . . . . . . . 15
3.2.3. Backend .................................. 16
3.2.4. O as ecnologías............................. 17
3.2.5. Tecnologías conside adas y inalmen e desca adas . . . . . . . . . . . 18
3.3. He amien as simila es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Fuen es de in o mación 23
VII
G ado en Ingenie ía In o má ica Facul ad de In o má ica
4.1. Da os de la cabece a HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.2. Da os de elemen os o unciones Ja aSc ip . . . . . . . . . . . . . . . . . . . . 24
5. Diseño e implemen ación 31
5.1. Funcionamien o.................................. 31
5.2. Componen es del sis ema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2.1. Se ido .................................. 33
5.2.2. Clien e .................................. 37
5.3. P oblemas..................................... 38
6. Uso del sis ema 41
6.1. Bien enida .................................... 41
6.2. Índice ....................................... 41
6.3. G á icos...................................... 45
7. Con ibución indi idual 49
7.1. Ad ián Agudo Ga cía-He as . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2. JesúsMa ínGonzález .............................. 51
7.3. RubénPeñaGa cía ................................ 53
7.4. Samuel Solo de Zaldí a Ba be o . . . . . . . . . . . . . . . . . . . . . . . . . 55
8. Conclusiones 57
8.1. T abajo u u o................................... 57
9. Conclusions 61
9.1. Fu u eWo k.................................... 61
10. Bibliog a ía y enlaces de e e encia 68
VIII
Capí ulo 1
In oducción
La huella digi al es la ecopilación sis emá ica sob e un de e minado disposi i o con
la inalidad de iden i ica lo, singula iza lo y pe ila lo. Es e conjun o de da os pe mi e p ác i-
camen e, de o ma uní oca, iden i ica dicho e minal y en cues ión a la pe sona o g upo de
pe sonas que puedan es a usándolo. Po lo gene al, los e minales como los elé onos mó iles,
able as, po á iles y o denado es de sob emesa, son usados po una sola pe sona y po ello,
podemos asumi que los da os ecopilados de cie o disposi i o pe enecen a una pe sona en
conc e o [1].
Ac ualmen e, las aplicaciones web p es an se icios de o ma o almen e g a ui a a cam-
bio de los da os que ecopilan de los usua ios. En la mayo ía de casos es a in o mación se en a-
biliza a a és de se icios de ma ke ing y publicidad que desean ende un p oduc o o se icio
de e minado. Po ello, es os se icios necesi an pe ila al usua io en cues ión pa a así o ece -
le un p oduc o que les pueda in e esa . Las en idades usan es os mecanismos de ecopilación
de da os con odos los e minales que se conec en a sus se ido es, pa a así pode hace un
seguimien o del usua io y elabo a un pe il.
La écnica de seguimien o más conocida es median e cookies, las cuales se almacenan en
el p opio disposi i o y que luego son usadas pa a es udia la es adís ica de uso de la aplicación
web y pa a mejo a la expe iencia del usua io. Es común encon a cláusulas de p i acidad
que pe mi en al usua io da o no su consen imien o pa a el uso de es as. Algunos explo ado es
o ecen la posibilidad de deshabili a su uso y cie os an i i us ealizan bo ados pe iódicos de
los iche os de as eo, pe o la mayo ía de aplicaciones web no dejan accede a sus se icios, o
la o alidad de los mismos, si el usua io no pe mi e su uso. El uso de las écnicas de huella digi al
pe mi e que, en el caso de que las cookies sean eliminadas, no se pie da la azabilidad sob e el
usua io. Tecnologías como Ja aSc ip , Flash y Mic oso Sil e ligh acili an la implemen ación
de mé odos pa a ecoge in o mación muy conc e a del disposi i o, como es el amaño de la
pan alla o la e sión del sis ema ope a i o. La combinación de es as ca ac e ís icas pe mi e
pe ila al usua io e iden i ica lo.
1.1. Obje i os
El p incipal obje i o de es e p oyec o es c ea una aplicación web que pe mi a ecopila
los da os de un e minal, aplicando las dis in as écnicas de inge p in ing, y elabo a un pe il
1
Capí ulo 3
P elimina es
En es e capí ulo amos a p esen a las di e en es huellas digi ales que se pueden ex ae
de los na egado es web. Discu i emos las implicaciones que es o susci a y explica emos las
dis an as écnicas de ex acción y e asión que exis en. También de alla emos las ecnologías que
se han u ilizado en nues o abajo y, po úl imo, menciona emos o as he amien as exis en es
que son simila es a nues o p oyec o.
3.1. Huella digi al de na egado es
Cuando na egamos po in e ne , es posible iden i ica ca ac e ís icas que nos pe mi an
econoce si un de e minado usua io ha isi ado nues o si io. El mé odo más común pa a de ec-
a lo es median e el uso de cookies. Es e da o nos pe mi e es ablece una sesión con el isi an e
de la página y pode gua da así un es ado de la conexión. Además, es e iden i icado de sesión
nos pe mi e almacena las con igu aciones pe sonalizadas pa a esa sesión especí ica. De es a
o ma con olamos en odo momen o el as o de nues os usua ios. Ese ozo de in o mación,
llamado HTTP cookie [3], se gene a en el se ido y se in e cambia al es ablece la conexión.
Es o es, la cookie se almacena ambién en el na egado del clien e.
A pesa de ello, es a écnica no es su icien e. El usua io puede bo a las cookies de su
na egado web. En es e caso el se ido no le pod á eco da , pues o que la sesión p e iamen e
es ablecida no se puede ecupe a y hab ía que es ablece una nue a. Po consiguien e, necesi a-
mos o o en oque dis in o pa a pode iden i ica a nues o usua io con una ca ac e ís ica menos
olá il.
O o de los pa áme os que his ó icamen e se ha empleado pa a iden i ica a los in e -
nau as en la ed ha sido la di ección IP pública o igen. Se a a de un iden i icado u ilizado en
el p o ocolo de ed TCP/IP, conc e amen e en la capa de ed. Nos pe mi e de e mina el o igen
de las comunicaciones, ya que es a di ección es única. Po an o, se ía azonable ob ene es e
a ibu o pa a pode iden i ica al usua io que es á na egando en nues a página.
Es o ampoco es an sencillo. Hoy en día la mayo ía de las di ecciones IP suelen se
dinámicas y son asignadas po nues o ISP o P o eedo de Se icios de In e ne . Es o quie e
deci que cada cie o in e alo de iempo, el ISP a a i asignando una di ección IP pública a
nues a in e az de ed. En consecuencia, ampoco nos a a se posible u iliza lo como a ibu o
9
G ado en Ingenie ía In o má ica Facul ad de In o má ica
iden i ica i o, pues pa a un mismo usua io es e alo a a i a iando a lo la go del iempo.
Además de la asignación dinámica de di ecciones IP, o o p oblema asociado a con-
side a la di ección IP como a ibu o iden i ica i o es la u ilización de écnicas de CG-NAT
po algunos ISP. Como esul ado, dis in os disposi i os ue a de nues a ed domés ica pod ían
compa i la misma di ección IP pública, ya que el ISP es a ía conec ando muchos disposi i os
de su ed como si de una ed in e na se a ase. De es a o ma noso os no se íamos capaces de
iden i ica nues o disposi i o obje i o.
Po úl imo, ambién pod íamos conside a posibles in usiones en una ed in e na. La
di ección IP que esol e íamos pe enece ía a un e ce usua io íc ima que puede no ene
nada que e con el au én ico disposi i o isi an e.
Tan o las di ecciones IP públicas como el seguimien o a a és de cookies ue on consi-
de adas las huellas digi ales más iables du an e a ios años. Sin emba go, exis en o os en o-
ques que nos pe mi en llega a mejo es conclusiones a pa i de o as écnicas. La al e na i a más
conocida a las expues as an e io men e es b owse inge p in ing o huella digi al del na egado
web.
El mé odo de b owse inge p in ing [4] consis e en ecopila in o mación del na egado
web en unción de las ca ac e ís icas y con igu aciones de es e. Es a nue a óp ica de iden i ica
al usua io a a és de las di e sas ecnologías incluidas en los na egado es sin cookies [5],
nos pe mi e a ina más y se más minuciosos en nues o obje i o de iden i ica a los usua ios y
moni o iza la ac i idad que es os ealizan en una de e minada página web. Es posible encon a
más in o mación sob e la e ec i idad del b owse inge p in ing en [6, 7, 8].
En las conclusiones encon amos una pa adoja: si bien los p ime os es udios asegu aban
que la e ec i idad de es e mé odo es aba po encima del 80 % de p ecisión en cuan o a huellas
digi ales únicas [6, 7], es udios pos e io es no han podido ep oduci es os mismos esul ados,
ob eniendo solo un 33.6 % [8].
La explicación a es e enómeno p o iene de la elación en e el desa ollo de ecu sos
e ec i os de ecopilación de huella digi al en na egado es web con el desa ollo de las écnicas
de mi igación de las mismas.
Cuan os más p ocedimien os di e en es de b owse inge p in ing se emplean, más p o-
bable es ob ene una huella iden i ica i a de las ca ac e ís icas del na egado web. Hoy en día,
el uso de cie as mé odos aislados no esul a del odo iden i ica i o. En onces no es necesa io
halla un a ibu o único, sino que es su icien e con encon a una combinación de a ibu os que
esul e única pa a pode iden i ica a un usua io.
3.1.1. Impac o: pelig os y casos de uso
En es a sección analiza emos las implicaciones que iene el uso de la iden i icación de la
huella digi al en na egado es. Expond emos los casos de usos más ecuen es y los pelig os que
puede supone el uso de es e ecu so. Asimismo, comen a emos algunas posibles implicaciones
legales.
Al a a se de un sis ema an e ec i o, cabe p egun a se si puede ocasiona a su ez
algunos pelig os. Sin duda, el p incipal incon enien e que nos iene a la cabeza es el iesgo que
10
Huella digi al de na egado es UCM
supone pa a la p i acidad. Es e mé odo se puede ealiza de o ma anspa en e al usua io sin
que se dé cuen a ni haga al a pedi le ningún ipo de pe miso [9].
La pa e legal supone ambién o o desa ío. En Eu opa, exis e el Reglamen o Gene al de
P o ección de Da os (GDPR) que es inge la ecopilación de da os pe sonales a no se que se
haga de con o midad a las seis o mas legí imas pa a el a amien o de da os pe sonales. Es as
seis o mas son las siguien es:
a). Bajo el consen imien o inequí oco del indi iduo.
b). Po in e és i al del indi iduo.
c). Po in e és público.
d). Po necesidad con ac ual.
e). En cumplimien o de obligaciones legales.
). Po in e és legí imo del esponsable del a amien o de da os.
La GDPR e i a menciona ecnologías especí icas pa a pode es a al día del desa ollo
ecnológico más allá de las huellas digi ales y las cookies [10].
No obs an e, en el eglamen o de la GDPR apa ecen una se ie de conside andos no incu-
lan es que mencionan el hecho de que las cookies y o as huellas digi ales pueden se u ilizadas
pa a an o pa a elabo a pe iles de pe sonas ísicas como pa a iden i ica las. Es o se menciona
conc e amen e en el conside ando núme o 30 [11].
Po an o, en la p ác ica, con in o ma al usua io del empleo de es e mé odo, se ía su i-
cien e pa a cumpli con la GDPR [12]. Sin emba go, aquellas co po aciones sin acue dos con
Eu opa pod án segui ecopilando los da os de huellas digi ales sin ene en cuen a es a ley.
Po supues o, el agen e de ás del empleo es e p ocedimien o a a con a con sus p opias
mo i aciones. De odas mane as, los casos de uso p incipales suelen se los siguien es:
Realiza un pe il especí ico de clien es pa a adap a se a sus necesidades. Una de las
o mas es as ea de qué página iene el usua io y es ablece si ese usua io ya ha i-
si ado nues o si io an e io men e. En es e caso no es amos necesa iamen e in e esados
en a e igua la iden idad del usua io en sí, an solo en ealiza un pe il. Es el sis ema
más u ilizado po los da a b oke s [13]. Es e es el caso de uso undamen al de la mayo ía
se icios de publicidad de e ce os.
En ende la ac i idad del usua io a a és de pa ones de compo amien o. Analizando
cómo es el lujo de in e acción del usua io con nues a página, podemos llega a conclu-
siones muy aliosas. La ecnología de Ja aSc ip es la más u ilizada en es e aspec o, ya
que nos pe mi e analiza la a ención del usua io sob e la página (sabe si la pes aña se
encuen a ac i a, cuál es la posición del a ón, comp oba si nues as suge encias son de
e dad a ac i os e in e esan es pa a el usua io). Se u iliza mucho en iendas en línea y
edes sociales como es a egia de me cado ecnia.
Como consecuencia de los dos casos de uso, la huella digi al del na egado puede de-
e mina pa ones de compo amien o. De es a o ma es posible ambién p ecisa si la
ac i idad web es á siendo lle ada a cabo po un bo [14].
11
G ado en Ingenie ía In o má ica Facul ad de In o má ica
3.1.2. Técnicas de inge p in ing
Podemos clasi ica las dis in as écnicas de de ección de huellas digi ales en na egado es
web en dos g upos dis in os:
Finge p in ing pasi o: Se limi a a explo a el con enido de la pe ición web sin ejecu a
código de o ma ac i a en el na egado del clien e. En es e g upo inclui emos la ecolec-
ción de campos de la cabece a HTTP. En el capí ulo 4 explica emos de alladamen e cada
uno de los elemen os que con o man dicha cabece a.
Finge p in ing ac i o: Se ealiza ejecu ando código Ja aSc ip en el na egado web del
clien e que es á ealizando la pe ición web. En e odas las opciones posibles, el sis ema
ope a i o, la con igu ación del idioma, la esolución de pan alla, la de ección de plugins y
el lienzo suelen se los a ibu os elegidos pa a ealiza el mé odo ac i o de iden i icación
de huella digi al. En el capí ulo 4 se explica á de alladamen e cada uno de los elemen-
os Ja aSc ip que hemos ob enido pa a pode pe ila los na egado es web en nues o
p oyec o.
También pod íamos clasi ica los dis in os sis emas de b owse inge p in ing eniendo
en cuen a el ipo de in o mación a ob ene . Po una pa e, pod íamos ob ene in o mación del
ha dwa e de la máquina di ec amen e a a és de la API de Ja aSc ip . Algunos de es os a ibu-
os son: la memo ia RAM, el ipo de p ocesado de la máquina, el nomb e de la a je a g á ica,
el núme o de núcleos de la CPU o el es ado de la ba e ía. Po o a pa e, podemos ob ene in-
o mación del sis ema ope a i o, con igu aciones del na egados o uen es y códecs de audio
y ídeo ins alados, en e o os. Todos es os elemen os se ob ienen del so wa e del sis ema del
clien e. En e odo es e conjun o de écnicas, las más usadas son:
Recopila el Use -Agen del disposi i o: Es o se puede ealiza an o de o ma ac i a
como de o ma pasi a. En gene al, en es e a ibu o se anuncia el nomb e del na egado
web que se es á u ilizando. Una ez lo conozcamos, sabemos las ecnologías sopo adas
y podemos p o undiza más en nues a de ección de la huella digi al.
Ob ene el lienzo o Can as: La p opiedad que iene el lienzo es que una misma imagen o
un mismo ex o puede ep esen a se de o ma di e en e en dis in os clien es. Es o depende
del núme o de píxeles del disposi i o, del mo o del na egado web, de los o ma os de
comp esión, del sis ema ope a i o y de la unidad de p ocesamien o g á ico (GPU) que
se u ilice, p incipalmen e. Se conside a es a écnica como una de las más e ec i as [15].
Si bien no ga an iza la unicidad de un usua io, combinado con o os campos casi puede
ga an iza la iden i icación inequí oca del mismo.
Po úl imo, que emos menciona cuales son los úl imos mé odos de de ección de huella
digi al en los na egado es que han llamado la a ención an o en es udios académicos como pa a
la indus ia. Las ideas más dis up i as son:
WebGL API: Es una API de Ja aSc ip diseñada pa a ende iza g á icos 3D. Además, los
componen es de WebGL pueden combina se con o os elemen os HTML, como el lienzo
[16]. Al igual que ocu e con el lienzo, la g anula idad de la huella digi al depende á
es echamen e del ha dwa e del disposi i o, conc e amen e de la GPU.
12
Huella digi al de na egado es UCM
Web Audio API [17]: Es a API es á pensada pa a da sopo e a aplicaciones más a an-
zadas capaces de sin e iza audio, como con olado es de sonido MIDI, y pa a mejo a la
expe iencia de usua io al juga a ideojuegos web. La idea que hay de ás de ob ene una
huella digi al a a és de es e sis ema es que las señales de audio son p ocesadas de o mas
dis in as en cada na egado del clien e según el ha dwa e yso wa e del que disponga.
Po eso, en una de e minada máquina, los pa áme os se án siemp e los mismos.
U ilización de los ni eles de ba e ía: HTML5 implemen a la API Ba e y S a us que pe -
mi e ex ae alo es de ca ga y desca ga de la ba e ía. Si es o es u ilizado po un sc ip
de e ce os, pueden incula esos ni eles de ba e ía con las isi as a de e minadas web
en un in e alo de iempo. De es a o ma se pod ía ob ene la aza de na egación de un
usua io [18].
3.1.3. Técnicas de e asión
Como indican [Gunes Aca , Ch is ian Eubank, S e en Engleha d , Ma c Jua ez, A ind
Na ayanan y Claudia Diaz] en [15], “las opciones ac uales de los usua ios pa a mi iga es as
amenazas son limi adas, en pa e debido a la di icul ad de dis ingui el as eo no deseado del
compo amien o benigno.”
La mi igación más sencilla pa a aumen a la segu idad y p i acidad de nues o na ega-
do es po supues o elimina uncionalidades. No obs an e, ele a nues o ni el de p o ección
sin deg ada la expe iencia del usua io siemp e es un desa ío.
Como esul ado, no exis e una solución simple, sino que an solo se pueden implemen a
medidas de mi igación [19].
Modi ica los ajus es del na egado . Cada na egado cuen a con unas opciones con igu-
ables. En la mayo ía de ellos podemos habili a unciones de an i-seguimien o.
Es posible accede a las con igu aciones a anzadas de nues os na egado es y deshabi-
li a uncionalidades y con igu aciones que puedan da demasiados de alles de nues a
huella digi al. En Fi e ox bas a ía con ing esa en el ecu so abou :con ig. Google Ch o-
me cuen a con o a opción equi alen e, ch ome:// lags/
O a opción es u iliza na egado es que ya engan con con igu aciones po de ec o pa a
e adi a ias écnicas de de ección de huella digi al, como To B owse .
U iliza complemen os y ex ensiones pa a el na egado que modi iquen el compo a-
mien o del na egado [20]). Exis e una g an di e sidad de complemen os que ealizan
es a labo . Algunos de los más conocidos son NoSc ip yuMa ix. Es os complemen os
pe mi en una con igu ación lexible po lo que es posible bloquea solo el código Ja aS-
c ip y los elemen os de Flash que deseemos, sin ene que p escindi de la uncionalidad
comple a. Es una solución de comp omiso que busca el equilib o en e p i acidad y un-
cionalidad.
Además del bloqueo de elemen os Flash y Ja aSc ip , exis en más complemen os que
modi ican las cabece as HTTP y que al e an algunas APIs de Ja aSc ip pa a e i a el
inge p in ing. De es a o ma podemos alsea los da os que se an a ecopila sob e
noso os. Como esul ado, an o los mé odos ac i os como pasi os se ían mucho menos
e icaces.
13
G ado en Ingenie ía In o má ica Facul ad de In o má ica
U iliza máquinas i uales: Es posible i ualiza dis in os sis emas ope a i os con sus
espec i os na egado es. De es a o ma man ene po sepa ado nues os dis in os in e e-
ses, como puedan se abajo, ocio, educación, e c. y u iliza así cada pe il pa a un in
especí ico. Po supues o, siemp e podemos bo a la máquina i ual y c ea o a nue a
[21].
Todas es as medidas de mi igación son an solo es ue zos écnicos. Cambios en las ec-
nologías p o oca ían que las medidas que hoy son e icaces pa a e i a la huella digi al mañana
es én des asadas y esul en inú iles. Po es a azón, sin una egulación e ec i a en el campo del
de echo, es os ucos y ajus es es án des inados a acasa a la go plazo.
3.2. Tecnologías empleadas
Exis e un abanico muy amplio de ecnologías [22] elacionadas con la na egación web.
Pa a da una p ime a isión gene al, amos a ealiza una clasi icación de las dis in as ecnolo-
gías que hemos u ilizado en las siguien es ca ego ías:
Tecnologías básicas:
• HTML.
• CSS.
• HTTP.
Lenguajes de p og amación y de desc ipción de da os:
• Ja aSc ip (AJAX y Web API).
• PHP.
• JSON.
Backend:
• XAMPP.
◦Apache.
◦Ma iaDB.
◦PhpMyAdmin.
• Educa ion Hos .
O as ecnologías:
• Google Cha s.
• Gi .
• PhpS o m.
• L
A
T
EX.
A con inuación explicamos b e emen e en qué consis e cada ecnología u ilizada y po -
qué nos hemos decan ado po usa la.
14
Huella digi al de na egado es UCM
3.2.1. Tecnologías básicas
HTML
HTML signi ica Lenguaje de Ma cado de Hipe ex os (Hype Tex Ma kup Language).
Es el lenguaje es anda izado po el Wo ld Wide Web Conso ium (W3C) que de ine el código de
una página web. Es e lenguaje de ma cado es á o mado de elemen os o e ique as que sepa an
los dis in os componen es de la página.
Usamos HTML5 en nues o p oyec o ya que necesi amos cons ui una página web y és-
e es el lenguaje es ánda pa a ealiza lo. HTML es el lenguaje más ex endido. No es an es ic o
como o os lenguajes de ma cado simila es, como XHTML, que no son e ocompa ibles.
CSS
CSS signi ica Hojas de Es ilo en Cascada (Cascading S yle Shee s). Se u iliza pa a de-
ini el diseño de la p esen ación de un lenguaje de ma cado. Es o o de los lenguajes es anda-
izados po el W3C. Exis en a ias e siones. Noso os u ilizamos la e sión más ecien e, que
es CSS3.
U ilizamos CSS en nues o p oyec o pa a coloca los elemen os HTML de o ma es á ica
y da les el es ilo de p esen ación que deseamos. Usa CSS esul a mucho más lexible que ija
el alo del es ilo den o la e ique a HTML, haciendo nues o código más sencillo de man ene .
HTTP
HTTP es P o ocolo de T ans e encia de Hipe ex o (Hype ex T ans e P o ocol). Es el
p o ocolo que se emplea pa a el en ío de documen os HTML. En la pila TCP/IP se encuen a en
la capa de aplicación. HTTP es un p o ocolo sin es ado y sigue un modelo de clien e-se ido .
En nues o p oyec o usamos la e sión HTTP/1.1 , que es la que iene p ede e minada
en nues o se ido . La en aja que enemos con es a e sión es que el o ma o es ex o plano,
po an o legible pa a el se humano.
3.2.2. Lenguajes de p og amación y de desc ipción de da os
Ja aSc ip (AJAX y Web API)
Ja aSc ip es un lenguaje de p og amación mul ip opósi o que es á sopo ado po odos
los na egado es web mode nos. Apa ece po p ime a ez en el na egado Ne scape en 1995. Se
puede u iliza an o pa a ejecu a código en el na egado del clien e como en uncionalidades
del se ido . A a és de Ja aSc ip ambién es posible accede a mul i ud de APIs que exis-
en en nues o na egado web. Es as pe mi en la con igu ación de ajus es y el acceso a a ias
uncionalidades.
En nues o p oyec o u ilizamos WebAPI pa a ecolec a los da os de la huella digi al del
15
G ado en Ingenie ía In o má ica Facul ad de In o má ica
na egado del clien e. Algunas de las WebAPIs que más u ilizamos son: window ydocumen
(pe enecien es a Documen Objec Model (DOM)), na iga o ,sc een ycan as.
También usamos Ja aSc ip pa a coloca elemen os HTML de o ma dinámica y asín-
c ona modi icando el á bol DOM HTML. Es o nos pe mi e ca ga los elemen os sin ac ualiza
la página comple amen e ejecu ando el código en el na egado web del clien e.
PHP
PHP (p o iene del ac ónimo ecu si o PHP: Hype ex P ep ocesso ) es o o lenguaje
de p og amación mul ip opósi o. Es el lenguaje de desa ollo web po excelencia. La p ime a
e e encia que se iene de PHP da a ambién de 1995. En nues o caso lo empleamos en el lado
del se ido . Una ca ac e ís ica muy ú il es que podemos combina código PHP con JSON y
HTML.
Elegimos PHP po que se a a de un lenguaje que ya conocíamos odos los miemb os del
equipo. Además nos iba a acili a el uso del so wa e con el que ya eníamos en men e abaja .
JSON
Las siglas JSON signi ican No ación de Obje o de Ja aSc ip (Ja aSc ip Objec No-
a ion). Es un o ma o de ep esen ación de ex o. Se ca ac e iza po con ene colecciones de
da os no o denadas. Es as colecciones ienen una es uc u a de pa es <cla e>:< alo >.
U ilizamos JSON en nues o p oyec o pa a in e cambia obje os desde la lógica a las
is as. En ellos incluimos oda la in o mación que que emos mos a al usua io.
3.2.3. Backend
En nues o se ido hemos op ado po ins ala XAMPP [23]. Consis e en un paque e
de he amien as pa a combina las p incipales ecnologías que se u ilizan en un se ido web.
Hemos elegido es e paque e de so wa e debido a la acilidades que b inda an o pa a ins ala
como pa a usa se con el sis ema ope a i o Mic oso Windows. Los componen es que hemos
u ilizado en XAMPP son los siguien es:
Apache
Es el se ido web más popula . Cuen a con una pe ec a in eg ación con los el lenguaje
PHP. Se a a de un se ido con el que ya habíamos abajado an e io men e así que omamos
la decisión de u iliza lo pa a pode comenza el desa ollo de nues a aplicación ápidamen e.
También conside amos o as opciones que inalmen e desca amos. Es o lo explica emos en la
sección 3.2.5.
16
Huella digi al de na egado es UCM
Ma íaDB
Se a a de un sencillo sis ema ges o de base de da os elacionales. Es una bi u ca-
ción del p oyec o MySQL, que ue adqui ido po Sun Mic osys ems en 2009. El p oyec o de
Ma iaDB a a de da con inuación al desa ollo abie o de dicha ecnología a a és de su co-
munidad.
En nues o p oyec o se usa pa a albe ga la huella digi al que ecopilamos de los na e-
gado es web que conec an con nues a aplicación. Como en el pun o an e io , ambién conside-
amos o o ipo de bases de da os que inalmen e ue on desca adas.
PhpMyAdmin
Es una in e az web pa a adminis a la base de da os. Es á esc i a en PHP y sopo a
bases de da os an o Ma iaDB como MySQL.
Es á con enida den o de la ins alación de XAMPP. Nos esul a más cómodo obse a
el con enido de nues a base de da os de un is azo a a és de una in e az web y po eso
u ilizamos es a he amien a y no un clien e CLI.
Educa ion Hos
Educa ion Hos 1es un p o eedo que o ece se icios de alojamien o web. Elegimos
es e se icio ya ae de se ie los se icios Apache, MySQL y PhpMyAdmin, po lo que no ene-
mos que p eocupa nos po la ins alación ni el man enimien o de los mismos. Como Ma iaDB es
o almen e compa ible con MySQL, nues a aplicación unciona pe ec amen e. Po si no ue a
su icien e, es e se icio es á incluido en el pack de es udian e de Gi hub y podemos u iliza lo
de o ma g a ui a.
3.2.4. O as ecnologías
Además de las ecnologías que hemos usado elacionadas con los na egado es, mencio-
namos el es o de ecnologías que hemos inco po ado a nues o p oyec o:
Google Cha s
U ilizamos la he amien a Google Cha s [24] pa a ep esen a es adís icas sob e la in-
o mación que hemos almacenado en nues a base de da os. A a és de g á icas de a as mos-
amos po cen ajes de los a ibu os más comunes. Es e he amien a la impo amos a a és de
código Ja aSc ip .
1h ps://educa ionhos .co.uk/
17
G ado en Ingenie ía In o má ica Facul ad de In o má ica
elemen o es Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKi /537.36 (KHTML,
like Gecko) Ch ome/83.0.4103.97 Sa a i/537.36.
Accep -Encoding: Anuncia la codi icación del con enido que el clien e puede en ende .
Puede es a o mado po un alo o po a ios y es os alo es son gzip,comp ess,de la e,
b ,iden i y y*.
Connec ion: Comp ueba si la conexión a la ed pe manece abie a o no al inaliza la
ansacción ac ual. Los alo es que puede oma son keep-ali e si se man iene la conexión
oclose si la conexión es á ce ada.
Sec-Fe ch-Mode: Es una cabece a de me ada os que indica el modo de la espues a. Al-
gunos de los alo es que puede con ene son na iga e ones ed-na iga e.
Sec-Fe ch-Use : Es una cabece a de me ada os que indica si la solici ud de na egación
ue ealizada po una ac i ación de usua io. Los alo es posibles pa a es e campo son ?0
si ue ac i ada po un usua io o ?1 si no lo ue.
Sec-Fe ch-Si e: Es una cabece a de me ada os que indica la elación en e el o igen de
la consul a y el o igen de la espues a. Los alo es que puede oma son none,c oss-si e,
same-o igin ysame-si e.
DNT: Indica la p e e encia de seguimien o del usua io, le indica si p e ie e la p i acidad
al con enido pe sonalizado. Sus posibles alo es son 1si el usua io pe mi e se econoci-
do, 0si el usua io no lo pe mi e o null si el usua io no lo especi ica.
Es os son los elemen os que hemos decidido u iliza pa a nues o es udio pe o amos a men-
ciona ambién los elemen os que ex aemos de la cabece a y que hemos desca ado po que no
enían ele ancia en nues o abajo, es os elemen os son:
Hos : Indica el dominio al que se es á ealizando la pe ición. Decidimos desca a es e
elemen o po que el dominio al que se a a ealiza la pe ición es el nues o y po an o
odas las pe iciones an a con ene el mismo alo po lo que no dec e a ningún c i e io
de unicidad del usua io.
Cookie: Es un elemen o que se u iliza gene almen e pa a iden i ica a un se ido que
a ias pe iciones ienen del mismo o igen. En nues o caso al usa php es e nos gene a
una cookie p opia que iene el o ma o PHPSESSID=mm d8cc 1ud7ksp6 91 mlni y
pe mi e a la web gua da da os se ializados del es ado. Concluimos no u iliza es e da o
po que el in que iene nues o TFG es econoce al usua io median e su huella digi al y
es e puede exp esamen e elimina sus cookies po lo que acaba íamos ecogiendo un da o
acío que no iene ninguna u ilidad en nues o es udio.
4.2. Da os de elemen os o unciones Ja aSc ip
Hemos ealizado una subdi isión den o de los elemen os ex aídos de Ja aSc ip según
el obje o o la unción que hemos u ilizado pa a ob ene lo.
Los elemen os que se ex aen de los a ibu os del obje o na iga o [26] son:
24
Huella digi al de na egado es UCM
Pla a o ma: Indica pa a qué pla a o ma es á compilado el na egado . Se ob iene me-
dian e el a ibu o pla o m. Algunos ejemplos de alo es que puede de ol e es e campo
son Win32,Linux a m 7l oMacIn el.
Use -Agen : Rep esen a el mismo obje o que en la cabece a HTTP pe o en es e caso
es á ob enido median e el a ibu o use Agen . Se u iliza pa a comp oba si el a ibu o que
se en ió en la cabece a HTTP no ue alseado y además sepa ando los ca ac e es de la
cadena que lo o ma se pueden ob ene los siguien es alo es:
•Na egado : Indica la pla a o ma web median e la cual se es á ealizando la na e-
gación. Unos posibles alo es que puede con ene es e campo son Ch ome oOpe a.
•Ve sión: Indica la e sión del so wa e web con el que se es á ealizando la na e-
gación y se ep esen a median e un núme o.
Cookies habili adas: Es e elemen o indica si el na egado iene las cookies habili adas
po de ec o. Se consigue median e el a ibu o cookieEnabled.Se ep esen a con un boo-
leano.
Lenguaje: Mues a la e sión del lenguaje del na egado . Se ob iene a a és del a ibu o
language. Algunos ejemplos de es e campos son es-ES oen-US.
Lenguajes sopo ados: indica los lenguajes que es capaz de sopo a el na egado . Con-
iene el mismo alo que el elemen o Accep -Language a excepción de que u iliza ele-
men os con o ma o q= con el que indican la p e e encia. Se ob ienen ex ayendo los
elemen os del a ibu o language. Se ep esen a como una cadena de alo es que iene un
o ma o como es e es-ES // es.
Na egado en línea: Indica si la máquina del usua io se encuen a conec ada a la ed o
no. Puede de ol e los alo es ue si se encuen a conec ada o alse en caso de que no
lo es é, y se ob iene a a és del a ibu o onLine.
AppName: Mues a el nomb e del na egado , po lo gene al el nomb e de odos los na e-
gado es mode nos es Ne scape, pe o los na egado es de e siones an e io es de uel en
el alo Mic oso In e ne Explo e . Se ob iene con el a ibu o appName.
In o mación de la ba e ía: indica si es posible ob ene in o mación de la ba e ía. Es e
elemen o se ob iene comp obando la exis encia del a ibu o ge Ba e y. Su ep esen ación
se ealiza median e un booleano.
Do-no - ack Ja aSc ip : comp ueba cuáles son los ajus es del do-no - ack que indica si
el usua io quie e se seguido o man ene su p i acidad y se indica median e un booleano.
Se almacena en el a ibu o doNo T ack. Se ep esen a con un booleano.
Núme o máximo de pun os ác iles sopo ados: ep esen a el núme o máximo de zonas
sob e las se puede con ac a de o ma simul ánea. Es á con enido en el a ibu o maxTouch-
Poin s. Se ep esen a con un alo numé ico.
Mo o del na egado : indica el mo o de na egación y siemp e iene el alo Gecko. Se
ob iene a a és del a ibu o p oduc .
P oduc Sub: con iene el núme o de compilación del na egado ac ual. Se consigue a
a és del a ibu o p oduc Sub. Algunos posibles alo es son 20100101 pa a Fi e ox o
20030107 pa a Ch ome.
25
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Sis ema Ope a i o: mues a el Sis ema Ope a i o sob e el que se es á ejecu ando el na-
egado . Se ob iene con el a ibu o oscpu. Algunos ejemplos de es e campos son Windows
NT x.y; Win64; x64 oIn el Mac OS X o macOS e sion x.y.
Vendedo : indica el p o eedo del na egado y puede se Google Inc.,Apple Compu e ,
Inc. o ninguno en el caso de Fi e ox. Su ob ención se ealiza con el a ibu o endo .
Concu encia ha dwa e: es el núme o de p ocesado es disponibles que se pueden u i-
liza pa a ejecu a subp ocesos en la máquina del usua io. Es á con enido en el a ibu o
ha dwa eConcu ency. Se ep esen a con un alo numé ico.
Build Id: e o na el alo de iden i icación de compilación del na egado . La mayo ía de
na egado es de uel e un da o inde inido pe o o os de uel en una ma ca de iempo ija
como medida de p i acidad. Se ob iene con el a ibu o buildID. Un posible ejemplo pa a
es e campo es 20181001000000 que es el alo que ob iene en Fi e ox.
Memo ia del disposi i o: de uel e el amaño ap oximado de la memo ia en Gigaby es.
Se ob iene del a ibu o de iceMemo y. Se ep esen a con un alo numé ico.
Plugins disponibles: lis ado de plugins disponibles po el na egado que u iliza el usua-
io. Se ob iene con el a amien o del a ibu o plugins. Se ep esen a como un lis ado de
Plugins en e los que podemos encon a Ch ome PDF Plugino oedge pd iewe .
El elemen o que se ob iene a pa i de la unción ge TimezoneO se () del obje o Da e p opio de
Ja aSc ip es:
Di e encia en e la UTC y la ho a local en minu os: di e encia en minu os de la con-
igu ación ho a ia de la zona en la que se encuen a el usua io y la ho a media de G een-
wich(GMT). Se p esen a con un alo núme ico que oma los alo es 0si es á en GMT o
-120 si es á en en GMT+2.
Los elemen os que se ob ienen a pa i del obje o sc een[27] son:
Ancho de la pan alla: ancho o al de la pan alla del usua io en píxeles. Se ob iene con el
a ibu o wid h. Se ep esen a con un alo numé ico.
Al u a de la pan alla: al o o al de la pan alla del usua io en píxeles. Es de uel o po el
a ibu o heigh . Se ep esen a con un alo numé ico.
Ancho de pan alla disponible: ancho de la pan alla del usua io en píxeles sin con a
con los elemen os de la in e az como la ba a de a eas. Se ob iene a a és del a ibu o
a ailWid h. Se ep esen a con un alo numé ico.
Al u a de pan alla disponible: al o de la pan alla del usua io en píxeles sin ene en
cuen a los elemen os de la in e az como pueden se la ba a de a eas. Se ob iene con el
a ibu o a ailHeigh . Se ep esen a con un alo numé ico.
P o undidad del colo de la pan alla: de uel e la p o undidad de bi s de la pale a de
colo es pa a mos a imágenes en bi s po píxel. Se ob iene con el a ibu o colo Dep h.
Se ep esen a con un alo numé ico.
26
Huella digi al de na egado es UCM
P o undidad del colo en pixel de la pan alla: de uel e la esolución del colo en bi s
po pixel de la pan alla del usua io. Se consigue a a és del a ibu o pixelDep h. Se e-
p esen a con un alo numé ico.
Los elemen os que se puede accede a pa i del obje o window[28] son:
Ba a de localización isible: indica si la ba a de localización se encuen a isible o no
ep esen ado con un booleano. Se ob iene median e el a ibu o loca ionba . isible.
Ra io de píxel: elación que exis e en e la al u a de un pixel ísico de la pan alla que es á
u ilizando el usua io y la al u a de un pixel de un disposi i o independien e (dips). Dips,
que signi ica Densi y-Independen Pixel, es una medida que a ía según la densidad de
píxeles que con iene una pan alla pa a ajus a el amaño de los obje os a es a. Se encuen a
con el a ibu o de icePixelRa io. Se ep esen a con un alo numé ico.
Ba a de menú isible: mues a si la ba a de menú de la en ana es isible median e un
booleano. Es á con enido en el a ibu o menuba . isible.
Ba a pe sonal isible: indica si la ba a pe sonal de la en ana del usua io es isible o
no con un booleano. Se ob iene con el a ibu o pe sonalba . isible.
Ba a de es ado isible: mues a si la ba a de es ado del usua io es isible o no con un
booleano. Se consigue con el a ibu o s a usba . isible.
Ba a de he amien as isible: mues a si la ba a de he amien as es á isible en la
en an del usua io o no median e un booleano. Es e alo se ob iene median e el a ibu o
oolba . isible.
Almacenamien o local del disposi i o: indica si los da os de las di e en es sesiones de
na egación se almacenan de o ma pe sis en e en el equipo del usua io. Se ob iene com-
p obando la exis encia del a ibu o localS o age. Su ep esen ación se ealiza median e
un booleano.
Almacenamien o de la sesión disponible: ep esen a si se almacena la in o mación de
la sesión. La di e encia con el almacenamien o local es que en es e los da os se elimina
cuando se cie a la sesión. Se consigue comp obando la exis encia del a ibu o sessionS-
o age. Su ep esen ación se ealiza median e un booleano.
Se puede usa base de da os indexadas: mues a si es posible almacena da os en el
na egado del usua io lo que pe mi e a los usua ios segui na egando sin ene cone-
xión. Se ob iene comp obando la exis encia del a ibu o indexedDB. Se ep esen a con
un booleano.
Obje o esul s de windows disponible: es e elemen o indica si el obje o esul de win-
dows es á disponible. Se ob iene comp obando la exis encia del a ibu o esul s. Se e-
p esen a con un booleano.
An es de con a el es o de elemen os hay que menciona que hemos de inido apa ados en el
DOM de la página a los que hemos denominado egiones sob e los que ealiza emos p uebas
pa a los da os que buscamos. Los elemen os que hemos ob enido a pa i de es as p uebas son:
27
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Can as: de inimos un dibujo en una egión can as que se ep esen a á de o ma di e en e
dependiendo del equipo y del na egado que lo ep oduzca y de es a ep esen ación ob e-
nemos un esumen. Es e esumen consis e en ob ene un hash del ipo MD5 que u ilizamos
pa a de ini el elemen o can as y así es ablece elaciones en e la o ma de ep esen a
de cada usua io. O ecemos di e en es elemen os a pin a , es cuad ados de colo ojo,
azul y ama illo, un emo icono de una ca i a son ien e y la siguien e ase ”P UeBa De
CaN As En Tu NaVeGaDo ”. Es e elemen os lo ob enemos con una unción c eada po
noso os a la que hemos llamado pin a ().
Fo ma os de ideo sopo ados: en una egión de ideo ealizamos p uebas pa a e si es
posible ep oduci di e sos o ma os de ideo. Pa a ob ene es a in o mación u ilizamos
una unción a la que llamamos o ma osSopo adosVideo(). La p ueba pa a cada o ma o
puede e o na nos uno de es os alo es p obably,maybe, o acío. Los o ma os de ideo
que hemos u ilizado pa a hace p uebas han sido los siguien es:
Fo ma o Codecs
ideo/ogg heo a
ideo/ogg o bis
ideo/ogg opus
ideo/mp a c1.4D401E
ideo/mp4 mp4a.40.2
ideo/mp4 lac
ideo/webm p8.0
ideo/webm p9
ideo/webm c o bis
Fo ma os de audio sopo ados: sob e una zona de audio p obamos si es posible ep o-
duci di e sos o ma os en la máquina del usua io. Pa a ello u ilizamos una unción a la
que hemos pues o el nomb e de o ma osSopo adosAudio(). Pa a cada o ma o puede
de ol e nos los alo es p obably,maybe, o acío. Los oma os de audio que u ilizamos
pa a ealiza las p uebas son:
Fo ma o Codecs
audio/ogg o bis
audio/ogg opus
audio/3gpp
audio/mp4 mp4a.40.5
audio/mp4 mp3
audio/mp4 ac-3
audio/mp4 ec-3
audio/aac
audio/pcm
audio/ lac
audio/wa e
audio/aac
audio/webm o bis
audio/mp3 mp3
28
Huella digi al de na egado es UCM
Lis a de uen es de ec adas: es e elemen o se consigue a pa i de la unción inge p in -
on s() que ealiza p uebas pa a e si el na egado que es a usando el usua io sopo a
di e sas uen es. Se hace una comp obocación con un lis ado de más de 500 uen es.
En cuan o a los elemen os Ja aSc ip que hemos desca ado no es el mismo caso que con los de
la cabece a, ya que en ella ecibimos cie os elemen os y desca amos algunos po que no nos
e an ú iles. En es e caso los elemen os desca ados son aquellos que descub imos y que en un
p incipio pod ían ene u ilidad pa a nues o es udio pe o que as ealiza p uebas con ellos no
nos pa ecie on del odo p o echosos. Es os elemen os desca ados de código Ja aSc ip son:
Ba e ia: en cuan o a elemen os más conc e os sob e la ba e ía como pueden se la ca ga
o al del equipo o si el equipo se encuen a ca gando en es os momen os pod ían habe
sido da os ú iles. Pe o, as hace p uebas con ellos, decidimos desca a los po que los
alo es que ecibimos de es os pa áme os e an siemp e los mismos pa a odos los usua-
ios y lo único que log amos con ellos e a que las huellas de usua ios di e en es ue an
un poco más pa ecidas.
Geolocalización: sob e es e elemen o pensamos que pod ía se nos de bas an e u ilidad
conoce qué localización enía el usua io a la ho a de conec a se a nues a web. T as
in es iga con ella descub imos que pa a pode accede a es e da o el usua io debía da nos
un pe miso conc e o. Fue es e hecho el que nos hizo desca alo po que nos pa ecía que
pe día bas an e impo ancia pues o que la huella que p e endemos saca es solo con la
conexión al se ido sin más acciones del usua io.
His o ial de la sesión: en cuan o a es e elemen o lo u ilizamos po que pensamos que
pod ía conc e a más la huella po que si sabíamos que paginas suele isi a no malmen e
el usua io es mucho más p obable que sepamos qué usua io es á al o o lado de la pan-
alla.T as in es iga con él descub imos que solo nos p opo cionaba el núme o de webs
isi adas an es que la nues a. Es o nos hizo e que ese núme o pod ía se cualquie a
pa a el mismo usua io y lo único que conseguimos con él ue que el a io de simila idad
de dos huellas iguales se hiciese un poco más di e en e cuando en ealidad pe enecen al
mismo.
29
Capí ulo 5
Diseño e implemen ación
La aplicación ecopila in o mación del usua io en dis in as e apas. Se a a de una aplica-
ción web que ejecu a código an o en clien e como en se ido pa a ob ene dicha in o mación.
Clien e: Es la pa e de la aplicación ejecu ada en el na egado del usua io. Ob iene in-
o mación del na egado median e código Ja aSc ip y lo en ía al se ido de o ma
asínc ona.
Se ido : Aloja la base de da os y el código que ob iene la in o mación de las cabece as
HTTP.
•Base de da os: Una base de da os elacional Ma iaDB/MySQL en la que se alma-
cena án los da os ob enidos de cada una de las conexiones de los usua ios.
5.1. Funcionamien o
Nues a aplicación se ejecu a an o en clien e como en se ido , en dis in as e apas y
comunicándose de mane a asínc ona en algunas de ellas.
El clien e hace una pe ición HTTP al se ido . El se ido analiza las cabece as de la
pe ición y las inse a en la base de da os con un iden i icado asociado al usua io pa a de ini su
huella. De uel e al usua io una página es á ica en HTML con Ja aSc ip embebido en la que el
usua io e á los da os de su cabece a HTTP y el código Ja aSc ip se ejecu a á au omá icamen e
pa a ob ene el es o de da os del na egado .
Una ez e minada la ejecución de odo el código Ja aSc ip , es e ac ualiza á la apa iencia de la
página pa a que el usua io pueda e las ca ac e ís icas ob enidas median e Ja aSc ip y en ia á
de o ma asínc ona, sin eca ga la página del usua io, oda la in o mación ob enida al se ido .
El se ido ecibe la in o mación ob enida en Ja aSc ip y ac ualiza odas las ilas de las ablas
de la base de da os pa a el id del usua io.
Po úl imo, el se ido ejecu a el código enca gado de calcula la unicidad de cada uno de los
a ibu os del usua io po sepa ado y la unicidad o al del conjun o de a ibu os. T as calcula lo
de ol e á como espues a de la pe ición asínc ona del código Ja aSc ip odos los alo es de
la unicidad, que ol e án a ac ualiza la página pa a mos a le al usua io cuán o de único es en
cada uno de los campos de su na egado y cuán o de único es su na egado en conjun o.
31
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Figu a 5.1: Diag ama de lujo de la aplicación
32
Huella digi al de na egado es UCM
5.2. Componen es del sis ema
El p oyec o cuen a con dis in os componen es. P incipalmen e se di iden en clien e y
se ido .
5.2.1. Se ido
El se ido se enca ga de ges iona las pe iciones HTTP en iadas po el usua io al u iliza
nues a aplicación web.
La página cons a de dos u as, que se án gene adas po el se ido median e PHP:
/: Es la base de la aplicación. En ella se analizan y mues an odos los elemen os del
na egado del usua io, así como su unicidad gene al e indi idual de cada uno de los
a ibu os del na egado .
/g a icas: En es a página se mues a al usua io g á icas con los da os globales de los
a ibu os ob enidos po la aplicación.
Pa a la uncionalidad p incipal de la aplicación el se ido ac úa en dos ocasiones.
La p ime a se enca ga de ecopila la in o mación de la cabece a HTTP, gene a la página
que e á el usua io e inse a en la base de da os es a in o mación. Es a pa e co esponde a la
u a p incipal.
La segunda ocasión ecibe una pe ición asínc ona con los da os ob enidos en la ejecución
de código en clien e. El se ido se enca ga de ac ualiza la base de da os añadiendo esos da os
a las ablas pa a el id del usua io. Una ez añadida es a in o mación, gene a un obje o JSON
que de ol e á como espues a de la pe ición. En es e obje o se encuen a la unicidad de cada
uno de los elemen os analizados y la unicidad gene al del na egado del usua io. Es a acción
se lle a a cabo haciendo una llamada a la u a /ca gaJS.
Lenguaje de p og amación
Pa a el código del se ido hemos u ilizado el lenguaje PHP. Con él se ges iona odo el
uncionamien o de la aplicación en el se ido .
En el se ido se gene an las páginas HTML que se en ían al clien e. Al se necesa io
que cada clien e eciba una página única y pe sonalizada es as se gene an de mane a dinámica
en el se ido con es e lenguaje. Po o a pa e, PHP nos pe mi e ob ene la in o mación de la
cabece a HTTP que ecibe el se ido y a a la pa a añadi es a in o mación en la página que
e á el clien e y a su ez inse a la en nues a base de da os.
33
Capí ulo 6
Uso del sis ema
Es es e capí ulo ealiza emos un eco ido guiado sob e el uso de nues a he amien a.
Explica emos paso a paso cada una de las opciones que hay a nues a disposición y adjun a emos
cap u as de pan alla de cada acción ealizada. Reco damos que el sis ema es á disponible en
h p://b owse inge p in ing.educa ionhos .cloud/
6.1. Bien enida
Lo p ime o que nos encon amos al accede a la URL es una pan alla de bien enida como
la que apa ece en la igu a 6.1. Aquí damos una b e e explicación de qué es la huella digi al
de un na egado web, in oducimos en qué consis e nues o p oyec o e in o mamos al usua io
del a amien o que amos a hace con sus da os. Pa a con inua , pincha emos en el bo ón Ve
huella digi al de u na egado .
6.2. Índice
T as pincha en el bo ón de la sección an e io , la página nos ca ga un índice con dis in as
secciones. También apa ece a iba a la izquie da el bo ón de G á icos, que de alla emos en el
siguien e apa ado.
Resul ado
La p ime a de las secciones es la de Resul ado, igu a 6.2, que nos indica cuán as huellas
digi ales iguales a la del usua io se han encon ado en nues a base de da os. Es o es, nos da el
po cen aje de unicidad o al del usua io. A pa i de aquí se mues an a ias secciones con ablas.
En cada abla apa ece:
Cada elemen o de esa sección.
El po cen aje de simila idad que exis e en e el alo del elemen o y los que enemos
gua dados en la base de da os.
41
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Figu a 6.1: Pan alla de bien enida.
Figu a 6.2: Po cen aje de unicidad o al.
42
Huella digi al de na egado es UCM
Figu a 6.3: Cabece a HTTP.
El alo que oma el elemen o en nues o disposi i o.
Cabece a HTTP
En la igu a 6.3 se nos mues a una abla con los dis in os campos que con iene la cabe-
ce a de pe ición HTTP del clien e. Si si uamos el cu so encima del bo ón in o que apa ece en
cada elemen o, podemos lee una pequeña explicación sob e su signi icado.
Ja aSc ip
Aquí mos amos in o mación sob e los elemen os a los que accedemos desde WebAPI
a a és de Ja aSc ip , que se puede obse a en la igu a 6.4. En el a ibu o de can as pin amos
sob e el lienzo del na egado y le mos amos el dibujo al usua io, como se puede e en la igu a
6.5.
Fo ma os de ídeo
Cada na egado es capaz de ep oduci unos o ma os de ídeo especí icos. En la igu a
6.6 se pueden e los alo es que se ob ienen. El alo p obably indica que es muy p obable
que dicho o ma o es é sopo ado, en cambio el alo maybe nos da una espues a más incie a.
Se ealiza es a dis inción po que aunque a eces el o ma o es á sopo ado, algunos códecs en
conc e o puede que no lo es én. Si el o ma o no es á sopo ado po el na egado , se mues a el
esul ado No sopo ado.
Fo ma os de audio
De o ma análoga a los o ma os de ídeo, en la igu a 6.7 mos amos una abla con los
o ma os de audio a los que el na egado es capaz de da sopo e.
43
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Figu a 6.4: Elemen os accedidos desde WebAPI a a és de Ja asc ip .
Figu a 6.5: Ob ención de la huella digi al a a és del lienzo.
Figu a 6.6: Fo ma os de ídeo sopo ados.
44
Huella digi al de na egado es UCM
Figu a 6.7: Fo ma os de audio sopo ados.
Figu a 6.8: In o mación sob e plugins del na egado .
Plugins
En es e apa ado se ecopilan los nomb es de las dis in as ex ensiones que hay ins aladas
en el na egado del clien e. En la abla de Plugins, co espodien e a la igu a 6.8, mos amos
ambién in o mación ace ca de los complemen os Flash y AdBlock en caso de que es én ins a-
lados.
Fuen es
En la igu a 6.9 se indican cuáles son las uen es que es án ins aladas en el sis ema.
También nos indica el núme o o al de uen es que han sido de ec adas.
Ya hemos obse ado las dis in as secciones de nues a abla con los alo es co espon-
dien es. Vol e emos a la pa e supe io de la página y seleciona emos el bo ón G á icos pa a
cambia de en ana ( igu a 6.10).
6.3. G á icos
Una ez hemos seleccionado el bo ón G á icos, apa ece en pan alla un g á ico ci cula
en es dimensiones. Es e g á ico ep esen a es adís icas pa a algunos de los pa áme os que he-
45
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Figu a 6.9: Fuen es del na egado .
Figu a 6.10: I a la en ana G á icos.
mos almacenado en nues a base de da os. Po de ec o, se mues an los po cen ajes del a ibu o
na egado . En la igu a 6.11 se puede obse a la dis ibución de alo es de las conexiones
que ha ecibido la aplicación. Obse amos que a la de echa del g á ico apa ece una leyenda de
colo es que indica cuál es el alo de cada colo en el g á ico.
Podemos accede al menú desplegable que se encuen a a iba a la izquie da. Pinchando
sob e el a ibu o seleccionado, se despliegan las dis in as opciones, como se puede e en la
igu a 6.12. Podemos elegi e las es adís icas en o ma de diag ama de a as pa a cada pa á-
me o que se mues a en el menú. En nues o caso, decidimos e las es adís icas de pixelRa io,
así que selecciona emos la opción que se mues a en la igu a 6.13.
Las opciones que nos quedan aho a son escoge o o a ibu o del menú pa a segui ien-
do más diag amas o ol e a la pan alla de bien enida pinchando en el bo ón B owse Finge -
p in de la igu a 6.14 en la pa e supe io izquie da de la página.
46
Huella digi al de na egado es UCM
Figu a 6.11: G á ico del a ibu o na egado .
Figu a 6.12: Menú desplegable del apa ado de G á icos.
47
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Figu a 6.13: G á ico del a ibu o pixelRa io.
Figu a 6.14: Vol e a la pan alla de bien enida.
48
Capí ulo 7
Con ibución indi idual
A lo la go del desa ollo del abajo la ca ga de a eas ha sido equi a i a, abajando
de o ma pa alela cada uno de los in eg an es en dis in as a eas. A con inuación se de alla la
apo ación indi idual de cada uno de los au o es de es e abajo.
7.1. Ad ián Agudo Ga cía-He as
In es igación
En es e p ime apa ado lo p ime o que hice ue busca in o mación sob e qué es el
inge p in y qué u ilidad iene, ya que al se la base del abajo e a un concep o que enía que
ene bas an e cla o. Du an e es a in es igación ap endí que pa a consegui el inge p in es
necesa io a e igua a ios alo es e e en es al so wa e y al ha dwa e que u iliza el usua io.
Fue en es a pa e en la que obse amos aplicaciones en las que pod íamos basa nos como po
ejemplo AmIUnique [2], que ha sido el g an espejo en el que nos hemos mi ado.
Los p ime os alo es sob e los que se cen ó la in es igación ue sob e los e e en es
a la cabece a HTTP. Una ez encon ados qué campos de la cabece a podía ob ene había que
e cuáles e an compa idos po a ios na egado es y cuáles e an más especí icos con el in de
u iliza los que ue an a apo a nos una mayo u ilidad. T as es o, comencé la in es igación so-
b e qué elemen os pod íamos ob ene sob e Ja aSc ip . En es e apa ado cen é la in es igación
en busca qué obje os nos o ece es e lenguaje de los cuales podamos ob ene da os que nos
ue an ú iles pa a la ob ención de la huella digi al. T as obse a qué obje os podemos u iliza
y habe los compa ado con los da os de las aplicaciones en las que nos hemos ijado, comencé
la in es igación pa a a e igua esos da os que nos pa ecían ele an es pe o que no habíamos
encon ado como, po ejemplo, elemen os como el Na egado o la e sión. Fue ahí donde des-
cub í unciones que es aban ya ealizadas y que podían apo a nos esos da os ex a pa a a ina
más aún la huella que que íamos ob ene del usua io.
49
G ado en Ingenie ía In o má ica Facul ad de In o má ica
la apa iencia. En es a pa e me enca gué del CSS del p oyec o. El obje i o, a pa e de da le
un mejo aspec o, es que el usua io pueda iden i ica con más cla idad los elemen os de la
aplicación. En es a pa e Rubén con ibuyó de o ma no able pa a in oduci cie os cambios y
añadi el es ilo a la sección de g á icas.
P uebas
Respec o a la cua a e apa, al habe me ocupado del aspec o de la aplicación, mi labo ue
e i ica que los elemen os de la página se man enían es ables p obando, po ejemplo, dis in os
na egado es o dis in as esoluciones de pan alla. También e a necesa io comp oba que, según
lo que de ol ie an los dis in os campos de las ablas, es os no se salían del ango que en eo ía
es aba de e minado y así no descuad aba odo el con enido. Es o úl imo esul ó se un p oblema
pe o ue a eglado en ac ualizaciones pos e io es.
Memo ia
En cuan o a la úl ima e apa, me he ocupado en conc e o del esumen, el capí ulo 1 y
pa e del capí ulo 8. A su ez, he ealizado las aducciones de las pa es que así lo eque ían,
como en el esumen, el capí ulo 2 y el capí ulo 9. Es a a ea de aducción se ealizó en g an
medida con ayuda de Jesús.
Pa a inaliza , a pa e de la esc i u a de los capí ulos ci ados an e io men e, he epasa-
do las dis in as secciones que han edac ado los demás in eg an es pa a asegu a que an o el
con enido como el o ma o e an los co ec os.
56
Capí ulo 8
Conclusiones
El p incipal obje i o de es e p oyec o ha consis ido en c ea una aplicación web que
pe mi a ecopila los da os de un disposi i o y elabo a un pe il de su huella digi al. T as la
implemen ación de la aplicación, podemos señala que se han cumplido con los obje i os y las
expec a i as que habíamos plan eado en un p incipio. Sin emba go, cie as a eas secunda ias se
han is o al e adas debido a dis in os ac o es como la ecnología y el iempo que disponíamos
pa a cumpli las, y se p oponen como a eas u u as.
La écnica de b owse inge p in ing ecopila in o mación del usua io que po lo gene-
al pe manece in a iable, po lo que podemos a i ma que es un mé odo muy e ec i o. No es
necesa io halla un a ibu o único sino que es su icien e encon a una combinación de a ibu os
que esul e única pa a pode iden i ica a un usua io. Las cookies son un mé odo más e icaz pe o
si se eliminan, se pie de la azabilidad sob e el usua io.
Es p ác icamen e ine i able pe de cie as uncionalidades al e adi écnicas de pe ila-
do, aunque es posible mi iga su impac o ya sea con la con igu ación de de e minados pa áme-
os o el enmasca amien o de la in o mación con ex ensiones del na egado .
La ecopilación de da os que puedan iden i ica al usua io se conside an da os de ca-
ác e pe sonal y es á p o egidos po la legislación Reglamen o Gene al de P o ección de Da os
(RGPD). Aun así, nues o p oyec o ayuda a que los usua ios omen conciencia y que comp en-
dan que sus da os pueden se ecopilados de o ma silenciosa, lo cual supone un iesgo pa a la
p i acidad.
Po o a pa e, en el ámbi o pe sonal hemos adqui ido y asimilado conocimien os en Ja-
aSc ip , sob e odo el manejo de conexiones asínc onas con AJAX. Además, hemos ap endido
a accede a las dis in as WebAPIs que nos b indan los na egado es. También, hemos mejo ado
nues a o ganización del abajo a a és de Gi , que nos ha pe mi ido un con ol de e siones
óp imo.
8.1. T abajo u u o
Du an e el abajo hemos dejado uncionalidades o mejo as que se pod ían ealiza en
el u u o pa a mejo a el desempeño de la aplicación.
57
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Asinc onía
En nues a aplicación hemos u ilizado el obje o «XMLHTTPReques » de Ja aSc ip
pa a la conexión asínc ona con el se ido . Se a a de un obje o que empieza a es a obsole o y
que ha sido eemplazado po «Fe ch», que pe mi e accede y manipula pa es del canal HTTP
de mane a mas sencilla y cómoda.
Además se puede busca una mejo solución al p oblema de la asinc onía mencionado
an e io men e.
In e az g á ica
La in e az g á ica de nues o p oyec o es un pun o en el que se pod ían ealiza a ias
mejo as. La página inicial, se puede ado na median e el uso de F amewo ks de Ja aSc ip como
Reac , Vue.js y de i ados, dándole así un oque más mode no.
Respec o a la is a de las es adís icas, se puede ealiza una modi icación de la g á icas,
de o ma que al dibuja se es as se esal e la po ción a la que pe enece el na egado del usua io
que la es á iendo.
También se puede añadi una mejo a que pe mi a al usua io e una nue a g á ica al
selecciona un campo de o a, en la que se de alle in o mación de la an e io . Po ejemplo, en la
g á ica de sis ema ope a i o, al pulsa sob e uno de los sis emas se mos a ía una nue a g á ica
en la que se pudiese e el po cen aje de cada una de las e siones de ese sis ema.
Analiza o os elemen os del na egado
Conside amos que nues a aplicación ob iene in o mación de su icien es elemen os me-
dian e Ja aSc ip , pe o du an e el desa ollo dejamos a ios po implemen a po al a de iem-
po. En e ellos se pod ían añadi los siguien es.
WebGL: Se a a de una API pa a Ja aSc ip que pe mi e ende iza g á icos en 3D. Se
puede u iliza de o ma simila a nues a implemen ación de «Can as».
Senso es: Median e Ja aSc ip se puede ob ene in o mación de senso es del disposi i o,
como el acele óme o o el gi oscopio.
Análisis de esul ados en in e alos de iempo
Es a mejo a consis e en pode obse a dis in os a ios de los a ibu os del na egado
pa a dis in os in e alos de iempo. De es a o ma se pod ían e los esul ados de las huellas
en los úl imos 15 días o en el úl imo mes. Es una mejo a que eníamos en men e desde el inicio
del p oyec o, incluso almacenamos la echa en la abla Conexiones de la base de da os, pe o po
al a de iempo no hemos podido lle a la a cabo.
58
Huella digi al de na egado es UCM
Sopo e pa a HTTP2
Ac ualmen e, nues o se ido web sólo pe mi e conexiones HTTP1/1. Da sopo e a la
e sión HTTP/2 implica ía mejo as en el endimien o, ya que HTTP2 se a a de un o ma o
bina io, a di e encia de HTTP1/1 que es ex o plano. O as uncionalidades que inco po a y que
c eemos que pueden mejo a nues o p oyec o es la mul iplexación de conexiones en an es y
la capacidad de en ia da os al clien e an es de que él los pida.
Ha sido una opción que es u imos in es igando y llegamos a la conclusión de que ade-
más necesi ábamos inclui ce i icados SSL/TLS. Es o es así ya que, aunque la especi icación
del p o ocolo HTTP/2 pe mi e p escindi del ci ado, a ias implemen aciones decla a on que
sólo sopo a án HTTP/2 cuando se u ilice a a és de una conexión ci ada, y ac ualmen e nin-
gún na egado sopo a HTTP/2 sin ci a [32].
De ec a écnicas de e asión de as eo
Exis en a ios a ibu os que gua damos duplicados, ya que los ecopilamos de uen es
di e en es. Habíamos pensado que se pueden ealiza comp obaciones pa a de ec a si el esul-
ado de ambas uen es es consis en e en e sí. En caso con a io, es a íamos an e una e idencia
de e asión del as eo de huella digi al y pod íamos iden i ica qué campos se es án a ando de
enmasca a .
59
Capí ulo 9
Conclusions
The main objec i e o his p ojec has been o c ea e a web applica ion ha will allows
he collec ion o da a om a de ice and he c ea ion o a p o ile o i s inge p in . A e he imple-
men a ion o he applica ion, we can say ha he objec i es and expec a ions we had o iginally
se ha e been ul illed. Howe e , ce ain seconda y asks ha e been al e ed due o di e en
ac o s such as echnology and he ime, and a e p oposed as u u e asks.
The echnique o b owse inge p in ing collec s in o ma ion om he use ha usually
emains unchanged, so we can say ha i is a e y e ec i e me hod. I is no necessa y o ind
a unique a ibu e bu i is enough o ind a combina ion o a ibu es ha is unique o iden i y a
use . Cookies a e a mo e e ec i e me hod bu i hey a e emo ed, he aceabili y on he use
is los .
I is p ac ically ine i able o lose ce ain unc ionali ies when e ading inge p in ing
echniques, al hough i is possible o mi iga e hei impac ei he by con igu ing ce ain pa a-
me e s o by masking in o ma ion wi h b owse ex ensions.
The collec ion o da a ha can iden i y he use is conside ed pe sonal da a and is p o-
ec ed by he Gene al Da a P o ec ion Regula ion (GDPR). E en so, ou p ojec helps use s o
become awa e and unde s and ha hei da a may be collec ed silen ly, which is a isk o p i acy.
On he o he hand, on a pe sonal le el we ha e acqui ed and assimila ed knowledge
in Ja aSc ip , especially he handling o asynch onous connec ions wi h AJAX. In addi ion,
we ha e lea ned how o access he di e en WebAPIs p o ided by b owse s. We ha e also
imp o ed ou wo k o ganiza ion h ough Gi , which has allowed us op imal e sion con ol.
9.1. Fu u e Wo k
While we we e wo king we le unc ionali ies o imp o emen s ha could be made in
he u u e o imp o e he pe o mance o he applica ion.
61
G ado en Ingenie ía In o má ica Facul ad de In o má ica
Asynch ony
We ha e used he Ja aSc ip objec «XMLHTTPReques » o he asynch onous con-
nec ion o he se e . This is an objec ha is becoming obsole e and has been eplaced by
«Fe ch», which allows you o access and manipula e pa s o he HTTP heade mo e easily and
con enien ly.
In addi ion, a be e solu ion can be ound o he p oblem o asynch ony men ioned
abo e.
G aphical in e ace
The g aphical in e ace o ou p ojec is a poin whe e se e al imp o emen s could be
made. The home page can be deco a ed by using Ja aSc ip F amewo ks such as Reac , Vue.js
and de i a i es, gi ing i a mo e mode n look.
Wi h espec o he iew o he s a is ics, a modi ica ion o he g aphs can be made, so
ha when hey a e d awn, he po ion o which he b owse o he use who is iewing hem
belongs is highligh ed.
You can also add an enhancemen ha allows he use o iew a new g aph by selec ing
a ield om ano he , which de ails in o ma ion om he p e ious one. Fo example, in he
ope a ing sys em g aph, i you click on one o hem, a new g aph will be shown whe e you
could see he pe cen age o each one o he e sions o ha sys em.
Analyze o he b owse elemen s
We belie e ha ou applica ion ge s enough in o ma ion om Ja aSc ip , bu du ing
de elopmen we le se e al o be implemen ed due o lack o ime. Among hem we could add
he ollowing.
WebGL: This is a Ja aSc ip API ha allows you o ende 3D g aphics. I can be used
in a simila way o ou implemen a ion o «Can as».
Senso es: Using Ja aSc ip , in o ma ion can be ob ained om de ice senso s, such as
he accele ome e o gy oscope.
Analysis o esul s in ime in e als
This imp o emen consis s in being able o obse e di e en a ios o he b owse a i-
bu es o di e en ime in e als. In his way you could see he esul s o he inge p in s in he
las 15 days o in he las mon h. I is an imp o emen ha we had in mind om he beginning
o he p ojec , we e en s o ed he da e in he able Conexiones in he da abase, bu due o lack
o ime we ha e no been able o ca y i ou .
62
Huella digi al de na egado es UCM
Suppo o HTTP2
Cu en ly, ou web se e only allows HTTP1/1 connec ions. Suppo ing he HTTP/2
e sion would mean pe o mance imp o emen s, since HTTP2 is a bina y o ma , unlike HTTP1/1
which is plain ex . O he ea u es ha we ha e buil in and ha we belie e can imp o e ou
p ojec a e he mul iplexing o incoming connec ions and he abili y o send da a o he clien
be o e he eques s i .
This was an op ion ha we in es iga ed and concluded ha we also needed o include
SSL/TLS ce i ica es. This is because, al hough he HTTP/2 p o ocol speci ica ion allows you o
dispense wi h enc yp ion, se e al implemen a ions ha e s a ed ha hey will only suppo HTT-
P/2 when used o e an enc yp ed connec ion, and cu en ly no b owse suppo s unenc yp ed
HTTP/2 [32].
De ec acking a oidance echniques
The e a e se e al a ibu es ha we keep duplica es o , as we collec hem om di e en
sou ces. We had hough ha checks could be made o de ec whe he he esul om bo h
sou ces is consis en wi h each o he . I no , we would be looking a e idence o e asion o
inge p in acking and could iden i y which ields a e being masked.
63
Índice de igu as
1.1. Diag amadeGan ................................ 2
2.1. Gan cha .................................... 6
5.1. Diag ama de lujo de la aplicación . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2. Diag ama en idad- elación de la base de da os . . . . . . . . . . . . . . . . . . 34
6.1. Pan alla de bien enida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.2. Po cen aje de unicidad o al. . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.3. Cabece aHTTP................................... 43
6.4. Elemen os accedidos desde WebAPI a a és de Ja asc ip . . . . . . . . . . . . 44
6.5. Ob ención de la huella digi al a a és del lienzo. . . . . . . . . . . . . . . . . 44
6.6. Fo ma os de ídeo sopo ados. . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.7. Fo ma os de audio sopo ados. . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.8. In o mación sob e plugins delna egado . .................... 45
6.9. Fuen es del na egado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.10. I a la en ana G á icos............................... 46
6.11. G á ico del a ibu o na egado . ......................... 47
6.12. Menú desplegable del apa ado de G á icos.................... 47
6.13. G á ico del a ibu o pixelRa io. ......................... 48
6.14. Vol e a la pan alla de bien enida. . . . . . . . . . . . . . . . . . . . . . . . . 48
65
PASCAL
ENERO 2018
Ul . ac ualización 26 de junio de 2020
L
A
T
EX lic. LPPL & powe ed by T
EF
L
O
NCC-ZERO
Es a ob a es á bajo una licencia C ea i e Commons “CC0 1.0
Uni e sal”.