Blockchain e Bitcoin – Parte VIII: Breves comentários sobre a segurança do Bitcoin
Segurança é uma palavra que por vezes mascara um certo conteúdo ilusório, de modo que falar sobre ela é sempre uma tarefa arriscada. Nota-se, nos dias de hoje, a proliferação de uma espécie de “mercado da segurança”, em que se tenta convencer o cliente de que nada pode ser mais seguro – beirando o infalível, o invulnerável – do que os produtos e serviços ofertados. É quase como vender felicidade.
Minhas incursões pelo mundo da informática me renderam boas leituras e muita reflexão sobre o que é segurança.
Segurança é um conceito relativo. Não se pode falar em segurança, abstratamente, como uma proteção genérica contra tudo e contra todos. Segurança é algo a ser estabelecido diante de um certo conjunto bem definido de riscos. Somente após delineado o mal contra o qual queremos proteção é que se pode aferir se o bem a proteger está mais ou menos a salvo contra essa ameaça específica.
A literatura em língua inglesa sobre segurança da informação apresenta o requinte de distinguir os conceitos de “safety” e de “security”, palavras que no nosso idioma são indistintamente traduzidos por “segurança”. “Safety” é a segurança contra riscos naturais, aleatórios, falhas não intencionais. Um imóvel está seguro contra tempestades? É seguro passar sobre uma dada ponte, isto é, ela suporta o peso dos veículos que nela trafegam? Um sistema informático mantém-se operante em caso de quedas de energia? Foi bem dimensionado para o volume de uso que dele se espera? Não contém erros de programação que possam ocasionar perda de dados? O hardware é de boa qualidade, para evitar falhas? Se positivas as respostas, “safety” é isso.
Já por “security”, quer-se dizer a segurança contra ataques intencionais desferidos por alguém, um sujeito que está disposto a se empenhar para vencer cercas e trancas e produzir um ataque contra o objeto da nossa proteção. Há um ente inteligente nesse cenário, que procura brechas por onde atacar. E esse alguém pode ter mais ou menos capacidade de ataque, ou estar mais ou menos disposto a correr riscos ou a empregar meios mais sofisticados ou custosos para sua tarefa. O imóvel é seguro contra assaltantes? Até que nível de força dos assaltantes? Resistiria a quinze homens fortemente armados? Uma ponte está segura contra tentativas de explodi-la? Um sistema informático resiste a ataques? Quais tipos de ataque e com qual intensidade?
Quando, por sua vez, a tecnologia é empregada no mundo real, não basta, para aferir a segurança, deitar os olhos sobre os elementos técnico-informáticos envolvidos. Há também os aspectos humanos e, sendo essa a minha área, também se deve considerar os aspectos jurídicos relacionados à questão. E é interessante notar que nesse “mercado de segurança” a que acima me referi, tenta-se oferecer até mesmo uma suposta “segurança jurídica”, como se isso também fosse um produto que pudesse ser colocado em uma caixinha e vendido aos interessados em realizar negócios infalíveis.
Feitas essas considerações iniciais, prossigo no tema proposto para mais este texto sobre o Bitcoin, focado em alguns aspectos de sua segurança. Que fique claro, portanto, que falar em segurança, do Bitcoin ou de qualquer outra coisa, exige que o problema seja fatiado e analisadas separadamente cada uma dessas várias situações. Estamos, afinal, falando de segurança contra o que, ou contra quem?
A matemática utilizada no Bitcoin é uma questão já bastante discutida nos meios técnicos. Falei dos aspectos técnicos do Bitcoin nos primeiros capítulos desta série de artigos. No que toca à segurança das transações individualmente consideradas, é oportuno lembrar que as ordens de transferência são digitalmente assinadas, utilizando criptografia assimétrica. As “contas correntes” escrituradas na blockchain, como já comentei nos textos anteriores, estão “em nome” não de uma pessoa, ou de seu CPF ou outro identificador pessoal, mas de uma mera chave pública de assinatura, isto é, um número que não apresenta qualquer vínculo com um sujeito. Para que valores sejam retirados de uma conta, é necessário haver uma ordem de transferência assinada com a chave privada correspondente à chave pública que é dela “titular”.
A matemática envolvida nesses algoritmos tem sido objeto de escrutínio público desde que a criptografia assimétrica foi apresentada ao mundo, no final dos anos 70 e não foram encontradas falhas essenciais nessas operações que pudessem pôr em risco a segurança das assinaturas digitais. Entretanto, sua vulnerabilidade contra o aumento do poder dos computadores é bem conhecida, razão pela qual chaves criptográficas devem ser constantemente atualizadas, usando-se números cada vez maiores, de modo a mantê-las além da capacidade de processamento das máquinas disponíveis em dado momento no tempo. O modelo tem se mantido resistente desde os anos 70, mas parece ser impossível prognosticar se isso pode funcionar e manter-se seguro eternamente. Essa é, na verdade, uma questão que afeta toda a segurança informática, especialmente as assinaturas digitais e a criptografia usada para sigilo, em todos os seus outros cenários de utilização.
Mas há aspectos mais vulgares a serem analisados, ainda quanto à segurança dos valores “depositados” e suas transferências.
Ponto crucial em todo modelo que utilize assinatura digital é a questão da guarda das chaves. A vulnerabilidade mais evidente, para quem pretende ser um usuário das criptomoedas, parece-me ser essa. A chave deve ser protegida tanto contra quem deseje capturá-la como também contra falhas involuntárias que possam ocasionar a sua perda. Há, aqui, tanto um problema de “safety” quanto de “security”.
Se o usuário perder sua chave privada de assinatura, a conta correspondente em Bitcoins se tornará inacessível para sempre. Os valores ficarão lá, escriturados e atribuídos à mesma chave pública, porém, como fosse coisa sem dono. Sem a chave privada, não há como emitir ordens de pagamento que sejam aceitas pelo sistema, para retirar os valores dali. E, nesse caso, não me parece que se possa resolver o problema juridicamente. É bastante óbvio que, se perco acesso a uma conta bancária, o banco do qual sou cliente me fornecerá novos meios de acesso, novas senhas, ou um novo cartão magnético. Se, num cenário mais extremo e peculiar, pairar dúvida ao banco quanto a ser eu o titular de uma dada conta corrente, posso tentar demonstrá-lo em juízo e, se o conseguir, o juiz determinará que o banco me entregue o dinheiro. Não me parece possível, contudo, que um juiz dê uma ordem à blockchain. Quem vai cumpri-la e como isso seria feito, se a característica do Bitcoin, como definido desde o princípio, é não ter um agente intermediário, o tal “terceiro de confiança”, que gerencie e intermedeie as transações, que estão distribuídas pela rede? A perda da chave pode ser comparada a queimar papel moeda. Ou, talvez, numa comparação mais precisa, a jogar um cofre cheio de dinheiro nas profundezas abissais do oceano. O dinheiro continua lá, mas está inacessível. É necessário, pois, manter cópias de segurança da chave privada.
Outra questão – esta relacionada à noção de “security” – é o risco de a chave ser capturada por alguém. Estamos vendo proliferar diversos aplicativos – as chamadas “carteiras” – para computador ou celular, que permitem receber ou pagar em Bitcoins.
A chave privada é guardada nessas carteiras. Não parece que haja um escrutínio mais amplo, nem público, sobre a segurança desses aplicativos todos, especialmente no que toca à proteção da chave privada. Aplicativos instalados em dispositivos permanentemente ligados à Internet são um convite ao furto das chaves, seja explorando falhas, seja porque o software foi criminosamente projetado para transferir chaves alheias a quem o criou. Aplicativos para celular são constantemente atualizados por novas versões, normalmente de modo automático, se o usuário assim autorizou. Parece impossível assegurar que nenhum desses aplicativos, ou suas atualizações futuras, serão imunes a códigos maliciosamente acrescentados para o fim de subtrair as chaves. Este é um risco muito mais sério do que o anterior, pois não há o que um usuário comum possa fazer para se proteger, exceto informar-se e, com base nessa informação, avaliar quais softwares podem ser considerados confiáveis. E, claro, isso não é nada simples, nem garantido.
A princípio, enquanto o usuário tiver acesso à sua chave e conseguir impedir que terceiros se apropriem dela, o cenário parece ser seguro. No entanto, vemos constantemente notícias de que Bitcoins foram furtados de grandes corretoras ao redor do mundo. O que ocorreu, provavelmente, foi uma apropriação da chave privada em poder da corretora, de modo que o criminoso pôde transferir os Bitcoins escriturados na blockchain para uma outra conta. Em nenhum dos casos divulgados, ao que eu saiba, tratou-se de uma violação da escrituração ou da criptografia da blockchain; simplesmente foram exploradas falhas do sistema de gestão da corretora e assim conseguiu-se acesso à sua chave de assinatura. Acessada a chave, basta fazer a transferência contábil dos fundos em poder da corretora para qualquer outra conta.
Outra questão que merece comentário é a irreversibilidade da operação. Assim como nas transferências via TED bancária, a transferência em Bitcoins é irreversível. A irreversibilidade de uma transferência de fundos costuma ser considerada como um fator de segurança dessas transações. Entretanto, isso é seguro para quem recebe, não tanto para quem paga. Alguém que, por exemplo, venda mercadorias online mediante alguma forma de pagamento por transferência irreversível, seja por TED, seja por Bitcoins, sente-se seguro em enviar a encomenda, pois o pagamento não pode ser posteriormente estornado pelo comprador. Nas pioneiras mensagens que Satoshi Nakamoto enviou à lista de discussão, quando do nascimento do Bitcoin, ele apontava explicitamente as vantagens desse modelo irreversível para os comerciantes online, o que poderia suscitar interesse pela aceitação voluntária da criptomoeda. Entretanto, parece claro que esses modelos não são seguros para quem paga. Se quem recebe em Bitcoins não cumprir a sua contraprestação, não há como reverter o pagamento já efetuado. E em qualquer caso de pagamento em Bitcoins, mesmo indevido, por erro ou fraude, uma vez efetuada, a transferência torna-se perfeita e acabada, não havendo meio – ou quem o faça – de revertê-la.
O Direito pode oferecer alguma segurança jurídica em casos tais. Pode-se pedir em juízo que o destinatário de uma TED – ou de um pagamento em dinheiro vivo – restitua o valor recebido. E, claro, é necessário aguardar pela decisão judicial e, em caso de vitória, por sua futura execução. Mesmo assim, deve-se identificar quem é a parte contrária que recebeu os valores, para que se possa demandá-la em juízo. O mesmo pode ser aplicado a relações semelhantes em que se pagou com Bitcoin a pessoas determinadas.
Todavia, no caso de fraude, como nas situações acima apontadas em que a chave de assinatura tenha sido apropriada pelo criminoso, não há contra quem mover uma ação judicial, ao menos em um primeiro momento. Trata-se de situação diversa daquela em que uma fraude tenha sido aplicada em conta corrente ou cartão de crédito, pois nesses casos pode haver, a depender das circunstâncias fáticas, a responsabilidade do banco em restituir os valores subtraídos pelo estelionatário. Há, no mínimo, alguém a ser demandado. Não é o que ocorreria nesses casos de apropriação da chave de assinatura da conta em Bitcoins. Não há, a princípio, um terceiro a quem culpar, se cabia ao titular guardar sua chave privada de assinatura e ele não foi hábil o bastante para fazê-lo. Já se os Bitcoins estavam em poder de uma corretora, e dali sumiram, esta é sem dúvida responsável. Coisa diversa, em termos práticos, é ver de volta a cor do dinheiro, quero dizer, dos Bitcoins, especialmente se, após o golpe, essas empresas entram em situação de insolvência, como se tem observado, pois, sem patrimônio algum além dos saldos em moeda virtual, não haverá como os clientes serem ressarcidos.
Esse tema sem dúvida permite muitas outras digressões. Mas quero crer que tenha atingido o propósito desse breve artigo: destacar que a segurança de diversas aplicações práticas de informática não se resume apenas em afirmar que o modelo matemático é seguro, que usa criptografia de boa qualidade, ou que o sistema tenha sido exaustivamente testado. Muitos são os aspectos a considerar, inclusive humanos, quando se analisa a segurança de um sistema informático colocado em uso prático.
*Sobre Dr. Augusto Marcacini
– Advogado em São Paulo desde 1988, atuante nas áreas civil e empresarial, especialmente contencioso civil, contratos e tecnologia.
– Sócio do escritório Marcacini e Mietto Advogados desde 1992.
– Bacharel (1987), Mestre (1993), Doutor (1999) e Livre-docente (2011) em Direito pela Faculdade de Direito da Universidade de São Paulo.
– Foi professor no Mestrado em Direito da Sociedade da Informação da UniFMU entre 2011 a 2018, lecionando as disciplinas “Efetividade da Jurisdição na Sociedade da Informação” e “Informatização Processual, Provas Digitais e a Segurança da Informação”.
– Professor de Direito Processual Civil desde 1988, em cursos de graduação e pós-graduação.
– Vice-Presidente da Comissão de Direito Processual Civil, Membro Consultor da Comissão de Informática Jurídica e Membro da Comissão de Ciência e Tecnologia da OAB-SP (triênios: 2013-2015 e 2016-2018)
– Ex-Presidente da Comissão de Informática Jurídica e da Comissão da Sociedade Digital da OAB-SP (triênios 2004-2006, 2007-2009 e 2010-2012) e Ex-Membro da Comissão de Tecnologia da Informação do Conselho Federal da OAB (triênio 2004-2006).
– Autor de diversos livros e artigos, destacando-se na área de direito e tecnologia: “O documento eletrônico como meio de prova” (artigo, 1998), “Direito e Informática: uma abordagem jurídica sobre a criptografia” (livro, 2002), “Direito em Bits” (coletânea de artigos em coautoria, 2004), “Processo e Tecnologia: garantias processuais, efetividade e a informatização processual” (livro, 2013) e “Direito e Tecnologia”, (livro, 2014).
– Palestrante e conferencista.
– Colunista e membro do conselho editorial do Crypto ID.