Stronghold de IOTA: La Fortaleza de Boden

240

Stronghold es una librería de software de código abierto que se construyó originalmente para proteger las seeds de IOTA, pero puede utilizarse para proteger cualquier secreto digital. Es una base de datos segura para trabajar con criptografía, que asegura que los secretos (como las claves privadas) nunca sean revelados. Proporciona su propia capa de comunicación peer-to-peer, para que diferentes aplicaciones puedan comunicarse de forma segura utilizando el protocolo Noise de última generación sobre libp2p. Stronghold formará una base segura para la nueva wallet de IOTA: Firefly y se integrará en IOTA Identity.

Hemos bautizado esta versión Beta como «Fortaleza Boden«, en honor a la fortificación del norte de Suecia creada para proteger el país y su transporte de la «moneda de la industria» -el mineral hierro- durante las guerras mundiales de la primera mitad del siglo XX. Su utilidad quedó demostrada y siguió utilizándose durante la Guerra Fría. Al igual que la versión Beta de Stronghold, la Fortaleza Boden fue una solución temporal destinada a durar poco y a ser desmantelada tras su periodo de servicio. Dicho esto, la Fortaleza Boden estuvo en uso durante casi cien años. Estamos bastante seguros de que la beta de Stronghold será mucho, mucho más corta que eso.

Hoy, tres meses después del lanzamiento de la versión Alfa, nos complace anunciar la versión Beta de Stronghold. Esta versión ofrece garantías sobre la API, la lógica del cliente y el formato de las snapshots, que sólo cambiarán si se encuentran vulnerabilidades de seguridad. Estar en esta fase califica a Stronghold para una auditoría externa completa, cuya finalización será un hito que Stronghold necesita alcanzar para la publicación de su versión estable 1.0.

Si necesitas un repaso de cómo funciona Stronghold, nuestro residente Meme Lord Navin miembro del Board de la Fundación IOTA hizo un pequeño y maravilloso diagrama explicando lo que Stronghold hará (y no hará):

En general, la mayoría de la gente no necesitará saber nunca que tiene Stronghold. Su uso debería ser invisible, al igual que los visitantes de los sitios web comunes no necesitan saber qué base de datos se utiliza en el backend. Por supuesto, si los sitios web estuvieran obligados a revelar cómo protegen nuestros datos de usuario, entonces podríamos tener más confianza en su capacidad para protegernos.

Esperemos que en algún momento, en un futuro no muy lejano, los sitios web, las aplicaciones e incluso los sistemas operativos empiecen a reconocer la fuerza y la utilidad de enfoques como el de IOTA Identity: donde controlamos y aseguramos nuestros propios datos; donde decidimos lo que compartimos; donde elegimos con quién lo compartimos; donde tenemos el poder de revocar el acceso cuando nos conviene.

Desde el punto de vista de los sistemas, a lo que nos enfrentamos hoy en día en el ámbito del software es que cada aplicación siente que debería poder utilizar cualquier secreto que crea que necesita, y rara vez hay garantías sólidas de que estas aplicaciones protejan los secretos adecuadamente. Queremos que la industria en general se dé cuenta de que esta es una práctica muy insegura, y el novedoso enfoque adoptado por Stronghold no sólo es obviamente más seguro, sino un patrón arquitectónico que merece la pena adoptar. En realidad es muy fácil: no se pueden filtrar secretos que no se conocen.

Shut up and take my money!

Nunca es bueno ser demasiado confiado, pero al mismo tiempo tenemos que ganarnos tu confianza pidiéndote que verifiques nuestra fe en Stronghold. Por eso, junto con el «Attack-a-thon», vamos a llevar a cabo un desafío llamado Capturar la Bandera (Capture the Flag – CTF) hasta la llegada de Chrysalis (21 de abril de 2021).

En algún lugar, escondido en este blog, podrás descubrir una bandera (pista) que te ayudará a encontrar un Snapshot de Stronghold. Este snapshot fue creado usando la versión CLI de Stronghold en la revisión git  fb7e9a6e2e6bbdd8a9f4140b3712ad5dce361cae. Una vez que lo encuentres, el resto del CTF es 100% autocontenido en ese snapshot. En otras palabras, no hay recursos externos disponibles en ninguna parte para ayudarte, así que realmente, no pierdas tu tiempo intentando entrar en ningún otro sistema.

