¿Podríamos considerar las billeteras criptográficas basadas en web que no son complementos como seguras?

8

Conozco un montón de billeteras criptográficas que funcionan en IFRAME y tecnologías similares dentro de un navegador web sin necesidad de instalar ningún complemento:

¿Pero están protegidos de un ataque de Dapp de phishing? En caso de que Dapp quiera engañarlo y ocultar la cantidad real de envío ETH o de alguna otra manera, ¿modifique la interfaz de usuario de la billetera dentro de un navegador web?

k06a
fuente

Respuestas:

6

Aislamiento de almacenamiento

Extensiones:

Las billeteras basadas en extensiones de navegador como MetaMask usan almacenamiento local aislado al que solo puede acceder la extensión, sin que un sitio web pueda acceder. La extensión puede enviar datos al sitio web, o el sitio web puede solicitar datos haciendo solicitudes para pasar mensajes. Las claves privadas se almacenan en el almacenamiento local de espacio aislado y se realizan solicitudes desde el sitio web a la extensión para firmar mensajes. La extensión devuelve el mensaje firmado al sitio web.

Basado en la web:

Billeteras criptográficas basadas en navegador como Authereum , Portis , Torus y Fortmatic, use el almacenamiento local de espacio aislado también a través de un iframe. A diferencia de las cookies, el almacenamiento local está estrictamente restringido por dominio, lo que significa que si un sitio web establece un valor en el almacenamiento local, solo ese sitio web puede leer el valor; entonces alice.com no puede leer el almacenamiento local de bob.com. Para proteger los valores confidenciales del almacenamiento local, se establecen en un subdominio controlado, por ejemplo x.wallet.com, ya que ningún otro sitio web podrá leer el almacenamiento local. Este subdominio no contiene IU está destinado solo para comunicación iframed. El proveedor de web3 de esas billeteras carga un iframe oculto en el sitio web, que se utiliza para comunicarse con el subdominio que contiene el almacenamiento de espacio aislado; así, por ejemplo, Alice en dapp.com usando Authereum, el SDK de Authereum se conecta a x.authereum.org usando un iframe y envía postMessagesolicitudes al iframe desde el sitio web para firmar mensajes. Esto impide que el sitio web lea datos confidenciales, como claves privadas, y solo permite que el sitio web envíe solicitudes de firma de manera similar a cómo funcionan las extensiones de billetera.

No todas las billeteras basadas en la web tienen almacenamiento local de espacio aislado, por lo que debe evitar usarlas, ya que cualquier sitio web puede leer los datos confidenciales almacenados, pero las billeteras mencionadas aquí son seguras en ese sentido.

Protección contra ataques de phishing

Los ataques de suplantación de identidad se producen cuando se engaña a un usuario para que piense que está utilizando un sitio web conocido, pero en su lugar está utilizando un sitio web malicioso que se asemeja al sitio web legítimo. Authereum, Portis y Torus son soluciones de inicio de sesión basadas en nombre de usuario y contraseña, por lo que abren la ventana de autenticación de inicio de sesión en una nueva ventana emergente o redireccionamiento. Esto permite al usuario verificar la legitimidad del dominio del sitio web. La autenticación de Google también hace este patrón. Además de abrir una nueva ventana al iniciar sesión para que el usuario la verifique, algunos proveedores de billeteras basados ​​en la web también abren una nueva ventana al firmar mensajes y transacciones para verificar la solicitud.

El secuestro de clics ocurre cuando un sitio web se carga a través de un iframe en el sitio web y el sitio web superpone una IU diferente en la parte superior del sitio web iframed con eventos de puntero establecidos en ninguno y luego engaña al usuario para que ingrese información o haga clic en un botón en la IU superpuesta pero en realidad están haciendo clic en un botón en el sitio web iframed. Esto es peligroso porque la acción en el sitio web iframed puede ser algo así como enviar fondos a la billetera de los atacantes.

Para evitar que el sitio de la billetera se cargue en un iframe, todo lo que el sitio de la billetera tiene que hacer es configurar el encabezado HTTP X-Frame-Options: DENY, que es lo que Authereum y Portis están haciendo para estar a salvo de estos ataques.

Confiar en los scripts de contenido

Es fácil verificar el código fuente de la extensión del navegador mediante el uso de complementos de visor de origen, pero para evitar que una extensión se actualice automáticamente con código malicioso, un usuario puede instalar la extensión manualmente para bloquearla en una versión obteniendo el código fuente de github si es de código abierto o de descargar los scripts de origen.

