El futuro de las firmas digitales para proteger tu dinero está en la criptografía con umbral

Gonzalo Álvarez Marañón    22 septiembre, 2020

Imagina que fueras una persona tan moderna, tan moderna, que todo tu dinero lo tuvieras en criptodivisas en lugar de en un banco tradicional. Si has manejado criptodivisas, sabrás que suelen gestionarse a través de apps de criptomonedero. Su misión es facilitar las operaciones típicas de realizar transacciones y consultar saldos, pero no almacenan criptodivisas. Por encima de todo, poseen la misión crucial de firmar con tu clave privada. En esencia, ¿qué es un criptomonedero? ¡Un interfaz para tu clave privada!

Sí, esa clave privada es como las llaves del reino: da acceso a todo tu dinero. Cualquiera que la conozca, podrá limpiarte los bolsillos. Si la pierdes, no podrás recuperar tu capital. Por consiguiente, tendrás que protegerla muy bien. ¡Y no es tarea fácil! En este artículo, pasaré revista a las alternativas tradicionales y las nuevas que están emergiendo para garantizar la seguridad de las firmas digitales.

Eso sí, para evitar entrar en detalles matemáticos, a lo largo del artículo usaré una sencilla analogía. Imagina que cada unidad de criptomoneda está protegida dentro de una caja fuerte con un candado que solo puede abrirse con la llave del propietario de esa criptomoneda. Las criptomonedas no se mueven realmente entre cajas, sino que siempre están en su propia caja fuerte. Cuando transfieres monedas de una a otra, en lugar de enviarlas, en realidad es como si solo cambiaras los candados de una caja a otra. Por ejemplo, cuando Alice le transfiere dinero a Bob, en realidad sólo quita su candado de la caja abriéndolo con su llave y le pone en su lugar el candado de Bob. Bob puede quitarlo más tarde con su llave y así sucesivamente. Imagina que cada persona tiene infinitos candados, de manera que cualquiera puede ponerle a una caja cualquiera el candado de otra persona, pero solo el dueño del candado puede abrirlo con su llave. ¿Entendido?

¡Vamos allá!

Yo me lo guiso, yo me lo como: duplicado de claves

La solución más sencilla y extendida actualmente para asegurar tu llave consiste en hacer muchas copias de tu llave y guardarlas en muchos sitios distintos, así te aseguras de que no la perderás. El problema evidente es que cuantas más copias hagas de tu llave, mayor será la oportunidad de que un atacante se haga con una de ellas.

Podrías confiar copias de tu llave a otras personas, seguro que tu cuñado se ofrece a guardártela. Pero si lo piensas bien, lo único que consigues es cambiar de sitio el problema. Primero, ¿hasta qué punto te puedes fiar de su honestidad? Segundo, por muy buenas intenciones que tenga, ¿hasta qué punto puedes confiar en sus buenas prácticas?

No, el duplicado no parece una buena idea.

Ilustración 1. Caja fuerte tradicional: un candado, una llave.
Ilustración 1. Caja fuerte tradicional: un candado, una llave.

Lo bien repartido, bien sabe: multifirmas (multisig)

Otro enfoque más prometedor consiste en repartir entre varias personas la responsabilidad de custodiar la llave y abrir el candado. En vez de que la caja tenga un único candado, la nueva caja tendrá varios candados y cada persona autorizada recibirá una llave distinta, cada una para su candado. A partir ahora, harán falta varias llaves para abrir los varios candados de la caja. Es lo que se conoce como multifirma o Multisig.

Multisig evita el punto único de fallo anterior porque, al protegerse la caja con varios candados, será más difícil que se vea comprometida: ya no basta con una llave, se necesitan varias para abrir la caja.

Para flexibilizar las operaciones, se suelen emplear esquemas M-de-N: se le ponen N candados a la caja con la peculiaridad de que para desbloquearla solo hace falta abrir M, donde M es menor o igual que N. Parece magia, ¿verdad? Por ejemplo:

  • Con tu pareja podéis usar una multifirma 1-de-2 para que cualquiera de los dos pueda abrir la caja. Si uno pierde la llave, el otro aún podrá abrir la caja. Pero si un atacante roba cualquiera de las dos llaves, también podrá abrirla. Y si tu pareja es una persona manirrota, ¡nada impide que vacíe la cuenta!
  • Con una multifirma 2-de-2, ahora los dos tenéis que abrir la caja. Así os protegéis el uno del otro y un atacante tendrá que robar ambas llaves, ya que una sola no abrirá la caja. Estas multifirmas también sirven para autenticación multifactor: podrías tener una llave en tu ordenador y otra en tu smartphone. Sin acceso a ambos dispositivos, la caja no se abre.
  • Con multifirma 2-de-3, si tenéis un hijo, podríais entregarle una llave y los padres os quedáis con las otras dos. El chaval os necesitará a cualquiera de los dos para abrir la caja, ya que solo con su llave no podrá.
  • Con un esquema 4-de-7, varias personas en un equipo o en un comité tendrán que cooperar para abrir la caja. Resultan muy apropiados para desplegar políticas corporativas.
  • Y todos los escenarios que puedas imaginar.

