Actualización de Safe Network Dev 🇪🇸 4 de noviembre de 2021

Esta es una traducción automática. El original en inglés está aquí: Update 4 November 2021

La “caja fuerte” en la red segura significa acceso seguro para todos, por supuesto, pero una caja fuerte también es una caja fuerte donde puede guardar sus objetos de valor. Ponga los dos juntos y podemos imaginar una red de cajas fuertes nadando en un mar de información disponible perpetuamente. Es una bonita foto.

Nadie puede bloquear a nadie fuera de la red pública; después de todo, hay acceso seguro para todos, pero tampoco nadie puede acumular nuestros datos personales, nuestros secretos y nuestro alijo de tokens cuando están guardados en nuestra Caja fuerte, protegida por nuestra contraseña y frase de contraseña cuidadosamente memorizadas.

Pero espera un segundo… ¿y si sufrimos un golpe en la cabeza? ¿Qué pasa si nuestras copias de seguridad en papel son destruidas por un incendio o una inundación? ¿Qué pasa si envejecemos (sucede) y … simplemente nos olvidamos? Nuestras cosas preciosas podrían perderse para siempre.

Tiene que haber una forma mejor, ¡y gracias al milagro de la criptografía de umbral existe! @JimCollinson explica más a continuación.

Noticias del equipo

Estamos en las últimas etapas de la designación de un oficial de finanzas (gracias a Dios) que tendrá un enfoque Fintech. Esto se sumará al trabajo que Sharon hizo por nosotros, pero sea un poco más detallado sobre el lanzamiento, la incorporación y la economía del token.

PROMOCIÓN - @JimCollinson ha aceptado el puesto de Director de Estrategia. Todos conocemos a Jim y todos sabemos de lo que es capaz. Esto lo libera para llegar a una audiencia más amplia con autoridad. Jim trabajará con otros, incluidas las finanzas, para llegar al lanzamiento y más allá. No necesitamos decirte lo bueno que será en esto, ya lo sabemos :wink:

PROMOCIÓN - @joshuef Aceptó el cargo de Director de Tecnología. Josh, como saben, es tan genial como los gatos y maneja los conflictos, el debate y el espíritu de equipo de una manera que nunca antes había visto. Una influencia calmante que está súper enfocada en el progreso. Tenemos la suerte de tenerlo y nuevamente el enfoque está en el lanzamiento, donde Josh tendrá mucha interacción con el equipo de lanzamiento. Como Jim, todavía con las herramientas y todavía enchufado, pero con esa autoridad adicional para hacer las cosas aún más rápido.

Ambas promociones han sido muy bien recibidas por todo el equipo, lo cual es genial de ver.

Todo se está juntando amigos :+1:

Progreso general

La semana pasada dijimos que estábamos muy cerca de eliminar Connection Pool de qp2p y llevarlo a Safe Network, y nos complace anunciar que @ chris.connelly ha dejado atrás este hito. Suena técnico, y de hecho es técnico, pero de una manera que simplifica mucho las cosas.

@yogesh está trabajando para implementar otra simplificación, esta planeada desde hace algún tiempo, pero aún no se ha implementado en las redes de prueba. Cuando un nodo quiere unirse a la red, tiene que hacer el trabajo de agregar los votos de los mayores y luego volver a enviarlos si tiene suficientes.

Diseño de credenciales seguras, resistentes y utilizables

El acto de crear su propia caja fuerte es el acto de crear algunas credenciales. Son efectivamente uno en el mismo. Usted crea un conjunto de claves que le permiten a usted, y solo a usted, acceder y utilizar sus propios datos; abriendo la puerta a su propio espacio conceptual seguro que comienza en un solo dispositivo pero termina en la Red y abarca muchos.

Entonces, la primera tarea para que estas credenciales sea completamente única. No se almacenarán en la red o en algún servidor en algún lugar, como una cuenta en línea tradicional. Por lo tanto, deben tener suficiente entropía, o aleatoriedad, para no tropezar, chocar con las credenciales de otra persona o sufrir un ataque al estilo ‘billetera cerebral’.

Más que eso, hay otro conjunto de cualidades que estas credenciales deben imbuir:

  1. Deben poder crearse sin conexión.
  2. Fiable para anotar y almacenar en papel.
  3. Tener un mecanismo de recuperación.
  4. Se puede cambiar sin interrumpir el acceso.
  5. No debe depender de un humano para crear aleatoriedad.
  6. Se puede utilizar en cualquier dispositivo. Es decir. no requiere que administre credenciales o contraseñas separadas para cada dispositivo que uso.
  7. Se puede utilizar para revocar de forma remota el acceso a mi caja fuerte desde un dispositivo en el que he perdido la confianza, sin interrumpir el acceso a través de otros.
  8. No debe almacenarse en línea, en la red, ni necesita transmitirse.
  9. No debe contener ninguna información identificable o discernible públicamente sobre mí.

