quinta-feira, 7 de dezembro de 2017

A Segurança do Bitcoin (Explicação passo a passo)

Segurança do Bitcoin

Manter bitcoins de maneira segura é desafiador porque o bitcoin não é a referência abstrata de um valor, da mesma forma que é o saldo em uma conta bancária. Em sua essência, o Bitcoin é como dinheiro digital ou o ouro. Você provavelmente já escutou o ditado "A posse é 90% da lei". 

Bem, no mundo do bitcoin, a posse é 100% da lei. A posse das chaves para desbloquear o bitcoin é equivalente a posse de notas de dinheiro ou de uma barra de um metal precioso. Você pode perdê-las, esquecer onde as guardou, ser roubado ou dar acidentalmente uma quantia errada para outra pessoa. 

Em cada uma dessas situações, da mesma maneira como se tivessem deixado cair notas de dinheiro na calçada, os usuários não tem a quem recorrer. Entretanto, o bitcoin possui capacidades que o dinheiro, o ouro e as contas bancárias não têm. Como qualquer arquivo de computador, pode-se realizar um backup (cópia de segurança) de uma carteira de bitcoin contendo suas chaves. 


Ela pode ser armazenada em múltiplas cópias, e até mesmo impressa em papel para fazer um backup offline não-digital. Você não pode fazer um backup das suas notas de dinheiro, de ouro ou de suas contas bancárias. O bitcoin é tão diferente de tudo que já existiu, que também precisamos encarar sua segurança de uma maneira diferente daquela que já estamos acostumados. 

Princípios de Segurança 


O princípio fundamental do bitcoin é a descentralização e isso traz implicações importantes para a sua segurança. Um modelo centralizado - como o dos bancos tradicionais e da redes de pagamento - depende de controles de acesso e comprovações de segurança para manter o sistema livre de criminosos. Em comparação, um sistema descentralizado como o bitcoin atribui a responsabilidade e o controle aos usuários. 

Como a rede é baseada em prova de trabalho - e não em controle de acesso - a rede pode ser aberta, não exigindo criptografia para o tráfego de bitcoins. Em uma rede de pagamentos tradicional, como o sistema de cartões de crédito, o pagamento é openended porque o sistema já contém o identificador privado do usuário (o número do cartão de crédito). 

Dessa forma, após a cobrança inicial, qualquer pessoa com acesso ao identificador pode repetidamente sacar fundos e fazer cobranças ao dono do cartão. Logo, a rede de pagamento deve ser criptografada em toda sua extensão (end-to-end) e deve garantir que nenhum bisbilhoteiro ou intermediários possam comprometer o tráfego de pagamento, quando em trânsito ou quando estiver armazenado. 

Se um criminoso burlar o controle de acesso ao sistema, ele pode comprometer as transações atuais e os tokens de pagamentos - que podem ser usados para criar novas transações. 

Ou, pior ainda, quando os dados dos consumidores são comprometidos, os consumidores são expostos a roubo de identidade e devem tomar medidas para prevenir o uso fraudulento de suas contas comprometidas. Com o bitcoin, a história é completamente diferente. Uma transação bitcoin autoriza somente um valor específico e somente para um destinatário específico, além de não poder ser forjada ou modificada. 

Ela não revela nenhuma informação privada - como as identidades dos usuários - e não pode ser utilizada para autorizar pagamentos adicionais. Dessa forma, uma rede de pagamentos bitcoin não precisa ser encriptada ou protegida de bisbilhoteiros. 

De fato, você pode transmitir transações em bitcoin usando 1 um canal público aberto, como redes WiFi sem senha ou Bluetooth - sem comprometer a segurança da transação. 

O modelo de segurança descentralizado do bitcoin coloca muito poder nas mãos dos usuários. E com esse poder, vem a responsabilidade de manter o sigilo das chaves. Para a maioria dos usuários isso não é uma tarefa fácil, especialmente em dispositivos comuns como smartphones ou laptops conectados a internet. Embora o modelo descentralizado do bitcoin impeça o tipo de comprometimento em massa observado com os cartões de crédito, muitos usuários não são capazes de guardar suas chaves com a devida segurança e, um a um, acabam sendo hackeados. 

Desenvolvendo Sistemas Bitcoin 


O princípio mais importante para os desenvolvedores em bitcoin é a descentralização. A maioria dos desenvolvedores são acostumados com modelos de segurança centralizados e podem ter a tentação de aplicar estes modelos em seus aplicativos bitcoin, com resultados desastrosos. 

A segurança do Bitcoin depende do controle descentralizado das chaves e da validação independente das transações - uma atribuição dos mineradores. Se você quiser alavancar a segurança do Bitcoin, precisa se assegurar que permaneça dentro do modelo de segurança do Bitcoin. 

