El nonce blinding protocolo es un protocolo pensado en progresar la seguridad de nuestros monederos hardware o bien monederos multi-dispositivos, al añadir un mecanismos criptográfico capaz de reducir al mínimo el impactto de vulnerabilidades como los side-channel attack o bien los supply chain attack. 

La seguridad en el planeta de blockchain siempre y en todo momento está avanzado, y una prueba de ello es la creación del Nonce Blinding Protocol. Este es un protocolo creado por la comunidad del proyecto Bitcoin, donde semeja que nada basta para asegurar la total seguridad de la cadena de bloques y la de los monederos de los usuarios.

El Nonce Blinding Protocol fue presentado por último a la comunidad el veintiocho de febrero de dos mil veinte, en la lista de desarrollo de Bitcoin. En verdad, su primer pull de prueba (código fuente mandado al proyecto)  se efectuó el 15 de febrero de 2019. Fue presentado como una mejora al esquema de firmas y su aplicación en hardware wallets y otros dispositivos secundarios. La idea básica del protocolo es; crear un escudo que evite las filtraciones de datos y los ataques de canal lateral a los esquemas de firmas de Bitcoin y otras criptomonedas.

Todo esto partió de una idea que el propio Satoshi Nakamoto compartió en dos mil diez en el foro de discusión Bitcointalk, en la que decía:

Crypto may offer a way to do “key blinding”. I did some research and it was obscure, but there may be something there. “group signatures” may be related.

Las criptomonedas pueden ofrecer una forma de hacer “cegamiento de claves”. Estudié un tanto y no estaba claro, mas puede haber algo allá. Las “firmas de grupo” pueden estar relacionadas.

Pero ¿Qué es un ataque de canal lateral y por el hecho de que son una amenaza contra nuestra seguridad? ¿Qué hace precisamente Nonce Blinding Protocol? Conozcamos un tanto más sobre estos y otros temas.

Ataques de canal lateral (side-channel attacks), la pesadilla de la seguridad en blockchain

Un ataque lateral o bien side-channel attack, es un género de ataque informático que permite traspasar todos y cada uno de los mecanismos de seguridad de un software o bien hardware, utilizando para esto la mismas funciones de tal hardware, software. Puede aun, emplear funciones relacionadas de terceros para efectuar un análisis forense de exactamente los mismos y conseguir conseguir la información que se quiere.

Para ponerlo en términos más fáciles, un ataque de canal lateral emplea exactamente el mismo software, hardware o bien otros medios relacionados, para hallar fallas en ese software o bien hardware y explotar dichas fallas. ¿Sorprendente, no? Semeja sacado de una película de ciencia ficción, mas es real. En verdad, es una cosa que lleva muchos años entre nosotros y ha tolerado crear cosas muy disparatadas.

Por ejemplo, un sniffer sonoro para tu teclado que deja a una persona en otra habitación saber que estás tecleando en tu PC. Y si ello no te alarma, que te semeja una cookie (de las que utilizan los sitios webs) capaz de cargar un programa en la memoria de tu computador, y de allá extraer datos de tus claves privadas de Bitcoin, o bien lo que sea use criptografía. Aun un análisis eléctrico o bien electromagnético puede comprometer tu seguridad, utilizando side-channels attacks.

Puedes meditar que estos ataques son muy elaborados, costosos de hacer y solo posible bajo condiciones muy concretas. Mas lo cierto es que en este preciso instante, tu PC puede ser frágil a estos ataques sin que lo sepas. Por poner un ejemplo, la mayor parte de procesadores para computadores Intel, AMD y ARM (que son para móviles inteligentes) son frágiles a ataques side-channel (como Spectre o bien Meltdown) y esos inconvenientes de seguridad no están completamente corregidos y otros no se pueden corregir.

Seguramente te vas a estar preguntando ¿Ha sido premeditado esta clase de cosas? ¿Las compañías han creado estos fallos para enojar la seguridad de nuestros sistemas en el caso de que lo precisen? No lo sabemos con certidumbre, mas es posible, en especial si tenemos en consideración el historial de muchas empresas por producir estos inconvenientes y venderlos a altos costes a gobiernos y sus organizaciones de espionaje.

En ese caso, debido a que dependemos de esa tecnología para nuestro cada día, debemos crear mecanismos que nos asistan a hacerles más bastante difícil o bien imposible conseguir la información que desean. Es allá donde entra en acción el Nonce Blinding Protocol y ahora vamos a explicar de qué manera consigue resguardar nuestra seguridad contra este género de ataques.

¿De qué forma marcha Nonce Blinding Protocol?

