Las claves de acceso son un mecanismo recientemente popular para acelerar un “futuro sin contraseñas” para las identidades digitales, anunciado por Google como “ el principio del fin de las contraseñas ”. Sin embargo, todavía existen desafíos que enfrenta esta forma de autenticación de usuario: el problema de la portabilidad. 

¿Qué sucede si un usuario pierde su dispositivo de firma? 

Los ingenieros de la Fundación Oasis creen en una mejor solución para el futuro de la autenticación de identidades digitales. Continúe leyendo para explorar por qué las claves de acceso no son ideales y cómo los contratos de administración de claves cifradas en Oasis son más seguros y confiables.

‍ El problema de la portabilidad

Es posible que algunos lectores no estén familiarizados con las claves de acceso. Son una forma relativamente nueva de autenticación digital que envía un desafío al dispositivo de un usuario cuando intenta iniciar sesión en un servicio. Cuando su dispositivo utiliza una clave privada para firmar y completar el desafío, el usuario puede acceder a su cuenta. Las claves de acceso son funcionalmente iguales a una combinación de nombre de usuario y contraseña con la que la mayoría de los usuarios de Web2 están familiarizados, y están destinadas a facilitar la experiencia de autenticación para los consumidores. 

Pero este sistema de “ Contraseña 2.0 ” tiene algunas diferencias muy importantes. 

Las claves de acceso están destinadas a resolver un par de problemas centrales con las contraseñas habituales, a saber, ataques de phishing y violaciones de datos. La clave criptográfica pública almacena las claves en el dispositivo del usuario y es posible utilizar claves de acceso a través de WebAuthentication, o “WebAuthn”, para cifrar los datos del usuario derivando una clave de una operación de firma. Pero todavía queda por resolver el problema de la portabilidad. 

¿Qué sucede cuando se pierde un dispositivo de firma? 

En primer lugar, no todas las credenciales son claves de acceso. Por ejemplo, el flujo de registro y firma de credenciales de WebAuthN en Android y escritorio solicita a los usuarios que agreguen cualquier dispositivo compatible a su cuenta, por ejemplo, tokens de hardware, dispositivos de seguridad NFC, un dispositivo Android o iOS vinculado con un código QR. La autenticación a través de dispositivos Android o tokens de hardware (por ejemplo, Thetis o Yubikey) probablemente estará bloqueada por el dispositivo y estará protegida por un enclave seguro, que protege la clave contra robo al evitar que salga del dispositivo físico. Por lo tanto, los usuarios nunca deben asumir que una credencial que registran es una clave de acceso y es portátil. 

Sin embargo, para las credenciales que son claves de acceso, Apple , Google y otras empresas alertan a los usuarios de que las cuentas sincronizadas con una cuenta en la nube pueden recuperar las claves de acceso. Pero el proceso de recuperación no sólo implica una combinación tradicional de nombre de usuario y contraseña, sino que también utiliza la verificación por SMS. Probablemente casi todos en Web3 estén muy familiarizados con los riesgos de la verificación por SMS, incluida la falta de cifrado, las interrupciones de la red, el intercambio de SIM y la ingeniería social. ¿Podría ser esto un paso adelante o un retroceso en la autenticación de usuarios? 

El estándar WebAuthN mencionado anteriormente para registro y firma no es específico para claves de acceso. Entonces, si bien algunas implementaciones como el hardware de Apple o los administradores de contraseñas pueden admitir claves de acceso, que pueden migrarse entre dispositivos, esta no es la norma; también podrían surgir preocupaciones de seguridad válidas incluso para las credenciales que son portátiles. Las credenciales no portátiles a veces se denominan “claves de acceso vinculadas al dispositivo”, que es un nombre apropiado. En última instancia, el hecho es que si una clave de cifrado está vinculada a un dispositivo específico, todos los datos cifrados pueden volverse irrecuperables si se pierde el dispositivo. 

Las herramientas innovadoras para reemplazar los sistemas tradicionales de gestión de acceso e identidad del cliente (CIAM) son esenciales para el futuro de Internet. Entonces, ¿cuál es la solución? 

‍ Agregar más modos de autenticación

