SeedSignerでSatochipを使ってみよう!

SeedSignerでSatochipを使ってみよう!

今回、CryptoGuide氏が開発中のSeedSignerフォーク版を使用して、Satochipカードのセットアップから署名までを一通り試してみました。 カード型ハードウェアウォレットであるSatochipを、SeedSignerと組み合わせてどう活用できるのかを紹介します。

Satochipとは?

Satochipは、ICチップに保持したシードを使ってブラインド署名できるカード型のハードウェアウォレットです。
Satochip公式サイト

しかしカード型のハードウェアウォレットにはいくつかの弱点があります。

  • ディスプレイが無く、トランザクション内容を直接確認できない
  • セットアップ時にシードをPC上のウォレットアプリや専用アプリで扱う必要があり、その過程で漏洩リスクがある

今回のフォーク版を使えば、Satochipカードのセットアップから署名まで、すべてSeedSignerだけで完結させることができます。 シードは常にSatochipカード内に保持され外部へ出ることがなく、トランザクション内容もSeedSignerの画面で確認できるため、セキュリティ面でも安心して利用できます。

DIYで作れるSatochip

Satochipはオープンソースプロジェクトです。 製品版カードを購入することも可能ですが、空のスマートカード(J3R180)を用意して自分でアプレットをインストールすればDIYすることもできます。

本来、アプレットのインストールには専用のツールを準備する必要があり、自分のような非テックな人間にはやや敷居が高いのですが、今回のフォーク版SeedSignerにはこのインストール機能が組み込まれており、SeedSigner上の操作だけで手軽にカードを構築できます。

使用したSeedSignerフォーク版

フォーク版の現行最新版ではアプレットのインストールと初期セットアップまでしか対応していないのですが、プレリリース版では署名まで可能になっています。今回はプレリリース版を使用しました。
GitHubリリースページ

※プレリリース版は開発途中なので、実用ではなくテスト目的での使用に留めるのが無難です。

スマートカードへのアプレットインストール

まずは空のスマートカードをSeedSignerに挿入。

Tools → Smartcard Tools → DIY Tools → Install Applet

と進み、「Satochip-0.12-official.cap」を選択すると、数秒でインストールが完了します。

シードの準備

次にSatochipに書き込むシードを用意します。方法は自由で、例えば:

  • SeedSignerで新規生成(カメラ、サイコロ)
  • SeedQRから既存のシードをロード
  • SeedKeeperに保管しているシードをロード

いずれの方法でもOKです。今回はSeedKeeperからロードしておきます。

カードへのシード書き込み

シードを準備したら、Satochipカードに書き込みます。

Tools → Smartcard Tools → Satochip Functions → Initialise with Seed

を選択すると、PINコードの設定を求められます。 任意のPINを入力して確定すると、次にSeedSignerにロード済みのシード一覧が表示されます。 ここでカードに書き込みたいシードを選択すれば、Satochipカードへの保存が完了します。

一度シードを書き込んだSatochipカードに新たなシードを上書きすることはできないようです。カードをリセットして別のシードを使いたい場合、現状ではアプレットを一旦アンインストールする必要があります。

PINはSatochipカードにアクセスするための鍵であり、署名やXpubエクスポートの際に必ず入力を求められます。 このPINを知らなければカードを利用できないため、シードをカード外に出さずに安全に保護する仕組みになっています。

PINを5回連続で間違えるとカード内部のデータは自動的に消去されます。 この仕組みによってブルートフォース攻撃などを防ぐことができ、不正アクセスに強い設計になっています

Xpubのエクスポートとウォレット作成

次に、Sparrow WalletへXpubをエクスポートしてウォレットを作成します。

Tools → Smartcard Tools → Satochip Functions → Export Xpub

XpubのQRコードを表示させたら、Sparrow Wallet側の手順は通常のSeedSignerの場合と同じです。

最後にVerifyのためにSparrowの受取アドレスをスキャンするよう求められます。

トランザクション署名の流れ

実際の署名は以下の流れです。

  1. Sparrow WalletでPSBTを作成
  2. QRコードをSeedSignerでスキャン
  3. 「Use Satochip card」を選択

トランザクション内容がSeedSignerの画面に表示されるので確認し、問題なければ署名して、Sparrow WalletにQRコードで戻し、ブロードキャストすれば完了です。

まとめ

今回、SeedSignerフォーク版を使ってSatochipのセットアップから署名までを試しました。 SeedSignerだけでSatochipの初期化から署名まで完結できるのは画期的だと感じました。

通常のSeedSignerはシードを一時的にRAMに保持する仕組みで、電源を切れば揮発しますが、その間は保護されていない状態になります。 一方、Satochipを組み合わせれば、シードは常にスマートカード内で安全に保持され、外部に漏れることはありません。 この点で、よりセキュアなワークフローを構築できるのが大きなメリットです。

興味のある方はぜひテストにチャレンジしてみてください。
ここまで読んでいただき、どうもありがとうございました。

今回はCryptoGuide氏が作製し販売している専用カードリーダーボードを組み込んだSeedSignerを利用しましたが、一般的なUSB接続のスマートカードリーダーを使っても動作させることが可能です。

この続き : 0字 / 画像 0枚
100

会員登録 / ログインして続きを読む

関連記事

記事を書いた人

たぶんビットコイナー

SNSにシェア

このクリエイターの人気記事

SeedSignerを作ろう!

1501

SeedSignerを使ってみよう【前編】

395

SeedSigner を使ってみよう【後編】

279