O Tails Linux, combinado com a Monero GUI, oferece um nível impressionante de segurança. O sistema opera sem acesso root e roteia todas as conexões pela rede Tor, reduzindo significativamente os riscos de exposição online. No entanto, mesmo com essas proteções, não se pode descartar completamente ameaças como ataques via supply chain ou vulnerabilidades nas wallets. Uma solução avançada para maximizar a segurança é implementar a assinatura offline de transações, conhecida como offline transaction signing ou cold signing. Esse método fornece proteção equivalente à das hardware wallets. A chave de gasto (spendkey ou seed) fica armazenada em um computador air-gapped (completamente desconectado da internet), enquanto uma carteira de visualização (view wallet) é usada no ambiente online apenas para monitorar fundos e finalizar transações assinadas offline. Este processo utiliza dois sistemas Tails Linux (ou outros sistemas Linux): um offline e outro online. Neste tutorial exclusivo com a Monero GUI, explicaremos como realizar essa configuração usando arquivos para transferir dados entre os ambientes, em vez de QR codes. Também detalharemos medidas avançadas de segurança para criar um setup ainda mais seguro que qualquer hardware wallet, embora seja mais trabalhoso.
Muitos usuários não conseguem assinar transações offline, pois esquecem de tratar os requisitos abaixo!
Requisitos:
É preciso estar sempre com o endereço de envio e montante preenchidos em todos os passos, tanto na View Wallet quanto na Cold Offline Wallet!
Nós cadastrados devem estar com a opção Trusted Nodes ativada; do contrário, não é possível nem importar a Key Image no passo 2!
Siga os seguintes passos:
Crie uma Monero GUI Cold Offline Wallet em um Tails Linux no pendrive com modo persistente!
Crie uma Monero GUI View Wallet em um Tails Linux no pendrive com modo persistente!
Esse computador e esse pendrive devem se conectar à internet para sincronizar a wallet e enviar as transações assinadas offline!
Os arquivos da view wallet para a cold wallet e vice-versa devem ser transportados, de preferência, em uma partição criptografada de um HD externo, mas também podem ser transportados em um pendrive criptografado para proteger contra acesso físico e recuperação forense!
Usar um HD externo é mais seguro, pois você poderá apagá-lo de maneira irrecuperável contra ataques forenses, utilizando comandos na partição para impedir recuperação forense: sudo dd if=/dev/zero of=partição_ou_HD bs=4096 status=progress;
e sudo dd if=/dev/urandom of=partição_ou_HD bs=4096 status=progress;
, ou o comando shred
nos arquivos de output, key image e outros gerados no processo de assinatura offline com sudo shred -n 5 -vzu /caminho/do/arquivo
. Em pendrives, SSDs e cartões SD, isso não funciona de forma garantida, e o secure erase nem sempre é confiável, mesmo com softwares fornecidos pelos fabricantes. Os arquivos possuem metadados importantes, como data de acesso, modificação e criação, que poderão ser usados para vinculá-lo como suspeito em alguma transação. Portanto, aniquile-os!
Abra o computador offline, inicie a Monero GUI e vá em Enviar, Advanced, preencha o endereço de destino e a quantidade!
Transaction priority: fica a seu critério, pode deixar automático!
Faça o mesmo com o computador 2, que terá a View Wallet conectada online!
1. View Wallet Online
Conecte-se, cadastre e teste o nó! Certifique-se de que o nó está marcado como Trusted Daemon e reinicie a wallet para validar!
Sincronize a wallet!
Em Outputs:
Exporte os outputs para um pendrive ou HD externo criptografados.
2. Cold Offline Wallet
Em Outputs:
Importe os outputs para a Cold Wallet.
Em Key Images:
Exporte a Key Image para o pendrive ou HD externo criptografados.
3. View Wallet Online
Em Key Images:
Importe a Key Image para a View Wallet! (Isso permitirá que você veja o saldo real mesmo da View Wallet).
Em Offline Transaction Signing:
Vá em Create e salve o arquivo como unsigned_transaction no pendrive ou HD externo criptografados.
4. Cold Offline Wallet
Em Offline Transaction Signing:
Vá em Sign (offline), selecione o arquivo unsigned_transaction para assinar!
Salve os arquivos no pendrive ou HD externo criptografados.
Dois arquivos serão criados: um com _signed e outro com _signed_KeyImages.
Você deve usar o arquivo com final _signed para enviar a transação offline na View Wallet!
5. View Wallet Online
Em Offline Transaction Signing:
Em Submit, selecione o arquivo com _signed que foi assinado offline na Cold Wallet!
Finalize a Offline Transaction Signing!
Hardware wallets, embora amplamente consideradas seguras, não são infalíveis. Elas podem ser interceptadas e adulteradas durante o transporte, como demonstrado em casos reais de vulnerabilidades (ex.: LIVECOINS - Vulnerabilidade Trezor e Dark Skippy). Ataques via supply chain podem comprometer a integridade do dispositivo, permitindo a extração da seed e roubo de fundos por meio de ataques físicos ou digitais posteriores. Mesmo adquiridas diretamente da fonte oficial, essas falhas podem ser exploradas em cenários onde governos ou terceiros maliciosos estão envolvidos.
O Tails é um sistema operacional open source que pode ser executado sem componentes de rede, como placas Wi-Fi e Bluetooth, reduzindo drasticamente os vetores de ataque. Um possível ataque via supply chain no Tails seria detectado rapidamente pela comunidade global de usuários, já que o código é auditável e amplamente utilizado. Por exemplo, a famosa backdoor na tarball do Linux foi identificada e corrigida em apenas dois dias!
Já no caso de hardware wallets, ataques via supply chain podem ser direcionados a indivíduos ou grupos específicos durante o transporte, tornando sua detecção muito mais difícil. Além disso, as mídias de armazenamento usadas em hardware wallets, semelhantes a SD cards ou SSDs, frequentemente não aplicam secure erase de forma plena, deixando vestígios recuperáveis por métodos forenses. Isso significa que, mesmo após apagar dados, arquivos com as seeds podem ser recuperados; embora estejam criptografados, seriam melhor se fossem irrecuperáveis para maior segurança.
No caso de cold wallets offline criadas em HDs externos usando o Tails, todas as wallets podem ser permanentemente destruídas com ferramentas como shred
ou dd
no Linux, garantindo que nenhum dado seja recuperável. Esse nível de segurança é superior ao oferecido pelas mídias de armazenamento das hardware wallets. Após o uso, o HD externo pode ser completamente apagado com secure erase, impedindo qualquer tentativa de recuperação forense. Isso é especialmente crítico em cenários onde a única barreira de proteção é a senha, como ocorre com o LUKS1, que ficou vulnerável, permitindo acessar o pendrive criptografado do Tails e qualquer Linux e acessar os arquivos criptografados.
Além disso, as wallets offline e view wallet podem ser armazenadas em HDs criptografados e acessadas no Tails com a Monero GUI instalada. Os arquivos das wallets podem ser apagados permanentemente após o uso, eliminando qualquer risco residual. Já as hardware wallets, devido às limitações de suas mídias de armazenamento, não oferecem essa vantagem.
Outro ponto crucial é a codificação da seed. Ao anotar a seed, recomenda-se codificá-la para evitar que invasores em sua casa coletem as anotações e roubem seus fundos. Em sistemas offline como o Tails, a seed permanece isolada em um ambiente air-gapped, sem exposição à internet ou a dispositivos potencialmente comprometidos.
O arquivo da cold wallet, que contém a seed da spendkey, é o componente mais sensível de qualquer configuração de segurança. Mesmo quando criptografado, ele ainda pode estar vulnerável a recuperação forense ou falhas como as observadas no LUKS1 antigo. Para garantir máxima proteção contra acessos físicos e ataques sofisticados, um setup robusto é essencial.
O Setup Mais Seguro para Proteger as Keys da Cold Wallet Offline:
Gere a Cold Wallet no Diretório /tmp
do Tails.
O diretório /tmp
do Tails utiliza exclusivamente a memória RAM, o que significa que todos os arquivos criados ali são voláteis e desaparecem assim que o sistema é desligado.
Durante uma operação de assinatura offline, gere a cold wallet neste diretório. Insira sua seed, configure a senha, realize a assinatura offline e, ao finalizar, desligue o sistema imediatamente.
Com o desligamento, tudo na memória RAM é apagado, eliminando qualquer rastro dos arquivos da cold wallet. Isso impede completamente a recuperação forense ou exploração de falhas antigas, como as do LUKS1.
Repita o Processo a Cada Uso
Na próxima operação, você precisará gerar novamente a cold wallet no modo failsafe (100% na RAM). Este processo, embora trabalhoso, garante que nenhum dado sensível seja armazenado permanentemente.
Esse método é ideal para operações temporárias, onde a eliminação total de rastros é prioritária.
Motivos para operar de forma 100% amnésica: o arquivo contendo a chave (ou semente) de qualquer software de carteira de criptomoedas.
1.Falha de Incompletude de Criptografia:
Isso já ocorreu no BitLocker, onde uma falha deixou arquivos que eram para ser criptografados e não foram! Erros de implementação da criptografia em SSDs de fabricantes como Crucial e Samsung fizeram o BitLocker funcionar mal e deixar dados expostos! Isso pode ocorrer com qualquer software que criptografa arquivos. Inclusive, isso seria possível nas wallets e hardware wallets? Sim! Se isso ocorrer, sua seed ficaria exposta. Portanto, usar a seed em um arquivo temporário 100% na RAM é uma questão de segurança contra esse tipo de falha!
Leia mais sobre falhas de criptografia no BitLocker.
2.Bug no Software que Criptografa Arquivos:
Bugs podem levar um programa a fazer as maiores burradas e loucuras em segurança. Então, se ocorrer um bug que faça o software de uma wallet de criptomoeda ou hardware wallet gravar o arquivo com a seed sem estar criptografado em outro local do dispositivo, quem acessar poderá ter a seed sem barreira alguma. Bugs podem gerar comportamentos totalmente imprevisíveis em qualquer software, e isso pode ocorrer!
O Tails foi projetado especificamente para mitigar ataques de cold boot. Esses ataques tentam recuperar dados residuais da memória RAM após o desligamento forçado de um dispositivo. No entanto, o Tails possui mecanismos eficazes para neutralizá-los:
Remoção do Pendrive: Ao perceber uma ameaça iminente, basta remover o pendrive Tails. Em segundos, todo o conteúdo da memória RAM será apagado, incluindo os arquivos da cold wallet.
Anti Cold Boot Attack: Embora não seja uma garantia absoluta, o Tails foi programado para minimizar os riscos associados a esse tipo de ataque. Essa característica torna o Tails especialmente resistente a cenários extremos, como invasões domiciliares ou tentativas de acesso físico durante operações de assinatura offline.
Codificação da Seed para Máxima Segurança:
Lembre-se de que sua seed precisa ser codificada manualmente ao anotá-la. Isso neutraliza ataques físicos, como roubo de anotações, e complementa perfeitamente o setup descrito acima. A combinação de seed codificada e cold wallet 100% na RAM cria uma barreira praticamente intransponível para invasores.
Por Que Esse Setup Supera Hardware Wallets?
Com este método, o arquivo da cold wallet nunca persiste após o uso, pois é apagado automaticamente da memória RAM. Isso é algo impossível de replicar com hardware wallets convencionais, que armazenam permanentemente os dados em suas mídias internas. Além disso:
Hardware wallets não são amnésicas: Elas mantêm os dados mesmo após o desligamento, tornando-os vulneráveis à recuperação forense, apesar de estes dados serem armazenados de forma criptografada.
Falta de adaptação para ataques de cold boot: Nenhuma hardware wallet está programada para neutralizar completamente ataques de cold boot, como o Tails faz. No Tails, é possível gerar uma wallet temporária, iniciar uma operação de transação offline (offline transaction), tudo 100% na memória RAM. Caso ocorra um ataque em sua casa ou local, basta remover o pendrive para que todos esses rastros sejam imediatamente eliminados!
Embora o Tails Linux seja amplamente reconhecido por sua segurança e privacidade, ele não é infalível. Um dos principais riscos está relacionado ao hardware que você utiliza. Se o seu computador, monitor, cabos ou outros dispositivos forem trojanizados de fábrica ou interceptados durante o transporte, isso pode comprometer a segurança do sistema, mesmo que o Tails esteja em uso. Esse tipo de ataque é semelhante ao que ocorre com hardware wallets, onde dispositivos podem ser adulterados antes de chegarem às mãos do usuário.
Portanto, é essencial ter consciência de que a segurança do PC offline usado para assinar transações Monero depende diretamente da integridade do hardware. Para garantir um ambiente seguro, o ideal é montar um PC simples, sem componentes como placas Wi-Fi ou Bluetooth, que possam ser explorados remotamente. Além disso, utilizar uma Faraday Cage Room (uma sala blindada contra sinais eletromagnéticos) é altamente recomendável. Mesmo que o hardware tenha sido comprometido sofisticadamente para enviar sinais via RF, Wi-Fi ou Bluetooth, uma Faraday Cage impedirá qualquer comunicação externa, garantindo que o sistema permaneça 100% offline. Este é o cenário mais seguro possível.
Nenhum Sistema Operacional Pode Proteger Contra Ataques de BIOS e Firmware:
O firmware, que inclui o BIOS ou UEFI e outros softwares embarcados em chips eletrônicos do computador, é uma camada crítica para o funcionamento de qualquer sistema operacional. No entanto, nenhum sistema operacional, incluindo o Tails, pode proteger contra ataques direcionados ao firmware. Assim como um carro depende da qualidade da estrada para trafegar, os sistemas operacionais dependem do firmware para iniciar e operar seguramente.
Ataques de firmware podem ser realizados tanto fisicamente quanto remotamente, e representam uma ameaça significativa porque podem comprometer o sistema antes mesmo do Tails ser carregado. Manter o computador em um local seguro pode mitigar alguns riscos físicos, mas outros ataques podem ser executados remotamente, especialmente se o hardware já estiver comprometido.
Saiba mais:
- Avisos: Tails é seguro, mas não é mágica!
https://tails.net/doc/about/warnings/index.en.html
- Demonstração LightEater: Roubo de chaves GPG/emails no Tails via infecção remota de firmware
https://www.youtube.com/watch?v=sNYsfUNegEA
Doar monero para ajudar no crescimento desse projeto: Clique aqui!