Aspectos de seguridad de Bitcoin y su aplicación en una alternativa de infraestructura de llave pública



Aspectos de seguridad de Bitcoin y su aplicación en una alternativa de infraestructura de llave pública

Abraham Jesús Basurto Becerra
 

Texto completo de la Tesis            Video del evento          

 



Resumen

 

Cuando se emplea criptografía de llave asimétrica en una comunicación es imprescindible el poder verificar que la llave pública de una entidad es auténtica. En caso de no ser esto posible se corre el riesgo de sufrir un ataque del intruso de en medio, entre otros, comprometiendo de esta manera la seguridad de la comunicación. En los albores de la criptografía de llave pública, en su artículo seminal de 1976, Whitfield Diffie y Martin Hellman propusieron un directorio público donde se colocarían las llaves de cifrado junto con el nombre y la dirección del propietario. Ellos consideraron que el problema del acceso a éste era fácil de resolver, ya que la lectura siempre estaría permitida y como la escritura sería ocasional, se podían emplear elaborados mecanismos de protección. En 1978, Loren Kohnfelder propuso el concepto de certificados digitales. En ellos, una autoridad certificadora enlaza un nombre a una llave pública mediante una firma electrónica. La Unión Internacional de Telecomunicaciones adoptó los certificados y realizó el estándar X.509 en 1988, mismo que ha sido adoptado por la industria como el modelo a emplear en infraestructura de llave pública. El objetivo principal del desarrollo de la infraestructura de llave pública es: hacer posible la obtención de llaves públicas de manera segura, conveniente y eficiente. La objeción principal a los sistemas de infraestructura de llave pública basados en X.509 es el empleo del modelo de confianza jerárquico. Se confía ciegamente en las autoridades certificadoras. En el caso de que alguna autoridad certificadora sea comprometida, el atacante puede emitir certificados falsos, suplantando a cualquier entidad que desee, sin generar sospecha alguna de parte de la víctima potencial de tal engaño. Este mismo problema se presenta en la gestión de dinero electrónico confiable y seguro. En los modelos iniciales, como el presentado por David Chaum en 1983, se requería de una tercera entidad (normalmente un banco) la cual debía emitir el dinero electrónico a los usuarios, y en caso de que tal emisor fuera comprometido, el atacante sería capaz de acuñar dinero electrónico a placer. En 2008, Satoshi Nakamoto publicó: Bitcoin: A Peer-to-Peer Electronic Cash System, donde combina varios conceptos desarrollados por propuestas previas de sistemas de dinero electrónico, para lograr un sistema completamente descentralizado. La innovación clave de Bitcoin está en el uso de un sistema distribuido que emplea un algoritmo de "prueba de trabajo", en el que aproximadamente cada diez minutos se lleva a cabo una "elección", permitiendo a la red descentralizada llegar a un consenso global acerca del estado de las transacciones. En Bitcoin no existe una entidad todopoderosa que gobierne la emisión de dinero. Esto se logra empleando una red punto a punto (P2P), en la cual, los participantes concursan para producir nuevas monedas, así como, por obtener una ganancia al procesar y asegurar las transacciones. Bitcoin ha operado desde 2009 sin haberse encontrado alguna vulnerabilidad que comprometa la seguridad del sistema y que, por lo tanto, permita a alguien el poder crear u obtener bitcoins sin seguir el protocolo y competir con los demás participantes. Todas las transacciones realizadas desde el inicio de Bitcoin se encuentran almacenadas en el blockchain —la bitácora global de Bitcoin—. Cada cliente de la red de Bitcoin almacena de forma independiente una copia del blockchain. Su función es prevenir que algún individuo trate de gastar más de una vez una moneda electrónica así como evitar que alguien trate de modificar transacciones ya realizadas. El objetivo de este trabajo es estudiar los conceptos que emplea Bitcoin para asegurar sus transacciones, para posteriormente poder aplicarlos al campo de los sistemas de infraestructura de llave pública, teniendo como finalidad eliminar la necesidad autoridades certificadoras raíz y así lograr un sistema que opere de forma descentralizada. Se propone emplear un blockchain para realizar lo que plantearon hace casi 40 años Diffie y Hellman: un directorio público, con permiso de lectura para cualquiera y con un proceso de escritura realizado por una red punto a punto compitiendo por crear nuevos bloques. Aumentando con cada bloque la dificultad de poder modificar maliciosamente los datos. Al eliminar la necesidad de confianza ciega en una autoridad certificadora se logra una total transparencia en la emisión de certificados raíz. También se diluye el riesgo de compromiso, ya que no existe una entidad central que emita los certificados.

 

Abstract

When asymmetric key cryptography is used to secure a communication, being able to verify an entity’s public key is essential. When this is not possible, there exists a high risk that an oponent may launch successful man-in-the-middle and misbinding-identity attacks, compromising in this way the communication security. At the dawn of public key cryptography, Whitfield Diffie and Martin Hellman in their seminal paper of 1976 proposed a public directory where all the enciphering keys will be placed along with the name and address of the owner. They considered that the access to this directory will be an easy problem, being that reading access will always be granted, and at the same time the data will be infrequently modified. Hence, elaborated write protection mechanisms could be employed. In 1978, Loren Kohnfelder proposed the concept of digital certificates, where a certificate authority binds a name with a public key by using a digital signature. Certificates were adopted by the International Telecommunication Union and employed in the X.509 standard released in 1988, which was embraced by the industry as the de facto model for public key infrastructure. The main goal of the public key infrastructure development is: to make possible obtaining public keys in a secure, convenient and efficient fashion. The principal objection to X.509 based PKI systems is its reliance in the hierarchical trust model. Certification authorities are blindly trusted. In the event that one CA is compromised, the attacker would be able to issue fake certificates, effectively supplanting any raising entity and without any suspicion of the potential victim of the attack. The same problem exists in the secure and reliable management of electronic money. In the initial models, like the one presented by David Chaum in 1983, a trusted third party (normaly a bank) was required to mint and then issue the electronic money to the the users. In the event that the issuer gets compromised, the attacker will be able to issue money at will. In 2008, Satoshi Nakamoto published Bitcoin: A Peer-to-Peer Electronic Cash System, where he combines several concepts previously developed in electronic money systems to achieve a completely decentralized system. The key innovation in Bitcoin is the use of a distributed system that employs a proof-of-work algorithm, in which approximately every 10 minutes an election is performed, this is how the decentralized network reaches consensus about the transactions current state. In Bitcoin, there is no almighty entity that rules the issuing of money. This is achieved by a peer-to-peer network, in which the participants compete to mint new coins and also to obtain a fee by processing and securing the transactions. Bitcoin has been operating since 2009 without any vulnerability being found that compromises the security of the system and by this allowing someone to issue or obtain bitcoins without following the protocol of competing with the other participants. Every transaction made since the beginning of Bitcoin is stored in the blockchain —Bitcoin’s global ledger—. Each client in the Bitcoin network stores an independent copy of the blockchain. Its purpose is to prevent double spending and transaction manipulation. The objective of this work is to apply the concepts that Bitcoin employs to secure its transactions to the field of the public key infrastructure systems, having as a goal getting ridden of the need of root certification authorities and by this enabling a decentralized system. Using a blockchain to achieve what Diffie and Hellman stated almost 40 years ago, a public directory with read access to anyone and a writing process performed by a peer-to-peer network competing to create new blocks is proposed. Increasing with every new block the difficulty of malicious data modifications. By getting ridden of the blind trust in a certification authority, total transparency is achieved in the emission of root certificates. Also the risk of being compromised is disseminated as there does not exist a central certificate issuer.