Modelo de Segurança da Talisman

VDS Academy
We are Talisman Português
6 min readOct 25, 2022

tradução do original: https://medium.com/we-are-talisman/talismans-security-model-1e60391694c0

por Warp Lizard, Engenheiro-Chefe da Talisman

Visão geral do nosso modelo de segurança

A principal tarefa de uma carteira de criptomoedas é armazenar com segurança suas chaves privadas e permitir que você assine transações com elas. Normalmente, as chaves são armazenadas no disco usando criptografia e a carteira requer uma senha para descriptografá-las para uso. Carteiras diferentes utilizam mecanismos ligeiramente diferentes para isso. Na Polkadot.js — na qual a Talisman é originalmente baseada e da qual ela ainda utiliza muitos componentes — a senha é necessária para descriptografar (ou ‘desbloquear’) as chaves e em seguida, a chave é armazenada na memória da extensão por um dado período de tempo, até que ela seja bloqueada automaticamente. Quando uma nova conta é criada, o usuário deve digitar uma senha para criptografá-la pela primeira vez. Isso significa que cada par de chaves pode ser criptografado com uma senha diferente.

A Talisman adotou uma abordagem ligeiramente diferente. Utilizando a mesma biblioteca de chaves da Polkadot.js — que exige que cada par de chaves seja protegido por senhas individuais — optamos por permitir que o usuário tenha uma senha única para acessar todas as suas contas, reduzindo o número de vezes que a senha precisa ser inserida. Para isso, a extensão precisa armazenar a própria senha na memória para que novas contas possam ser criadas com essa mesma senha. Quando você faz o login na Talisman, sua senha é verificada ao tentar descriptografar uma das contas criptografadas e, se a tentativa for válida, é armazenada em uma sandbox na extensão, que fica na memória do navegador, até que você bloqueie a carteira ou até que transcorra o tempo de bloqueio automático. A senha nunca é gravada no disco. Quando você aprova uma transação, sua chave é desbloqueada usando a senha armazenada, usada para assinar, e logo em seguida bloqueada novamente. Isso elimina a necessidade de digitar sua senha toda vez que você assina uma transação, diferentemente da Polkadot.js.

E a frase de recuperação (mnemônica)?

Quando você embarca na Talisman e cria uma nova carteira, uma frase de recuperação secreta é criada para você e armazenada no armazenamento local da extensão. Se você embarcar na Talisman importando uma frase de recuperação secreta, ela será armazenada no mesmo local. Antes de serem armazenados, esses dados são criptografados usando a sua senha como chave de criptografia. Quando você deseja exportar sua frase de recuperação (seed phrase), será necessário, como medida de segurança adicional, que você insira sua senha novamente antes de revelarmos a frase de recuperação secreta.

É seguro?

Como todas as decisões de design de segurança, existem tradeoffs entre segurança e conveniência. Armazenar sua senha na memória da extensão significa que um invasor avançado com acesso ao seu computador enquanto a extensão está desbloqueada, pode conseguir baixar a memória da extensão e descobrir a senha. A mesma vulnerabilidade existe para a Polkadot.js, entretanto, nesse caso, o invasor só pode acessar as chaves privadas da conta que estiver desbloqueada.

Para mitigar essa vulnerabilidade, a Talisman implementou recentemente um recurso de bloqueio automático, que limpa a senha da memória da extensão. Como gostamos de dar aos nossos usuários controle sobre suas opções de segurança, isso não é ativado por padrão; no entanto, nós recomendamos que os usuários ativem essa configuração. Em um futuro próximo, também lançaremos outra melhoria de segurança, na qual faremos o hash da senha antes de armazená-la na memória da extensão. Embora ainda seja possível recuperar a senha com hash utilizando o mesmo método, isso reduziria o risco, tornando a senha mais difícil de identificar entre os dados de memória baixados, além de reduzir o impacto da utilização de senhas que acabaram sendo vazadas em outros serviços.

