BLOG

Cómo asegurar Blockchains ‘permisionadas’

by | Feb 28, 2018 | Blockchain

[wtr-time]
Las blockchains permisionadas o autorizadas (permissioned blockchains) están creciendo en popularidad a medida que las empresas intentan sacar provecho de la tendencia blockchain mientras mantienen una mano firme sobre su tradicional negocio. Contrario a las blockchains no-permisionadas o públicas como Bitcoin o Ethereum, las permisionadas son controladas por una autoridad que otorga permiso a cada nodo que participa.

Si recientemente ha leído noticias sobre usos innovadores de blockchain, es probable que se basen en blockchains permisionadas. Y en estos casos, la figura de autoridad probablemente sea un consorcio de empresas o una sola organización. ¿Cómo proteger este tipo de blockchain permisionada ante los desafíos de seguridad que requiere su despliegue?

Blockchains permisionadas vs no-permisionadas

En el corazón de cada blockchain hay un protocolo que acepta el orden de las nuevas transacciones en el siguiente bloque. Se llama “consenso” porque es un acuerdo vinculante entre todos los nodos de validación. Es fundamental que este proceso se mantenga seguro ya que mantiene la integridad de la cadena.

En blockchains no-permisionadas el consenso es típicamente una carrera para resolver un problema matemático difícil a cambio de una pequeña recompensa financiera. Los nodos de validación recopilan todas las transacciones que conocen, eligen un pedido y comienzan a resolver el desafío del bloque. La pura suerte determina quién gana la carrera, aunque aquellos con más poder computacional tienen más probabilidades de tener éxito. Estos protocolos de consenso pueden soportar ataques significativos en la cadena (hasta el 50% de los nodos pueden ser maliciosos), pero a costa de la velocidad de la transacción y el tiempo la finalización efectiva de la operación.

En blockchains permisionadas, el consenso es más ordenado y los validadores se turnan para proponer un bloqueo para que los demás lo aprueben. Es un proceso mucho más rápido, lo que significa que las blockchains permisionadas logran un alto rendimiento de las transacciones y, a menudo, una finalización instantánea. Este tipo de consenso generalmente requiere que más de dos tercios de los nodos sean confiables.

Desafíos de seguridad enfrentados por Blockchains permisionadas

Normalmente, el término “blockchain” nos ha inducido a una imagen o concepto de control y seguridad descentralizados a gran escala. Las propiedades de las grandes blockchains no-permisionadas, como Bitcoin y Ethereum, son bien conocidas por el público y a veces influyen en quienes las eligen para implementar blockchains permisionadas para fines empresariales. Es importante darse cuenta de que cuando se reduce el número de participantes y se confía en validadores confiables, los desafíos de seguridad se asemejan mucho a los sistemas de TI tradicionales en lugar de a la naturaleza moderna de los blockchains grandes.

Imaginemos una blockchain permisionada establecida entre cinco bancos principales. En una cadena de cinco nodos, esto significa que cuatro nodos (dos tercios) deben comportarse correctamente para que el consenso tenga éxito.

Los nodos se portan mal por dos razones principales: sus legítimos propietarios tienen malas intenciones o se han visto comprometidos por un atacante. El primer desafío consiste en evitar la connivencia o complicidad (un tema para otro día), mientras que el segundo consiste en asegurar las claves privadas de los nodos y garantizar que solo se utilicen para firmar mensajes de acuerdo con el protocolo de consenso.

Igualmente importante es la protección de las claves privadas que controlan las cuentas de blockchain. Las llaves firman transacciones y permiten el flujo de fondos desde una cuenta particular. El acceso no autorizado a estas claves podría resultar en una transferencia injustificada de valor entre los bancos, lo cual sería costoso de resolver y podría condenar a todo el proyecto.

Finalmente, el eje de todo el sistema es el conjunto de claves que autorizó a los participantes en primer lugar. El acceso a estas claves podría permitir a un atacante la comisión de nuevos nodos de validación, lo que facilitaría el control del poder de votación suficiente para corromper la cadena.

Quizás el reto más urgente por abordar en este tipo de blockchains permisionadas -entendido en el sentido de que necesitas permiso para participar- es primero el de la propia gestión de la identidad de los participantes.

Respondiendo a la amenaza

Mientras que las blockchains no-permisionadas o públicas dependen de la gran cantidad de nodos para la seguridad, las blockchains permisionadas deben recurrir a los métodos tradicionales de fortalecimiento, incluidos los entornos protegidos para claves privadas y los procesos y procedimientos para operar la cadena de manera segura.

Las claves privadas utilizadas para validar nodos deben estar físicamente protegidas, utilizando tecnología como módulos de seguridad de hardware (HSM). El uso de HSMs garantiza que las claves privadas no puedan leerse desde la memoria del servidor en el caso de que se comprometa un nodo de validación. Incluso es posible proteger la lógica de consenso utilizando un HSM, donde la parte sensible del código se ejecute internamente en el HSM, asegurando que los datos cumplan con el protocolo de consenso antes de firmarlo con la clave.

La protección de las claves privadas utilizadas por las cuentas de blockchain debe seguir un enfoque basado en el riesgo. Para billeteras que tienen pequeñas cantidades de valor, la protección podría ser tan simple como un HSM con memoria USB con un botón para autorizar transferencias. En escenarios empresariales, el valor involucrado probablemente exija el uso de HSM comerciales, y la implementación de quorums de firma entre múltiples signatarios.

Proteger el corazón de la blockchain (las claves privadas que otorgan acceso) es bastante similar a la protección de cualquier otra infraestructura de clave pública (PKI). Después de todo, es una PKI. Al contrario de la percepción común de blockchain, las blockchains permisionadas confían en una PKI que emite credenciales a sus miembros, y cada transacción puede eventualmente validarse con referencia a una raíz de confianza. En consecuencia, las claves involucradas deben protegerse de manera similar a cualquier otra raíz de confianza: con HSM, separación de funciones, auditoría, etc.

El futuro de las blockchains permisionadas

La ebullición de blockchain no muestra signos de disminuir, por lo que se esperan ver proyectos de blockchains permisionadas durante mucho tiempo. Diseñar una blockchain permisionada debe incluir la seguridad desde el primer día, un paso que muchos proyectos se lamentarán de no haber implementado si se apresuran en este nuevo mercado. Junto con el crecimiento de proyectos, es lógico predecir un aumento constante de noticias relacionadas con fallas en las implementaciones de blockchain permisionadas.

A medida que la ebullición de blockchain desaparezca, probablemente aparecerán menos proyectos, pero en ese momento deberíamos tener algunos buenos consejos disponibles para los propietarios de las blockchains permisionadas a través de organismos tales como el Comité de Normas Acreditadas X9 e ISO/TC307.

Adaptación al español del artículo original: How to Secure ‘Permissioned’ Blockchains | February 28, 2018 | Duncan Jones, Head of Skunkworks at Thales eSecurity | https://www.darkreading.com/endpoint/how-to-secure-permissioned-blockchains-/a/d-id/1331129