今週は読者様からの質問に回答します。

(購入した)ハードウェアウォレットがcompromizedされてないかどうかってどうやって確認するのが良いのでしょうか?オフィシャルで買えば問題ないと考えて良いのでしょうか

質問者様がおっしゃるとおり、ハードウェアウォレットはセキュリティを意識して買うものなので、届いてからの確認も大事です。自分で一から作ったものでない限り、100%安全という確証は手に入らないかもしれませんが、できる限りのことはしておきたいところです。

​今日は購入したハードウェアウォレットが不正でないことを確認するために用意されている様々な方法を解説します。メーカーによって対応している方法・していない方法がありますのでご注意ください。

・購入編

・ハードウェア編

・ファームウェア編

・ソフトウェア編

購入編

今日紹介する方法を使えば世に出回っている不正な(Compromizedな)ハードウェアウォレットのうち多くは検出できると思います。しかし、一番の対策は最初から不正なハードウェアウォレットを掴んでしまう可能性を減らすことです。購入するときの流通経路をしっかり守ることができれば、対策すべき不正は製造業者とその上流によるものに限られるためです。

一般的に、ハードウェアウォレットは製造業者の公式ウェブサイトから購入するのが良いとされています。流通過程でタンパリング(不正なファームウェアのインストールやハードウェアの加工)されているリスクが一番少ないためです。私もこれを推奨します。

もし信用できるカンファレンスなどで製造業者による対面販売が行われていたら、そこで購入するのもありでしょう。

昨年、イスラエルがヒズボラの注文していたポケベル5000台に対してサプライチェーン攻撃を仕掛け、特定の電話番号から着信すると一斉に爆発する細工を施していたことが話題になりました。

今回の質問とは趣旨が少しずれてしまいますが、ハードウェアウォレット自体以外にも守るべきものがあります。プライバシーです。

例えば、公式サイトから購入したハードウェアウォレットの配送先住所として自宅を指定したり、ビットコインで支払ったりすると、住所やトランザクションの情報がHWWを購入した事実と紐づいて保存されてしまいます。実際にLedger社などで住所を含む顧客名簿が流出したことがありますし、それを元に恐喝や強盗が発生したケースもありました。

匿名性を確保するためには、可能なら配送先住所を職場やバーチャルオフィス、私書箱や局留めにできるならしたほうが良いでしょう。決済手段はできればビットコイン以外が良いのではないでしょうか。ビットコインで買うなら、あまり大きなUTXOを使うのはやめておきましょう。(そのUTXOは価格が10倍になっても小さなUTXOですか?)

項目まとめ

・最初から不正なハードウェアウォレットを掴まないためには、製造業者以外による不正を防ぐため流通経路をしっかり固めるのが一番の対策。
・したがって安全性の観点では、公式サイト、または公式がやっている対面販売で買うのが安心。(本当に公式のものか注意する)
・匿名性の観点では、公式サイトから購入するなら配送先住所に自宅を使うことを避けたい。また、多額のビットコインと紐づかないように気をつける。

ハードウェア編

さて、ハードウェアウォレットが手元に届きました。実際に流通経路でタンパリングされていないか確認しましょう。(もし製造業者かそれ以前の段階で細工されていたら、筐体やパッケージングからは検出できません)

大抵のハードウェアウォレットはパッケージに耐タンパ性を持たせています。例えばシュリンクラップ、開封検知シールなどです。モデルにもよりますが、これらがすべて新品同様であることを確認しましょう。オンラインで他の人が上げている写真などと比べるといいかもしれません。

重要なのは、開封検知シールなどもある程度の知識があればバイパスできてしまう程度のセキュリティなため、この段階は簡単なチェックで良いでしょう。「ぱっと見て違和感がない」くらいで直感に任せましょう。

Coldcardは開封検知バッグに入った状態で配送されますが、ちゃんと封が閉まっていない場合が比較的よくあって返品の原因になりがちらしいです。おそらく糊の材質やオペレーションの問題ですが、疑わしいのでそういう場合は返品交換を求めましょう。

外装が大丈夫そうであれば、ファームウェアやソフトウェアを使って中身の検証に移りましょう。

項目まとめ

・パッケージが破損していたり、事前に開封されていないかを、開封検知シールなども見ながら確認していく。ある程度のノウハウとリソースがあれば偽装できるので気休め程度。外装でわかることはそれくらい。

ファームウェア編

HWWには最初からファームウェアがインストールされている機種と、セットアップ時にインストールする必要がある機種があります。まず自分が買ったHWWがどちらに該当するか、初期設定前はどのような状態にあるべきかを確認して、「インストールされていないはずなのにインストールされている」「初期設定がすでにされている」という状況に該当しないかだけ確かめましょう。この場合はタンパリングが疑われます。