Enquanto fornecemos as melhores ferramentas possíveis, também esperamos e incentivamos os usuários a assumirem a responsabilidade por sua própria segurança, com a consciência de que nenhum sistema é perfeito. Por esse motivo, incentivamos os usuários a seguir as boas práticas, como:

  • Utilizar uma senha forte
  • Ativar o temporizador de bloqueio automático
  • Bloquear manualmente a extensão em qualquer situação em que outra pessoa possa ter acesso ao seu computador
  • Garantir que sua senha e frase de recuperação secreta não sejam armazenadas em nenhum outro lugar
  • Garantir que seu computador esteja livre de malwares

Registro de dados externos

A Talisman utiliza serviços externos para efetuar o registro de erros e análise de dados de usuários mediante consentimento prévio do usuário. O registro de erros é realizado usando o Sentry para que possamos saber quando há bugs em nosso software e rastrear o que deu errado. Para análises de comportamento de usuários, usamos o Posthog . A análise de comportamento de usuário nos permite rastrear quais recursos e como estão sendo usados, permitindo-nos responder às necessidades do usuário e garantir que estamos desenvolvendo o melhor produto. Ao embarcar na Talisman, você pode ativar ou desativar esses serviços e posteriormente, ao usar a extensão, você pode optar individualmente por ativar ou desativar na seção ‘Segurança e privacidade’ das configurações. Se você optar por não participar de ambas as formas de rastreamento, a Talisman não realizará nenhum rastreamento — optar por desativar realmente significa optar por não participar dos rastreamentos.

Os dois serviços que utilizamos foram definidos com a configuração mínima absoluta necessária para obter as informações necessárias. Temos sido especialmente cuidadosos para garantir que nenhuma informação de identificação pessoal ou informação de segurança confidencial possa ser vazada por meio desses serviços, implementando-os criteriosamente no próprio aplicativo e também habilitando depuradores de dados no backend para garantir que, caso algum dado confidencial seja enviado acidentalmente, o mesmo não seja capturado. Agradecemos aos nossos usuários que queiram nos ajudar a desenvolver a melhor carteira e confiam em nós para respeitar sua privacidade ao fazê-lo, e felizmente, a maioria dos novos usuários opta por permitir o rastreamento.

Nossa resposta ao Hack Slope

No início de 2022, uma importante carteira da blockchain Solana, chamada Slope, foi hackeada e os fundos dos usuários foram drenados. O exploit envolveu o registro de chaves privadas da Slope no serviço de rastreamento de erros da Sentry (@zellic_io forneceu uma boa análise aqui), que é o mesmo serviço que usamos para rastrear erros do nosso aplicativo. Embora já tivéssemos configurado o Sentry com configurações mínimas e atentas à privacidade, respondemos a esta notícia concluindo uma auditoria interna da nossa implementação do Sentry. Descobrimos que nenhuma informação sensível havia sido registrada no Sentry e garantimos que o rastreamento de erros do Sentry estava ausente de qualquer parte de nosso aplicativo onde pudesse ser possível coletar dados confidenciais. Também configuramos depuradores de dados adicionais no backend do Sentry e os testamos ao tentar enviar manualmente dados confidenciais para o serviço Sentry. Se você ainda se sentir desconfortável em registrar dados no Sentry, você sempre pode desativar o rastreamento nas configurações da extensão, mas esperamos que você mantenha essa configuração ativada para que possamos continuar rastreando bugs e tornar nossa carteira ainda melhor.

Sobre a Talisman

A Talisman é uma carteira web3 que permite interação com um universo de aplicações em Polkadot e Ethereum. A extensão de navegador Talisman permite armazenar, enviar e receber ativos com segurança. Use-a para se conectar a aplicativos na Polkadot e nas Parachains.

A Talisman é não custodial, auditada, suporta dispositivos Ledger e também é compatível com Ethereum, permitindo que os usuários armazenem, gerenciem e façam transações com dapps Polkadot e Ethereum.

Baixar | Aplicativo Web | Twitter | Discord | Youtube | Reddit | Telegram

--

--