Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ハードウェアウォレットのしくみ - ブロックチェーンサービスのセキュリティを考える -

ハードウェアウォレットのしくみ - ブロックチェーンサービスのセキュリティを考える -

Toshihide Hara

November 28, 2018
Tweet

More Decks by Toshihide Hara

Other Decks in Technology

Transcript

  1. 株式会社AndGo代表取締役 原 利英,博士(理学)  2010年3月 東京理科大学理工学研究科情報科学専攻博士後期課程卒業  2010年4月 - 2015年3月 東京理科大学理工学部情報科学科助教  2015年4月 - 2017年4月 アクテイブ株式会社 IT研究所主任研究員  2017年4月 株式会社AndGo創業

    著書:数理物理と数理情報の基礎 , 近代科学社, 2016. SNS: 専門: 電子工作 天空の城ラピュタ ドラゴンボール 東芝J3100 (白黒液晶) QBasic, Delphi Doom, Quake, Unreal 小学生 中学生・高校生 ゲノム解析手法 塾教師/がん研究会 アーチェリー github/toshihr @ToshihideHara 大学生 Genome Analysis / Drug Delivery System / Chaos / Crypto 研究職 暗号と出会う ゲノムは暗号! ・高精度アライメント法 ・AESより速い暗号化法 ・暗号化したまま比べる技術 Who is me
  2. AndGoとは    AndGo 社名の由来 暗号技術を持つ会社、秘匿暗号の研究開発をする会社 だからAndGo (アンゴー = 暗号) Excite The

    World with Technology 技術で世界をワクワクさせる 技術が好きでたまらない 技術開発が楽しくて仕方がないエンジニアが創った会社 3期
  3. 暗号通貨を所有し安全に管理するには 1. 秘密鍵を自分で管理すること 2. 秘密鍵をオフラインで管理すること ログイン型 クライアント型 ハードウェア 高リスク 中リスク

    低リスク 秘密鍵管理 秘密鍵所有者 一部オンライン オンライン オフライン 事業者 ユーザー ユーザー ※リモートでのハッキングリスク
  4. アプリ 全体像 ウォレット事業者サーバー インターネット バックアップ ウォレット APIサーバー REST API /

    JSON-RPC Stratum protocol, etc... Full Node bitcoind, geth, etc... ブロックチェーン USBケーブル/Bluetooth
  5. アプリ トランザクションの流れ ウォレット事業者サーバー インターネット バックアップ ウォレット APIサーバー REST API /

    JSON-RPC Stratum protocol, etc... Full Node bitcoind, geth, etc... ブロックチェーン ①トランザクション  データ作成 ②トランザクション  データ送信 ③電子署名 ④署名済み  トランザクション  データ送信 ⑤署名済みトランザクション  ブロードキャスト
  6. アプリ 全体像 ウォレット事業者サーバー インターネット バックアップ ウォレット APIサーバー REST API /

    JSON-RPC Stratum protocol, etc... Full Node bitcoind, geth, etc... ブロックチェーン USBケーブル/Bluetooth 1 2 3 4
  7. 1.ハードウェア - 構成 主な機能 秘密鍵の保管 + 秘密鍵による電子署名 メモリ(無揮発性) ・秘密鍵を保管する CPU

    ・秘密鍵をつくる ・秘密鍵の束を管理する(ウォレット機能) ・秘密鍵を使って電子署名する
  8. 1.ハードウェア - TREZOR メモリとCPUが一緒になったマイコンを利用 仕様 [6] ・マイコン STM32F205RET6  ARM Cortex-M3

    (32bit)  Flash 512kb  SRAM 128kb  Random Number Generator 特徴 ・OSが動かないほどコンパクトだ からハックされにくい ・マイコンの中で秘密鍵の管理、 電子署名を完結する
  9. 1.ハードウェア - Ledger Nano S セキュアマイコンを利用 仕様 [6] ・マイコン STM32F042K

    ・セキュアマイコン ST31H320 特徴 ・デュアルチップ構成 ・耐タンパー性がある [https://hodlitbro.com.au/2017/12/28/ledger-nano-s-protect-your-coins-with-a-hardware-wallet/]
  10. 1.ハードウェア - Common Criteria (CC) セキュアマイコンはCommon Criteria基準で評価されている ・コンピュータセキュリティのための国際規格 ISO/IEC 15408

    ・セキュリティ評価の枠組みが提供されている ・CCは要求仕様を示し、開発、評価のプロセスが厳格な方式で行われたという保証を提 供する ST31 (Ledger Nano Sの採用するチップ) について ・評価保証レベル (EAL, Evaluation Assurance Level) 5+ ・EALはCCのうち、製品の開発過程全般をカバーする保証要件のパッケージ ・Ledgerによるファームウェア実装部のセキュリティが評価されているわけではない [https://www.st.com/en/secure-mcus/secure-hardware-platforms.html]
  11. 1.ハードウェア - 信じて良いのか問題 差し込むだけのお手軽ハック技術が存在 BadUSB ・Black Hat USA 2014にて発表された ・差し込むだけでキーログを回収できる

    ・ワクチンソフトで検出できない USBdriveby ・DNSを書き換える機能 ・アプリケーションにアクセスする機能 [BadUSBをやってみた, 7]
  12. 3.アプリ 主な機能 UTXOを集め残高を計算する、Txの作成、検証をする 各アドレスの残高を合算する Transaction A Input FROM Previous Transaction:

    #0 Alice 1.0 BTC Output Output #0: Bob 0.3 BTC Output #1: Alice 0.6995 BTC Fee: 0.0005 BTC トランザクションを検証する
  13. 4.サーバーサイド 主な機能 UTXOを集める、Txをブロードキャストする ウォレット事業者サーバー APIサーバー REST API / JSON-RPC Stratum

    protocol, etc... Full Node bitcoind, geth, etc... ブロックチェーン APIサーバー ・BitPay Insight, Electrum, 独自実装など ・Nodeとアプリとの間に入り色々と面倒をみる ・AML/CFTに関するセキュリティを実装できる
  14. References [1] BIP - https://github.com/bitcoin/bips [2] BIP39について調べてみた - https://tech.bitbank.cc/about-bip39/ [3]

    チップハック問題 - https://www.bloomberg.com/news/features/2018-10-04/the-big-hack-how-china-used-a-tiny-chip-to-infiltrat e-america-s-top-companies [4] 金融庁仮想通貨交換業等に関する研究会 - https://www.fsa.go.jp/news/30/singi/kasoukenkyuukai.html [5] 博報堂調査 - https://www.hakuhodo.co.jp/uploads/2018/03/20180327-1.pdf [6] TREZOR - https://github.com/trezor/trezor-hw [7] BadUSBをやってみた - http://jh1lhv.hatenablog.jp/entry/2015/02/09/215102 [8] FAKE Trezor - https://blog.trezor.io/psa-non-genuine-trezor-devices-979b64e359a7