Una solución para proteger la identidad portátil es permitir múltiples métodos de autenticación para una cuenta. Este método se ve favorecido por muchos marcos de abstracción de cuentas emergentes en Web3 y por plataformas Web2 destacadas como GitHub. Por ejemplo, si un usuario registra su dispositivo Ledger o Trezor en una cuenta, pero luego decide que quiere un acceso más conveniente, podría otorgar acceso a su cuenta, o a un subconjunto de sus capacidades, a un dispositivo de menor seguridad pero aún físicamente seguro. dispositivo autenticado, que no requiere un pin. O podrían utilizar una clave protegida biométrica basada en Android. O incluso podrían usar una contraseña normal. 

Cabe señalar que la autenticación de contraseña normal es posible en el tiempo de ejecución Sapphire de Oasis Network sin la necesidad de pruebas de conocimiento cero. Este acceso es posible debido al hecho de que los contratos de Oasis tienen almacenamiento confidencial y las llamadas de contrato se pueden cifrar de extremo a extremo. 

‍ La solución Oasis: contratos de gestión clave

Los contratos de gestión de claves cifradas implementados en Sapphire son la alternativa de Oasis Network a las claves de acceso. La abstracción de cuentas está preparada para remodelar fundamentalmente el funcionamiento de Web3, por lo que es importante realizar correctamente la autenticación de credenciales. En resumen, los contratos de administración de claves de Oasis crean una semilla de cifrado por usuario y proporcionan métodos para administrar (agregar o eliminar) las credenciales de autenticación.

Durante la incorporación, un nuevo usuario creará un perfil en cadena que especifica una o más credenciales de autenticación, como su dirección Ethereum o registro WebAuthN. Se supone que su dApp patrocinará los costos de gas del registro en cadena, y se supone que el registro solo se puede realizar con la aprobación de la dApp. Como beneficio adicional, los costos de la gasolina en Sapphire son insignificantes: solo fracciones de centavo en términos de dólares.

Después de la incorporación, se puede solicitar el contrato de autenticación para derivar claves de cifrado utilizando la semilla. Las solicitudes de contrato se realizan en una llamada visual, por lo que no es necesario pagar el combustible ni realizar una transacción en cadena. Para cada solicitud, un usuario especificará su perfil, credencial y un nombre para la clave. Luego lo firman utilizando sus credenciales, como una clave de acceso, WebAuthN o una dirección de Ethereum.

Durante la vida de un usuario en Web3, su contrato de administración de claves puede, si lo desea, firmar la validez de la clave de cifrado para un usuario específico generando un par de claves para todo el contrato o para cada usuario individual. Esta flexibilidad permite a los usuarios pasar la clave de cifrado con metadatos como ID de perfil o nombres de claves a un tercero de una manera que certifique que fue autorizada por el usuario y que se pueda derivar nuevamente si es necesario. Por ejemplo, esta funcionalidad sería útil en un caso en el que una billetera especial de firmas múltiples solicite que el contrato proporcione claves de cifrado específicas.

Debido a que el contrato Oasis administra un par de claves en lugar de implementar una billetera de contrato inteligente (SCW) en la cadena de destino, se puede usar para crear billeteras controladas por el usuario en cualquier cadena compatible con Ethereum sin ninguna otra dependencia o requisito previo. Debido a que el tiempo de ejecución de Sapphire tiene funciones de firma para Secp256k1, Secp256r1 y Ed25519, incluso es posible firmar transacciones de Bitcoin o Monero entre cadenas si los contratos inteligentes se modifican para permitirlo.

En resumen, los contratos del administrador clave de Sapphire son completamente entre cadenas. 

‍ Ejemplos de abstracción de cuentas Oasis

Las claves de acceso pueden ser el principio del fin de las contraseñas, pero los contratos de gestión de claves de cifrado en Oasis también podrían ser el principio del fin de las claves de acceso. A continuación se muestran algunos ejemplos de código que utilizan muchas de las funciones descritas en la sección anterior de esta publicación.  

Haga clic aquí para ver WebAuthNProvider.tsx

Haga clic aquí para ver WebAuthNExample.sol

Estos ejemplos se pueden modificar según sea necesario.