購入したばかりなのにすでにセットアップされていた(シードフレーズがすでに生成されていた)、というようなケースはここに含まれます。

なお、公式のファームウェアがクローズドソースで、そこにバックドアがある場合などはこれだけでは防ぎきれません。オープンソースのファームウェアで自分でビルドできる状態であっても、自分でHWWに書き込むところまでいけるかも別問題ですが気休め程度にはマシかもしれません。(例えばデバイス側でファームウェアの署名検証などがある場合は自分で再現できません)

ファームウェア自体を確かめる

最初から入っているものであれば、ファームウェアを公式サイトなどから取得してきて焼き直すという手は悪くないかもしれません。在庫期間中にファームウェアアップデートが出されていることも少なくないので、せめてバージョンのチェックはしましょう。

ファームウェアを自分でダウンロードしてインストールする場合は署名の検証などを行えると100点です。基本的にPGPを使っているため、署名(.ascファイル)の検証などで方法は調べてください。ここで不正なファームウェアを入れてしまわないのが肝心です。ファームウェアインストール後は、本体側で正しいバージョン情報などが表示されることを確認しましょう。

英語になりますが、Coldcard Paranoid Guideなどが署名検証なども含めて割と網羅的なセットアップ手順を示しています。(具体的な内容はColdcardに限定したものになりますが)

ファームウェアを使って本体を確かめる

ファームウェア自体にハードウェアが改変されていないか確かめる機能が搭載されていることがあります。また、それ以外の機能を使って不正なファームウェアを検出することができる場合もあります。

後者の例で言えば、一番簡単なのは1回お試しのシードを問題のHWW以外のデバイスあるいはアナログな方法で生成して、それを問題のHWWおよび別のHWWで復元し、同じ形式のアドレスが一致するか確かめる方法です。ソフトウェアウォレットと接続し、4つの画面(PC画面×2、HWW画面×2)が一致するか確かめましょう。あくまでアドレスの比較が目的なので、別のHWWがなければ、別のPCやスマホに入れたウォレットでも問題ありません。

紙とペンでシャミアの秘密分散法を使いシードフレーズを分割する:Codex32
コアなビットコイナーは秘密鍵の管理にうるさかったり、一家言ある人が多いというイメージはありませんか?少なくとも自分の印象ではWeb3系の人たちよりよほど秘密鍵の生成や管理に関心がある気がします。 ビットコイナーの一部の間ではマルチシグによって自身のコールドストレージのセキュリティを強化する人も見られるようになりました。しかし通常のシードフレーズとは異なり、複数のシードフレーズとスクリプト文のデータなどを用意し別々の場所で安全に保管するのが煩雑なのも間違いありません。 他にはシャミアの秘密分散法という知名度の高い手法を使って1つのシードフレーズを複数の「シェア」に分割し、それらのシェアを使ってn-of-mのマルチシグを擬似的に再現することも考えられます。実際には1つのシードフレーズを復元するので狭義のマルチシグトランザクションにはなりませんが、比較的シンプルな手法で(ビットコイン以外のブロックチェーン系のウォレットで)人気があります。 例えば友人や親戚にシェアを1つ預けてソーシャルリカバリーできるようなウォレットの多くはこのスキームになっています。数人に結託して裏切られないように注

ランダムなシードフレーズをサイコロとペンで生成する方法をこちらの記事に書いています

問題のHWW以外で生成したシードを使って正しいアドレスが表示できる場合は、不正な秘密鍵が仕込まれていることはない可能性が高いです。また、不正なファームウェアが時間を書けてマスター秘密鍵を流出させてしまうDark Skippy攻撃のようなものも、最初から不正なファームウェアを入れないように注意することが対策となります。

ハードウェアウォレットからマスター秘密鍵を抽出してしまう“Dark Skippy”攻撃はどのように対策されているのか
今週話題となったことの1つに、ハードウェアウォレット(HWW)からマスター秘密鍵を抽出してしまう新たな攻撃手法である「Dark Skippy」というものがありました。 Dark Skippyはトランザクション署名時のナンスを用いた隠れチャネル攻撃、と呼ばれる既存のカテゴリに属する攻撃ですが、これまでの攻撃手法と比べて非常に効率的な上に検知が難しいという特徴があります。ハードウェアウォレットに悪意あるファームウェアをインストールしている(されている)ことが前提となりますが、他に何も間違った行動を取っていなくてもある日突然ウォレットの資金が全て盗まれてしまう恐れがあるものです。 今日はDark Skippyについて軽く説明し、このような攻撃に対する対策状況や注意点を解説します。 ・ナンスのランダム性が不足すると秘密鍵を復元できてしまう特徴を突く攻撃 ・HWWに悪意あるファームウェアが入っていないことが何より大事 ・マルチシグやAnti-Exfilと呼ばれる対策も効果的だが、別のリスクを伴う
1つのHWWが不正であっても大丈夫なように、複数のベンダのHWWを組み合わせてマルチシグ運用するという手も比較的ポピュラーです。目的が不正HWW対策だけなら地理分散も必要ありません。ただ、手間と費用と必要な知識レベルはその分増加するので万人向けではないかもしれません。