El problema de Multisig es que requiere una caja más grande para poder acomodar varios candados y además cualquiera que pase por delante notará una medida de protección inusual: “Hmm, ¿qué tendrá dentro? Vamos a seguirle la pista”. Por otro lado, el coste de las transacciones también se incrementa porque hay que añadir la información de cada firmante a la cadena de bloques.

Ilustración 2. Caja fuerte Multisig: dos candados, dos llaves.
Ilustración 2. Caja fuerte Multisig: dos candados, dos llaves.

Tacita a tacita: esquema de reparto de secretos de Shamir (SSSS)

Aquí también se reparte la responsabilidad de la custodia de las llaves y de abrir las cajas, pero en lugar de crear varios candados que se abren cada uno con su llave, se crea un solo candado de aspecto normal y es la llave la que se divide en partes que son entregadas a cada uno de los participantes. Además, el candado tiene una peculiaridad: puede abrirse con un número M de partes de la llave inferior al número total N de partes en que se dividió al forjarla.

Técnicamente, se utiliza lo que se conoce como esquema de reparto de secretos de Shamir (Shamir’s Secret Sharing Scheme, SSSS). El reparto de Shamir también permite operar con esquemas M-de-N, para flexibilizar el acceso, al igual que con Multisig. Ahora la caja parece normal desde fuera, ya que se protege con un único candado.

Su problema es que, antes de abrir la caja, los participantes reconstruyen la llave juntando cada uno su parte. En este instante, justo cuando acaba de reconstruirse la llave, se vuelve vulnerable al robo. Por otro lado, en SSSS alguien tiene que crear la llave en primer lugar para luego hacerla trocitos y repartirlos. Ahí aparece otra ventana de oportunidad para que un atacante robe la llave antes de que sea dividida. Más aún, hay que fiarse de esta tercera parte, pues ¿quién garantiza que no conserva una copia de la llave completa?

Ilustración 3. Caja fuerte SSSS: un candado, una llave dividida en dos.
Ilustración 3. Caja fuerte SSSS: un candado, una llave dividida en dos.

Firmando desde el umbral

¿Y no se podría tener varias llaves distintas y un solo candado? Es decir, ¿no existirá algún método que combine lo mejor de Multisig con las bondades de SSSS? Sí, existe. Se llaman esquemas de firma con umbral (Threshold Signature Scheme, TSS), basados en la criptografía con umbral, una subdisciplina de la computación multi-parte segura.

En el esquema de firmas con umbral, cada usuario crea su propia llave (que nadie más conoce) y luego se juntan para forjar entre todos un candado de apariencia completamente normal. El truco está en que este candado especial puede abrirse cuando cada una de las N llaves (o un subconjunto M de ellas) van haciendo girar por turno un poco la cerradura, hasta que entre todas consiguen darle la vuelta completa.

Una gran ventaja de TSS es que las llaves no se juntan nunca, por lo que se evitan las ventanas de oportunidad de SSSS. Otra característica de seguridad adicional es el “refresco”: cada cierto tiempo preestablecido, las llaves se refrescan para evitar que un atacante vaya robando una por una M de las N llaves creadas y con las M abrir el candado. Otra ventaja de las firmas con umbral es que se pueden revocar llaves o crear otras nuevas sin cambiar el candado, para aquellas situaciones en las que entren nuevos participantes o salgan del grupo, situación típica en entornos corporativos.

Como contrapartida, TSS exige que todas las partes estén presentes al forjar el candado y al abrirlo, por lo que este protocolo no puede ejecutarse asíncronamente. Además, aún está muy verde, todavía se están haciendo propuestas criptográficas y ha habido hasta un ataque con éxito contra una de las propuestas.


Ilustración 4. Caja fuerte TSS: un candado, dos llaves.

El futuro de las firmas digitales ya está aquí

La disciplina de las firmas con umbral es un campo reciente, con numerosas propuestas, aún lejos de alcanzar la madurez de los esquemas de firma convencionales, como ECDSA.

De momento, TSS está aportando a los usuarios seguridad de doble factor para el acceso a las claves privadas o el reparto de la capacidad de firmar entre varios dispositivos para que un solo dispositivo comprometido no ponga en riesgo todo tu dinero. En el caso de empresas, TSS permite implantar políticas de control de acceso que impiden tanto a los que están dentro como a los que están fuera robar fondos corporativos.

Gracias a las firmas con umbral, la clave privada dejará de ser un único punto de fallo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *