39
O MAIOR FESTIVAL HACKER DA AMÉRICA LATINA

Roadsec 2016 SP - A segurança do Bitcoin

Embed Size (px)

Citation preview

Page 1: Roadsec 2016 SP - A segurança do Bitcoin

O MAIOR FESTIVAL HACKER DA AMÉRICA

LATINA

Page 2: Roadsec 2016 SP - A segurança do Bitcoin

A Segurança do Bitcoin

Como o blockchain funciona e uma revisão dos aspectos de segurança

Rafael Sarres de AlmeidaAviso: As opiniões contidas nesta apresentação refletem

exclusivamente as opiniões pessoais do autor

Page 3: Roadsec 2016 SP - A segurança do Bitcoin

“PERSONAL COMPUTERS IN 1975, THE INTERNET IN 1993, AND – I BELIEVE – BITCOIN IN 2014”

01/05/2023 3

Marc Andreessen, Founder of Netscape

Page 4: Roadsec 2016 SP - A segurança do Bitcoin

Bitcoin

01/05/2023 4

2008 2009 2010 2011 2012 2013 2014 2015 2016

2008: A Peer-to-Peer Electronic Cash System, Satoshi Nakamoto

Bitcoin v0.1 - Genesis block

Primeira transação

Bitcoin Market

10.000 BTC pizzas

Silk Road

1BTC=1USD

1BTC=1200USD

Mt. Gox=70% volume de BTC

Mt. Gox encerra atividades

Bitcoin Foundation

Silk Road é fechado

1BTC=7XXUSD

Page 5: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 5

Bitcoin• Primeiro instrumento de propriedade

digital ao portador• Criptografia e hash de forma inovadora• Anos de resiliência• USD 11 bilhões em “custódia”

• Protocolo fundamental: Blockchain

Page 6: Roadsec 2016 SP - A segurança do Bitcoin

A GENIALIDADE DA SIMPLICIDADE

01/05/2023 6

Page 7: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 7

Agentes e tecnologias

Usuários Mineradores Ativos Prova de trabalho

Regras de Validação

Rede P2P

Prova de trabalho no Bitcoin: Calcular o hash de seu bloco menor que um alvo definido no algoritmoNa prática: hashpower ~= probabilidade de se encontrar um bloco válido

Page 8: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 8

O que?

IN transactions exists and UTXO ?SUM(in) > SUM(out) ? PublicKey(transaction hash) = PrivateKey(transaction hash) ?

Page 9: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 9

Como?

Page 10: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 10

Como?Memory pool

Page 11: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 11

Como?Memory pool

Page 12: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 12

Resultado!• Não há como transferir ativos sem a chave privada• Natureza descentralizada e estatística da prova de trabalho

torna difícil censurar transações• Número de blocos subsequentes = confirmações

Tempo

Page 13: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 13

Em detalhes

Page 14: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 14

Resultado!

Page 15: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 15

E se....Cadeia com maior esforço é a única válidaTransações em blocos órfãos retornam ao mempool

Tempo

Page 16: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 16

Quem?

Page 17: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 17

Por que?

Coinbase transaction: 12,5 Bitcoins criados atualmenteCai pela metade a cada 210.000 blocos (~4 anos)SUM(in) - SUM(out): Transaction fee

Page 18: Roadsec 2016 SP - A segurança do Bitcoin

ATAQUES E INSTABILIDADES NO PROTOCOLO

01/05/2023 18

Page 19: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 19

Anônimo??

• Chaves geradas localmente• Uso de rede TOR na comunicações• Bitcoins minerados• Endereços descartáveis

Page 20: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 20

Follow the money

• Informações off-chain de serviços• E-mail, endereço, cartões de crédito

• Transações com apenas duas saídas• Análise dos horários de transações• Participação na rede• Operação de uma plataforma de mixing

Page 21: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 21

Follow the money

Fonte: An Analysis of Anonymity in the Bitcoin System, Fergal Reid, Martin Harrigan

