Mastering Bitcoin

Mastering Bitcoin


12. Seguridad de Bitcoin » Principios de Seguridad » La Raíz de la Confianza

Página 90 de 98

Principios de Seguridad

El principio básico de bitcoin es la descentralización y tiene importantes implicaciones para la seguridad. Un modelo centralizado, como un banco tradicional o una red de pagos, mantiene a los malos actores fuera del sistema mediante el control de acceso y la investigación de antecedentes. En comparación, un sistema descentralizado como bitcoin traslada la responsabilidad y el control a los usuarios. Dado que la seguridad de la red se basa en la prueba de trabajo, no en el control de acceso, la red puede ser abierta y no se requiere cifrado para el tráfico bitcoin.

En una red de pago tradicional, como un sistema de tarjetas de crédito, el pago es de composición abierta, ya que contiene el identificador privado del usuario (el número de tarjeta de crédito). Después de la carga inicial, cualquier persona con acceso al identificador puede «coger» los fondos y cargarlos del propietario una y otra vez. De este modo, la red de pagos tiene que protegerse con encriptación extremo a extremo y debe asegurarse de que no haya espías o intermediarios que puedan comprometer el tráfico de pagos, en tránsito o cuando se almacena (en reposo). Si un actor malintencionado consigue acceso al sistema, puede comprometer las transacciones en curso y los componentes de pago que pueden utilizarse para crear nuevas transacciones. Peor aún, cuando se ven comprometidos los datos de clientes, los clientes están expuestos a robo de identidad y deben tomar medidas para evitar el uso fraudulento de las cuentas comprometidas.

Bitcoin es totalmente diferente. Una transacción bitcoin autoriza solamente un valor específico a un destinatario específico y no puede ser falsificado o modificado. No revela ninguna información privada, como la identidad de las partes, y no puede ser utilizado para autorizar los pagos adicionales.

Por lo tanto, una red de pago bitcoin no necesita ser encriptada o protegida contra escuchas. De hecho, usted puede difundir transacciones bitcoin a través de un canal abierto al público, como WiFi o Bluetooth, sin perder seguridad.

El modelo de seguridad descentralizada de bitcoin pone mucho poder en manos de los usuarios. Con ese poder viene la responsabilidad de mantener la confidencialidad de las claves. Para la mayoría de los usuarios eso no es fácil de hacer, sobre todo en los dispositivos informáticos de propósito general como smartphones o portátiles conectados a Internet. Aunque el modelo descentralizado de bitcoin impide el tipo de exposición generalizada de las tarjetas de crédito, muchos usuarios no son capaces de asegurar adecuadamente sus claves y pueden ser hackeados, uno por uno.

Desarrollando Sistemas Bitcoin de Forma Segura

El principio más importante para los desarrolladores de bitcoin es la descentralización. La mayoría de los desarrolladores estarán familiarizados con modelos de seguridad centralizados y podrían estar tentados a aplicar estos modelos a sus aplicaciones bitcoin, con resultados desastrosos.

La seguridad de bitcoin se basa en el control descentralizado de claves y en la validación independiente de las transacciones por los mineros. Si quiere aprovechar la seguridad de Bitcoin, es necesario asegurarse de que permanezca en el modelo de seguridad de Bitcoin. En términos simples: no dejar el control de las claves lejos de los usuarios y no llevar las transacciones fuera de la cadena de bloques.

Por ejemplo, muchas de las primeras casas de cambio de bitcoin concentraban todos los fondos de los usuarios en una sola cartera «caliente» con las claves almacenadas en un solo servidor. Ese diseño quita el control a los usuarios y centraliza el control de las claves en un solo sistema. Muchos de estos sistemas han sido hackeados, con consecuencias desastrosas para sus clientes.

Otro error común es llevar las transacciones «fuera de la cadena de bloques» en un esfuerzo equivocado para reducir las comisiones de transacción o para acelerar el procesamiento de transacciones. Un sistema «fuera de la cadena de bloques» registrará las transacciones en un libro contable interno, centralizado y solo se sincronizará ocasionalmente con la cadena de bloques de bitcoin. Esta práctica, sustituye la seguridad descentralizada de bitcoin con un enfoque cerrado y centralizado. Cuando las transacciones están «fuera de la cadena de bloques», los libros contables centralizados que no estén adecuadamente asegurados pueden ser falsificados, desviando fondos y agotando las reservas de manera desapercibida.