Em termos simples: não retire dos usuários o controle de suas chaves e não realize transações fora da blockchain. Por exemplo, muitas das primeiras exchanges de bitcoin concentravam todos os bitcoins dos usuários em uma única carteira "quente" que tinha as chaves armazenadas em um único servidor. Esse tipo de design retira o controle dos usuários e centraliza o controle das chaves em um único sistema. 

Muitos destes sistemas foram hackeados, com consequências desastrosas para seus consumidores. Outro erro comum é o de realizar transações fora da blockchain, numa tentativa desastrada de reduzir taxas de transação ou de acelerar o processamento das transações. Um sistema "fora da blockchain" geralmente grava as transações em um ledger interno, centralizado e somente ocasionalmente realiza uma sincronização com a blockchain do bitcoin. 

Essa prática, novamente, substitui a segurança descentralizada do bitcoin por uma abordagem proprietária e centralizada. Quando as transações são realizadas fora da blockchain, os ledgers centralizados com pouca segurança podem ser falsificados, possibilitando que intrusos possam, sem chamar a atenção, desviar fundos e esvaziar reservas. 

A menos que você esteja preparado para investir pesado em segurança operacional, múltiplas camadas de controle de acesso e auditorias (como os bancos tradicionais fazem), você deveria pensar com muito cuidado antes de retirar os fundos do contexto de segurança descentralizada do Bitcoin. 

Mesmo que você tenha condições e disciplina para implementar um modelo de segurança robusto, este tipo de modelo apenas replica a fragilidade das redes financeiras tradicionais - infestadas por roubo de identidade, corrupção e fraude. Para aproveitar o modelo único de segurança descentralizada do Bitcoin, você deve evitar a tentação das arquiteturas centralizadas pois, apesar de serem familiares, acabam por fim subvertendo a segurança do Bitcoin. 

A Raiz de Confiança 


A arquitetura de segurança tradicional é baseada em um conceito conhecido como a raiz de confiança, 2 que é um núcleo de confiança usado como base para a segurança de todo o sistema ou aplicação. 

A arquitetura de segurança é desenvolvida ao redor da raiz de confiança através de uma série de círculos concêntricos, como as camadas de uma cebola, estendendo a confiança do centro para a periferia. Cada camada usa como suporte a camada interna de maior confiança, usando controles de acesso, assinaturas digitais, criptografia e outros elementos de segurança. 

Conforme os sistemas de software se tornam mais complexos, aumenta a chance de eles possuírem bugs, que podem torná-los vulneráveis à falhas de segurança. Como resultado, quanto mais complexo se torna um sistema de software, mais difícil se torna a tarefa de mantê-lo seguro. 

O conceito da raiz de confiança garante que a maior parte da confiança seja depositada na parte menos complexa do sistema, ou seja, nas partes menos vulneráveis do sistema, enquanto o software mais complexo é desenvolvido ao redor. 

Essa arquitetura de segurança é repetida em diferentes escalas, primeiro estabelecendo uma raiz de confiança no interior do hardware de um sistema único, para depois estender essa raiz de confiança no sistema operacional para serviços de maior nível e, finalmente, através de múltiplos servidores dispostos em camadas de círculos concêntricos com diminuição progressiva da confiança. A arquitetura de segurança do Bitcoin é diferente. 

No Bitcoin, o sistema de consenso cria um ledger público de confiança que é completamente descentralizado. Uma blockchain corretamente validada usa o bloco gênese como a raiz de confiança, construindo uma corrente de confiança a partir deste bloco até o mais atual. 

Os sistemas Bitcoin podem e devem usar a blockchain como sua raiz de confiança. Ao projetar uma aplicação bitcoin complexa que consiste em serviços em diversos sistemas diferentes, você deve examinar cuidadosamente a arquitetura de segurança de maneira a se assegurar do local onde a confiança está sendo depositada. 

Em última análise, o único elemento que deve ser considerado explicitamente como confiável é uma blockchain validada em sua totalidade. Se a sua aplicação deposita confiança em qualquer elemento que não seja a blockchain, isso deveria ser motivo de preocupação, pois abre as portas para a vulnerabilidade. 

Um bom método para avaliar a segurança da arquitetura de sua aplicação é considerar cada componente individual e avaliar um cenário hipotético no qual este componente está completamente comprometido e sob o controle de um usuário mal intencionado. 

Considere cada componente de sua aplicação, um a um, e avalie os impactos na segurança geral se este componente for comprometido. Se a sua aplicação não for mais segura com o comprometimento de um desses componentes, isso demonstra que você depositou equivocadamente a confiança nestes componentes. 

Uma aplicação bitcoin sem vulnerabilidades deveria ser vulnerável somente a um comprometimento do mecanismo de consenso do bitcoin, significando que a sua raiz de confiança é baseada no elemento mais forte da arquitetura de segurança do bitcoin. 

