A segurança das transações é mais crucial do que nunca na indústria de nicho em rápido crescimento do crypto. Devido ao aumento do uso da blockchain, o número de maneiras que os hackers podem encontrar para explorar as fraquezas aumenta. O ataque de replay é um dos perigos graves e pouco compreendidos.
O que é um ataque de replay?
Um ataque de replay ocorre quando um atacante retransmite uma transação legítima para enganar o sistema. O atacante não modifica a assinatura, mas a utiliza em outro lugar. Isso pode resultar na repetição da mesma transação, o que representa uma ameaça ao usuário.
Como a assinatura permanece a mesma, é possível que a blockchain aceite a mensagem redundante. Em casos onde blockchains ou aplicativos não são verificados, o atacante explora a replay. Isso pode ser particularmente inseguro em forks ou entre essas cadeias de blockchain.
Quando ocorrem os ataques de replay?
Ataques de replay ocorrem frequentemente quando uma blockchain é dividida ou quando duas cadeias têm o mesmo formato. Uma transação assinada pode ser utilizada em ambas as cadeias sem proteção suficiente. Isso significa que o dinheiro pode ser enviado na cadeia e, ao mesmo tempo, em outra.
A ausência de fronteiras claras entre blockchains em sistemas oferece uma oportunidade para hackers. Eles também visam aplicações com validação fraca de mensagens. Em ambos os casos, o atacante busca ganhar dinheiro repetindo atividades que parecem válidas.
Um desses exemplos foi o caso do Ethereum e Ethereum classic em 2016. Os atacantes repetiram transações em ambas as redes, pois não havia proteção inicial. Consequentemente, os usuários desperdiçaram dinheiro involuntariamente ao realizar transações duas vezes.
Como as carteiras impedem ataques de replay
Carteiras de criptomoedas possuem ferramentas de segurança robustas implementadas antes de qualquer ataque de replay. Uma delas é um ID de cadeia associado a cada mensagem assinada. Isso garante que a assinatura só possa ser válida em uma blockchain e falhar nas demais.
A outra ferramenta importante é denominada nonce e é um número que é incrementado em cada transação. A carteira rejeita a transação caso o nonce seja reutilizado. Isso garante que os hackers não possam repetir a mesma mensagem ou pagamento.
Limites de tempo também são usados em algumas carteiras para receber um pagamento. Como exemplo, uma mensagem pode durar até cinco minutos. A assinatura então se torna inútil, e a replay não é mais possível.
Defesas em Nível de Contrato Inteligente e Aplicativo
Embora as carteiras sejam funcionais, contratos inteligentes e aplicativos também devem se proteger. A maioria dos contratos possui um nonce/usuario, o contador nonce para evitar a duplicação de ações. Isso permite que o contrato repudie qualquer assinatura que tenha testemunhado.
Aplicações que auxiliam na assinatura fora da cadeia provavelmente seguirão o padrão EIP-712. Este formato inclui o ID da cadeia, o nome da aplicação e do contrato. Usando este padrão, as aplicações vinculam cada mensagem ao propósito para o qual é destinada e evitam replays.
De acordo com a QuillAudits, uma empresa de segurança blockchain, aplicativos não devem omitir a separação de domínio em aprovações off-chain. A ausência do contexto correto permitirá que atacantes abusem da interoperabilidade. Isso indica por que auditorias são importantes para garantir sistemas Web3.
Componentes Principais
A proteção contra replay depende de ferramentas distintas e explícitas para garantir o contexto correto. Essas ferramentas são IDs de cadeia, nonces de conta e tempo de expiração. A combinação delas dificulta muito aos atacantes tentar um replay.
Os elementos mais significativos são:
- Chain ID – A transação é válida em uma única blockchain e rejeitada por outras blockchains.
- Nonce – Este é um número usado para garantir que uma mensagem assinada não seja utilizada várias vezes.
- Carimbo de data/hora ou limites de tempo – Isso adicionará uma janela de tempo durante a qual uma mensagem reproduzida será recusada após o tempo decorrer.
- Separador de Domínio – Tether mensagens fora da cadeia para um aplicativo, contrato e cadeia específicos por meio dos padrões EIP-712.
- Rastreamento de Nonce de Contrato Inteligente – permite que aplicativos e contratos bloqueiem mensagens usadas ou duplicadas no nível do contrato.
Uma combinação dessas ferramentas impede a maioria das ameaças de replay. Todas essas técnicas são empregadas por carteiras, aplicações e protocolos para proteger contra duplicação de mensagens. O resultado é uma experiência mais segura para desenvolvedores e usuários.
Por que a proteção contra replay importa para os usuários
A proteção contra replay é o que torna os usuários confiantes ao utilizar carteiras, pontes e exchanges. Na sua ausência, os usuários não sabem que perderam dinheiro. Sistemas tornam-se mais seguros e confiáveis ao recusar transações repetidas ou abusivas.
Carteiras de nome-da-cadeia-ID-prompt permitem que os usuários evitem erros. Quando os usuários têm uma compreensão clara de para onde sua transação está sendo enviada, eles conseguem assumir o controle. Isso também reduz a confusão durante a transição entre cadeias ou aplicativos.
A proteção contra replay também é usada para permitir saques e depósitos seguros por exchanges e custodiantes. Eles tendem a desenvolver ferramentas personalizadas que permitem apenas transações na rede apropriada. Isso garante a segurança dos clientes e a estabilidade das operações em caso de forks ou atualizações.
Conclusão
Ataques de replay representam uma ameaça à segurança da blockchain ao explorar assinaturas reutilizadas em uma ou mais cadeias ou sistemas. No entanto, o uso de chain ID, nonces e restrições de tempo permite que as carteiras contribuam significativamente para preveni-los. Aplicativos e contratos inteligentes também devem contribuir para isso, monitorando seu uso e assinaturas.
Os sistemas devem colaborar e ter conhecimento uns dos outros, pois essa é a única maneira de serem a melhor proteção. Os usuários minimizam o risco de replay por meio da utilização de carteiras confiáveis, dApps verificados e contratos inteligentes auditados. O espaço da blockchain está se expandindo, e o esforço para garantir sua segurança precisa ser aumentado.