Ir más allá y crear un sistema que sea utilizable para las personas, significa que también deben tener características deseables, como ser:

  • Memorable
  • Multilingue
  • Ergonómico y utilizable en una variedad de dispositivos
  • Permitir que se utilicen factores adicionales en el futuro dependiendo de mis necesidades y recursos de hardware. P.ej. Permítame usar una clave de hardware o factores biométricos en mi teléfono.

Es una gran lista de deseos, ¿no? Podríamos profundizar en cada uno de estos, pero echemos un vistazo a una solución, ¿de acuerdo? Y se lo explicaré en el camino.

Credenciales seguras usando criptografía de umbral

Entonces, ¿podemos hacerlo? Bueno, aquí hay una propuesta de cómopodemos adoptar un enfoque Multisig para las credenciales usando BLS. Déjame explicarte a través de wireframes.

Creando una caja fuerte por primera vez

La incorporación, la creación de una caja fuerte por primera vez, como mencioné, implica la creación de un conjunto de credenciales. Para comenzar, elijo una contraseña y luego me dan una frase de contraseña generada para que la anote o la imprima:

Esta frase de contraseña sería una frase de estilo BIP39, con una suma de comprobación al final.

Entonces, con estos dos elementos, tenemos algo que sabes, la Contraseña, y algo que tienes la frase de contraseña; y en combinación, podemos generar una cantidad adecuada de entropía.

Este es el par de credenciales base, predeterminado, para una caja fuerte. Ambos son necesarios para el acceso, por lo que es sólido y único, pero hagamos las cosas un poco más utilizables, ¿de acuerdo?

El siguiente paso, que es opcional, me permite crear una clave de dispositivo si confío en el dispositivo que estoy usando. Esta es una tercera clave de acceso a mi caja fuerte que trae algunas funciones útiles.

En primer lugar, nos permite crear un esquema de 2 de 3 claves (Multisig FTW), lo que significa que si olvido mi contraseña, aún puedo obtener acceso usando mi teléfono y mi contraseña. O quizás no quiero ingresar una Frase de contraseña cada vez que desbloqueo mi Caja fuerte; en este dispositivo confiable puedo usar mi contraseña y la clave del dispositivo, tal vez utilizando también algunos datos biométricos incorporados, para un elemento de algo que eres.

Entonces estoy listo para terminar y abrir la caja fuerte localmente por primera vez, usando este conjunto de tres credenciales, dos de las cuales son siempre necesarias para desbloquear.

Mo ’Keys, Mo’ opciones

Pero no necesito detenerme allí. Puedo crear claves de acceso adicionales para proporcionar más flexibilidad y resistencia. Desde la pantalla de opciones, creo frases de contraseña adicionales, tal vez una copia de seguridad, tal vez una para almacenar en diferentes ubicaciones físicas. Y también puedo configurar dispositivos adicionales aquí (incluidas claves de hardware dedicadas como una YubiKey en el futuro), o revocar el acceso a cualquier dispositivo o frase de contraseña en la que haya perdido la confianza o al que ya no tenga acceso.

A partir de este conjunto de claves, tengo la capacidad de crear un esquema que se adapte a mis propias circunstancias particulares y modelo de amenaza.

Por ejemplo, puedo tener una configuración de 3 de 6 o progresar a k de n de mi elección. Además, puedo elegir solicitar siempre una contraseña o frase de contraseña para desbloquear mi caja fuerte, denegando el acceso a cualquiera que tenga acceso a dos o más de mis dispositivos.

Desbloqueo en otro dispositivo

Entonces, creé mi caja fuerte, pero quiero abrirla en otro dispositivo que no haya usado antes. Echemos un vistazo a cómo funciona.

Se me presenta una pantalla de desbloqueo, donde toco para ingresar una clave de acceso.

Luego me dan una pantalla que me permite escanear un QR (que están en impresiones de frases de contraseña, o en el uso de la clave del dispositivo al que llegaremos más adelante) o simplemente puedo comenzar a escribir una frase de contraseña en la entrada de texto en el fondo.

Si empiezo a escribir, entro en el modo de entrada de frase de contraseña, en el que usamos cosas como escribir con anticipación y sugerencias del diccionario de frases para acelerar el proceso. También puedo reorganizar las palabras de la frase o deslizar el dedo para eliminarlas si cometo un error.

Entonces, aquí, podemos crear una interfaz que, aunque no sea súper rápida, puede ser fluida y bastante fácil de usar cuando se trata de ingresar una frase larga.

Cuando llego al final de la frase e ingreso la suma de verificación correctamente, puedo continuar.

Tenga en cuenta aquí que solo después de haber ingresado con éxito esa primera clave (ya sea una frase de contraseña o una clave de dispositivo) se me solicita que ingrese una Contraseña.
Aquí vemos que la contraseña se ingresó correctamente y la caja fuerte está desbloqueada.