項目まとめ

・ファームウェアや初回セットアップが「本来の工場出荷状態」より進んでいないか確認する。
・初回はアップデート確認を含めてファームウェアインストールからすると良い
・自分で正しいファームウェアを入れる。この段階で不正なファームウェアをインストールしてしまわないことが重要。
・ファームウェアダウンロード時に、署名検証などができるならする。インストール後は、正しいバージョン情報が本体で表示できているか確認する。
・時間があるなら、お試し用のシードフレーズを信頼できるデバイスまたはアナログな手段で生成して、買ったHWWと別のウォレットに復元し、アドレス一覧を比較する。HWWの画面にも表示して比較する。

ソフトウェア編

ハードウェアウォレットによっては、一緒に使う「公式ソフトウェアウォレット」が存在するものがあります。もちろん、それ以外のソフトウェアウォレットと組み合わせて使うこともできますが、公式ソフトウェアにハードウェアやファームウェアの検証を行う機能が搭載されていることがあります。

ソフトウェアを確かめる

いかなるウォレットアプリも悪意あるソフトウェアではないことを確認してインストール・利用しましょう。

例えばTrezor Suiteにはウェブ版とアプリ版があります。ウェブ版を使うなら、リスクはフィッシングサイトと公式サイトの乗っ取りだと考えられるため、公式サイトのURLであることを慎重に確認した上で、直近で公式SNSなどに乗っ取りを知らせる告知などが出ていないか確認しましょう。

アプリの場合は、Google PlayやApp Store経由の流通も含めて、やはり公式SNSからなりすましや乗っ取りの告知がされていないかだけ確かめてから、公式サイトのリンク経由でダウンロードしましょう。もしサイトから直接ダウンロードする場合は、署名ファイルも合わせてダウンロードして検証できると100点です。Trezorのヘルプサイトや他のソースでやり方を確認しましょう。

なお、使用を始めてからも定期的に公式のSNSをチェックして脆弱性情報やアップデートの情報などを手に入れておくとより安全に使用できるでしょう。以前紹介した、不正なファームウェアを使って長期間かけてシードフレーズを抜く攻撃の対策にもなります。アップデートのタイミングについての記事と合わせてどうぞ。
Bitcoin CoreやUmbrelアプリをアップデートするのに最適なタイミングは?
今週は読者からの質問コーナーです。 Bitcoin CoreやUmbrelなどのアップデートについて、すぐに最新に更新するべきか、それとも重大な脆弱性解消があるかどうかを確認した後にアップデートすべきか、なければ暫く様子を見るべきかのかいつも迷いながら雑に運用しています。 リリースノートを参照すべきなのでしょうが、それも疎かにしています。どのように運用するのが適切でしょうか。 ビットコイン関連のソフトウェアアップデートには重要な脆弱性修正が含まれていることもあれば、逆に脆弱性が含まれている可能性もあるでしょう。理想的には変更の内容を自分で検証、少なくともリリースノート(チェンジログ)くらいは確認したいところですが、技術的な知識が限られている場合はどのようなアップデート戦略をとればよいのでしょうか? 今日はUmbrelアプリやBitcoinノードのアップデート戦略を考えてみます。 ・アップデートは早すぎても遅すぎてもリスキー ・チェンジログは見るべきだが、必ずしも内容すべてが書かれているとは限らない ・個人的におすすめのアップデート戦略

ソフトウェアを使って本体を確かめる

純正のウォレットソフトウェアを使って本体の真正性を検証する機能があったりします。

例えばTrezor SuiteにはTrezor Safe 3/5の本体に搭載されているセキュアエレメントを使って、実際にそのTrezor Safe 3/5が本物であることを検証する機能があります。接続するたびに本体に入っているファームウェアのバージョンやハッシュ値などを検証する機能もあります。初回セットアップ時のファームウェアインストールに必須であるなど、TrezorはTrezor Suiteの併用でセキュリティ強化を図り、ユーザーの囲い込みも目指していることがわかります。