El objetivo de Nonce Blinding Protocol es el de eludir o bien hacer más complejos los ataques de canal lateral sobre monederos de criptomonedas, en especial los hardware wallets. Para conseguirlo, el protocolo produce una serie de condiciones que evitan que las claves del monedero puedan filtrarse.

En primer sitio, se produce una mayor aleatoriedad en el dispositivo de firma, lo que da un mayor nivel de seguridad al software del monedero. No obstante, a fin de que dicha aleatoriedad sea verdaderamente impredecible, el host (monedero hardware) y el usuario (un PC o bien otro dispositivo conectado al host) debe asegurar un canal de comunicación seguro (el protocolo) de confirmación-revelación que marcha de la próxima manera:

  1. El host produce un pool de aleatoriedad, computa un hash del mismo y manda dicho hash al usuario (por norma general se emplea SHA-doscientos cincuenta y seis) al lado de un compromiso criptográfico de que esa es la aleatoriedad que se empleará para el proceso de firma.
  2. El usuario recibe la información del host, y se compromete a emplear dicho ajuste para la creación del sistema de firmas. De forma adicional, el usuario asimismo tiene una pool de aleatoriedad que empleará para la firma digital. Toda esta información es mandada al host para su conocimiento.
  3. El host responde con la aleatoriedad generada en el paso 1, confirmando la recepción de la información.
  4. Seguidamente el cliente del servicio efectúa una firma utilizando la aleatoriedad proporcionada por el host. Efectuado este punto, el usuario manda la información de la firma al host.
  5. El host recibe la información y la comprueba. Si la información recibida es adecuada entonces, el host va a tomar la aleatoriedad generada por las dos partes, y de ella va a crear una firma válida para la transacción. Si por contra, la verificación falla, el protocolo advierte del fallo.

Este fácil protocolo deja lo siguiente:

  1. Establecer un ambiente de generación y validación de firmas seguro.
  2. Genera una firma válida para una transacción utilizando 2 pool de aleatoriedad diferentes. De esta manera, se evita que la información de la firma sea procesada por una sola parte que puede estar o bien no comprometida.

En pocas palabras, este procedimiento divide la generación de las firmas en 2 partes diferentes, que entonces se unen para producir por último la firma válida de la transacción. La única forma de corromper un sistema de este género es que las dos partes estén perjudicadas al tiempo. De manera adicional, el mecanismo es extensible, esto es, se puede emplear un esquema en el que participen más de 2 partes, lo que acrecienta todavía más la seguridad del protocolo.

¿Cuánto sabes, criptonauta?

¿La implementación del Nonce Blinding Protocol va a ser una enorme adición a la seguridad de los monederos?

Ventajas y Desventajas del Nonce Blinding Protocol

Ahora bien, la primordial ventaja del Nonce Blinding Protocol es que mejora de forma notable la seguridad de nuestras transacciones de criptomonedas. Esto lo consigue al utilizar múltiples mecanismos de entropía que asisten a reducir el peligro de side-channel attack o bien supply-chain attacks. O sea, puedes tener un dispositivo que esté parcial o bien totalmente comprometido y todavía de esta forma sería seguro emplearlo en este punto para efectuar transacciones de Bitcoin por el hecho de que la generación de claves y firmas depende de otros dispositivos.

La siguiente ventaja del protocolo es que no rompe la compatibilidad del esquema de firmas actuales de Bitcoin. En verdad, la implementación inicial es compatible con ECDSA, Schnorr, y PSBT sin precisar alterar nada. Esto deja incorporar el protocolo como una función añadida a los monederos, sin que ello signifique cambios significativos en exactamente los mismos.

Por otra lado, la desventaja que representa Nonce Blinding Protocol es que precisa de un proceso más intensivo de envío y recepción de datos, lo que puede frenar las operaciones cuando se trabaja con dispositivos recónditos.

Implementaciones actuales del Nonce Blinding Protocol

En la actualidad Nonce Blinding es una característica en diseño. No obstante, ya se ha probado de manera exitosa en redes de prueba en Bitcoin. Esto nos da una idea clara de que la tecnología marcha y es posible aplicarla en el proyecto sin mayores inconvenientes.

Pero alén de las pruebas, el protocolo todavía prosigue bajo desarrollo, y los desarrolladores han prestado atención a normalizar esta función de seguridad. En verdad, en Trezor existen ya discusiones para incorporar esta funcionalidad en sus monederos. Lo mismo en Ledger, donde asimismo han optado por incorporar funciones con esta capacidad bajo un término propio.

Todo ello prueba el extenso interés de los desarrolladores de Bitcoin por aplicar dichas funcionalidades sobre el protocolo, y los desarrolladores de monederos, su interés por aguantar tal funcionalidad. Todo ello en pro de la seguridad y privacidad de sus usuarios.