T abajo de Fin de G ado
Iden idades Pa ciales
Pa ial Iden i ies
Alumno: Pablo Ma ín Hue as
Tu o : Juan Ca los Fabe o Jiménez
Doble G ado en Ingenie ía In o má ica y Ma emá icas
26 de junio de 2020
P ólogo
“La pieza undamen al de cualquie sociedad es el indi iduo.”
El concep o de sociedad es in ínseco a la na u aleza del se humano. Debido a que odos o mamos
pa e de algún g upo social, es esencial da espues a a las p egun as de quiénes somos y qué nos di e encia
de los demás. Es as cues iones die on luga a la génesis del concep o de Iden idad. Las pe sonas somos
el conjun o de ca ac e ís icas que nos iden i ican: nues a edad, sexo, es a u a, compo amien o, luga de
esidencia, p ogeni o es, a iliación a g upos sociales... Todos es os asgos ep esen an la esencia de nues o
se y son los que dic an cuál es nues o luga en la sociedad a la que pe enecemos.
La posesión de odo aquello que o ma nues a p opia iden idad es i al, desde el uso de un pasapo e
o documen o nacional de iden idad a la ho a de iaja has a el uso de un ca né de conduci pa a pode
ci cula en un ehículo, las pe sonas es amos cons an emen e empleando los c edenciales que enemos.
Hoy en día más que nunca enemos la necesidad de adminis a nues os c edenciales pa a ealiza odo
ipo de ámi es den o de la sociedad en la que i imos. He aquí el obje i o de es e abajo, pe mi i de
mane a selec i a y iable la iden i icación de c edenciales a a és de in e ne .
El esul ado buscado es hace al indi iduo el único sobe ano de su p opia iden idad y pe mi i le la
a ea de iden i icación. Exis en una in inidad de aplicaciones a aíz de la iden i icación de c edenciales en
línea, como ejemplo, bas a imagina la posibilidad de ealiza odo ipo de ámi es ges ionados po la
adminis ación pública de un país desde la comodidad de una casa.
Pa a log a es e obje i o, en es e abajo p oponemos la emodelación del concep o de ed de con ianza.
Dichas edes de con ianza son un sis ema ideado po Phil Zimme mann en 1992. Su inalidad e a esol e
el p oblema de la asociación cla e-usua io que plan eaba la c ip og a ía de la época. La idea que amos a
plan ea es la ac ualización de es as edes median e el uso de la no edosa ecnología blockchain pa a así
pode esol e g an pa e de los p oblemas que su gían en el sis ema adicional.
Palab as cla e
Iden idad, e i icación de c edenciales, c ip og a ía, in aes uc u a de cla e pública, ed de con ianza,
au o idad de ce i icación, blockchain, ce i icado X.509, DID, ansacción digi al.
Abs ac
“The co ne s one o any socie y is he indi idual.”
The concep o socie y is in insic o he na u e o he human being. Because we a e all pa o some
social g oup, i is essen ial o answe he ques ions o who we a e and wha se s us apa om o he s.
These ques ions ga e ise o he genesis o he concep o Iden i y.People a e he se o cha ac e is ics
ha iden i y hem: hei age, sex, heigh , beha io , place o esidence, pa en s, a ilia ion o social g oups
... All hese ai s ep esen he essence o ou being and a e wha dic a e wha is ou place in he socie y
o which we belong.
The possession o e e y hing ha o ms ou own iden i y is i al, om he use o a passpo o
na ional iden i y documen when a eling o he use o a d i ing license o ci cula e in a ehicle, people
a e cons an ly using he c eden ials ha hey own. Today mo e han e e we ha e he need o manage ou
c eden ials o ca y ou all kinds o p ocedu es wi hin he socie y in which we li e. He e is he objec i e
o his wo k, o selec i ely allow he iden i ica ion o c eden ials h ough he in e ne .
The desi ed esul is o make he indi idual he sole so e eign o hei own iden i y and allow hem
he ask o iden i ica ion. The e a e an in ini y o applica ions ha make use o he iden i ica ion o
c eden ials online, as an example, jus imagine he possibili y o ca ying ou all kinds o p ocedu es
managed by he public adminis a ion o a coun y om he com o o a home.
To achie e his goal, in his wo k we p opose he emodeling o he concep o Web O T us . Such
Webs O T us a e sys ems de ised by Phil Zimme mann in 1992. Thei pu pose was o sol e he key-use
associa ion p oblem posed by he c yp og aphy o he ime. The idea ha we a e going o p opose is
upda ing hese webs by using he new echnology blockchain in o de o be able o sol e many o he
p oblems ha a ose in he adi ional sys em.
Keywo ds
Iden i y, c eden ial e i ica ion, c yp og aphy, public key in as uc u e, web o us , ce i ica e au -
ho i y, blockchain, X.509 ce i ica e, DID, digi al ansac ion.
Con enidos
1. In oducción 9
1.1. Mo i acióndel abajo...................................... 9
1.2. Es adodela e.......................................... 12
1.2.1. Webo T us -PGP2.0................................. 12
1.2.2. Reboo ingWebo T us ................................. 13
1.3. Análisisdelacompe encia.................................... 15
1.3.1. Compe enciadi ec a................................... 15
1.3.1.1. IBM Blockchain T us ed Iden i y Ne wo ks . . . . . . . . . . . . . . . . . 15
1.3.1.2. E e nym .................................... 17
1.3.1.3. Ve esOne.................................... 18
1.3.2. Compe enciapa cial................................... 18
1.3.2.1. IXO-Mic oso ................................ 18
1.3.2.2. DIF - Decen alized Iden i y Founda ion . . . . . . . . . . . . . . . . . . 19
1.3.2.3. ConsenSys ................................... 20
1.3.3. Conclusiones ....................................... 22
2. Desa ollo 23
2.1. Plande abajo.......................................... 23
2.2. Casosdeuso ........................................... 24
2.3. He amien asauxilia es ..................................... 27
2.3.1. DID - Decen alized Iden i ie .............................. 27
2.3.2. Hype ledge Fab ic.................................... 29
2.4. Especi icación........................................... 31
2.5. Obje i os del abajo e implemen ación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.5.1. He amien as auxilia es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.5.2. Gene acióndelen o no ................................. 37
2.5.3. Implemen ación del chaincode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.4. Implemen ación de los sc ip s de ansacciones . . . . . . . . . . . . . . . . . . . . 42
2.5.5. P uebadeejecución ................................... 43
3. Conclusiones 49
3.1. Resumen del abajo y conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8 Con enidos
3.2. Ampliación u u a ........................................ 53
3.3. Opiniónpe sonal......................................... 55
4. Apéndices 57
4.1. In aes uc u a de Cla e Pública - PKI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Bibliog a ía 59
Índice al abé ico 61
Capí ulo 1
In oducción
1.1. Mo i ación del abajo
Ac ualmen e, la segu idad en el paso de in o mación po medios elec ónicos es esencial pa a nues a
sociedad. Desde las ansacciones de un banco has a la base de da os de un cen o médico, la p o ección
y au en icidad de la in o mación supone una necesidad i al pa a su co ec o uncionamien o. O igi-
nalmen e, in e ne no ue diseñado pa a se una he amien a de comunicación segu a po lo que a lo
la go de la his o ia se han enido que ingenia di e sas écnicas que ga an icen dicha segu idad en las
comunicaciones. Podemos ex ae las siguien es cua o ca ac e ís icas undamen ales:
Au en icación: pode e i ica que el usua io que es á en iando el mensaje ealmen e es quien
dice se .
Con idencialidad: asegu a que la in o mación en iada an solo puede se leída po el emi en e
y el des ina a io.
In eg idad: imposibili a la al e ación de la in o mación en iada po un usua io ajeno a la comu-
nicación.
No epudio: no pe mi i que el emi en e pueda nega habe mandado la in o mación.
Es e p oblema se e mina po esol e median e los algo i mos de cla e pública y cla e p i ada1
desa ollados en e los años 1970-1980. Dichos algo i mos son capaces de asegu a nos las ca ac e ís icas
de con idencialidad, in eg idad y no epudio; sin emba go, es o plan ea un se io e o.
¿Cómo podemos asegu a que una cla e pública ealmen e pe enece a un indi i-
duo en conc e o?
Tengamos en cuen a que una ez que seamos capaces de asegu a dicha a i mación ya pod emos
comunica nos con ese indi iduo con ga an ía de que se cumplen las cua o ca ac e ís icas que buscábamos.
El p oblema se esol e ía de o ma i ial si conociésemos al indi iduo en pe sona, pues bas a ía
in e cambia las cla es públicas en mano y así no queda ía ninguna duda de que dicha cla e le pe enece.
Aho a el p oblema es cla o: ¿qué ocu e si no podemos hace dicho in e cambio ísicamen e? ¿Cómo
pod íamos asegu a quién es el p opie a io de dicha cla e?
Pa a abo da es e p oblema la comunidad cien í ica y las g andes emp esas ecnológicas de la época
desa olla on el sis ema PKI2. Básicamen e se aba de un es ánda an o ha dwa e como so wa e que
1P incipalmen e con la in ención del algo i mo RSA (Ri es –Shami –Adleman) cuyo pode de enc ip ación se basa en
el concep o de One-way apdoo unc ion, es deci , una unción al que su imagen di ec a se calcula con complejidad
polinomial pe o la imagen in e sa equie e de un algo i mo con complejidad no polinomial.
2Las siglas PKI co esponden a “Public Key In aes uc u e”, concep o que se explica con más p o undidad en la sec-
ción 4.1
16 1. In oducción
Además, la descen alización apo ada po la base en blockchain nos apo a dos ca ac e ís icas esen-
ciales: un egis o inmu able con odas in e acciones que un indi iduo ha ealizado con su cla e pública
y un in e cambio segu o de cla es que el adicional sis ema de PKI no nos pe mi ía.
Una ca ac e ís ica esencial del uso de blockchain es que la cadena no almacena los c edenciales de
los indi iduos. La cadena del blockchain iene como obje i o el in e cambio de cla es públicas, pe o los
c edenciales se han de in e cambia con o o p o ocolo adicional.
El uncionamien o del sis ema de iden idades pa ciales de IBM es á basado en que cada indi iduo es
el único p opie a io de odas las ca ac e ís icas que le iden i ican, pa a ello se de inen los siguien es es
componen es.
Decen alized Iden i ie (DID)8: se a a de un ipo de URL que pe enece ín eg amen e al
indi iduo u o ganización. Su obje i o es elaciona dicho URL con una iden idad pa a pode asegu a
la con ianza en la in e acción.
C edenciales e i icables: son los c edenciales que median e algún es ánda deben pode se
e i icados.
Adminis ación descen alizada de lla es: cada indi iduo es poseedo de su cla e pública y su
cla e p i ada, con ellas se ealiza la e i icación de las in e acciones a a és de DID.
La in e acción en el blockchain se puede esumi en:
Figu a 1.5: Ejemplo de los pasos que se lle a ían a cabo pa a la e i icación de c edenciales en el sis ema.
8Los DID se án undamen ales pa a es e abajo po lo que se ha á pos e io men e un es udio de los mismos en la sección
2.3.1
1.3. Análisis de la compe encia 17
Pa a lle a a cabo es e p oyec o, IBM colabo a con las siguien es cinco
o ganizaciones.
DIF: desa ollado a del un mo o de esolución de DID.
W3C: apo a la especi icación que dichos DID deben segui .
So in: miemb o colabo ado de la o ganización DIF.
Hype ledge : p oyec o open sou ce que p opo ciona una base de block-
chain
Oasis: p opone el es ánda de comunicación de los sis emas de enc ip a-
ción.
1.3.1.2. E e nym
La compañía E e nym se p omociona median e el eslogan “The u u e is
buil on us .”. Su p incipal ac i idad es p opo ciona a clien es con soluciones
que pe mi an la e i icación de c edenciales digi ales. Una de sus ca ac e ís icas
más in e esan es es que, al igual que muchos de los o os p oyec os que hemos es udiado, E e nym ambién
se basa en código open Sou ce y en es ánda es abie os (los que indica W3C).
E e nym da mucha impo ancia al concep o Sel So e-
eign Iden i y, se a a de algo que ya hemos explicado an-
e io men e: el indi iduo iene ca ac e izado po sus c eden-
ciales y el obje i o es que sea el indi iduo el único p opie a io
de los mismos. De aquí la necesidad nue amen e del uso de
DID en algún ipo de sis ema descen alizado (sob e odo i-
po blockchain), pa a asegu a que el indi iduo es poseedo de
su iden idad.
El esquema de uncionamien o de los p o o ipos E e nym
ienen especi icados en es e apas:
Ob ención y e i icación de c edenciales median e la
he amien a Ve i y.
Inclusión de dichos c edenciales en la walle del usua io
pa a que pueda usa los median e la he amien a Con-
nec .Me.
Pe mi i que esa walle pueda se empleada po mul i-
ud de aplicaciones de e ce os median e Mobile SDK
que p opo ciona E e nym.
Una di e encia con el p o o ipo de IBM es que en caso de E e nym se usa o o ipo de Open Sou ce
pa a la base del sis ema descen alizado: Hype ledge INDY. Dicho p oyec o es á siendo desa ollado
po la Linux Founda ion.
Además cabe indica que E e nym colabo a con o o de los miemb os que pa icipan en el p oyec o
de IBM, So in Iden i y Fo All.
18 1. In oducción
1.3.1.3. Ve es One
Ve es One se de ine a sí misma como “Una solución usando blockchain a medida pa a op imiza las
iden idades en la web”. De nue o es amos an e un p oyec o de compe encia di ec a pues el obje i o de
Ve es One es una solución al p oblema de iden idades pa ciales, en su caso las p opiedades que hacen
des aca a Ve es One del es o de compañías son:
P ecios bajos: el blockchain de Ve es One a di e encia de o os ipo E he eum que son de p o-
pósi o gene al, es á cen ado únicamen e en el p oblema de iden idades pa ciales, po lo que se ha
op imizado la e iciencia en esa a ea.
No especula i o: en o os blockchain exis e el concep o de sca ce ne wo k oken que iene el
e ec o de hace a ia de mane a di ícilmen e con olable los p ecios del sis ema, en Ve es One es e
concep o no exis e y se asegu a que las comisiones sean bajas y es ables.
Dis ibuida: como o as edes descen alizadas, el hecho de que no exis a una o ganización cen al
que con ole el sis ema iene una se ie de en ajas que ya hemos indicado en a ias ocasiones con
an e io idad.
Pe mi e audi o ías: es o es una consecuencia di ec a de que la in o mación de la cadena es pública
po odos los usua ios de la ed.
P i acidad: Ve es One en consonancia con la ley de p o ección de da os eu opea GDPR, almacena
únicamen e en la cadena los da os es ic amen e necesa ios pa a lle a a cabo la ac i idad de la
aplicación.
Indicamos un aspec o que Ve es One acla a en su página web: aunque en muchos de los apa ados de
es e abajo nos e e imos a los c edenciales de los “indi iduos” en ealidad ambién puede a a se de
o ganizaciones o colec i os.
El uncionamien o de la aplicación de Ve es One iene sos enida po dos ipos de pa icipan es:
Acele ado es: pPueden se gobie nos, o ganizaciones que p opo cionan c edenciales o egis ado-
es. Su obje i o es colabo a en agiliza los p ocesos de c eación y alidación de los c edenciales de
los indi iduos. Deben es a de acue do con el “Accele a o Ag eemen ” desa ollado po la compañía.
Nodos: son esencialmen e los e i icado es que man ienen la cadena consis en e median e las p ue-
bas de abajo. Como en o os sis emas blockchain exis e un con enio de ecompensa a los nodos
po la gene ación de los hash co ec os.
Un aspec o que hace a Ve es One especialmen e in e esan e de en e las demás compañías de la
compe encia es la se iedad con la que a an el ema de la p i acidad. Un ejemplo cla o de una medida
que oma on al espec o a a sob e el almacenamien o de los c edenciales: el usua io iene la elección de
si decide gua da sus c edenciales únicamen e en su disposi i o, únicamen e en la nube o en ambos.
1.3.2. Compe encia pa cial
1.3.2.1. IXO - Mic oso
Se a a de un p oyec o desa ollado po la undación IXO. En es e caso el obje i o p incipal no son
las iden idades pa ciales ( e i icación de c edenciales en línea), sino que el p opósi o de IXO es el de
1.3. Análisis de la compe encia 19
p opo ciona un sis ema descen alizado blockchain que ecoja una g an can idad de da os de calidad y
que los analice median e algo i mos de in eligencia a i icial.
La pa e poli acé ica de es e p oyec o iene en el momen o en el que hemos indicado “una g an can idad
de da os”, ya que dichos da os pueden se de cualquie índole. La pla a o ma IXO nos p opo ciona una
base a pa i de la cual cualquie usua io es capaz de c ea un p oyec o que se adjun a al sis ema
pa a ecauda un ipo de da os especí icos, po ejemplo puede habe p oyec os de: ecaudación de da os
me eo ológicos de una zona, da os sob e el censo de una población...
La azón po la que es a pla a o ma puede esul a de in e és pa a nues o abajo es que implemen a
una me odología que pe mi e decidi qué miemb os pa icipan en un p oyec o conc e o desplegado en es a
pla a o ma. De es a mane a, se pod ía ealiza un p oyec o que se ajus e pa cialmen e a lo que es amos
buscando: ecauda c edenciales que pe sonas que pa a pa icipa en es e subsis ema en conc e a ienen
que ecibi pe miso pa a ing esa (po ejemplo una CA que les e i ique)
1.3.2.2. DIF - Decen alized Iden i y Founda ion
La undación DIF iene como obje i o p incipal el desa ollo de los es ánda es que se han de im-
plemen a pa a la e i icación de iden idades de sis emas descen alizados. Es o iene en g an medida
elacionado con la sección de DID (Decen alized Iden i ie s) que se es udia a con inuación en el apa ado
de desa ollo de es e abajo.
La idea es que his ó icamen e pa a iden i ica c edenciales es impe a i o segui algún con enio que
po ejemplo un gobie no ha dic ado, como el o ma o de un pasapo e. Aho a en el caso de una ed
descen alizada, necesi amos un o ma o común a pa i del cual implemen a nues o “equi alen e al
pasapo e”.
El abajo de DIF se compone de:
Especi icaciones écnicas: se a a de un con enio que deben segui los sis emas descen alizados
que implemen en au en icación de iden idades.
Implemen aciones ejempla es: lLa undación ambién desa olla p o o ipos de cómo se han de
implemen a es as especi icaciones pa a ayuda a la comunidad de p og amado es.
Coo dinación de la indus ia: DIF abaja en ayuda a la coo dinación de las o ganizaciones
que coope an en el desa ollo de p oyec os sob e la au en icación de iden idades en sis emas des-
cen alizados. Po ejemplo, ayudan al p oyec o que ya hemos es udiado de IBM Blockchain T us ed
Iden i y Ne wo ks.
En nues o caso nos in e esa des aca el p o o ipo de e e encia: DIF Uni e sal Resol e 9. Se a a
de un p og ama que, dado un URL del ipo DID, hace una búsqueda en una de las edes descen alizadas
exis en es. Po ejemplo, pod íamos busca a qué DID-Documen apun a una di ección DID en la cadena
del Bi coin con la llamada “did:b c :xz35-jznz-q6m -7q6”, donde b c es el p o ocolo especí ico de
busqueda en el blockchain de Bi coin.
9La he amien a i DIF Uni e sal Resol e iene una demo accesible online a pa i del link: h ps://uni esol e .io/. En
ella se pueden ejecu a casos de p ueba de búsqueda de DID-documen s en di e en es edes descen alizadas.
20 1. In oducción
Pa a nues o p oyec o amos a implemen a una unción pa ecida pues amos a ene una cadena en
nues o blockchain que con enga los DID-Documen s asociados a los DID de los indi iduos que o man
pa e de nues a ed. Po ello debe emos p og ama una unción de búsqueda en nues a cadena análoga
a las implemen adas po el DIF Uni e sal Resol e .
1.3.2.3. ConsenSys
La compañía ConsenSys iene su negocio basado en consul o ía de soluciones ecnológicas basadas en
blockchain. Su abajo se di ide en los siguien es cua o sec o es:
En e p ise: se a a de la solución de p oblemas elacionados con blockchain que un clien e p esen e,
pa a ello ConsenSys se especializa en soluciones median e la pla a o ma E he eum10.
S a ups: la inno ación es un aspec o esencial pa a una ecnología an nue a como las edes descen-
alizadas, po ello ConsenSys in ie e en nume osas s a ups que desa ollan soluciones blockchain.
De elopmen : además de lle a a cabo soluciones en E he eum, la emp esa desa olla y publica
he amien as pa a dicha pla a o ma.
Educa ion: inalmen e, la compañía o ece cu sos an o online como p esenciales pa a enseña a
abaja en E he eum.
En cuan o a la a iedad de soluciones o ecidas es muy amplia: inanzas, ene gía y sos enibilidad,
sec o público, come cio in e nacional... Pa a nues o abajo nos amos a en oca en la solución que
a a las iden idades pa ciales, Digi al Iden i y[3].
Desde las p opias publicaciones de la compañía nos indican los es aspec os undamen ales que a a
en la sección de iden idades pa ciales:11
Pa a compañías: “...Las compañías ienen que ecopila los da os de sus usua ios pa a pode hace
su abajo. Es o c ea un iesgo en e a las egulaciones de p i acidad como pueden se el GDPR...”
Pa a In e ne o Things: “...Los disposi i os de IoT deben iden i ica senso es, moni o es y o os
disposi i os pa a o ganiza el acceso a da os sensibles de una mane a segu a...”
Pa a usua ios: “...La iden idad es cen al pa a el uncionamien o de una sociedad. Cada pe sona
es á compues a de una colección de c edenciales que le iden i ican. El obje i o es p opo ciona a los
usua ios una o ma de eclama la p opiedad de su p opia iden idad pa a lle a a cabo ope aciones
online...”
Vemos que en las p opias palab as de ConsenSys, los p oblemas que plan ea la Digi al Iden i y son
ealmen e in e esan es debido a las necesidades que los usua ios ienen en la ac ualidad. La pa e más en
línea con nues o abajo es la des inada a las usua ios: se a a de pe mi i la e i icación de c edenciales
online. La en aja de una solución con ecnologías descen alizadas eside en pe mi i a los usua ios se los
únicos p opie a ios de su p opia iden idad y de educi la can idad de in o mación pe sonal iden i icable
(nomb e, di ección, da os biomé icos...) que un usua io iene que man ene en la ed.
10E he eum es una pla a o ma de blockchain que se ca ac e iza po p opo ciona una base a odo ipo de sis emas
descen alizados, la cla e eside en que en E he eum lo que se ansmi e son con a os digi ales (que ejecu an chaincode),
los cuales los especi ica el p opio desa ollado , dando así libe ad pa a ealiza odo ipo de ope aciones.
11Todas las ci as se han ob enido desde la e e encia [3] de la bibliog a ía.
1.3. Análisis de la compe encia 21
Tal y como ya hemos is os en o os casos, de nue o ConsenSys p opone el uso del es ánda de
DID pa a sus soluciones elacionadas con iden idades pa ciales. Dichos DID eco damos que son como el
“pasapo e” común pa a que los usua ios de una ed descen alizada puedan p ocesa la in o mación de
los demás. Además, una ez que un usua io sepa que cie a cla e pe enece a o o indi iduo, median e
c ip og a ía de cla e asimé ica ya iene ga an izado pode comunica se con él de mane a segu a.
22 1. In oducción
1.3.3. Conclusiones
Realmen e en es a sección hemos es udiado una g an can idad de in o mación, podemos obse a
cómo odos los p oyec os que hemos mos ado son muy ecien es (desa ollados du an e los úl imos 8
años). Es o nos da un cla o indicado de que es amos an e un p oblema de g an in e és y po el que es á
su giendo una ue e compe encia pa a apode a se del me cado. Es impo an e e es o como un cla o
e ue zo de la p edicción de que una ecnología que esuel a el p oblema de las iden idades pa ciales se
a a implan a en nues a sociedad en un u u o. Aho a bien, además de habe nos asegu ado que el ema
a ado en es e abajo es ele an e an o pa a la comunidad cien í ica como pa a la sociedad, nues o
segundo obje i o a a se ex ae las conclusiones cla e que nos ayuden a desa olla un p o o ipo p opio.
Pa a ello y debido a la g an can idad de in o mación que comp ende es a sección amos a p esen a la
siguien e abla con los aspec os más impo an es de cada una de las inicia i as.
P oyec o
T a a
p incipalmen e
el p oblema de
iden idades pa ciales
Hace uso del
es ánda DID
El p oyec o
iene menos
de 8 años
Ca ac e ís ica
dis in i a
Emplea ecnología
Blockchain
(especi ica )
IBM 3 3 3
La cadena no
posee in o mación
pe sonal iden i icable
3Hype ledge Fab ic
E e nym 3 3 3
Pe mi e usa su walle
de c edenciales en e ce os
median e su Mobile SDK
3Hype ledge INDY
Ve es One 3 3 3
In oduce concep o de
Acele ado es pa a agiliza
c eación/ e i icación de
c edenciales
3Hype ledge Fab ic
IXO 7*3
Base mul ipla a o ma que
pe mi e desplega p oyec os
de odo ipo sob e
edes descen alizadas.
3
DIF 7 3 3
He amien a auxilia a
p oyec os de iden idades
pa ciales pa a esol e la
conexión DID/DID-Documen
3(Múl iples)
ConsenSys 7*3
Consul o a que
p opo ciona a iedad
de soluciones basadas
en blockchain
3
*: puede usa el es ánda DID dependiendo del p oyec o conc e o que es é a ando.
Podemos ex ae las siguien es conclusiones pa a nues o abajo:
Se á esencial usa el es ánda DID que ha especi icado la o ganización W3C, pues odos los p oyec os
ac uales de g an calib e lo ienen en cuen a.
Hemos decidido usa el open sou ce Hype ledge Fab ic pa a ene una e icien e base de nues-
o blockchain. El uncionamien o de Hype ledge Fab ic se es udia á con más de enimien o en la
siguien e sección 2 de desa ollo.
Nos pa ece de g an in e és la iloso ía de IBM de no in oduci in o mación pe sonal iden i icable
en la cadena pública, po lo que en nues o p o o ipo an solo in oduci emos documen os DID. Es
deci , la ed descen alizada es como un mecanismo auxilia pa a esol e el p oblema de iden i ica
a un indi iduo con su cla e.
Capí ulo 2
Desa ollo
2.1. Plan de abajo
T as el es udio del es ado del a e sob e el ema que aba ca es e abajo y habiendo e lexionado sob e
las conclusiones que hemos ob enido a pa i del análisis de la compe encia, ya es amos p epa ados pa a
el desa ollo de nues o p oyec o. Con el in de acili a y mejo a la e iciencia de dicho desa ollo, es a
sección cons a á de los siguien es cua o bloques undamen ales: p opues as de casos de uso, es udio de
las he amien as auxilia es, especi icación del sis ema y de alles de la implemen ación.
Más conc e amen e, cada apa ado comp ende á la siguien e in o mación:
Casos de uso: se p opond án una se ie de obje i os que un usua io de nues a aplicación debe se
capaz de ealiza . Una ez plan eado un obje i o se especi ica á an o la secuencia de acciones que el
usua io debe á ealiza como o as ca ac e ís icas como pueden se los equisi os, las p econdiciones,
el ipo de ac o ...
He amien as auxilia es: a la ho a de implemen a nues a p ueba de concep o p opues a, amos
a hace uso de he amien as de so wa e lib e que se encuen a en la ed pues nues a me a es a anza
en la ma e ia de la au en icación de c edenciales en edes descen alizadas a pa i de la base que
ya nos p opo ciona la comunidad cien í ica.
Especi icación: una ez ya hemos expues o qué a eas debe se capaz de ealiza el usua io y las
he amien as que nues o sis ema a a eque i , podemos pasa a la especi icación conc e a que
indica á el uncionamien o del p o o ipo que desa ollemos.
Implemen ación: inalmen e, as la pues a en código de la especi icación señalada en el apa ado
an e io se ema ca án las ca ac e ís icas p incipales del mismo pa a así da a en ende con mayo
ni idez lo que hay po de ás del uncionamien o de la p ueba de concep o. Además se ealiza án
p uebas de ejecuciones que con i men el co ec o uncionamien o.
24 2. Desa ollo
2.2. Casos de uso
El obje i o de es a subsección es acla a las uncionalidades que se espe a á que el p o o ipo o ezca.
Pa a ello amos a expone una se ie de casos de uso eales que acla en dichas uncionalidades. Es e
apa ado se á de g an impo ancia pues as él ealiza emos un b e e esquema- esumen con las acciones
ealizables que nos pe mi i á en ende las decisiones de diseño de los siguien es apa ados.
La es uc u a de los casos de uso se compone de las siguien es pa es:
Núme o del caso de uso y í ulo
Ni el: es e apa ado es i al pues la iloso ía de cada caso de uso iene dada po el ni el
que a a, hay dos posibles:
•Obje i o del usua io: es as acciones suponen aquellas que los usua ios inales
deben pode ealiza median e las he amien as que p opo cione el p o o ipo.
•Sub unciones del sis ema: es as acciones son “ anspa en es” al usua io, pues no
las ejecu a di ec amen e; sin emba go, se án esenciales pa a man ene an o el buen
uncionamien o del sis ema como asegu a las p es aciones que nues o p o o ipo
debe o ece .
Ac o es: an o p incipales, los que desencadenan la acción, como se secunda ios, los que
pa icipan en el anscu so de la misma.
Obje i o de con ex o: es la me a que el usua io o en su caso la sub unción se p oponen
a la ho a de ealiza la acción.
P econdiciones: en el caso de un usua io es el la acción que comienza el caso, mien as
que en una sub unción es el desencadenan e del caso.
Pos condiciones: son los posibles es ados inales as acaba el caso de uso.
Flujo p incipal: hace un seguimien o del caso de uso paso a paso.
Flujos secunda ios: en caso de habe ami icaciones en los pasos a oma , se acla a án
en es e apa ado.
F ecuencia de ocu encia: indica á la ecuencia con la que dicho caso de uso apa ece á
en la p ác ica eal.
En las siguien es páginas amos a p esen a la lis a con los casos de uso que hemos p opues o como
más ele an es pa a la aplicación.
2.2. Casos de uso 25
Caso de uso 1: Regis o en un canal1del blockchain
Iden i icado del caso: USO_REGISTRO_CANAL
Ni el: Obje i o del usua io
Ac o p incipal: Usua io inal
Ac o es secunda ios: Miemb o del canal
Obje i o en con ex o: Un usua io nue o a un canal hace una pe ición de egis o
pa a pode ene acceso a las ope aciones sob e la cadena
dis ibuida en dicho canal.
P econdiciones: El usua io ealiza una solici ud de egis o a un miemb o
con pe misos del canal.
Pos condiciones: Éxi o: el miemb o ecep o de la pe ición acep a la
unión y p opo ciona al usua io un c edencial que se
le añadi á a su walle con la iden i icación.
Fallo: es echazada o no con es ada la pe ición y el
usua io ecibe un mensaje de allo al accede al canal.
Flujo p incipal:
1. El usua io manda una pe ición de ing eso a un canal.
2. Un miemb o de dicho canal ecibe el mensaje y decide acep a lo.
3. El usua io en ía un mensaje al miemb o con su cla e pública.
4. El miemb o manda un mensaje de ac ualización a los demás miemb os y e i i-
cado es pa a que o o guen pe misos a la cla e pública del usua io no el.
5. El usua io almacena sus c edenciales con la cla e pública en su walle .
Flujos secunda ios:
2.a El miemb o pide in o mación adicional an es de oma la decisión:
1. El miemb o manda un mensaje con una pe ición de da os al usua io.
2. El usua io en ía los da os pedidos.
3. Se uel e al paso 2 del lujo p incipal.
2.b El miemb o echaza la pe ición.
1. El miemb o manda un mensaje de echazo a la solici ud.
F ecuencia de ocu encia: Única du an e el ing eso a un nue o canal.
1En lo que concie ne a es a sección podemos de ini de mane a in ui i a el concep o de canal como el medio a a és del
cual un usua io pod á manda mensajes a los miemb os del blockchain. Sin emba go, una de inión más o mal y p ecisa se
puede encon a en la sección 2.3.2 que sigue inmedia amen e a és a.
32 2. Desa ollo
Cabece a
ID del bloque: Se a a de un iden i icado único del bloque, una o ma simple de asegu a dicha
unicidad es a ibui le su posición en la cadena (concep o que se explica más adelan e) como ID del
bloque.
Hash de da os: Una ez se haya con igu ado comple amen e un bloque, se á necesa io c ea un
hash c ip og á ico a pa i de dicha in o mación y añadi la en es e campo. El hash de da os iene
como en ada odos los apa ados del bloque excep o és e y el de me ada os.
Hash an e io : Se a a de una copia idén ica del hash c ip og á ico que se asignó al bloque
an e io de la cadena.
Da os
Documen os DID: En es a sección se in oduci á uno o a ios documen os DID que ienen
especi icados al y como los es udiamos en el apa ado de es udio de he amien as auxilia es.
Me ada os
Ce i icado y i ma: El c eado del bloque debe añadi su ce i icado y i ma pa a que el es o
de e i icado es del sis ema puedan alida el bloque, la ele ancia de es e apa ado se mos a á
más adelan e.
Indicado de álido/in álido: Se a a de una unción auxilia que pe mi e de ec a a los
e i icado es si el bloque es á epe ido.
Con es a es uc u a podemos aho a isualiza mejo la cadena:
Acabamos es e apa ado de es uc u a del blockchain p esen ando los dos úl imos componen es:
Base de da os del es ado: como indicamos en la cadena, se a a de una lis a enlazada en
una di ección po lo que una búsqueda a los bloques más an iguos puede llega a se cos osa con
el iempo. Pa a mejo a la e iciencia de los búsquedas de los documen os DID nues o sis ema
implemen a una base de da os de ipo CouchDB donde se gua dan las conexiones (DID) ⇐⇒
2.4. Especi icación 33
(Documen o DID) de las ope aciones de búsqueda más ecien es. De es a mane a solo hab á que
eco e la cadena en caso de que no se encuen e el documen o en la base de da os.
Canales: pa a ob ene una copia de la cadena y pode in oduci documen os DID en la misma,
debe de es ablece una conexión con el canal. El canal es esencialmen e la ed donde es án conec ados
odos los miemb os que pa icipan en el sis ema, a a és de él se ealizan las ope aciones de
in oducción de nue os bloques y e i icación/publicación de la cadena ac ualizada.
Ac o es del sis ema
Nues a ed descen alizada a a se man enida po dos ipos de pa icipan es cuyas uncionalidades
son dis in as:
Usua ios: son odos aquellos indi iduos u o ganizaciones que in oducen sus espec i os docu-
men os DID a la cadena. Reco demos que el documen o DID con iene an o una cla e pública como
un mé odo de con ac o, luego es o nos pe mi i á soluciona el p oblema de iden i ica al poseedo
de la cla e. Es e ipo de ac o co esponde con el de inido como “o de e node” de Hype ledge
Fab ic.
Ve i icado es: son aquellos indi iduos que se encuen an a la escucha de la apa ación de bloques
de nue a c eación, su obje i o es la de alida que la sin axis del bloque es co ec a y de busca
el hash c ip og á ico que se in oduce en el apa ado hash de da os. Una ez encon ado un hash
co ec o, los e i icado es en ían mensajes de ac ualización con la nue a cadena. Nó ese que dicho
hash no es un cálculo i ial, pues usualmen e se exigen cie as ca ac e ís icas al mismo que solo se
pueden esol e po ue za b u a. Po ejemplo que en el inal del hash haya Nnúme o de ce os.
Con enido del walle
El aspec o cla e de nues o p o o ipo hemos is o que es el hecho de que en la cadena pública an
solo se pueden in oduci documen os DID. Es o lo complemen amos con que solo pe mi imos añadi
iden i icaciones en el walle , es deci una cla e pública. Pa a insc ibi se como usua io al sis ema es
necesa io manda una pe ición de ing eso a miemb os ya exis en es del mismo, en caso de acep a al
nue o usua io, a és e se le asigna en su walle un documen o de ex o i mado po un e i icado . A
pa i de es e momen o, el usua io puede ealiza ope aciones de in oducción de documen os DID en la
cadena usando su cla e pública. En caso de que una cuen a in en e ealiza una ansacción a la cadena
sin posee el co espondien e documen o i mado po un e i icado en su walle , en onces la ansacción
se á in alidada po los e i icado es.
Chaincode
Reco damos que pa a la unión de un nue o usua io a la ed e a necesa io una pe ición de ing eso,
aho a bien, una ez den o odos los usua ios deben se capaces de pone se de acue do en el conjun o de
ansacciones álidas. Pa a ello, en nues o sis ema desa olla emos un chaincode, es deci , el conjun o
de ins ucciones con las uncionalidades que se pe mi en ealiza en la ed. Dicho chaincode debe se
ap obado po odos los usua ios del sis ema que quie an usa lo, es o implica que son los usua ios los que
deben asegu a se de que el chaincode ealmen e hace lo espe ado. Una ez que el usua io ha ing esado en
una ed con su cla e pública en el walle y ha acep ado el código del chaincode, és e end á pe mi ido lle a
a cabo odas las unciones que le p opo ciona. Pa a nues a p ueba de concep o amos a implemen a las
siguien es:
que yAllDID: [Sin pa áme os de en ada]
Función que eco e oda la cadena pública y de uel e odos los DID-Documen que pe enecen a
la misma.
34 2. Desa ollo
que yDID: [Di ección DID como en ada]
Dado un DID, es deci el análogo a di ección URL del DID (el ejemplo que imos cuando es udiamos
los DID e a “did:example:123456789abcde ghijk”), busca en la cadena un DID-Documen cuyo
campo “id” coincida con el buscado.
addDIDdoc [DID-Documen como en ada]
Pa a es a unción el usua io p opo ciona un DID-Documen y los e i icado es ac úan siguiendo el
siguien e esquema:
•Comp ueba que el usua io que inicia la ansacción lo hace usando una cla e pública de su
walle .
•Comp ueba que la sin axis del DID-Documen es co ec a de acue do con la especi icación
p opo cionada po el W3C.
•Pa a inaliza se ealiza la p ueba de abajo, es deci , se gene a el bloque co espondien e
que a con ende al documen o y se hace el cálculo del hash de da os pa a pode inse a lo en
cadena.
•Una ez calculado el hash el e i icado comienza a anuncia la nue a cadena pa a el es o de
miemb os de la ed.
Ve i icación de c edenciales
Reco demos que los DID-Documen ienen dos secciones esenciales: “au hen ica ion”y“se ice”.
En la p ime a se dispone de algún mecanismo de enc ip ación, en nues o caso usa emos cla es RSA.
Mien as que en la segunda sección que expone alguna o ma de con ac o del usua io, puede se una
di ección IP, una di ección de co eo elec ónico, incluso una di ección ísica si se a a de una o gani-
zación... Es o nos esuel e el p oblema de asocia la elación usua io-cla e. Es deci si pensamos en una
di ección DID como un apodo y ecupe amos su documen o asociado desde la cadena, podemos asegu a -
nos al con ac a con el medio que apa ece en “se ice” que la cla e pública pe enece al usua io con dicho
apodo (pues o que en el nos esponde demos ando que iene posesión de la cla e p i ada asociada).
Con odo es o ya podemos es ablece una conexión con el usua io que posee dicha di ección DID y
es a segu os de que es el indi iduo que espe ábamos. Así pasamos a la úl ima pa e del abajo y es
la e i icación de c edenciales. Pa a es e caso end emos que acudi a la ayuda de una CA (Ce i ica e
Au ho i y), sin emba go, an solo se á una ez po c edencial. El p oceso es el siguien e, el usua io
pide a la CA que le ce i ique con su cla e p i ada un c edencial que an es ha enido que p esen a .
Una ez ob iene el ce i icado, el usua io lo gua da pa a su uso pos e io . Aho a cuando se ealice la
conexión segu a siguiendo lo que hemos indicado an e io men e, el usua io pod á p esen a su ce i icado
y así ac edi a el c edencial en cues ión. Es a ac edi ación debe á lle a se a cabo median e un p o ocolo
auxilia adicional y ex e no al p o o ipo p opues o, se a a ía de añadi una o ma es anda iza de en ia
los ce i icados i mados po la CA que posee el indi iduo. Pa a es e abajo no nos hemos cen ado en
desa olla dicho p o ocolo pues eco damos que el p oblema p incipal a esol e es el de las elaciones
usua io-cla e pública, pa a ello nos hemos apoyado en la ecnología blockchain.
En o no de ejecución
Todo el p o o ipo se a desa olla en un sis ema Linux, la e sión 19.10 de Ubun u. Vamos a pa i
de la base que nos p opo ciona Hype ledge Fab ic, pa a ello usa emos el código Open Sou ce que apa ece
en su Gi Hub o icial: h ps://gi hub.com/hype ledge / . Aho a bien, La amplia gama de he amien as que
p opo ciona el p oyec o de Hype ledge es á ue a del alcance del p o o ipo que amos a desa olla en es e
abajo, po lo que noso os nos amos a es ingi a abaja con el en o no de ejemplos. Es deci nues o
p oyec o comienza a pa i de clona los iche os de h ps://gi hub.com/hype ledge / ab ic-samples
El p oyec o Hype ledge posee una licencia Apache 2.0, po lo que as documen a adecuadamen e la
uen e del mismo (más in o mación en la sección de bibliog a ía), enemos de echo a usa el código pa a
nues o p o o ipo.
2.4. Especi icación 35
En cuan o a los ejemplos que nos p opo ciona la ca pe a ab ic-samples, al inal nos hemos decan ado
po usa como base el llamado “FabCa ”. Se a a de un p o o ipo de ed descen alizada en la que se
ges ionan coches y sus p opie a ios. A pesa de que ambién conside amos en un p incipio basa nos en
“ i s -ne wo k” que es una p ueba de ed de c ip omonedas, las ope aciones de FabCa nos pa ecie on
más ácilmen e gene alizables.
Pa a en ende la siguien e sección con la implemen ación amos a p esen a el esquema que sigue el
p o o ipo FabCa :
Se c ea á un canal con la cadena al que odas las máquinas ing esa án
•mychannel
Hay dos o ganizaciones y cada una iene dos e i icado es y una CA
•O g1
◦pee 0.o g1.example.com *
◦pee 1.o g1.example.com
◦ca_pee O g1
•O g2
◦pee 0.o g2.example.com *
◦pee 1.o g2.example.com
◦ca_pee O g2
Exis en 6 usua ios que ealizan ansacciones a la cadena
•o de e .example.com
•o de e 1.example.com
•o de e 2.example.com
•o de e 3.example.com
•o de e 4.example.com
•o de e 5.example.com
Hay cua o bases de da os
•couchdb0
•couchdb1
•couchdb2
•couchdb3
* : Es os e i icado es son además asignados como los MSP3de cada o ganización.
Una duda na u al que su ge es cuál se á el papel de las máquinas ca_pee O g1 yca_pee O g2. És as
se enca gan de uncionalidades auxilia es:
Ayuda a los MSP (en es e caso pee 0.o g1.example.com ypee 0.o g2.example.com), en el
p oceso de ing eso de nue os usua ios, gene ando los documen os i mados que se añadi án al
walle del nue o miemb o pa a que pueda ealiza ansacciones.
Asegu a que solo los miemb os egis ados son capaces de ealiza ansacciones en la ed, pues o
que, cuando un usua io in en e ealiza una ansacción las máquinas ca_pee O g1 yca_pee O g2
3Reco damos que un MSP e a un Membe ship Se ice P o ide , es deci los enca gados de lle a a cabo el p oceso que
pe mi e el ing eso de nue os usua ios a la ed.
36 2. Desa ollo
comp oba án que dicho usua io iene en su walle una cla e pública álida, es deci , ob enida du an e
el p oceso usual de ing eso.
Du an e la p ueba del p o o ipo, noso os oma emos el papel de o de e .example.com, desde donde
ing esa emos a la ed y ealiza emos una se ie de ansacciones.
Todo es e esquema pa ece bas an e complejo, así que p esen amos la igu a 2.3 con odas las máquinas:
Figu a 2.3: Esquema con odos los ac o es y elemen os del p o o ipo que amos a desa olla .
2.5. Obje i os del abajo e implemen ación 37
2.5. Obje i os del abajo e implemen ación
Nues a a ea consis i á en:
Al e a el chaincode localizado en “/ ab ic-samples/chaincode/ abca /go/ abca .go”
de al mane a que la cadena pase a gua da DID-Documen s en ez de coches y además
ede ini odas las unciones que pueden usa las máquinas de la ed pa a adap a las a
nues o obje i o.
C ea en “/ ab ic-samples/ abca /ja asc ip /” los iche os .js que los usua ios ejecu-
a án pa a ealiza las ope aciones sob e la cadena. (Es os .js ha án llamadas a las unciones
implemen adas en el .go del chaincode)
Todos es os cambios se ealiza án a pa i de un o k del gi hub con el p oyec o o icial de Hy-
pe ledge Fab ic. Se puede accede a dicho p oyec o con el código nue o a a és del siguien e
enlace
h ps://gi hub.com/pma inhue as/ ab ic-samples
2.5.1. He amien as auxilia es
El p ime paso de es a sección es pone en ma cha odo el sis ema base que nos p opo ciona Hype led-
ge Fab ic. Pa a ello comenzamos po clona el eposi o io hype ledge / ab ic-samples, a con inuación
enemos que ins ala odas las he amien as auxilia es de las que hace uso el p o o ipo.
El p ime paso se á ins ala odos los a chi os bina ios, los p opios desa ollado es de hype ledge
p opo cionan un ins alado au omá ico.
El segundo paso se á ins ala la he amien a Docke , la cual nos pe mi i á ges iona odos los
p ocesos que lancemos en el p o o ipo median e el uso de con enedo es. Reco demos que el ejemplo
iene 4 e i icado es, 6 clien es, 4 bases de da os y cada uno se ejecu a en un en o no dis in o.
El e ce paso consis i á en ins ala el lenguaje Go en una e sión 1.13 o pos e io . En esencia es un
lenguaje simila a C, su u ilidad es que el chaincode del ejemplo FabCa que amos a modi ica se
encuen a esc i o en Go po lo que nos amos a adap a a él.
El cua o paso se á ins ala Node.js, e emos que las ansacciones que ejecu an los usua ios se án
iche os .js ( e minación de ja aSc ip ), los cuales ejecu a emos con es a he amien a.
El quin o y úl imo paso se á ins ala la e sión de Py hon 2.7. Ac ualmen e la e sión de Ubun u
más ecien e con iene la e sión 3.5.1, sin emba go, pa a Node.js SDK algunas ope aciones solo
unciona án co ec amen e con la e sión 2.7.
No a: Una guía más de allada del p oceso de ins alación de odas las he amien as necesa ias se
encuen a en las siguien es e e encias de la bibliog a ía: [4] y [5].
2.5.2. Gene ación del en o no
El lanzamien o de nues o p o o ipo se ealiza á na egando a la ca pe a “ ab ic-samples/ abca /”
y ejecu ando el sc ip “s a Fab ic.sh”, a con inuación se mon a án odos los ac o es y elemen os de
nues a ed. Repasemos ayudándonos de igu as que con ienen la salida del e minal que ejecu a el sc ip ,
odos los pasos que se ealizan c onológicamen e pa a mon a el sis ema:
38 2. Desa ollo
El p ime paso de odos es an solo auxilia , pues su obje i o se á la eliminación de odos los iche os
y los p ocesos que se hubiesen gene ado du an e una ejecución an e io del sis ema. Es o nos asegu a
e i a e o es causados po el solapamien o de ejecuciones.
Figu a 2.4: Eliminación de odos los p ocesos y iche os de la ejecución an e io .
Ac o seguido, amos a gene a odos los iche os de con igu ación.
Gene amos el bloque génesis, es deci , el p ime bloque de la cadena. Reco demos que cada bloque
debe con ene el hash del an e io , sin emba go, pa a es e p ime bloque es necesa io hace una
c eación especial.
C eamos el iche o de con igu ación “ channel. x”. En él se especi ica án las con ig policies, es deci
las polí icas de con igu ación que indica án cuál se á el p oceso de c eación/unión/in e acción/salida
del p opio canal. Es o quie e deci que aquí se indica á quién en un p incipio end á los pe misos
de MSP.
El úl imo paso es añadi a es e iche o iche o “channel. x” los ancho pee , es deci amos a
indica le a la con igu ación que an o la o ganización 1 como la o ganización 2 end án pe misos de
MSP pa a pode decidi quién en a en el canal.
Figu a 2.5: C eación de bloque génesis y gene ación de la con igu ación del canal “mychannel”.
2.5. Obje i os del abajo e implemen ación 39
Lo siguien e es c ea odos los p ocesos que comp enden a los usua ios, e i icado es, bases de da os.
Además podemos e como dichos p ocesos se ges ionan median e los con enedo es que p opo ciona la
he amien a Docke .
Figu a 2.6: 1) C eación de d i e s que pe mi en la conexión en e p ocesos. 2) c eación de p ocesos. 3)
Encapsulamien o de p ocesos en con enedo es.
El siguien e paso es c ea el único canal de nues o p o o ipo que lle a á el nomb e de “mychannel”.
Pa a su c eación se hace uso del iche o de con igu ación “channel. x” que hemos gene ado an e io men e.
Figu a 2.7: C eación del canal “mychannel”.
Aho a amos a llama a odas las máquinas de las o ganizaciones (en nues o caso p ocesos, po que
es amos ejecu ando odo en el mismo o denado ) a que se unan al canal común que con iene la cadena.
Nó ese que los 6 usua ios que hacen el papel de clien es no se unen al canal du an e es e p oceso inicial,
ellos debe án uni se más adelan e pidiendo pe miso a alguno de los dos MSP del sis ema, uno de cada
o ganización.
40 2. Desa ollo
Figu a 2.8: Unión de máquinas de o ganizaciones al canal “mychannel”.
Finalmen e, usando la con igu ación de los dos MSP que de inimos en el canal, amos a asigna a los
MSP: enemos el p ime o como pee 0.o g1.example.com y el segundo como pee 0.o g2.example.com.
Figu a 2.9: Asignación de las máquinas que ac ua án como MSP en el canal.
El úl imo paso del p ocedimien o de inicialización del en o no es el de acep a el chaincode. Es deci ,
odas las máquinas que pe enezca a la ed deben ap oba el chaincode; solo una ez acep ado pod án
ealiza ansacciones sob e la misma (cla amen e usando únicamen e las unciones que se de inen en
dicho chaincode ).
Figu a 2.10: Ejemplo de ins alación y acep ación del chaincode de la máquina pee 0.o g1.example.com.
Es o comple a la gene ación del en o no del p o o ipo.
2.5.3. Implemen ación del chaincode
Aho a mos amos la modi icación del iche o “/ ab ic-samples/chaincode/ abca /go/ abca .go”
pa a su adap ación a sopo a la ges ión de documen os DID. El p ime paso consis e en de ini la es uc-
u a que con end á los da os de dichos documen os, a pesa de que en la especi icación p opo cionada po
W3C exis e una amplia a iedad de campos adicionales pa a ellena en el documen o, hemos decidido
que los documen os de nues o p oyec o engan únicamen e los pa áme os esenciales.
Reco damos que los dos apa ados esenciales de los documen os DID e an po un lado au hen ica ion
y po o o se ice, es deci , el p ime o se e ie e al mé odo c ip og á ico que se usa á pa a la comunicación
(en nues o caso cla es públicas RSA) y el segundo indica la o ma de con ac o del poseedo del documen o
DID que en los ejemplos se á un si io web, sin emba go, és e pod ía se cualquie medio como un co eo
elec ónico, una di ección ísica...
Pasemos en onces a las cua o unciones que implemen a el chaincode pa a manipula la cadena
pública.
2.5. Obje i os del abajo e implemen ación 41
Figu a 2.11: De inición de la es uc u a que ep esen a a un documen o DID.
El código comple o del iche o con el chaincode se puede ob ene a pa i del siguien e enlace:
h ps://gi hub.com/pma inhue as/ ab ic-samples/blob/mas e /chaincode/ abca /go/ abca .go
Ini Ledge
•Pa áme os de en ada: ninguno.
•Funcionalidad: se le llama únicamen e cuando se c ea la cadena po p ime a ez, su obje i o
es añadi un pa de DID de ejemplo a la cadena inicial que nos se i án más a de pa a las
p uebas de ejecución que ealicemos sob e el código nue o.
•De uel e: nada en caso de unciona co ec amen e y un mensaje de e o si alla la inse ción
de los documen os de ejemplo.
Es os son los documen os de ejemplo:
Figu a 2.12: Documen os DID de ejemplo en la cadena inicial.
C ea eDid
•Pa áme os de en ada: uno po cada a ibu o de inido en s uc Did más un a ibu o auxilia
de cla e (key).
•Funcionalidad: dados odos los da os de un documen o DID, gene a la es uc u a que lo e-
p esen a y lo in oduce en la cadena pública.
•De uel e: nada.
Que yDidByKey
•Pa áme os de en ada: cadena que ep esen a la cla e.
•Funcionalidad: dada una cla e (po ejemplo “DID1”) busca en la cadena al documen o DID
al que apun a y lo de uel e.
•De uel e: si se encuen a de uel e un pun e o al documen o DID, en caso con a io mues a
un mensaje de e o po pan alla.
Capí ulo 3
Conclusiones
3.1. Resumen del abajo y conclusión
Finalmen e, as al ededo de 30 páginas eple as de in o mación, el con enido del abajo sea, p oba-
blemen e, demasiado “denso”. La idea de es e apa ado a a se un epaso b e e que haga un seguimien o
c onológico de odo lo que hemos is o, haciendo hincapié en los pun os cla e que ayudan a en ende la
cadena de azonamien o del abajo.
P opósi o del abajo: iden idades pa ciales
Pe mi i la e i icación de c edenciales de mane a selec i a a a és de in e ne , es deci , el usua io
es el que decide qué da os a a apo a . Pa a log a lo hay que ga an iza que dicho p oceso de
e i icación es segu o. És e es el pun o en el que nos hemos cen ado, la c eación de un sis ema
base que p opo cione dicha segu idad.
Las azones po las que se decidió que es e abajo e a in e esan e desde el pun o de is a de la
in es igación se pueden esumi en los siguien es pun os.
El abajo a a un p oblema eal que exis e en las Ce i ica e Au ho i y ac uales. Cuando
se p opo ciona una cla e pública a un e ce o, és e puede ob ene odos los da os asociados a la
misma, mien as que el usua io posiblemen e solo quie a o o ga le cie a in o mación.
Es un ema de in es igación no edoso, la p ueba es á en que uno de los máximos exponen es
de es e concep o Reboo ing Web o T us comenzó a inales de 2015.
En los úl imos años ha su gido un auge de in es igación sob e es e ema, es o se puede
e en p oyec os de g an calib e como el desa ollado po IBM que ac ualmen e se encuen a en
una e sión al a ce ada.
Pe mi e demos a conocimien os de ingenie ía in o má ica de mul i ud de amas, pudien-
do des aca :
•Me odología de Ingenie ía del So wa e ealizando un análisis de la compe encia y un apa ado
de casos de uso.
•Conocimien os de p og amación an o de lenguajes o ien ados a obje os (ja asc ip ) como de
lenguajes impe a i os (Go un lenguaje simila a C).
•Dominio de concep os de edes, cen ados p incipalmen e en c ip og a ía de cla es y ce i ica-
dos.
•Ampliación en á eas a anzadas como la de edes descen alizadas del ipo blockchain.
50 3. Conclusiones
Todos es os pun os e o za on la idea de que e a un abajo que me ecía la pena desde un pun o de
is a académico e incluso, ambién, desde un pun o de is a come cial.
Pa a en ende el desa ollo del abajo es esencial en ende los dos p oblemas undamen ales que nos
plan ean las iden idades pa ciales:
¿Cómo podemos asocia una cla e pública con un usua io conc e o?
¿Cómo se ealiza la e i icación de c edenciales?
A p io i no e amos capaces de da espues as a es as p egun as po lo que el p ime paso ue ealiza
un es udio exhaus i o de la compe encia en p oyec os simila es pa a pode así ex ae conclusiones. En
el abajo al inal nos decan amos po da solución a la p ime a de las p egun as pues aba ca ambas
suponía una ca ga excesi a. P incipalmen e ap endimos que dicha conexión de cla e pública-usua io
an iguamen e se ealizaba median e edes de con ianza PGP; sin emba go, exis e una al e na i a más
a ac i a: edes descen alizas con blockchain. El o o pun o cla e es que a a se necesa io la ayuda de
CA adicionales mínimamen e po lo que no es un g an p oblema. La idea es la siguien e, una ez se
ha esuel o el p oblema de cla e pública-usua io podemos ga an iza que la comunicación es con quien
ealmen e dice se , po lo que el úl imo paso se ía que el usua io posea una se ie de documen os i mados,
cada uno e i icando un c edencial. Luego bas a ía con manda únicamen e el ce i icado deseado du an e
la comunicación. Cie amen e la ob ención de dicho documen os i mados supond ía ene que acudi a una
CA u o a o ganización de con ianza, sin emba go conside amos és e un p oblema meno en compa ación
con asegu a que la conexión es segu a g acias a la asociación usua io-cla e pública.
Teniendo en cuen a odo lo indicado an e io men e pasamos al desa ollo en sí del abajo, los dos
concep os undamen ales que hay que en ende son:
Documen o DID: es un es ánda que pe mi e la iden i icación de usua ios (di ecciones DID)
con un se icio ( o ma de con ac o, po ejemplo el co eo elec ónico). La idea es la siguien e:
conside emos el pasapo e de un país, el amaño, los campos, el es ilo de le a, e c. Todos esos
pa áme os son un con enio que el gobie no del país en cues ión ha lle ado a cabo. Es amos an e un
enómeno simila , necesi amos un documen o que nos iden i ique pe o pa a acilidad de a amien o
de los da os es impe a i o que odos los usua ios usen la misma sin axis. Exac amen e eso de ine
un documen o DID.
Red descen alizada: nos e e imos a edes que uncionan median e blockchain, es deci , nadie
es el p opie a io absolu o de la ed, sino que exis en una se ie e i icado es de dis in os o ganismos
que sopo an la ed median e “p uebas de abajo”.
Con es os dos concep os ya podemos en ende el obje i o de implemen ación del abajo, amos a c ea
una ed descen alizada en la cual se puedan in oduci documen os DID. De es a mane a pe mi imos
esol e el p oblema de elaciona cla e pública con usua io y asegu amos que nadie iene el con ol
absolu o del medio. Tal sis ema se ía una solución pa a la p ime a pa e del p oyec o de iden idades
pa ciales, la segunda mi ad es la e i icación de c edenciales que dejamos como una posible ampliación
u u a del p oyec o. Pues o que hoy en día ya exis en p oyec os in e esan es que podemos usa como
base, nues o código es una modi icación de un sis ema de blockchain open sou ce llamado Hype ledge
Fab ic, en el cual adap amos una ed descen alizada que pe mi ía la ges ión de coches a una que pe mi a
la ges ión de documen os DID. La implemen ación se esume en:
Implemen ación
Al e a el chaincode en lenguaje Go de al mane a que la cadena pase a adminis a docu-
men os DID.
C ea los iche os ja asc ip que los usua ios ejecu a án pa a ealiza las ope aciones sob e
la cadena. És os iche os son los que hacen llamadas al chaincode.
El p oyec o es á publicado en el enlance: h ps://gi hub.com/pma inhue as/ ab ic-samples
3.1. Resumen del abajo y conclusión 51
Summa y and Conclusion
Finally, a e a ound 30 pages ull o in o ma ion, he con en o he wo k is p obably oo “dense”.
The idea o his sec ion is going o be a b ie e iew ha makes a ch onological ollow-up o e e y hing
we ha e seen, emphasizing he key poin s ha help o unde s and he chain o easoning o he wo k.
Goal o his Wo k: Pa ial Iden i ies
To allow he e i ica ion o c eden ials selec i ely h ough he in e ne , ha is: he use is he
one who decides wha da a o p o ide. To achie e his, i mus be ensu ed ha said e i ica ion
p ocess is sa e. This is he poin on which we ha e ocused, he c ea ion o a base sys em ha
p o ides such secu i y.
The easons why his wo k was decided o be wo hwhile om he esea ch poin o iew can be
summa ized in he ollowing poin s.
The wo k add esses a eal p oblem ha exis s in oday’s ce i ica ion au ho i ies. When a
public key is p o ided o a hi d pa y, such hi d pa y can ob ain all he da a associa ed wi h
he public key whe eas he e is he possibili y ha he use may only wan o p o ide ce ain
in o ma ion.
I is a new esea ch opic, he p oo is ha one o he maximum exponen s o his concep
Reboo ing Web o T us began in la e 2015.
In ecen yea s he e has been a boom in esea ch on his opic, his can be seen in
la ge-scale p ojec s such as he one de eloped by IBM, which is cu en ly in a closed alpha e sion.
I allows o demons a e compu e enginee ing knowledge o many b anches, being able o
highligh ::
•So wa e Enginee ing Me hodology ca ying ou a compe i ion analysis and a use cases sec ion.
•Knowledge o p og amming bo h objec -o ien ed languages (ja asc ip ) and impe a i e lan-
guages ( Go a language simila o C).
•Expansion in ad anced a eas such as decen alized blockchain ne wo ks.
All hese poin s ein o ced he idea ha i was wo hwhile wo k om an academic poin o iew and
e en om a comme cial poin o iew.
To unde s and he de elopmen o he wo k i is essen ial o unde s and he wo undamen al p oblems
ha pa ial iden i ies pose o us:
¿How can we associa e a public key wi h a speci ic use ?
¿How is C eden ial Ve i ica ion Pe o med?
A i s we we e no able o p o ide answe s o hese ques ions, so he i s s ep was o ca y ou an
exhaus i e s udy o he compe i ion in simila p ojec s in o de o d aw conclusions. Fo his pa icula
wo k a he end we op ed o gi e a solu ion o he i s o he ques ions since co e ing bo h was an
excessi e amoun o esea ch. Mainly we lea ned ha his public-use key connec ion was o me ly made
h ough us ed PGP ne wo ks; howe e , he e is a mo e a ac i e al e na i e: decen alized ne wo ks
wi h blockchain. The o he key poin is ha adi ional CA help is going o be minimally needed so
i ’s no a big p oblem. The idea is as ollows, once he public-use key p oblem has been sol ed, we can
gua an ee ha communica ion is secu e so he las s ep would be o he use o ha e a se ies o signed
documen s, each one e i ying a c eden ial. Then i would be enough o send only he desi ed ce i ica e
du ing he communica ion. Ob aining such signed documen s would ce ainly mean ha ing o go o a CA
52 3. Conclusiones
o o he us ed o ganiza ion, howe e we conside his a mino p oblem compa ed o ensu ing ha he
connec ion is secu e hanks o he use -public key associa ion.
Taking in o accoun e e y hing indica ed abo e, we mo e on o he de elopmen o he wo k i sel ,
he wo undamen al concep s ha mus be unde s ood a e:
DID documen : i is a s anda d ha allows he iden i ica ion o use s (DID add esses) wi h a
se ice (con ac o m, o example email). The idea is as ollows: Le ’s conside he size o a passpo ,
he on s yle, he numbe o ields... All hese pa ame e s a e a con en ion ha he go e nmen
o he coun y in ques ion has imposed. We a e acing a simila phenomenon, we need a documen
ha iden i ies us bu o ease o da a p ocessing i is impe a i e ha all use s use he same syn ax.
Tha ’s he philosophy behind he concep o DID documen .
Decen alized ne wo k: we e e o ne wo ks ha wo k h ough blockchain, ha is: nobody is
he absolu e owne o he ne wo k bu he e a e a se ies o e i ie s om di e en o ganiza ions
ha suppo he ne wo k h ough “p oo o wo k”.
Wi h hese wo concep s we can al eady unde s and he goal o wha we wan o implemen o his
wo k: we a e going o c ea e a decen alized ne wo k in which DID documen s can be en e ed. In his
way we allow us o sol e he p oblem o ela ing public key wi h use and we ensu e ha nobody has
absolu e con ol o he medium. Such sys em would be a solu ion o he i s pa o he pa ial iden i ies
p ojec , he second hal being he e i ica ion o c eden ials which we lea e as a possible u u e upg ade
o he p ojec . As o oday he e a e al eady in e es ing p ojec s ha we can use as a base, ou code
is a modi ica ion o an open sou ce blockchain sys em called Hype ledge Fab ic in which we adap ed a
decen alized ne wo k ha allowed ca managemen o one ha allows managemen o DID documen s.
Implemen a ion consis s o :
Implemen a ion
Al e he chaincode w i en in Go language in such a way ha he chain allows he mana-
gemen o DID documen s.
C ea e he ja asc ip iles ha use s will execu e o pe o m ope a ions on he chain. These
iles a e he ones ha make calls o he chaincode.
The p oyec is public h ough he link: h ps://gi hub.com/pma inhue as/ ab ic-samples
3.2. Ampliación u u a 53
3.2. Ampliación u u a
Lo que hemos implemen ado du an e es e abajo no es más que una p ueba de concep o que nos
pe mi a mos a el in e és y la alidez del ema que hemos a ado. Es o nos da una eno me libe ad en
cuan o a odo ipo de ampliaciones que podemos hace le al p o o ipo. En caso de que el lec o desee segui
abajando sob e el p oyec o o simplemen e enga cu iosidad sob e cuáles son los pasos siguien es pa a
mejo a el p o o ipo, a con inuación p esen a emos un lis ado con los posibles obje i os más ele an es
que no se han llegado a a a .
Pe mi i documen os DID con sin axis gene al
Reco demos cómo e an los documen os DID que pe mi íamos en nues o p o o ipo obse ando una
igu a que ya p esen amos.
Figu a 3.1: Es uc u a del documen o DID en nues o p oyec o.
Podemos ija nos en que an solo pe mi imos documen os DID básicos. Con es o nos e e imos a
que po ejemplo un documen o DID según el es ánda W3C puede ene más de un mé odo de
au en icación o más de un mé odo de conexión, mien as que solo pe mi imos uno. Así que la a ea
se ía gene aliza la sin axis de es os documen os de mane a que el sis ema sea capaz de in oduci
documen os DID más complejos.
C ea un p o ocolo de comunicación auxilia pa a e i ica c edenciales
Pa a es e pun o hay que en ende qué p oblema esuel e nues o p o o ipo. La ed descen alizada
con documen os DID nos pe mi e es ablece la conexión en e un usua io y una cla e pública, es
deci asociamos una di ección DID que ac úa como seudónimo a un mé odo de comunicación como
po ejemplo una di ección de co eo elec ónico. Una ez esuel o el p oblema de iden i ica con
quién nos es amos comunicando, es necesa io a a el p oblema de la e i icación de c edenciales.
La solución que p oponemos desde es e abajo es indica una di ección IP 4/IP 6 en el campo
se ice del documen o DID e implemen a un clien e-se ido pa a es ablece una comunicación con
el obje i o de que el usua io p opo cione un ce i icado ob enido median e una CA que le e i ique
un c edencial en conc e o. Un aspec o undamen al de es a solución es que oda la in o mación
sensible, es deci la que igu a en los c edenciales, se ansmi e en una comunicación pun o a pun o
y además no se deja as o de la misma en ninguna base de da os pública.
Hace uso de la base de da os del es ado
Tal y como comen amos en el apa ado en el que es udiamos las ca ac e ís icas del p oyec o Hy-
pe ledge Fab ic, una de las en ajas cla e e a que nos p opo cionaba una CouchDB. Se a an de
bases de da os que con ienen los e i icado es que man ienen el es ado más ecien e de la cadena de
la ed descen alizada. Ac ualmen e cuando hacemos una búsqueda de un documen o DID según
su di ección en la cadena hacemos un eco ido lineal de la misma. Podemos e como es a solución
no es escalable con o me aumen e de amaño la cadena. Po ello la mejo ía se ía hace uso de es a
uncionalidad a la ho a de esol e las ansacciones del ipo que y.
54 3. Conclusiones
Redac a un documen o que explique paso a paso el chaincode
Es e pun o de mejo a se cen a p incipalmen e en el usua io que ca ece de conocimien os de in o -
má ica. Vol iendo a la gene ación del en o no de nues o p oyec o, la ed es aba ins alada de al
mane a que odos los usua ios que quisie an pa icipa en el canal común enían que acep a el
chaincode p opues o. A pa i de ese momen o las únicas ope aciones que se podían ealiza sob e
las cadenas e an las implemen adas en dicho chaincode, es o quie e deci que si se quisie an e i a
di e sos ipos de audes elacionados con una u ilización indebida de la ed, el usua io debe lee
el chaincode pa a así se conocedo de exac amen e qué ope aciones se pueden ealiza . En el caso
de usua ios con bajo dominio de la in o má ica es a a ea puede esul a complicada po lo que
ecomendamos edac a un documen o que explique ese agmen o de código pa a así demos a la
anspa encia de la implemen ación.
3.3. Opinión pe sonal 55
3.3. Opinión pe sonal
A pesa de que la idea oncal que subyace a es e abajo ha pe manecido cons an e, las iden idades
pa ciales, hemos enido un la go eco ido de cambios en el en oque que hemos seguido. Pe sonalmen e
c eo que pa a en ende en p o undidad la opinión que oy a expone es necesa io que haga un epaso
c onológico con los odos los g andes hi os po los que hemos pasado.
Nos emon amos al mes de ab il de 2019 en mi ad del segundo cua imes e del cu so 2018-2019, en
ese momen o hacía ya más de un año que enía una since a a acción po el ema de la cibe segu idad y
la c ip og a ía. Desde oda la in o mación que buscaba po in e ne sob e los exploi s más amosos de la
ac ualidad has a los ela os que me con aba mi pad e en su abajo como pilo o en el ejé ci o del ai e en
un depa amen o ce cano al de cibe de ensa, sen í que la cibe segu idad e a aquello a lo que me que ía
dedica al menos en un u u o a medio plazo. Po ello as e lexiona du an e a ias semanas, decidí
manda un co eo el 18 de ab il a Juan Ca los Fabe o Jiménez pues me pa eció un excelen e p o eso
cuando me impa ió clase de la asigna u a “Redes”, la cual es á elacionada con emas que se a an en
cibe segu idad.
Todo es o desembocó en una eunión que u imos el lunes 29 de ab il, dicha eunión ue mi p ime
con ac o con el ema que iba a a a pues la idea ue ín eg a de Juan Ca los. La idea e a cla a: iden idades
pa ciales. Es deci busca alguna o ma de e i ica c edenciales po in e ne sin ene que p opo ciona
odos los da os asociados a una cla e. El ejemplo que me hizo en ende la p oblemá ica con la que
es ábamos a ando ue el de la FNMT (Fáb ica Nacional de Moneda y Timb e), la cual ac úa de CA
de mane a que pe mi e asocia una cla e pública con una se ie de c edenciales. La idea e a pe mi i al
usua io posee una se ie de c edenciales p opios y se capaz de e i ica los pa a accede a se icios de
e ce os a a és de in e ne .
La ma cha del abajo no p osiguió has a oc ub e de 2019, sin emba go, ya du an e los meses de
e ano y el comienzo del p ime cua imes e de 2019-2020, me sen ía in e esado po e cómo podíamos
soluciona el p oblema, po lo que hice una se ie de apun es es udiando concep os de c ip og a ía de cla e
pública como RSA/DSA, hash c ip og á icos como SHA-1, sis emas c ip og á icos como GPG y lo que
pensábamos que e a más impo an e, ce i icados X.509. Indico que pensábamos que dichos ce i icados
e an la pieza más impo an e pues o que la idea inicial de la agmen ación de c edenciales e a la modi i-
cación de la especi icación de los mismos pa a adap a es a nue a uncionalidad. Comenzando ya de lleno
en oc ub e empezamos a e lexiona sob e cómo se ha ía dicha modi icación, como ayuda Juan Ca los me
p es ó el lib o “C yp og aphy and Ne wo k Secu i y, P inciples and P ac ice”. Since amen e el lib o me
ayudó eno memen e y lo ecomenda ía especialmen e pa a alumnos que es én iniciándose en los emas
de cibe segu idad, sin emba go, el lib o me hizo en ende una se ie de di icul ades g a es que plan eaban
los ce i icados X.509. Al in y al cabo se a a de una especi icación de hace más de 20 años y no pa ecía
lo su icien emen e adap able a lo que buscábamos pues soluciones del ipo ene una cla e pública pa a
cada c edencial e an o almen e in iables.
Dos semanas más a de el 29 de oc ub e de 2019 su ge la g an e elación que u e pa a la ealización
del abajo. T as días buscando in o mación sob e el ema, me encon é con el p oyec o Reboo ing Web o
T us . Con o me ui in o mándome más y más sob e el p oyec o, me di cuen a de que e a exac amen e el
p oblema que que íamos esol e . En un p incipio me su gió un sen imien o de p eocupación pues la idea
del abajo e a a anza en algo que uese ú il y que no es u iese esuel o, sin emba go es e sen imien o
ápidamen e desapa eció cuando conocí que Reboo ing Web o T us e a un p oyec o ex emadamen e
no edoso (Diciemb e de 2015 has a la ac ualidad). Es o que ía deci que p ime o de odo es ábamos an e
un ema que de g an in e és a ni el de in es igación y segundo oda ía no exis ía ninguna implemen ación
come cial de los concep os del p oyec o po lo que e a el momen o pe ec o pa a hace una apo ación.
La cla e que hacía di e i la iloso ía con la que habíamos seguido has a el momen o es que aho a no
nos apoya íamos en una modi icación del X.509, sino que nos apoya íamos en edes descen alizadas
blockchain. Sob ecogido po un sen imien o de pasión sob e el abajo, en ié un co eo ese mismo día a
Juan Ca los pa a euni nos el jue es de esa misma semana y explica le la nue a p opues a.
Así comenzó la idea del abajo al y como se le da a conoce en es e esc i o al lec o , pues la p opues a
esul ó se un éxi o. En ese momen o e a conscien e de que el abajo ya iba a se más complicado de lo
espe ado po que en el g ado de in o má ica apenas se es udian concep os de blockchain, pe o mis ganas
56 3. Conclusiones
de sabe que habíamos encon ado un ema apasionan e supe aban cualquie emo de cómo segui con
el abajo. El i mo de abajo cons an e comenzó con el segundo cua imes e en el cuál ealiza íamos
euniones semanalmen e en las que comen ábamos odos los a ances que había ealizado du an e la
semana an e io . Empecé un la go eco ido de in es igación de odas las he amien as que necesi ábamos
en el abajo, ap endiendo cada ez más sob e emas de blockchain, es udiando el uncionamien o de los
documen os DID que demos a ían se undamen ales más a de...
A mi ad del desa ollo del abajo llegué al pun o que me esul ó más di icul oso con di e encia: enía
que hace la implemen ación de la ed descen alizada que nos si iese como base pa a esol e el p oblema
de las iden idades pa ciales. Lo impo an e e a que en ez de hace un p o o ipo de ed descen alizada
po mi pa e, al y como me sugi ió Juan Ca los e a mucho más in e esan e usa algún p oyec o open
sou ce que ya implemen ase una y modi ica lo. A aíz de es o encon é el p oyec o Hype ledge Fab ic y
con ello la pa e más complicada del abajo.
La pues a en ma cha de Hype ledge Fab ic esul ó se ealmen e di ícil. P ime o in en é hace oda
la ins alación en un sis ema ope a i o Windows pe o después de un día en e o p obando sin éxi o decidí
ins ala una máquina i ual e ins ala lo sob e Ubun u. Es o supuso un g an a ance pues ya podía
empeza a ins ala las más de 4 he amien as dis in as que equie e el p oyec o, sin emba go, empecé a
expe imen a nume osos e o es de ejecución pues dichas he amien as había que ins ala las con e siones
especí icas y no con las más mode nas. Después de un in de semana en e o de p uebas sin pa a ui al
in capaz de ejecu a el ejemplo “Building my Fi s Ne wo k” que p opo ciona Hype ledge Fab ic. Yo
di ía que a pa i de aquí el abajo ue a un i mo ideal pues en es e momen o ya sabía exac amen e qué
enía que hace y además ya enía la base pa a comenza , po lo que lo que p ocedía ya no e a más que
una cues ión de abaja las ho as que hicie an al a pa a lle a lo a cabo.
Es o concluye un esumen de odas las ases po las que ha pasado es e abajo de in de g ado desde
su génesis. Since amen e c eo que ha sido una expe iencia en iquecedo a académicamen e en una g an
a iedad de aspec os. Po un lado he ap endido en p o undidad sob e emas muy no edosos de la ingenie ía
in o má ica como son las edes blockchain, po o o lado mi dominio de concep os de cibe segu idad se
ha is o ampliamen e inc emen ado. La e dad es que nunca pensé en un p incipio que ap ende ía an o
de es e abajo y al inal acabé con la imp esión de que me ha enseñado mucho más que lo que es udio
en una asigna u a usual.
Me gus a ía dedica es e úl imo pá a o pa a ag adece le a Juan Ca los Fabe o po su excelen e labo
como di ec o . Desde un p incipio mos ó un g an in e és en el ema y es o p o ocaba que aumen ase mi
mo i ación po a anza lo. Además no ue solo su g an in e és, al y como comen é, odas las semanas
eníamos euniones en las que hacíamos un seguimien o del con enido del TFG, es o me demos ó que
es aba ealizando un ex enso abajo y que se p eocupaba since amen e po asegu a que la e olución del
abajo e a la debe ía. Po odo ello, quie o ag adece le una ez más a Juan Ca los su labo , indicando
que el ni el de la calidad en es e abajo no hab ía sido posible sin su apo ación.
Capí ulo 4
Apéndices
4.1. In aes uc u a de Cla e Pública - PKI
Las siglas PKI co esponde a Public Key In aes uc u e, co esponde a un conjun o de polí icas an o
so wa e como ha dwa e que se han de segui pa a pode ob ene una comunicación segu a median e el
uso de ce i icados digi ales.
Los p o ocolos de enc ip ación que se usan (p incipalmen e RSA y DSA), eco damos que se basan en
un sis ema asimé ico de cla e pública y cla e p i ada. Es o p o oca la apa ición de un p oblema: ene
alguna o ma de e i ica que una cla e pública conc e a, ealmen e pe enece a la o ganización/pe sona
a la que que emos en ia el mensaje; ya que, un e ce indi iduo malicioso pod ía p opo ciona una cla e
pública dis in a suplan ando una iden idad. Pa a ello es necesa io:
CA: Ce i ica e Au ho i y son las o ganizaciones que emi en los ce i icados digi ales, las más g andes
que comp enden un o al de 75% de los ce i icados son Syman ec, Comodo y GoDaddy.
RA: Regis a ion Au ho i y su obje i o es el de p omo e el uso de un es ánda que se ha escogido
po con enio pa a acili a las in e acciones de la in aes uc u a.
VA: Ve i icacion Au ho i y, es deci una o ganización de con ianza que se enca gue de e i ica que
en e ec o cada cla e pública pe enece a la iden idad co espondien e.
Figu a 4.1: Esquema con los p ocedimien os de inidos en la in aes uc u a de cla e pública.