Dado que con las billeteras basadas en la web, el propietario del sitio de la billetera controla las secuencias de comandos de contenido, entonces debe confiar en que las secuencias de comandos de contenido que administran los datos clave confidenciales no serán maliciosas, ya que el propietario del sitio de la billetera o un atacante que obtuvo acceso al sitio de la billetera puede en cualquier momento, actualice el código fuente del sitio web con un código incorrecto.

Para confiar en los scripts de contenido, el sitio de billetera se puede alojar en IPFS ya que la dirección web es el hash de contenido, lo que significa que puede confiar en que no cambiará. Authereum es una billetera que ya ofrece esto visitando authereum.eth o resolviendo la contenthashpropiedad de su nombre ENS.

Conveniencia

Las billeteras basadas en la web son portátiles porque puedes usar la misma billetera en cualquier sistema operativo, navegador, computadora de escritorio o dispositivo móvil, mientras que con la extensión del navegador estás atascado con el entorno desde el que estás usando la extensión. Las extensiones son muy inconvenientes pero ofrecen más garantías de aislamiento de almacenamiento. Sin embargo, con las cuentas basadas en contratos, se pueden ofrecer más funciones de seguridad en el lado de la billetera.

Cuentas basadas en contratos

MetaMask, Portis, Torus y Fortmatic están basados ​​en cuentas de propiedad externa (EOA), lo que significa que los fondos se almacenan y administran con una sola clave. Si un atacante obtiene acceso a la clave de firma, también tendrá acceso a los fondos almacenados en esa clave.

Las cuentas basadas en contratos (CBA), como Authereum, brindan más garantías de seguridad porque cada contrato de cuenta puede tener varias claves para administrarlo y cada clave también puede tener autoridad limitada sobre las acciones que puede realizar.

Ventajas de las cuentas basadas en contratos:

  • Los fondos no se almacenan en una sola clave
  • Puede recorrer las claves de administración
  • Recuperación de cuenta, en caso de robo o pérdida de sus claves de administración
  • Transferir y retirar límites
  • Controles de acceso para claves, lo que significa que puede restringir qué métodos puede invocar una clave
Miguel Mota
fuente
5

Descargo de responsabilidad: soy cofundador de Authereum, una de las carteras enumeradas en la pregunta.

Para responder a su pregunta original, sí, muchas billeteras criptográficas basadas en web son seguras. Como mencionó, algunas billeteras usan iframes para proteger al usuario de una aplicación maliciosa. Con esta arquitectura, las claves privadas de un usuario nunca se exponen a un dapp en texto plano.


Es cierto que un dapp malicioso puede intentar que un usuario firme datos maliciosos. Las billeteras criptográficas basadas en la web pueden implementar medidas adicionales.

Como mencionó @ tom-teman, un usuario puede verificar la legitimidad de un inicio de sesión verificando la URL de una nueva ventana.

Authereum tiene protecciones adicionales para ayudar a mantener a los usuarios seguros. Algunos de estos son posibles debido a la arquitectura basada en contratos de la billetera de un usuario. La siguiente es una lista no exhaustiva de las características de seguridad de Authereum:

  1. Nunca exponga las claves privadas a un dapp.
  2. No difunda transacciones con un valor que sea mayor que el límite diario permitido de un usuario. Si un dapp intenta gastar más de lo que ha especificado un usuario, la transacción fallará.
  3. Establezca límites específicos de dapp para los usuarios (es decir, límite de valor de transacción diario, número limitado de transacciones en un solo dapp, etc.).
  4. Lista negra de aplicaciones que han sido reportadas o que están actuando de manera maliciosa.
  5. Opcionalmente, se requiere autenticación de 2 factores por transacción.

Nota: Authereum es totalmente libre de custodia y resistente a la censura. Si bien las características anteriores son parte del sistema Authereum, no son necesarias y los usuarios de Authereum pueden pasarlas por alto si sienten que están siendo censuradas.

Puede consultar algunas de las diferencias entre estas billeteras criptográficas basadas en la web aquí .

shane
fuente
3

Portis muestra la página de inicio de sesión en una nueva ventana, que permite a los usuarios verificar la URL. No es una solución infalible, pero es una buena manera de combatir este problema.

Las transacciones consiguientes se firman en un iframe, que podría ser falsificado, pero se supone que los usuarios inician sesión en aplicaciones en las que confían.

Tom Teman
fuente