Comunicado COVID-19

Seguimos trabajando y atendiendo a alumnos actuales y futuros

Ampliar información

Analizando la cadena de bloques en materia de ciberseguridad con diseño de un “smart contract” para el despliegue de token criptográfico y su uso con transacciones sobre “Wallets” para el conjunto de empleados de una organización sobre Blockchain Pública

Por Alberto José Oporto Márquez

Compártelo:

codigo

31 de Dic de 2020 · Informática y TICS

Con el desarrollo de este TFM he querido explorar la tecnología disruptiva de la cadena de bloques o Blockchain desde dos enfoques principales:
Por un lado, desde el enfoque teórico de la ciberseguridad, analizando las ventajas que aporta a la seguridad de la información. Al mismo tiempo a sus características positivas como método de almacenamiento, donde se demuestra la dificultad en la progresión de los ataques, la disminución significativa de los riesgos a pesar de estar expuestos en la red y en general sobre todas aquellas amenazas que puedan comprometer a la información.
Por otra parte desde un enfoque práctico  desarrollando un supuesto donde se diseña, reparte y despliega un token criptográfico sobre la cadena de bloques para usarlo  en una organización como método de pago o recompensa.
Mediante ambos enfoques se pretende acercar al lector a conocer las características, ventajas y posibilidades del Blockchain, aplicándolo a un caso práctico donde esta tecnología puede ayudar en diferentes situaciones a un determinado sector garantizando en su uso y tratamiento los principios básicos de la seguridad.
El uso de esta nueva tecnología en sus distintas tipologías permite que los datos se almacenen mediante bloques firmados criptográficamente, dotando por tanto a estos datos de las propiedades exclusivas de integridad y confidencialidad sobre una estructura de almacenamiento completamente trazable lo que lo hace muy difícil de comprometer.

¿Te resulta interesante?

¡Guarda este contenido completo en PDF!

Descarga gratis este contenido y consúltalo cuando lo necesites

1. Introducción

En la actualidad las nuevas tecnologías conviven con nosotros de forma cada vez más amplia y natural, simplificando y facilitando procesos en multitud de ámbitos. Dentro de estos procesos es habitual el almacenamiento o transacciones de datos sobre elementos dispuestos en servidores que nos permiten compartir y acceder a esta información.
A medida que los usuarios se han ido familiarizando con estos sistemas centralizados donde reside su información, al mismo tiempo se ha generado un cierto grado de desconfianza sobre dónde se almacenan sus datos, cómo son manipulados por terceros o garantizados ante cualquier tipo de amenaza.
Es por estas cuestiones por las que se estudia el formato de almacenamiento de la “cadena de bloques” o “Blockchain” que permite estructurar, almacenar  y compartir información de forma descentralizada y que debido a sus características y diseño garantizan los principios de disponibilidad, autenticidad, integridad y confidencialidad de la seguridad de la información.
Debido a sus capacidades frente a la seguridad y sus propiedades de trazabilidad, mediante esta tecnología aparece el llamado ‘token criptográfico’, como modo de intercambio seguro que aporta las ventajas de la privacidad y la transparencia que a lo largo del tiempo se han ido perdiendo con el uso de las tecnologías actuales y las formas de pago e intercambio tradicionales.
Durante este trabajo se profundiza por tanto en el uso y las propiedades de esta tecnología, centrándonos en las Blockchain Públicas más conocidas como Bitcoin o Ethereum, y demostrando mediante un supuesto práctico cómo desplegar un token criptográfico de tipo ERC20 apoyado sobre esta tecnología, sustentada por un contrato inteligente que nos permitirá emitir, distribuir e intercambiar dicho token entre los usuarios mediante carteras electrónicas.

 

2. Cuerpo

2.1. La cadena de bloques o Blockchain. Propiedades.

La nueva tecnología de Blockchain aparece como nuevo método de almacenamiento y distribución de la información mediante bloques entrelazados que facilitan la recuperación de la información y la verificación de que los datos no han sido alterados. Los bloques de información se enlazan mediante un código criptográfico que conectan el bloque actual con el anterior y así sucesivamente hasta llegar al bloque de origen.
Sus componentes claves de funcionamiento son los Bloques que son el conjunto de transacciones únicas realizadas en la red y que son verificadas y confirmadas mediante minería cada tiempo determinado para garantizar su validez.
Los Nodos que son aquellos dispositivos que distribuyen una copia actualizada en tiempo real de la cadena de bloques. Sin los nodos no podrían transmitirse los bloques de información.
Y finalmente el Hash Criptográfico que es aquel identificador único que se registra sobre el bloque de información para garantizar su integridad.