初回セットアップ以降はファームウェアが勝手に変更されないと想定できるなら、公式アプリ以外のソフトウェアウォレットと併用しても問題ないように思います。誰かにタンパリングされているリスクがあるなら、公式アプリを使用するのも最悪の手段ではありませんが、先述した注文時の個人情報とウォレットの利用状況が紐づくことだけはできる限り避けたいところです。

もちろん、使用するハードウェアウォレットに付属する公式ソフトウェアウォレットがなければこの手順はありません。それでも、ウェブサイトなどに行くと様々な方法でHWWを検証する方法などについての記述があったりするので、ぜひ説明書を読むくらいの気持ちでFAQページなどをご覧ください。

項目まとめ

・ウェブ版、アプリ版ともにフィッシングサイトに引っかかっていないこと、公式ウェブサイトが乗っ取られていないことを確認(できる限り)してから、公式ウェブサイトから使用・ダウンロードする。
・公式ソフトウェアにHWWのファームウェアやセキュアエレメントを検証する機能があれば使ってみる。
・それ以外の目的で必ずしも公式のウォレットソフトと併用しなくてもよい。


それぞれの段階でけっこうたくさんの手法があるため、手間と感じられるかもしれません。しかし、多くの場合、公式のセットアップガイドにこれらの手順の多くが含まれているので、セキュリティを改善する目的があってやっていることを意識しながらセットアップに挑んでください。(強いて言えば、テスト用のシードを用意して他のウォレットと比較するようなやり方は公式のセットアップガイドには書いていないでしょう)

フィッシングサイト対策などを含めて、ビットコインを扱う人は基本的なソフトウェアセキュリティの知識は必須といえます。これに関しては先月原さんが投稿した質問回答記事をご覧ください。

暗号資産取引所を利用する上で取るべきセキュリティ対策とは
今週は読者からの質問コーナーです。 こんにちは。 暗号通貨を扱う上でのセキュリティに興味があります。 例えば常日頃、PCやスマホで取引所を利用する上で取るべきセキュリティ対策ですが、 私は専門用語などに疎く、研究所の記事を見ても自分のレベルにあった対策を選ぶのが 難しい所があります。 一般的にはPCはMACやwindows、ブラウザはgoogleやsafari、家の中ではhome wifi、外出時は データやフリーwifi(自分は使わないようにしています)といった環境だと思います。 この状況下でセキュリティを上げるために変更すべきことを初心者向けに教えて頂けると助かります。 2019年7/28にネットワークセキュリティのためのTORやVPNのレポートがあったようですが、研究所の検索では出てきませんでした。読みたいです。大分昔の記事ですが、今もセキュリティ力が高い方々はTORやVPNを使用して取引をしたりしてるのでしょうか? よろしくお願いします。 暗号資産を扱う際のセキュリティ対策についての質問をいただきました。 2024年現在、パソコンを利用される方の一般的な状況は次の通りかと

製造業者より上流のサプライヤーなどが悪意ある部品(模造半導体など)を混入させてそれが気づかれないようなリスクなども含めると、DIYで汎用的な部品を自分で調達してHWWを作ったほうが信用できる!として、ハードウェアウォレットを自作する人たちもいます。これについては片山さんの記事でどうぞ。

草の根ハードウェアウォレットを紹介【Specter, Arduino Hardware wallet, SeedSignerなど】
こんにちは。AndGoのハードウェア担当の片山です。 これまでTrezoreやColdCardなどメジャーなオープンソースのハードウェアウォレットを紹介してきました。他にも様々なプロジェクトがありますので紹介していきたいと思います。 Specter https://github.com/cryptoadvance/specter-diy STMicroelectronicsから発売されているSTM32F469I-DISCOというボードを使用したプロジェクトです。このボードはSTM32F469というマイコンの中でも比較的高性能なチップのための開発用ボードです。チップ内にグラフィックス処理をするための機能を積んでいるため,開発ボードにに4インチのタッチパネル付きの液晶ディスプレイが付属しています。I/Oが揃っているので,付属部品なしで動くものを作りはじめることができます。特徴としては$40ほどの外付けのQRコードスキャナ(コンビニにあるようなバーコードをスキャンするデバイスの二次元版?)を取り付けることで,アドレスのQRコードを読み取ることができます。QRコードスキャナが無くても

長くなってしまいましたが、今日の記事はハードウェアウォレットが不正に改造(設計)されていないか確かめる方法を色々紹介しました。次にハードウェアウォレットを購入されたときにセットアップ手順を見て思い出していただければ幸いです。

もしどこかで問題に引っかかった場合は、ぜひ製造元に問い合わせてください。その際も、なりすましアカウントなどに連絡を取ってしまわないようにご注意ください。