En el almacén del snapshot, hay una bandera que demuestra que has entrado. La bóveda, sin embargo, contiene una semilla actual de IOTA Mainnet en una bóveda/ruta secreta que es otra bandera. Esta seed contiene 3,78 GIOTA. En el momento de escribir esto, tiene un valor de ~5000 USD. El único premio es la semilla.

Si encuentras una bandera, por favor visita el Github de Stronghold Discussion para obtener instrucciones sobre cómo ser añadido a la tabla de clasificación. Buena suerte.

Lo que sigue

Durante los próximos meses, estaremos preparando tutoriales, ejemplos, documentación y especificaciones, así como la integración con otros proyectos de la Fundación IOTA. Durante este tiempo, mejoraremos el cliente con un enfoque flexible de la criptografía procedimental de Stronghold, lanzaremos un «actualizador de versiones» para permitir la actualización sin problemas de un snapshot a una nueva versión de Stronghold y validaremos el sistema de comunicación con una aplicación de escritorio nativa. Por último, Stronghold se someterá a una auditoría completa y se marcará como estable.

Notas técnicas sobre la versión

Stronghold se compone de una serie de librerías que funcionan todas juntas. Estas librerías han sido auditadas verticalmente en el contexto de una auditoría externa de Firefly y revisadas por varios ingenieros de IF Rust en cuanto a calidad y seguridad. Esto lo ha calificado para su lanzamiento en versión beta, sin embargo, antes de que marquemos Stronghold como estable, habrá una futura auditoría horizontal de toda la base de código.

Lo que sigue es una descripción de alto nivel (high level) de cada uno, seguido de su estado de liberación interna y un enlace a su registro de cambios.

Cliente (Client)
Cliente es la única interfaz de Stronghold que podemos recomendar utilizar. Sirve como capa de abstracción del motor subyacente y de las librerías de comunicación, lo que garantiza que, incluso si la base de código interna cambia, su interfaz con Stronghold seguirá funcionando.

Estado: Beta
CHANGELOG

Vault 
La vault (bóveda) es ahora de escritura y uso, pero nunca de lectura. Esto significa que no hay ningún método por el que el cliente pueda leer los secretos almacenados en el sistema, y proporciona una sólida garantía de que Stronghold es lo más seguro posible. Cuando se recupera un secreto de un registro de la vault, se pasa al tiempo de ejecución, que lo descifra en un asignador de memoria avanzado que guarda el secreto mientras se usa. Por eso consideramos que la bóveda está «endurecida».

Estado: Beta
CHANGELOG

Store (Almacén)
El store es un servicio de almacenamiento de claves y valores de lectura y escritura que, aunque está cifrado en snapshot, no goza de la misma protección de memoria que la vault. Esto se debe a que cualquier dato que pueda ser devuelto al cliente no puede ser clasificado como «verdaderamente secreto». Aunque está encriptado en reposo, no está encriptado en memoria y, por tanto, lo clasificamos como «privado y seguro» pero no «reforzado».

Estado: Beta
CHANGELOG

Runtime (Tiempo de ejecución)
Tal vez el cambio más grande desde la versión Alpha es el nuevo runtime, que está completamente basado en libsodium-sys y garantizado para funcionar en todas las plataformas. Sigue protegiendo los secretos expuestos en la memoria utilizando las clásicas ward pages y canaries mientras se realizan las operaciones criptográficas. Además, ahora proporcionamos un tipo de Guarded Vector interno, que permite a Stronghold proteger los registros cuando están en uso y los pone a cero automáticamente.

Estado: Beta
CHANGELOG

Snapshot
Las snapshots sirven para desencriptar el archivo de persistencia y colocar los datos en la vault y en el store. También encripta la vault y el store para actualizar el archivo de persistencia.

Estado: Beta
CHANGELOG

Comunicación
6La caja de comunicación está utilizando el sistema libp2p con el protocolo noise, que permite el uso con permiso de stronghold remoto para crear servicios como la firma remota y la autorización multifactor. No está en uso activo con Chrysalis, pero será utilizado por la wallet e identity más adelanta en una fecha posterior.

Estado: Alpha
CHANGELOG

crypto.rs

Aunque no es una dependencia interna de Stronghold, esta librería proporciona primitivas criptográficas para Stronghold (y cualquier otra librería de IOTA que necesite usar Criptografía).

Estado: Beta
CHANGELOG


Traducción del post original: IOTA Stronghold Beta Release

Comentarios

comentarios

pasarela de pagos con criptomonedas