Bitcoin

Figura 1: Estructura interna Blockchain Bitcoin
Fuente: https://medium.com/@skj48817/merkle-trees-introduction-to-blockchain-c80c0247046

Mediante estos componentes la cadena de bloques impide que se pueda alterar la información una vez registrado estos bloques. Una vez que se ha grabado un dato o se ha realizado una transacción en la cadena de bloques, es imposible de eliminar, o, mejor dicho, “es extremadamente fácil darse cuenta de que alguien intenta modificar alguna información”, debido a que se necesitaría el consenso de todos los nodos.

Esta nueva tecnología dispone de una serie de propiedades principales que la diferencian de los mecanismos de almacenamiento tradicionales, como son la replicación transaccional punto a punto garantizando redundancia de los datos y aumentando su disponibilidad mediante la propagación de los datos casi en tiempo real entre los nodos. Esta propagación mantiene una copia idéntica de los datos entre los nodos dispuestos en la red.

La Descentralización, donde lo datos al encontrarse replicados en diferentes nodos no residen en un servidor central lo que aporta una mayor tolerancia a los ataques puesto que las amenazas no pueden ir dirigidas a un único punto. Además, esta descentralización como una de las propiedades más controvertidas en los últimos tiempos, aportan más confianza como el experto y creador de la red Ethereum, "Vitalik Butterin” defienden en una de sus célebres citas:

“Las cadenas de bloques están políticamente descentralizadas (no hay nadie que las controle) y arquitectónicamente descentralizadas (no hay punto central de fallo de infraestructura) pero están lógicamente centralizadas (hay un estado comúnmente acordado y el sistema se comporta como una sola computadora)”.

En este sentido la descentralización aporta mayor transparencia puesto que la información se encuentra distribuida mediante un protocolo que procesa las transacciones entre los diferentes nodos sin intereses mutuos de forma totalmente anónima. Este procesamiento utiliza diferentes técnicas criptográficas para garantizar la privacidad y el anonimato como el llamado zk-Snarks introducido sobre la red Ethereum donde la finalidad principal es garantizar durante todo el proceso la Integridad, la Solidez, y el Conocimiento Cero.
Su transparencia queda probada de manera pública. Todas las transacciones y validaciones de los bloques quedan registradas en la red y pueden ser consultada en tiempo real de manera digital y abierta mediante diferentes plataformas como https://www.blockchain.com/explorer que enlazan con la cadena de bloques.  
Por tanto, cualquier interesado puede consultar los datos teniendo la certeza de que no han sido alterados debido al sellado de tiempo que se genera entre los bloques de información.

Figura 2

Figura 2: Datos relativos a los bloques confirmados, Fuente: https://www.blockchain.com/es/explorer

La inmutabilidad de los datos hace que la transacción procesada no pueda modificarse o deshacerse por un usuario a voluntad, ya que el carácter distribuido de los bloques se encuentra tan disperso en la red y descentralizado, que necesitaría que todos los nodos participantes en la confirmación de los bloques estuvieran de acuerdo para validar esta modificación.

Para que pudieran seguir existiendo estos sistemas Blockchain Públicos y se mantuviese su espíritu descentralizado es necesario que existan protocolos o sistemas de consenso, que en función de las características y propiedades de la red permitan mediante el algoritmo empleado, repartir o compensar a los usuarios durante el flujo de la validación de bloques de la cadena de una forma consensuada y justa para todos.

Durante los últimos años se ha empleado el sistema Pos, o Prueba de participación, que es una evolución del antiguo Pow o Prueba de trabajo donde el peso sobre la red depende del nivel de participación. Este nivel de participación en el caso de Blockchain va ligada a la cantidad de criptomonedas en posesión, como en el caso de la criptomoneda Peercoin.

La compensación por tanto premia con menor dificultad al confirmarse los bloques, pero este tipo de sistemas de consenso han demostrado una serie de problemas como la llamada Exposición de las monedas donde la probabilidad de encontrar un bloque de transacciones es directamente proporcional a la cantidad de monedas que el minero tiene acumuladas, lo cual en primera instancia implica que el monedero que se emplea esté conectado a la red.

Otro de los problemas encontrados es el Ataque al 51%, donde si el factor de participación de un minero es superior al 51%, podría mantener el control total de la cadena e bloques ya que para mantenerlo solo tendría que minar siempre por encima de sus propios bloques llegando a aproximarse poco a tener una participación el 100%.

Figura 3

Figura 3: Infografía sobre la consecuencia del ataque del 51% en una Blockchain
Fuente: https://www.criptomonedasworld.com/diccionario-criptomonedas/

Como solución a las problemáticas surgidas en este tipo de sistemas de consenso y su confianza, aparece el sistema de Prueba de Importancia, que aplica por ejemplo el criptoactivo XEM donde no se prima expresamente el nivel de posesión de criptomonedas a la hora de realizar la compensación, sino que en el cálculo tiene en cuenta también las interacciones y transacciones que haga ese participante con otros.
Estos sistemas de compensación están constantemente siendo revisados por la comunidad abierta Blockchain donde se pretenden fortalecer su seguridad y mejorar los algoritmos de validación que determinan la elección del participante o minero más justo que recibe una compensación por su labor de sostenimiento de la red.

2.2. Ventajas de un sistema descentralizado. Cuestionamiento de la seguridad.

Una de las principales ventajas de un sistema descentralizado es su naturaleza distribuida lo que genera mayor trasparencia, seguridad y debido a su arquitectura y como se enlazan sus datos a la disponibilidad de la información.
Por ello se reducen los tiempos de espera de procesamiento de datos y el gasto computacional se ve notablemente reducido, sin necesidades urgentes de escalabilidad.
Esta descentralización de los datos, disminuye la probabilidad de ataques Dos y ataques DDos por no poder sobrecargar o interrumpir los servicios de un nodo central. Por estos mismos principios los ataques SQLi o ataques DNS serían inviables puesto que la base de datos o los servidores de nombre de Blockchain no residen en ningún lugar concreto. Su naturaleza distribuida neutraliza esto.
En este sentido se reducen los ataques de Fuerza Bruta puesto que las longitudes de clave empleadas utilizan criptografía asimétrica de 3.248 bits dividida en 2 claves, una pública y otra privada que se encuentra vinculadas entre sí mediante una función unidireccional que es capaz de calcular la clave pública a partir de la clave privada, pero no al revés.

Figura 4

Fuente: https://blockchain.grantthornton.es/criptografia-basica-para-entender-la-tecnologia-blockchain/
La tecnología Blockchain como sistema construido pensando en la seguridad aporta numerosas ventajas en problemas de este tipo conocidos, y la mayor parte de sus defectos son aquellos donde se depende de protocolos y almacenamiento de claves sobre dispositivos de hardware que puedan presentar vulnerabilidades en su diseño, como ya ocurrió en la popular billetera “Ledger”, que permitía recibir ataques de tipo MitM.