Page 22: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 22

Sybil attack• Pseudônimos para subverter um sistema de reputação• Prova de trabalho reduz a superfície de ataque• Ainda há possibilidade de “eclipse”

Fonte: Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, Ethan Heilman, Alison Kendler, Aviv Zohar, Sharon Goldberg

Page 23: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 23

Selfish Mining

Tempo

Público

Privado

Melhor caso para o atacante

Fonte: Majority is not Enough: Bitcoin Mining is Vulnerable, Ittay Eyal and Emin Gun Sirer

Page 24: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 24

Selfish Mining

Tempo

Público

Privado

Pior caso para o atacante

Minerador deve usar o bloco que recebeu primeiro

Sybil attack para influenciar na escolha

Page 25: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 25

O ataque dos 51%

• Maioria da rede em conluio• Capaz de criar a cadeia mais longa

• Preocupação com mining pools

Page 26: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 26

O ataque dos 51%

Tempo

Memory pool

Page 27: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 27

Confirmações X Hashpower

Fonte: Bitcoin’s Security Model Revisited, Yonatan Sompolinsky1 and Aviv Zohar

Page 28: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 28

Fonte: Blockchain.info – 14/11/2016

Page 29: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 29

Com 51% do hash power...

• O atacante poderia:• Censurar transações• Desfazer suas transações recentes

• O atacante não poderia:• Desfazer transações antigas ou de terceiros• Roubar bitcoins alheios• Alterar qualquer regra do protocolo

Page 30: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 30

O bom e velho integer overflow

Page 31: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 31

O bom e velho integer overflow

• Agosto 2010, bloco 74638• "out" : [

                {                    "value" : 92233720368.54277039,                    "scriptPubKey" : (...)                },                {                    "value" : 92233720368.54277039,                    "scriptPubKey" : (...)                }            ]

• SUM(out)<SUM(in) = TRUE!

Page 32: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 32

O bom e velho integer overflow

• Patch: 5 horas: hash power war!• Bloco 74691: Patch wins! 53 KIA!

Page 33: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 33

Chaves privadas

• Um problema do usuário?• Talvez, mas afeta o ecossistema

• Chaves no lixo• Chaves roubadas• Chaves descobertas

Page 34: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 34

Chaves descobertas???

• Brain wallets• Passphases -> Public + Private keys

• Blockchain=public passphase hash DB• NO SALT!

• Brain wallets drain• Algumas em minutos

Page 35: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 35

Chaves descobertas???

• ESDSA: randômico em cada assinatura

• Análise do blockchain • Algum Bitcoin hardware wallet:

Page 36: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 36

Maleabilidade das transações

• Transações são identificadas com hashes• Assinaturas malformadas era aceitas

• Hashes diferentes, mesmo resultado• Ataque

• Solicita saque em exchange• monitora a rede, acha transação não-confirmada• Cria transação diferente com mesmo resultado• Cria incentivo à rápida validação (+Fee!)• Transação maliciosa confirmada, Original=double-spend• Realiza o saque novamente após reclamação

Page 37: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 37

Na falta de recompensa

Tempo

Fee:120BTC

Fee:150BTC

Memory pool

Fee:150BTC

Fee:10BTC

Fee:10BTC

Comportamento honesto

Fonte: On the Instability of Bitcoin Without the Block Reward, Arvind Narayanan, Miles Carlsten, Harry Kalodner, S. Matthew Weinberg

Page 38: Roadsec 2016 SP - A segurança do Bitcoin

01/05/2023 38

Na falta de recompensa

Tempo

Fee:120BTC

Fee:60BTC

Memory pool 2

Fee:150BTC

Fee:100BTC

Comportamento desonestoFee:10BTC

Memory pool 1

Fee:60BTCQual é a cadeia mais lucrativa para o próximo minerador?

Page 39: Roadsec 2016 SP - A segurança do Bitcoin

Obrigado!mscrafaelsarres.wordpress.com

@[email protected]