Os numerosos exemplos de bolsas de bitcoins que foram hackeadas servem de exemplo para enfatizar esse ponto, pois, mesmo com uma simples análise superficial, identificaríamos que o projeto e arquitetura de segurança destes serviços eram falhos. 

Estes serviços usaram implementações centralizadas que depositaram confiança em múltiplos componentes fora da blockchain do bitcoin, como carteiras quentes, bancos de dados de ledger centralizados, chaves de criptografia vulneráveis e esquemas similares. 

Melhores Práticas na Segurança 


Por milhares de anos, os seres humanos têm feito uso de sistemas físicos de controle de segurança. Em comparação, a segurança digital tem sido usada há menos de 50 anos. 

Os sistemas operacionais 3 modernos usados para atividades gerais não são muito seguros e não são adequados para o armazenamento de dinheiro digital. Por estarem sempre conectados à internet, nossos computadores estão constantemente expostos a ameaças externas. 

Eles rodam milhares de componentes de softwares desenvolvidos por centenas de programadores diferentes, os quais frequentemente possuem acesso irrestrito aos arquivos do usuário. 

Um único bug ou código malicioso em um único software, entre os milhares instalados em seu computador, pode ser suficiente para comprometer a segurança do que você digita em seu teclado e de todos os seus arquivos, permitindo que criminosos roubem seus bitcoins armazenados em aplicativos de carteiras. 

Para complicar, o nível de manutenção necessária para manter o computador livre de vírus e trojans é uma tarefa difícil para a grande maioria dos usuários de computador. Apesar de décadas de pesquisas e avanços na segurança da informação, os ativos digitais lamentavelmente ainda são vulneráveis à um adversário determinado. 

Mesmo os sistemas mais restritos e protegidos, utilizados em companhias de serviços financeiros, agências de inteligência e de defesa, são frequentemente burlados. O Bitcoin cria ativos digitais que possuem valor intrínseco, que podem ser roubados e transferidos para usuários criminosos de maneira instantânea e irreversível. 

Essa possibilidade criou um forte incentivo para a ação de hackers. Até recentemente, após terem acesso a contas bancárias/cartões de crédito, os hackers tinham que sacar, transferir ou lavar o dinheiro roubado. 

E, apesar da dificuldade crescente de se realizar estas atividades, elas continuam ocorrendo cada vez mais. O Bitcoin traz um novo aspecto a ser considerado nesse problema, pois agora o dinheiro roubado não precisa mais ser lavado; é um valor intrínseco contido em um ativo digital. 

Felizmente, o bitcoin também criou incentivos para o aperfeiçoamento da segurança dos computadores. Se antigamente o risco de um computador ser comprometido era vago e indireto, com o bitcoin esse risco se torna claro é óbvio. 

O fato de manter bitcoins em um computador aumenta a conscientização dos usuários em manterem seus computadores mais seguros. Como resultado direto da proliferação e maior adoção do bitcoin e outras moedas digitais, tem se observado uma evolução nas técnicas de hacking e nas soluções de segurança. 

Em termos simples, agora os hackers tem um alvo muito tentador, enquanto os usuários têm um bom motivo para se defenderem. 

Ao longo dos últimos três anos, como resultado direto da adoção ao bitcoin, temos observado grandes inovações na área da segurança da informação, na forma de criptografia em hardware, armazenamento de chaves e carteiras de hardware, tecnologia de múltiplas assinaturas e custódias (escrow) digitais. Nas próximas seções nós iremos examinar as melhores práticas para a segurança do usuário. 

Armazenamento Físico de Bitcoins 


Chaves Bitcoin

Como a maior parte dos usuários ficam muito mais confortáveis com segurança física do que com segurança da informação, um método muito efetivo para proteger bitcoins é convertê-los para uma forma física. 

As chaves de bitcoins nada mais são do que longos números. Isso significa que elas podem ser armazenadas em uma forma física, como, por exemplo, impressas em um papel ou gravadas em uma moeda de metal. 

Dessa maneira, manter a segurança das chaves torna-se tão simples quanto manter seguro um papel com chaves de bitcoin impressas. Um conjunto de chaves de bitcoin impressas em papel é chamado de "carteira em papel" (paper wallet), e existem muitas ferramentas 4 gratuitas que podem ser usadas para criá-las. 

Eu pessoalmente mantenho a grande maioria dos meus bitcoins (99% ou mais) armazenados em carteiras de papel, criptografadas com BIP0038, com múltiplas cópias trancadas em cofres. Manter bitcoins offline é conhecido como armazenamento frio (cold storage) e é uma das técnicas de segurança mais efetivas. 

Em um sistema de armazenamento frio, as chaves são geradas e armazenadas de maneira offline (sem nunca se conectar à internet). As chaves são armazenadas em papel (impressas) ou em uma mídia digital, como um pendrive. 