Después de desbloquearlo correctamente, se me solicita que cree una clave de dispositivo en este teléfono, si debo confiar en él. Esto me permitiría desbloquear sin la necesidad de ingresar la frase de contraseña cada vez, o ingresar si olvido mi contraseña.

Y en esa nota …

Desbloqueo sin contraseña

… ¿Qué hago si olvido mi contraseña? Es una ocurrencia común y, en general, una de las amenazas más importantes para la seguridad de nuestros datos en una red descentralizada. Después de todo, no hay una autoridad central a la que apelar, ningún servidor al que enviar una solicitud de restablecimiento de contraseña, ni una lista de nombres de usuario con hash de contraseña. Depende de mí y de las herramientas a mi disposición.

Afortunadamente, podemos usar esas chuletas Multisig para volver a ingresar, en caso de que quede en blanco mi contraseña, como tengo la tendencia a hacer.

Estoy usando un dispositivo nuevo que no tiene una clave de dispositivo almacenada en él, y maldita sea, simplemente no puedo pensar cuál es esa contraseña. Entonces empiezo ingresando una frase de contraseña:

Regresé a la pantalla de desbloqueo ypuede ver la frase de contraseña que acabo de ingresar. No puedo ingresar una contraseña aquí, porque la olvidé, por supuesto, así que tendré que usar mi otro dispositivo para ingresar. Toco para ingresar otra clave de acceso y estoy listo para escanear un QR I ’ Produciré a través de mi otro dispositivo.

Usando mi otro dispositivo, que he usado antes y tengo una clave de dispositivo guardada, abro la pantalla de desbloqueo:

Al tocar la Clave del dispositivo que se muestra aquí, oa través del menú de albóndigas en la parte superior derecha, o tal vez simplemente presionando dos veces el ícono de candado, puedo generar una pantalla de Clave del dispositivo que tiene un código QR para escanear en el nuevo dispositivo (o si quiero, Podría mostrarlo como una frase de contraseña e ingresarlo de forma más manual. O en el futuro, podríamos ver otras opciones como NFC (fácil, pero entiendes la idea).

Cabe señalar que la clave de acceso (la clave compartida para ser más específicos) representada por el QR que se muestra aquí se genera cuando se abre la pantalla. Esta se pasa al nuevo dispositivo y, en combinación con una segunda llave, permite desbloquear la caja fuerte. Esto evita exponer / pasar la clave del dispositivo en sí, sino que es un proceso de creación de una clave específicamente para el dispositivo de destino, a través de una existente.

Así que escaneo el QR en el nuevo dispositivo …

… y estoy dentro. En este punto, puedo agregar una clave de dispositivo en el nuevo dispositivo y, por supuesto, restablecer mi contraseña también.

Y dependiendo de mi configuración de clave particular, incluso podría recuperar el acceso a mi cuenta usando solo un conjunto de dispositivos, si fuera necesario.

Entonces, ¿cómo se compara esta propuesta?

¿Qué piensas? ¿Encajará esto en el proyecto de ley? Un enfoque Multisig que nos brinda un sistema de credenciales que:

:white_check_mark: se puede crear sin conexión
:white_check_mark: Son ergonómicos
:white_check_mark: Permitir la memorabilidad
:white_check_mark: son legibles y pronunciables por humanos, lo que permite que se escriban y se ingresen de manera confiable
:white_check_mark: son resistentes a la pérdida de credenciales
:white_check_mark: se puede cambiar sin interrumpir el acceso
:white_check_mark: No dependen únicamente de los humanos para la entropía
:white_check_mark: se puede utilizar en una multitud de dispositivos
:white_check_mark: puede ser accesible en varios idiomas y fácilmente expandible
:white_check_mark: Permitirme revocar el acceso a los dispositivos en los que he perdido la confianza
:white_check_mark: No es necesario que se almacene en la red, en línea ni se transmita
:white_check_mark: Y no requiere información identificable o discernible públicamente.

¿Eso es un barrido limpio?

Sin duda, habrá problemas que resolver, como reconocer y manejar errores tipográficos en las contraseñas y sincronizar los cambios de credenciales en varios dispositivos que se mueven entre en línea y fuera de línea. Pero aquí tenemos la base para un sistema sólido que debería ser una ventaja para la usabilidad y la seguridad en general.

Profundiza en todos los detalles

Si desea ver más de cerca los flujos de usuarios de wireframe para esta propuesta, puede saltar directamente a la Figma completamente documentada archivo a continuación. Hay un poco más de matices que los que podemos incluir en una actualización de desarrollo, así que siéntete libre de echarle un vistazo y, como siempre, agradecemos tus comentarios y sugerencias.


Enlaces útiles

No dude en responder a continuación con enlaces a las traducciones de esta actualización para desarrolladores y los moderadores las agregarán aquí.

Como proyecto de código abierto, siempre estamos buscando retroalimentación, comentarios y contribuciones de la comunidad, así que no sea tímido, únase y creemos la red segura juntos.