Una cadena de bloques es un registro de transacciones distribuido resistente a la manipulación. Emplea criptografía para garantizar que sus registros no se alteren ni destruyan, y no depende de una autoridad central de confianza. Las cadenas de bloques se asocian con mayor frecuencia con criptomonedas y transacciones financieras, pero también se utilizan para facilitar contratos inteligentes y otras transacciones digitales.
Aunque las cadenas de bloques no son un concepto completamente nuevo (han existido durante casi 15 años), se están volviendo más ampliamente utilizadas y aceptadas. Muchas personas y organizaciones ya están utilizando blockchains, y constantemente se prueban nuevos usos para blockchains. Desafortunadamente, a medida que ha crecido su popularidad, también lo ha hecho el interés de los atacantes por atacarlos. Si no se tiene en cuenta la seguridad de las cadenas de bloques, su dinero y sus transacciones correrán un grave riesgo de interrupción y robo.
¿Cómo funciona la seguridad en la tecnología blockchain?
La tecnología Blockchain crea un libro mayor distribuido de transacciones que utiliza criptografía para salvaguardar su integridad. En una cadena de bloques, los datos de una o más transacciones nuevas se agrupan en un bloque. Los participantes de Blockchain realizan cálculos criptográficos complejos (llamados minería), a menudo compitiendo para ser el primero en resolver el problema. El resultado es un hash criptográfico para el nuevo bloque que representa el hash criptográfico del bloque anterior.
A continuación, el bloque que contiene el nuevo hash se proporciona a los participantes de la crimson blockchain. Los participantes verifican el bloque realizando cálculos sobre él. Si es válido, lo agregan a su copia de la cadena de bloques. Una vez que la mayoría de los participantes acuerdan que el bloque es válido, el bloque se agrega a través de la crimson blockchain. No se permiten más cambios en ese bloque.
Este enfoque evita tener una autoridad central en la que se deba confiar en medio de las transacciones. También evita tener un único punto de falla para la cadena de bloques. El uso del hash del bloque anterior al calcular el nuevo bloque significa que todos los participantes de la cadena de bloques pueden detectar fácilmente cualquier intento de cambiar o eliminar un bloque. Esto hace que las cadenas de bloques sean casi a prueba de manipulaciones.
¿Qué tan segura es la tecnología blockchain?
Una concept errónea común es que toda la tecnología blockchain está bien protegida porque se basa en la criptografía. Si bien es cierto que todas las cadenas de bloques usan criptografía, hay dos advertencias importantes:
- Fundamentalmente, las cadenas de bloques son código de software, por lo que son propensas a los mismos tipos de vulnerabilidades que afectan a otros programas a lo largo de sus ciclos de vida.
- Puede haber grandes diferencias en la fuerza de los algoritmos criptográficos y las longitudes de las claves, así como en sus implementaciones. La gestión eficaz de claves criptográficas también es importante para mantener segura una cadena de bloques.
La tecnología Blockchain no es inherentemente más o menos segura que otras tecnologías.
Explicación de los diferentes tipos de seguridad de blockchain
En un alto nivel, los tipos de cadenas de bloques se basan en sus modelos de management de acceso:
- Una cadena de bloques pública (también llamada cadena de bloques sin permiso) no tiene restricciones sobre quién puede acceder a ella o publicar nuevos bloques. Los participantes de Blockchain pueden ser anónimos.
- Una cadena de bloques privada (también conocida como cadena de bloques autorizada) restringe quién puede publicar nuevos bloques. También podría restringir quién puede acceder a la cadena de bloques. Cada usuario de la cadena de bloques debe estar identificado y autenticado. Tal cadena de bloques puede ser controlada por un grupo (una cadena de bloques de consorcio) o por un individuo.
- Una cadena de bloques híbrida se refiere a tener cadenas de bloques públicas y privadas que son interoperables, esencialmente formando una cadena de bloques de cadenas de bloques.
Debido a que las cadenas de bloques públicas son inherentemente accesibles para todos y no realizan ninguna autenticación de usuario, son mucho más fáciles de atacar y comprometer para los atacantes que las cadenas de bloques privadas. El resto de este artículo se centra principalmente en la seguridad pública de la cadena de bloques.
Amenazas comunes a la seguridad de blockchain
Las cadenas de bloques públicas se basan en llegar a un consenso entre sus participantes. Existen numerosos modelos de consenso para blockchains, y cada uno tiene fortalezas y debilidades de seguridad que lo hacen más adecuado para ciertas situaciones. Un modelo de consenso común se llama prueba de trabajo. Los participantes resuelven problemas difíciles que requieren un poder de cómputo significativo, y producir la solución correcta al problema es una prueba de que un participante se ha esforzado y esencialmente se ha ganado el derecho a lanzar el nuevo bloque.
Desafortunadamente, debido a que las cadenas de bloques públicas permiten que cualquiera participe, los atacantes tienen muchas formas de interrumpir el consenso. Una amenaza común, un ataque sybil, implica que un atacante agregue un grupo de participantes falsos a una crimson de cadena de bloques. Esto puede dar al atacante el management de la mayoría de los participantes. Ahora el atacante puede crear transacciones falsas y hacer que los participantes falsos las «validen». Una amenaza equivalent, llamada ataque del 51 %, involucra a un atacante o grupo de atacantes que se unen para formar un grupo de minería que hace más del 50 % de la minería de una cadena de bloques.
Hay muchas otras amenazas que generalmente afectan a todo el computer software:
- Ataques de enrutamiento, en los que un atacante manipula las configuraciones de enrutamiento para poder interceptar el tráfico de pink de la cadena de bloques sin cifrar y acceder a él o modificarlo.
- Ataques de phishing, en los que un atacante utiliza métodos de ingeniería social para robar las credenciales de los participantes de la cadena de bloques, como claves privadas y frases de contraseña.
- Ataques de denegación de servicio, como inundar una cadena de bloques con una gran cantidad de solicitudes para evitar que funcione.
También existen amenazas específicas para las aplicaciones de blockchain. Por ejemplo, el doble gasto es cuando alguien intenta gastar la misma criptomoneda en dos lugares al mismo tiempo. Los contratos inteligentes, que son aplicaciones de cadena de bloques que realizan transacciones y otros procesos de acuerdo con un conjunto de reglas definidas en su código de programa, tienen vulnerabilidades específicas contra las que protegerse.
Las mejores prácticas para proteger las redes blockchain
Aquí hay cinco mejores prácticas para proteger sus redes blockchain:
- Asegúrese de que una cadena de bloques sea adecuada para las transacciones que registraría. Si los registros contienen información particular u otra información confidencial, una cadena de bloques podría exponerla sin darse cuenta y provocar una filtración de datos. Otra consideración es si las transacciones son realmente definitivas una vez que se realizan o si necesita flexibilidad para modificar o eliminar transacciones anteriores.
- Recuerde que las cadenas de bloques están sujetas a todas las leyes, regulaciones y otros requisitos de ciberseguridad y privacidad que cualquier otro software package debe cumplir a lo largo de su ciclo de vida.
- La gestión de la identidad es importante. Incluso en las redes públicas de blockchain, los participantes deben saber que se están comunicando con la crimson legítima. Para las redes privadas de blockchain, la gestión de acceso es increíblemente importante para evitar que los atacantes obtengan acceso no autorizado a la crimson.
- Realice evaluaciones de riesgo y auditorías periódicas de la tecnología blockchain y los procesos relacionados, como la gestión de claves, y identify cómo manejar las vulnerabilidades descubiertas u otras debilidades.
- Planifica para lo peor. Se podría encontrar una nueva vulnerabilidad importante en el código de la cadena de bloques, se podría robar una clave privada, las computadoras de los participantes podrían verse comprometidas muchas cosas pueden salir mal. Esté preparado teniendo procesos de respuesta y recuperación implementados con anticipación. También puede haber disputas entre los participantes, así que prepárese para resolverlas también para evitar que se interrumpa su cadena de bloques.