Carteiras em Hardware 


Em longo prazo, a segurança do bitcoin terá cada vez mais a forma de carteiras em hardware à prova de falsificação. Diferente dos smartphones ou computadores de mesa, a carteira de bitcoin em hardware possuem apenas um único propósito: armazenar bitcoins de forma segura. 

Com interfaces limitadas e sem o risco de comprometimento por softwares de múltiplos propósitos, essas carteiras podem fornecer um nível altíssimo de segurança para os usuários comuns, não especialistas. 

Eu espero ver as carteiras de hardware se tornando o principal método de armazenamento de bitcoins. Para conhecer um exemplo deste tipo de carteira, pesquise sobre a carteira Trezor. 

Balanceando o Risco 


Embora a maioria dos usuários se preocupe, com razão, em evitar que seus bitcoins sejam roubados, existe um risco ainda maior. Arquivos de computador são constantemente perdidos. 

Se eles contiverem bitcoins, a perda será muito mais dolorosa. Ao usar medidas de segurança para suas carteiras de bitcoin, os usuários devem ter muito cuidado para não exagerarem na proteção e acabarem perdendo suas moedas. 

Em julho de 2011, uma conhecida organização, responsável por um projeto de divulgação do bitcoin, perdeu quase 7.000 bitcoins. Ao tentar prevenir roubos, os donos da organização implementaram múltiplos backups (cópias de segurança) criptografados. 

Infelizmente, as chaves da criptografia acabaram sendo perdidas, inutilizando os backups e, assim, perdendo uma fortuna. Da mesma forma que enterrar dinheiro no meio do deserto, proteger demais seus bitcoins pode fazer com que você nunca mais consiga achá-los. 

Diversificando o Risco 


Você carregaria todas as suas economias em notas de dinheiro guardadas na sua carteira? 

A maioria das pessoas consideraria isso imprudente, no entanto os usuários de bitcoin frequentemente mantêm todos os seus bitcoins em uma única carteira. 

Ao invés disso, os usuários deveriam distribuir o risco de perdê-los entre múltiplas carteiras de bitcoin, de diferentes tipos. 

Usuários prudentes mantém somente uma pequena porção de seus bitcoins, talvez menos de 5%, em uma carteira online ou de smartphone, para usá-los nas compras do dia-a-dia, como "trocados no bolso." 

O resto deveria ser dividido em diferentes formas de armazenamento, como em uma carteira em desktop e offline (armazenamento frio). 

Múltiplas Assinaturas e Governança 


Sempre que uma empresa ou pessoa armazena grandes quantidades de bitcoin, a opção de usar endereços com múltiplas assinaturas deveria ser considerada. Esse endereços multi-sig são mais 5 seguros porque exigem mais de uma assinatura para que um pagamento seja realizado. 

Idealmente, as chaves usadas nas assinaturas devem ser armazenadas em diferentes locais e sob o controle de diferentes pessoas. 

Em um ambiente corporativo, por exemplo, as chaves deveriam ser geradas independentemente e guardadas por diferentes executivos da empresa, garantindo que nenhuma pessoa sozinha consiga comprometer as economias da empresa. 

Os endereços com múltiplas assinaturas também podem oferecer redundância, quando uma pessoa sozinha possuir múltiplas chaves que são armazenadas em diferentes locais. 

Legado 


Uma importante consideração sobre segurança frequentemente ignorada é a disponibilidade - especialmente no contexto de invalidez, doença ou morte da pessoa que possui as chaves. 

Para evitar roubos, frequentemente os usuários de bitcoin são orientados a usarem senhas complexas e a manterem suas chaves em segurança, longe do alcance de terceiros. Infelizmente, essa prática torna quase impossível a recuperação dos bitcoins pela família do usuário. 

Na maioria dos casos, as famílias dos usuários sequer tem conhecimento da existência de poupanças feitas em moeda digital. Se você tiver uma grande quantidade de bitcoins, considere a ideia de compartilhar detalhes de acesso com um familiar de confiança ou com um advogado. 

Uma estratégia mais complexa para o seu legado pode ser obtida utilizando endereços de múltiplas assinaturas ou através de um planejamento de herança com um advogado especializado em ativos digitais. 

Conclusão 


O bitcoin é uma tecnologia nova, complexa e sem precedentes. Com o passar do tempo, iremos desenvolver melhores ferramentas de segurança, bem como práticas que serão mais fáceis de serem utilizadas por pessoas comuns, não especialistas. 

Enquanto isso, os usuários de bitcoin podem usar muitas das dicas discutidas nesse capítulo para aproveitarem uma experiência com bitcoins segura e livre de problemas.

FONTE - Esse é um trecho do livro 'Mastering Bitcoin


EmoticonEmoticon