Según el informe de McAfee “Blockchain consumers are often the easiest targets—due to a start-up mentality in which security takes a backseat to growth“, publicado en el año 2017 se revelaron un conjunto de problemas, muchos de ellos basados en técnicas viejas conocidas como son Phishing, donde un usuario pueden suplantar la identidad de otro a partir de técnicas de ingeniería social que conlleven el robo de las claves privadas de sus carteras y por consiguiente realice operaciones bancarias.
Recientemente además se ha hecho muy popular el uso de malware de tipo Rasomware que extorsiona a los usuarios afectados para desbloquear sus archivos previo pago en criptomoneda, y que según recoge el informe anterior sucedió con la variante HC7 de la herramienta HideenTear para fines éticos. Este tipo de técnicas suelen ser muy recurridas por los atacantes dada la descentralización y anonimato que se produce en las transferencias sobre critpoactivos.
Otro de los problemas descritos es el llamado Criptohacking cuyo cometido es aprovechar el poder de cómputo de un equipo para realizar operaciones de minado previo ataque exitoso, como ya ocurrió en Enero de 2018 cuando Youtube reportó que algunas de las propagandas que se realizaban en su portal estaban siendo sometidas a minería de este tipo, también conocida como minería web (Fuente: https://www.telegraph.co.uk/technology/2018/01/29/youtube-shuts-hidden-crypto-jacking-adverts/), o como recientemente ha ocurrido en uno de los servidores centrales de Tesla alojado en la nube de Amazon (Fuente: https://www.elcomercio.com/guaifai/hackean-servidor-tesla-nube-amazon.html).

Los descubrimientos de estas incidencias derivan en buscar soluciones, por ejemplo, para evitar la minería web sin consentimiento, es recomendable seguir unas buenas prácticas como la observación periódica del rendimiento esperable de los ordenadores, uso de extensiones y bloqueadores en los navegadores, así como todos aquello complementos de seguridad que puedan bloquear dichos códigos.
No obstante, descritas estas vulnerabilidades, la tecnología Blockchain sigue siendo robusta y tal como afirma McAfee en dicho informe, “cuanto más se acerca al núcleo de la misma, más difícil es obtener éxito con un ataque, aunque pueda variar en función del tipo de red”.

2.3. Análisis de tráfico sobre una red Blockchain mediante Wireshark. Disectores

Para entender el funcionamiento de los bloques de información que se procesan sobre una red Blockchain como Bitcoin o Ethereum y comprobar su comportamiento he analizado el tráfico de datos de manera didáctica.
En a la descomposición de las tramas de información que pasan por la red, se han empleado Disectores escritos en C y que aprovechan el protocolo TCP 8333 para descomponer las transacciones y descubrir las tramas de la red donde podemos observar los caminos que atraviesan los paquetes que circulan y que no tienen una copia completa de la cadena.

En la siguiente figura se evidencia un paquete referido al protocolo Bitcoin, donde se aprecia el envío de una transacción de prueba mediante el puerto TCP 8333 hacia la red.

Protocolo Bitcoin

A continuación, se demuestra cómo se ha minado la transacción anterior y confirmado en el bloque, quedando asignada en un apuntador hash que en Wireshark aparecerá de forma invertida en el valor Data hash:
(0000000000000001a27b1d6eb8c405410398ece796e742da3b3e35363c2219ee)

Transacion

Debido al diseño de las redes Blockchain los datos dispuestos sobre lo bloques de información evidencian el entrelazamiento que sucede entre los diferentes nodos y su confirmación como bloque. Sin embargo, dada su naturaliza anónima y su seguridad criptográfica no es posible determinar ni concluir el contenido de la información de la transacción procesada.


2.4. Diseño de token criptográfico ERC20

Finalmente ateniendo al enfoque práctico de este trabajo, se diseña un token criptográfico respetando los principios de la Blockchain mediante el diseño de un Smart contract, o contrato inteligente sobre la red Ethereum que permita premiar e incentivar a los empleados por la realización de tiempo extra de trabajo por circunstancias de la producción durante el año.
Este tipo de soluciones pueden aplicarse en multitud de situaciones donde queramos aprovechar las ventajas de la Blockchain en materia de seguridad, integridad, velocidad y disponibilidad y ahorrando en costes de almacenamiento y alojamiento de datos.
Para la creación de un contrato inteligente es necesario desplegar el token criptográfico que emplearemos entre los interesados en la red.

Este contrato inteligente lo diseñaremos con la herramienta de programación “Solidity v.0.4.22”, y para su creación y gestión emplearemos las carteras de Metamask como extensión en el navegador, con el objetivo de conseguir el siguiente esquema de comportamiento:

Esquema de comportamiento

Figura 1: Esquema de comportamiento del token criptográfico personalizado
 
Es importante tener en cuenta que el despliegue sobre la red Ethereum de un contrato a la espera de que un nodo lo procese y se confirme, conlleva un coste en criptomoneda ‘Ethers’ que deberemos asumir desde una cuenta en alguna de las múltiples casas de cambio disponibles actualmente. Por citar algunos ejemplos conocidos es posible usar Coinbase, Binance…
Por lo que una vez recibida la cantidad fijada para la red sobre la cuenta principal de Metamask podremos crear el contrato:

No transaction

De la misma forma la recepción de la cantidad fijada en la cuenta de origen ha pasado por un proceso de validación y confirmación en la red Blockchain que como vimos anteriormente puede ser inspeccionada desde los diferentes servicios habilitados para ello en Internet, dejando una constancia trazable e inmutable de consulta pública.
Con la cuenta ya preparada se diseña el token criptográfico que denonimamos TPUS bajo compilación sobre la versión 0.4.25.

codigo

Tras su programación es el momento adecuado para lanzarlo a la red y esperar su confirmación:

Lanzamiento del contrato

Figura 2: Lanzamiento del contrato en espera de su confirmación

Tras unos minutos el token TEMPUS (TPUS) se encuentra activo en la red con los atributos dispuestos en el código y que podemos visualizar sobre el servicio de consulta de transacciones Etherscan:

Estado del token

Figura 3: Estado del token activo en la red tras su minado

Dispuesto el token en la red, se procede a añadirlo a la cuenta de desarrollo que llamamos “TEMPUS”, desde la cual se repartirán los depósitos tokens a los empleados de la Organización para que puedan ser canjeados con el responsable como se determine. Este responsable del control actuará como un Oráculo del sistema físico, que no requiere de los protocolos de consenso computacionalmente caros, como “Proof of Work” (PoW) o “Proof of Stake” (PoS), y que hemos visto anteriormente, dado que al operar con identidades conocidas (los trabajadores por su clave pública) simplifica en gran medida la mecánica de consenso en una transacción de token de seguridad y por tanto el sistema de compensación que se determine.

Aclarados estos conceptos y con el token activo en la red el responsable procede a realizar los repartos de tokens a los empleados en concepto de compensación mediante la red Blockchain hacia la dirección de sus carteras electrónicas que preferiblemente se ha optado por Metamask por su integración con el navegador. Durante este proceso los nodos de la red comienzan a realizar su trabajo procesamiento y confirmación.

Transaccion tokens

Una vez confirmada la transacción el empleado ha recibido los tokens a su cartera electrónica quedando evidenciado sobre la Blockchain y que pueden ser seguidas desde las habituales herramientas de inspección de la red que vimos anteriormente.

Transaccion 44 segundos

Figura 5: Estado confirmado de la transacción en 44 segundos

3. Conclusiones

Como podemos consultar en este trabajo, las redes Blockchain se han construido pensando en la seguridad, la transparencia y la confianza.
En este sentido aplicar soluciones enfocadas con estas tecnologías reduce la exposición de ataque en la red al mismo tiempo que reduce los costes que supone adecuar las instalaciones para garantizar el alojamiento, la seguridad e integridad de la información.
Su índole pública y su entrelazamiento entre nodos desinteresados dispuestos en la red, genera mayor confianza en determinadas operaciones donde no existen intermediarios.
Durante el desarrollo sobre un enfoque práctico se ha demostrado que las organizaciones pueden usar dichas tecnologías donde apoyarse para realizar pagos, a una velocidad muy superior que mediante tecnologías tradicionales, sin altas comisiones ni trabas geográficas, y con la garantía de disponibilidad constante.
Además, gracias a las virtudes de las propiedades estudiadas en este trabajo los registros confirmados en la red son inmutables, completamente trazables y anónimos garantizando la protección de datos.

 

Referencias

Accenture (20/09/2016). “Why distributed ledger technology must adapt to an imperfect world”. https://www.accenture.com/_acnmedia/pdf-33/accenture-editing-uneditable-blockchain.pdf

Adams, C. (Entrust), Cain, P. (BBN), Pinkas, D. (Integris), Zuccherato, R. (Entrust) - (Network Working Group). (08/2001). “Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP)”. https://tools.ietf.org/html/rfc3161

