securing your bitcoins - kitten tofu

20
Securing your Bitcoins Kitten Tofu

Upload: bitcoin-barcamp

Post on 01-Jul-2015

160 views

Category:

Economy & Finance


0 download

DESCRIPTION

How to secure your bitcoins. This technical presentation by Kitten Tofu is at a medium-advanced level for those who are deeply involved in bitcoin. This was presented at the Bitcoin Barcamp in Sydney on 15th March 2014. To view the full talk or find more presentations from Australia's first pop-up unConference on cryptocurrency innovation, go to www.bitcoinbarcamp.org

TRANSCRIPT

Page 1: Securing Your Bitcoins - Kitten Tofu

Securing your Bitcoins

Kitten Tofu

Page 2: Securing Your Bitcoins - Kitten Tofu

Hello!

•  Kitten Tofu!•  Cryptocurrency enthusiast since 2011!•  Worked in infosec for a couple years!•  Full time cryptocurrency researcher!!

Page 3: Securing Your Bitcoins - Kitten Tofu

This Talk

I want you to interrupt me.!

Page 4: Securing Your Bitcoins - Kitten Tofu

This Talk

•  Entropy!•  Use Cases and Adversaries!•  blockchain.info client!•  Offline Wallets!•  m of n signature schemes!•  BIP32 (“HDWallets”)!•  Network Architecture!•  Malleability!

Page 5: Securing Your Bitcoins - Kitten Tofu

Entropy

•  Measure of “randomness”!•  Usually expressed as the number of bits!!•  Pick truly random passphrases!

•  Google for “diceware”!

Page 6: Securing Your Bitcoins - Kitten Tofu

Use cases + Adversaries

•  Short Term / Easy Access / “hot wallet”!•  Long Term / Savings / “cold storage”!!•  Somebody who has physical access to you!•  Some random hacker on the internet!

Page 7: Securing Your Bitcoins - Kitten Tofu

blockchain.info

•  Client side encryption, however...!•  Google for “matasano javascript”!•  Enable 2 factor authentication!

Page 8: Securing Your Bitcoins - Kitten Tofu

Offline Wallets

•  Private keys on an air gapped computer!

Offline Computer!

Online Computer!

Internet! Private Keys!

Page 9: Securing Your Bitcoins - Kitten Tofu

Offline Wallets

•  Private keys on an air gapped computer!

Offline Computer!

Online Computer!

Internet! Public Keys! Private Keys!

Page 10: Securing Your Bitcoins - Kitten Tofu

Offline Wallets

•  Private keys on an air gapped computer!

Offline Computer!

Online Computer!

Internet! Public Keys! Private Keys!

Unsigned!Transaction!

Page 11: Securing Your Bitcoins - Kitten Tofu

Offline Wallets

•  Private keys on an air gapped computer!

Offline Computer!

Online Computer!

Internet! Public Keys! Private Keys!

Signed!Transaction!

Page 12: Securing Your Bitcoins - Kitten Tofu

Offline Wallets Armory makes this easy!

Page 13: Securing Your Bitcoins - Kitten Tofu

Offline Wallets

•  Encrypt properly!!•  Watch out for USB viruses!!

Page 14: Securing Your Bitcoins - Kitten Tofu

m of n “multisig” transactions

•  BIP 11, Gavin Andresen!•  blockchain.info implements this!•  DIY: Shamir’s secret sharing scheme!•  Good for shared accounts!•  Mitigation against losing access!

Page 15: Securing Your Bitcoins - Kitten Tofu

BIP32 - HD Wallets

•  Create two “extended keys”!•  One for public keys!•  One for private keys!

•  Child Key Derivation (CKD)!•  Given one of these extended keys, you

can derive any of 232 -1 “children”!

Page 16: Securing Your Bitcoins - Kitten Tofu

BIP32 - HD Wallets

Addition (+) of two coordinate pair is defined as application of the EC group operation

Page 17: Securing Your Bitcoins - Kitten Tofu

Architecture

•  Online gambling website / exchange!•  Online shop!

Page 18: Securing Your Bitcoins - Kitten Tofu

Architecture

Web Server!

Hot Wallet!

Internet!

Cold Wallet!Manually processing

gateway!

Private Key!Generator!

Public Key!Generator!

Private Key!Generator!

Page 19: Securing Your Bitcoins - Kitten Tofu

Architecture

Web Server!

Internet!

Cold Wallet!Manually processing

gateway!

Public Key!Generator!

Private Key!Generator!

Page 20: Securing Your Bitcoins - Kitten Tofu

Malleability

•  Your exact transactions are not the only transactions that can spend your funds!

!•  Not as bad as it sounds, just don’t rely on

your txids making it into the blockchain!