Podemos considerar seguras as carteiras criptográficas baseadas na Web que não são plug-ins?

8

Conheço um monte de carteiras de criptografia que funcionam em IFRAMEs e tecnologias semelhantes dentro de um navegador da Web sem precisar instalar nenhum plug-in:

Mas eles estão protegidos contra um ataque Dapp de phishing? Caso o Dapp queira enganá-lo e ocultar a quantidade real de envio de ETH ou de qualquer outra maneira, modificar a interface do usuário da carteira dentro de um navegador da web?

k06a
fonte

Respostas:

6

Isolamento de armazenamento

Extensões:

As carteiras baseadas em extensões do navegador, como o MetaMask, usam armazenamento local isolado que somente a extensão pode acessar, sem a possibilidade de acesso a um site. A extensão pode enviar dados para o site, ou o site pode solicitar dados fazendo solicitações de passagem de mensagens. As chaves privadas são armazenadas no armazenamento local em área restrita e as solicitações são feitas no site para o ramal para assinar mensagens. A extensão retorna a mensagem assinada para o site.

Baseado na Web:

Carteiras criptográficas baseadas em navegador como Authereum , Portis , Torus e Fortmatic, use o armazenamento local em área restrita também por meio de um iframe. Ao contrário dos cookies, o armazenamento local é estritamente restrito pelo domínio, o que significa que, se um site definir um valor no armazenamento local, somente esse site poderá ler o valor; portanto, alice.com não pode ler o armazenamento local de bob.com. Para guardar valores sensíveis ao armazenamento local, eles são definidos em um subdomínio controlado, por exemplo, x.wallet.com, pois nenhum outro site poderá ler o armazenamento local. Este subdomínio não contém interface do usuário, apenas para comunicação com iframes. Os provedores web3 dessas carteiras carregam um iframe oculto no site, usado para se comunicar com o subdomínio que contém o armazenamento em área restrita; por exemplo, Alice no dapp.com usando o Authereum, o Authereum sdk se conecta ao x.authereum.org usando um iframe e envia postMessagesolicitações ao iframe do site para assinar mensagens. Isso restringe o site a ler dados confidenciais, como chaves privadas, e permite que o site envie solicitações de assinatura da mesma forma que as extensões de carteira funcionam.

Nem todas as carteiras baseadas na Web têm armazenamento local em área restrita, portanto, você deve evitar usá-las, pois qualquer site pode ler os dados confidenciais armazenados, mas as carteiras mencionadas aqui são seguras nesse sentido.

Proteção contra ataques de phishing

Os ataques de phishing ocorrem quando um usuário é levado a pensar que está usando um site conhecido, mas está usando um site malicioso que se assemelha ao site legítimo. Authereum, Portis e Torus são soluções de login baseadas em nome de usuário e senha, para abrir a janela de autenticação de login em um novo pop-up ou redirecionamento. Isso permite que o usuário verifique o domínio do site quanto à legitimidade. A autenticação do Google também faz esse padrão. Além de abrir uma nova janela no login para o usuário verificar, alguns provedores de carteira baseados na Web também abrem uma nova janela ao assinar mensagens e transações para verificar a solicitação.

O acionamento por clique ocorre quando um site é carregado por meio de um iframe no site e ele sobrepõe uma interface do usuário diferente na parte superior do site com iframed, com eventos de ponteiro definidos como nenhum e, em seguida, engana o usuário a inserir informações ou clicar em um botão na interface do usuário sobreposta. mas na verdade eles estão clicando em um botão no site iframed. Isso é perigoso, porque a ação no site iframed pode ser algo como enviar fundos para a carteira de atacantes.

Para impedir que o site da carteira seja carregado em um iframe, tudo o que ele precisa fazer é definir o cabeçalho HTTP X-Frame-Options: DENY, que é o que o Authereum e o Portis estão fazendo para que estejam protegidos contra esses ataques.

Confiando em scripts de conteúdo

É fácil verificar o código-fonte da extensão do navegador usando plug-ins do visualizador de origem, mas para evitar que uma extensão seja atualizada automaticamente com código malicioso, um usuário pode instalar a extensão manualmente para bloqueá-la em uma versão, obtendo o código-fonte do github, se estiver código aberto ou baixando os scripts de código-fonte.

