Slide 1

Slide 1 text

Copyright © 2018 HAW International Inc. All rights reserved. Developerが陥りやすい3つの罠 SmartContract以外のセキュリティーにも気をつけてい ますか?

Slide 2

Slide 2 text

Copyright © 2018 HAW International Inc. All rights reserved. 自己紹介 中城 元臣(Yukishige Nakajo) twitter: @nakajo github: nakajo2011 ・福岡の飯塚市でBlockchainの研究開発やってます。 ・HAW International所属 ・ethereumは2017/11から始めました。

Slide 3

Slide 3 text

Copyright © 2018 HAW International Inc. All rights reserved. 今日話すこと SmartContract以外のセキュリティーにも気をつけてい ますか? 1. checksum利用してますか? 2. リプレイアタック意識してますか? 3. truffle-hdwallet-providerに潜む罠

Slide 4

Slide 4 text

checksum利用してますか?

Slide 5

Slide 5 text

Copyright © 2018 HAW International Inc. All rights reserved. 1.checksum利用してますか?

Slide 6

Slide 6 text

Copyright © 2018 HAW International Inc. All rights reserved. 1.checksum利用してますか? ● EIP-55で定義 ● addressのhashをとる ● hash値が8 >= 0を大文字にする

Slide 7

Slide 7 text

Copyright © 2018 HAW International Inc. All rights reserved. 1.checksum利用してますか?

Slide 8

Slide 8 text

Copyright © 2018 HAW International Inc. All rights reserved. 1.checksum利用してますか? ・Walletではchecksumを利用してる。 ・Dappsでは?利用してない人が実は多いのでは? ・ethereum-util.jsなどを使えば簡単にチェック可能 ・Dappsでもaddressを各必要のある場所は(たとえ静的なデータ だとしても)checksumを活用しよう。 ・ICAPというフォーマットも提案されているけどまだ主流じゃな い。。。

Slide 9

Slide 9 text

リプレイアタック意識していますか?

Slide 10

Slide 10 text

Copyright © 2018 HAW International Inc. All rights reserved. 2.リプレイアタック意識していますか? ・EIP-155以前では同一のaddresから生成されたtransactionは mainnetとtestnetなど区別なく利用可能

Slide 11

Slide 11 text

Copyright © 2018 HAW International Inc. All rights reserved. 2.リプレイアタック意識していますか? ・EIP-155でsignature生成時にchain idを含めるようにしてリプレ イアタックをできなくした。 ・でも下位互換を持たせるためchain id = 0のtransactionは相変 わらずリプレイアタックの対象となる

Slide 12

Slide 12 text

Copyright © 2018 HAW International Inc. All rights reserved. 2.リプレイアタック意識していますか? Geth

Slide 13

Slide 13 text

Copyright © 2018 HAW International Inc. All rights reserved. 2.リプレイアタック意識していますか? ● EIP-155で解決された。でも下位互換として残ってる。 ● nodeにsignを依頼する場合は多分大丈夫。ethereumjs-txや ganache-cliなどで生成されたtransactionは確認した方がよ い。 ● meta-transactionなど、代替支払いの仕組みを作る場合は特 に注意が必要になると思う。

Slide 14

Slide 14 text

truffle-hdwallet-providerに 潜む罠

Slide 15

Slide 15 text

Copyright © 2018 HAW International Inc. All rights reserved. 3.truffle-hdwallet-providerに潜む罠 infura.io利用する時はtruffle-hdwallet-provider使うことが多い  

Slide 16

Slide 16 text

Copyright © 2018 HAW International Inc. All rights reserved. 3.truffle-hdwallet-providerに潜む罠  

Slide 17

Slide 17 text

Copyright © 2018 HAW International Inc. All rights reserved. 3.truffle-hdwallet-providerに潜む罠 https://ropsten.etherscan.io/address/0x959fd7ef9089b7142b6b908dc3a8af7aa8ff0fa1

Slide 18

Slide 18 text

Copyright © 2018 HAW International Inc. All rights reserved. 3.truffle-hdwallet-providerに潜む罠 ・mnemonicのvalidationをしていない ・空文字でも動いちゃう ・PR #10を出してるのでそっちを使ってね https://github.com/trufflesuite/truffle-hdwallet-provider/pull/10

Slide 19

Slide 19 text

Copyright © 2018 HAW International Inc. All rights reserved. おわり ブログも宜しく http://y-nakajo.hatenablog.com/