Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Secure Bitcoin transactions
without special hardware
OLEKSII KARAKULOV
Software Engineer @ MarketPsych
Mt.Gox hack
Lost bitcoins?
Bitcoin hotline:
1-800-BITCOIN
Спасибо за внимание!
Спасибо за внимание!
Bitcoin transactions are irreversible
Bitcoin wallet has keys, not coins
Bitcoin wallet
021cef0b71c4c80d524a33e
d50b5804258416980e19d1
13ef99eafba496b934c6e
L3owoDWufSxp3SWoc63msrZ4JoU
69LSeNFwuH...
Bitcoin transactions
Your keys? Your bitcoin.
Not your keys? Not your bitcoin.
Not your keys
Your keys
But your keys can leak ;(
Keep your private keys offline!
Create
Store
Sign transactions
Part 1: Creation
Hierarchical deterministic (HD) wallet
Seed phrase
jar eternal
broccoli zoo
Master private key
xprv987ABC
Master public ke...
Demo: new Electrum wallet
Pseudorandom?
Diceware
Hex dice
Demo: https://w3rs.github.io
Part 2: Storage
Mnemonic peg
Plaintext
Plaintext + obscurity
Plaintext: metal
Paper wallet
HDD wallet
Hardware wallet
Have backups!
Part 3: Transactions
Offline transaction signing
Offline signing: hardware wallet
Offline signing: hardware wallet
Prepare unsigned
transaction
Sign with private key
Broadcast transaction
Offline signing: laptop
Offline signing: laptop
Prepare unsigned
transaction
Sign with private key
Broadcast transaction
Offline signing: mobile
Offline signing: mobile
Prepare unsigned
transaction
Sign with private key
Broadcast transaction
Demo: Electrum transaction
Offline signing: Qubes OS
Offline VM Online VM
Prepare unsigned
transaction
Sign with private key
Broadcast transaction
Di...
Private key entropy sources
- Cryptographically secure pseudorandom
- Hardware RNG
- Dice, cards etc.
- Human brain
Storing private keys
In memory:
- Brainwallet, WarpWallet
- Mnemonic peg for seed phrase
On paper or metal:
- Plain text f...
Signing transactions offline
Semi-offline device:
- hardware wallet
Offline device:
- desktop/laptop
- smartphone/tablet
E...
Further reading
Mastering Bitcoin:
http://chimera.labs.oreilly.com/books/1234000001802/
Bitkey live OS (“If I tell you I'l...
Спасибо за внимание!
Алексей Каракулов
ankarakulov@gmail.com
https://github.com/w3rs
https://keybase.io/oleksii
Спасибо за...
$ echo L3owoDWufSxp3SWoc63msrZ4JoU69LSeNFwuHQsTM11SWfAnUstX | bx base58check-decode
wrapper
{
checksum 1556380902
payload ...
Brainwallet (CLI)
$ echo -n "I'm giving a talk at HackIT in Kharkiv!" 
| bx base16-encode | bx sha256
804f8335259e8339736e...
Brainwallet
https://www.bitaddress.org
Hardware RNG
Metal wallet
"Безопасные Биткоин-транзакции без специального оборудования", Алексей Каракулов
"Безопасные Биткоин-транзакции без специального оборудования", Алексей Каракулов
"Безопасные Биткоин-транзакции без специального оборудования", Алексей Каракулов
Upcoming SlideShare
Loading in …5
×

"Безопасные Биткоин-транзакции без специального оборудования", Алексей Каракулов

198 views

Published on

Одна из трудностей в использовании Биткоина — в том, что безопасность плохо сочетается с удобством. Секретные ключи от кошелька можно хранить в офлайне многими способами, однако проблема возникает, когда мы хотим потратить биткоины. Если приложение для кошелька используется на скомпрометированной системе, простого трояна достаточно, чтобы слить секретные ключи.

На сегодняшний день популярны два безопасных способа использования Биткоина: аппаратный кошелёк и «холодный кошелёк» на изолированном компьютере. Оба способа непривлекательны для новых пользователей: надёжные аппаратные кошельки достаточно дорогие, а холодные кошельки не слишком портативны и пока неудобны в использовании.

Я продемонстрирую процедуру исполнения Биткоин транзакций с переходом в офлайн режим перед вводом секретного ключа на примере ОС Tails и кошелька Electrum. Хотя процедура не даёт таких же гарантий безопасности, как холодный кошелёк, она не требует отдельного устройства для кошелька, и при этом значительно безопаснее, чем использование Биткоина на обычной десктопной ОС

Published in: Internet
  • Be the first to comment

  • Be the first to like this

"Безопасные Биткоин-транзакции без специального оборудования", Алексей Каракулов

  1. 1. Secure Bitcoin transactions without special hardware OLEKSII KARAKULOV Software Engineer @ MarketPsych
  2. 2. Mt.Gox hack
  3. 3. Lost bitcoins?
  4. 4. Bitcoin hotline: 1-800-BITCOIN
  5. 5. Спасибо за внимание! Спасибо за внимание!
  6. 6. Bitcoin transactions are irreversible
  7. 7. Bitcoin wallet has keys, not coins
  8. 8. Bitcoin wallet 021cef0b71c4c80d524a33e d50b5804258416980e19d1 13ef99eafba496b934c6e L3owoDWufSxp3SWoc63msrZ4JoU 69LSeNFwuHQsTM11SWfAnUstX 1MDQRCDmtgFPGehA N8SFUp3VKV8uZfARky
  9. 9. Bitcoin transactions
  10. 10. Your keys? Your bitcoin. Not your keys? Not your bitcoin.
  11. 11. Not your keys
  12. 12. Your keys
  13. 13. But your keys can leak ;(
  14. 14. Keep your private keys offline! Create Store Sign transactions
  15. 15. Part 1: Creation
  16. 16. Hierarchical deterministic (HD) wallet Seed phrase jar eternal broccoli zoo Master private key xprv987ABC Master public key xpub123XYZ +N+2+1 +N +2 +1 Private key 1 Lxxx1 Private key 2 Lxxx2 Private key N LxxxN Address 1 1xxx1 Address 2 1xxx2 Address N 1xxxN
  17. 17. Demo: new Electrum wallet
  18. 18. Pseudorandom?
  19. 19. Diceware
  20. 20. Hex dice
  21. 21. Demo: https://w3rs.github.io
  22. 22. Part 2: Storage
  23. 23. Mnemonic peg
  24. 24. Plaintext
  25. 25. Plaintext + obscurity
  26. 26. Plaintext: metal
  27. 27. Paper wallet
  28. 28. HDD wallet
  29. 29. Hardware wallet
  30. 30. Have backups!
  31. 31. Part 3: Transactions
  32. 32. Offline transaction signing
  33. 33. Offline signing: hardware wallet
  34. 34. Offline signing: hardware wallet Prepare unsigned transaction Sign with private key Broadcast transaction
  35. 35. Offline signing: laptop
  36. 36. Offline signing: laptop Prepare unsigned transaction Sign with private key Broadcast transaction
  37. 37. Offline signing: mobile
  38. 38. Offline signing: mobile Prepare unsigned transaction Sign with private key Broadcast transaction
  39. 39. Demo: Electrum transaction
  40. 40. Offline signing: Qubes OS Offline VM Online VM Prepare unsigned transaction Sign with private key Broadcast transaction DiskXen hypervisor
  41. 41. Private key entropy sources - Cryptographically secure pseudorandom - Hardware RNG - Dice, cards etc. - Human brain
  42. 42. Storing private keys In memory: - Brainwallet, WarpWallet - Mnemonic peg for seed phrase On paper or metal: - Plain text for WIF (base58) or seed phrase - QR code (encrypted or plain) On electronic device: - Data storage (USB flash, SD card, floppy etc.) - Cold storage (offline computer) - Hardware wallet
  43. 43. Signing transactions offline Semi-offline device: - hardware wallet Offline device: - desktop/laptop - smartphone/tablet Everyday computer: - offline VM in Qubes OS - amnestic live system (Tails) in offline mode
  44. 44. Further reading Mastering Bitcoin: http://chimera.labs.oreilly.com/books/1234000001802/ Bitkey live OS (“If I tell you I'll have to kill you”): https://bitkey.io/ Electrum docs: https://electrum.readthedocs.io/en/latest/ Bitcoin wiki: https://en.bitcoin.it/wiki/Main_Page Brainwallet HD (use only for fun!): https://w3rs.github.io Qubes OS: https://www.qubes-os.org/ Tails: https://tails.boum.org/
  45. 45. Спасибо за внимание! Алексей Каракулов ankarakulov@gmail.com https://github.com/w3rs https://keybase.io/oleksii Спасибо за внимание! PGP
  46. 46. $ echo L3owoDWufSxp3SWoc63msrZ4JoU69LSeNFwuHQsTM11SWfAnUstX | bx base58check-decode wrapper { checksum 1556380902 payload c4a2d18db39d59a7a735b8469c128309692510a758ed486dc98d053c77ec80ab01 version 128 } $ echo L3owoDWufSxp3SWoc63msrZ4JoU69LSeNFwuHQsTM11SWfAnUstX | bx wif-to-public 021cef0b71c4c80d524a33ed50b5804258416980e19d113ef99eafba496b934c6e $ echo 021cef0b71c4c80d524a33ed50b5804258416980e19d113ef99eafba496b934c6e | bx bitcoin160 | bx base58check-encode 1MDQRCDmtgFPGehAN8SFUp3VKV8uZfARky Get public key & address (CLI)
  47. 47. Brainwallet (CLI) $ echo -n "I'm giving a talk at HackIT in Kharkiv!" | bx base16-encode | bx sha256 804f8335259e8339736ef4c7d44d38f6c8d4d14834a797e6fe5ab7997e71acf9 $ echo 804f8335259e8339736ef4c7d44d38f6c8d4d14834a797e6fe5ab7997e71acf901 | bx base58check-encode -v128 L1X8VHB2fBZi1daQJ9YEoCDz3fpx4AfKfq3VfFP7Db327nuMUvRY $ echo 804f8335259e8339736ef4c7d44d38f6c8d4d14834a797e6fe5ab7997e71acf9 | bx ec-to-public | bx ec-to-address 12qoS5ApeqcACvVx5yEnAsYiMQdMhBULH2
  48. 48. Brainwallet https://www.bitaddress.org
  49. 49. Hardware RNG
  50. 50. Metal wallet

×