A menos que usted esté dispuesto a invertir fuertemente en la seguridad operacional, con múltiples capas de control de acceso, y en auditorías (como hacen los bancos tradicionales), debería pensarlo cuidadosamente antes de llevar fondos fuera del contexto de seguridad descentralizada de Bitcoin.

Incluso si tiene los fondos y la disciplina para implementar un modelo de seguridad robusto, ese diseño tan solo replica el frágil modelo de las redes financieras tradicionales, plagadas por el robo de identidad, la corrupción y la malversación de fondos. Para aprovechar el modelo único de seguridad descentralizada de bitcoin, hay que evitar la tentación de arquitecturas centralizadas que podrían hacerle sentirse cómodo, pero que en última instancia, subvierten la seguridad de Bitcoin.

La Raíz de la Confianza

La arquitectura de seguridad tradicional se basa en un concepto llamado raíz de confianza, que es un núcleo confiable que se utiliza como base para la seguridad de todo el sistema o aplicación. La arquitectura de seguridad se desarrolla alrededor de la raíz de confianza como una serie de círculos concéntricos, como las capas de una cebolla, que extiende la confianza hacia el exterior desde el centro. Cada capa se basa en su capa interna, de mayor confianza, utilizando controles de acceso, firmas digitales, cifrado y otras primitivas de seguridad. A medida que los sistemas de software se hacen más complejos, es más probable que contengan errores, que los hagan vulnerables a comprometer la seguridad. Como resultado, cuanto más complejo es un sistema de software, más difícil es de asegurar. El concepto de raíz de confianza asegura que la mayor parte de la confianza se coloca dentro de la parte menos compleja del sistema, y por tanto menos vulnerable, mientras que el software más complejo está en las capas de alrededor. Esta arquitectura de seguridad se repite a diferentes escalas, estableciendo primero una raíz de confianza en el hardware de un solo sistema, y después extendiendo esa raíz de confianza a través del sistema operativo hasta llegar a los servicios del sistema de nivel superior, y finalmente a través de muchos servidores situados en capas de círculos concéntricos de confianza decreciente.

La arquitectura de seguridad Bitcoin es diferente. En Bitcoin, el sistema de consenso crea un libro contable público confiable que es completamente descentralizado. Una cadena de bloques validada correctamente utiliza el bloque génesis como la raíz de la confianza, construyendo una cadena de confianza hasta el bloque actual. Los sistemas Bitcoin pueden y deben utilizar la cadena de bloques como su raíz de confianza. Al diseñar una aplicación bitcoin compleja que consta de servicios en muchos sistemas diferentes, usted debe examinar cuidadosamente la arquitectura de seguridad con el fin de determinar dónde se va a colocar la confianza. En última instancia, la única cosa que debe ser de confianza expresamente es una cadena de bloques plenamente validada. Si su aplicación de forma explícita o implícita otorga la confianza a cualquier cosa que no sea la cadena de bloques, debería ser una fuente de preocupación porque introduce vulnerabilidad. Un buen método para evaluar la arquitectura de seguridad de la aplicación es considerar cada componente individual y evaluar un escenario hipotético donde el componente esté completamente comprometido y bajo el control de un agente malicioso. Tome cada componente de su aplicación, a su vez, y evalúe los impactos sobre la seguridad general si ese componente se ve comprometido. Si la aplicación ya no es segura cuando esos componentes están en peligro, entonces ha colocado la confianza de manera inapropiada en esos componentes. Una aplicación bitcoin sin vulnerabilidades debe ser vulnerable solamente a un compromiso del mecanismo de consenso bitcoin, lo que significa que su raíz de confianza debe estar anclada en la parte más fuerte de la arquitectura de seguridad bitcoin.

Los numerosos ejemplos de casas de cambio de bitcoin hackeadas sirven para subrayar este punto porque su arquitectura y diseño de seguridad falló, incluso bajo el escrutinio más informal. Estas implementaciones centralizadas habían dedicado la confianza explícitamente en numerosos componentes fuera de la cadena de bloques de bitcoin, como carteras calientes, bases de datos de contabilidad centralizadas, claves de cifrado vulnerables, y estrategias similares.

Ir a la siguiente página

Report Page