NEM Platform. (23/02/2018). “NEM Technical Reference 1.2.1”  https://nemplatform.com/wp-content/uploads/2020/05/NEM_techRef.pdf

McFarland, C. Hux, T. Wuehler, E. Campbell, S. (06/2018). “Blockchain consumers are often the easiest targets—due to a start-up mentality in which security takes a backseat to growth” https://www.mcafee.com/enterprise/en-us/assets/reports/rp-blockchain-security-risks.pdf

Superintendencia Nacional de Criptoactivos y Actividades conexas, Gobierno Bolivariano de Venezuela. (01/10/2018). “PETRO hacia la revolución digital económica” https://www.petro.gob.ve/assets/descargas/petro-whitepaper.pdf

Bertoni, G., Daemen, J., Peeters, M. and Van Assche, G. ( STMicroelectronics / NXP Semiconductors) (27/10/2008). “Keccak specifications” https://keccak.team/obsolete/Keccak-specifications.pdf

Centro Criptológico Nacional  (23/10/2018). “Informe Código Dañino CCN-CERT ID-26/18” https://www.ccn-cert.cni.es/informes/informes-ccn-cert-publicos/3113-ccn-cert-id-26-18-coinminer-gen/file.html

 

Compártelo:

Valora este artículo:
Ver todos los artículos del área de Informática y TICS
Universidades colaboradoras
La universidad Antonio de Nebrija es Universidad colaboradora con INESEM Business School La universidad a Distancia de Madrid es Universidad colaboradora con INESEM Business School