Como nas carteiras baseadas na Web, o proprietário do site da carteira controla os scripts de conteúdo, você deve confiar que os scripts de conteúdo que gerenciam os dados importantes não serão maliciosos, pois o proprietário do site da carteira ou um invasor que obteve acesso ao site da carteira pode: a qualquer momento, atualize o código-fonte do site com código incorreto.

Para confiar nos scripts de conteúdo, o site da carteira pode ser hospedado no IPFS, pois o endereço da Web é o hash do conteúdo, o que significa que você pode confiar que ele não será alterado. O Authereum é uma carteira que já oferece isso visitando authereum.eth ou resolvendo a contenthashpropriedade do nome do ENS.

Conveniência

As carteiras baseadas na Web são portáteis porque você pode usar a mesma carteira em qualquer sistema operacional, navegador, desktop ou celular, enquanto na extensão do navegador você fica preso no ambiente em que está usando a extensão. As extensões são altamente inconvenientes, mas oferecem mais garantias de isolamento de armazenamento. Com contas baseadas em contrato, no entanto, mais recursos de segurança podem ser oferecidos no lado da carteira.

Contas baseadas em contrato

MetaMask, Portis, Torus e Fortmatic são todos baseados em contas de propriedade externa (EOA), o que significa que os fundos são armazenados e gerenciados por uma única chave. Se um invasor obtiver acesso à chave de assinatura, ele também terá acesso aos fundos armazenados nessa chave.

As contas baseadas em contrato (CBA), como o Authereum, fornecem mais garantias de segurança porque cada contrato de conta pode ter várias chaves para gerenciá-lo e cada chave também pode ter autoridade limitada sobre as ações que pode executar.

Vantagens das contas baseadas em contrato:

  • Os fundos não são armazenados em uma única chave
  • Você pode percorrer as chaves de gerenciamento
  • Recuperação de conta, caso suas chaves de gerenciamento sejam roubadas ou perdidas
  • Limites de transferência e retirada
  • Controles de acesso para chaves, o que significa que você pode restringir quais métodos uma chave pode chamar
Miguel Mota
fonte
5

Isenção de responsabilidade: Sou co-fundador da Authereum, uma das carteiras listadas na pergunta.

Para responder à sua pergunta original, sim, muitas carteiras criptográficas baseadas na Web são seguras. Como você mencionou, algumas carteiras usam iframes para proteger o usuário de um aplicativo malicioso. Com essa arquitetura, as chaves privadas de um usuário nunca são expostas a um dapp em texto sem formatação.


É verdade que um dapp malicioso pode tentar fazer com que um usuário assine dados maliciosos. Existem medidas adicionais que podem ser implementadas pelas carteiras criptográficas baseadas na Web.

Como o @ tom-teman mencionou, um usuário pode verificar a legitimidade de um login verificando o URL de uma nova janela.

Existem proteções adicionais que o Authereum possui para ajudar a manter os usuários seguros. Algumas delas são possíveis devido à arquitetura baseada em contrato da carteira de um usuário. A seguir, é apresentada uma lista não exaustiva dos recursos de segurança do Authereum:

  1. Nunca exponha chaves privadas a um dapp.
  2. Não transmita transações com um valor maior que o limite diário permitido do usuário. Se um dapp tentar gastar mais do que o usuário especificou, a transação falhará.
  3. Defina limites específicos da dapp para os usuários (ou seja, limite diário do valor da transação, número limitado de transações em um único dapp, etc.).
  4. Aplicativos da lista negra que foram relatados ou estão agindo com intuito malicioso.
  5. Opcionalmente, requer autenticação de dois fatores por transação.

Nota: O Authereum é totalmente sem custódia e resistente à censura. Embora os recursos acima façam parte do sistema Authereum, eles não são necessários e podem ser ignorados pelos usuários do Authereum se sentirem que estão sendo censurados.

Você pode conferir algumas das diferenças entre essas carteiras criptográficas baseadas na Web aqui .

shane
fonte
3

Portis exibe a página de login em uma nova janela, o que permite aos usuários verificar a URL. Não é uma solução infalível, mas uma boa maneira de combater esse problema.

As transações consequentes são assinadas em um iframe, que pode ser falsificado, mas a suposição é de que os usuários efetuam login nos aplicativos em que confiam.

Tom Teman
fonte