ハードウェアウォレット SecuX V20の分解
こんにちは。AndGoのハードウェア担当です。毎週水曜日はAndGoのエンジニアが交代で技術に関する記事を皆様にお送りしています。
今週は新たなハードウェアウォレットSecuX V20を入手しましたので,分解して解析していきます。このハードウェアウォレットを開発したのはSecuX Technology Inc.は2018年にできた台湾の企業です。1000以上(!)の仮想通貨およびトークンに対応しているとのことで,https://secuxtech.com/supported-coins-tokens にリストアップされています。タッチスクリーンの比較的大型の2.8インチのディスプレイを搭載し,バッテリーでの動作も可能です。そして,Infineon製のミリタリーグレードのセキュアエレメントを搭載していると謳っています。
FIg. 1 まずは箱です。(じつは弊社CEOが入手したものです。すでに彼の手により開封されていてセットアップ済みで,ついでに裏蓋も開けられていました笑)。左下にInfineon製のセキュアエレメンtが使われているというマークがついています。ちょっとわかりにくいですが,箱の手前に開封されたかどうか分かるシールも貼られています。

Fig. 2 概形です。ドラ焼きぐらいのサイズです。重量は120gで若干ずっしりしたしっかりした作りです。以前,弊社で試作したハードウェアウォレットを思い出しました。(https://innovation.mufg.jp/detail/id=301 に掲載されている写真の左のハードウェアウォレットです。)

Fig. 3 電源を入れるとロゴが表示されます。タッチスクリーンは使いやすく反応は良いようです。

Fig. 4 起動時にPINを求められます。キーパッドの数字の位置もランダムに変更されるのでセキュリティに配慮されています。

Fig. 5 Bluetooth でペアリングします。iOS,Android,パソコンいずれも対応しています。BluetoothといってもBluetooth Low Energy (BLE)です。通常のBluetoothよりも低諸費電力ですが,通信速度は現実的には1Mbpsも出ないですが,トランザクションのデータをやりとりするだけですので十分です。無線ですと若干セキュリティが心配ですが,ペアリングされていればプロトコルレベルで通信内容は暗号化されています。何より,送金時にはどのようなハードウェアウォレットであれ画面上でトランザクション内容(アドレスと送金量)をチェックすることが重要です。ハードウェアウォレットそのものより,インターネットに接続されたスマートフォンやパソコンなどのソフトウェア側でトランザクション内容を書き換えるような攻撃をされることに気をつけるべきです。

Fig. 6 BLEをモニタリングするアプリを使ってみるとSecuXという文字が見えます。ついでに,様々なBLE対応の機器が近くにあることも分かります。BLEはプロトコル上最大で400mまで通信距離を伸ばすことができるそうですが,設定によって通信距離を短くすることもできます。余談ですが,BLEの機能として大雑把な距離を測定することもでき,ビーコンや接触確認アプリなどに応用されています。

Fig. 7 FCCマークやCEマークを確認することができます。本来は技適マーク(〒のマークが入ったやつ)がないと日本でこの機器を使うことができません。もちろん電波暗室で試用していますっ!ちなみに,技適を取得済みのBLEチップを搭載したモジュールが製品に組み込まれている場合は技適マークは不要です。

Fig. 8 受金用のアドレスのためのQRコードです。

Fig. 9 さっそく裏蓋を開けてみます。中身はスカスカでほとんど周りの金属部の重さであったことが分かります。3枚の電子回路基板で構成されています。真ん中のものがメイン基板,右の小さな基板は電源スイッチ用,左にある半分隠れているものはUSBコネクタ用です。

Fig. 10 メイン基板です。USBコネクタ用の基板とは4本の線で接続されています。引っ張ったら取れてしまいそうです・・・。上部に白い線が2本見えますが,これは明らかに設計ミスがあったため,製造後に手作業で修正しているものです。電子回路基板は作るために数万円程度の初期コストがかかりますので,開発中にはそれほど気軽に変更して作り直しはしません。そこで,手作業で修正することがあり,このようなことはよくしますが,大量生産品では手間がかかることや信頼性の面であまりおすすめできません。回路を細かく解析したわけではないので断言はできませんが,左の白い線は電源回路の修正,右の線は配線ミスの修正かなと推測しています。また基板の右下の斜めになっているところにデバッグ用ポートの痕跡があります。基板製造時にはこの斜めになっているところにも基板の続きがあり,デバッグ用の端子がついていて,そこから初期ファームウェアを書き込むのですが,書き込み終わったらキットカットみたいに割って取り外してしまいます。普通はさらにマイコン側でもデバッグポートを無効にする処理をするのですが,念の為,回路としても不正な書き込みをされにくいように切り離されています。簡単にアクセスはできるので,あまり意味は無いですが・・・

Fig. 11 つづいてマイコンをマクロレンズで撮影してみました。このマイコンはNordic semiconductorのnRF52840です(https://www.nordicsemi.com/Products/nRF52840)。このマイコンはArmのCortex-M4というシリーズのコアをつかっていることや,BLEを搭載しているので,IoT関係ではよく使われる割と有名所のものです。情報も多く開発しやすいのではないかと思います。

Fig. 12 こちらはセキュアチップです。Infineon(インフィニオン)というドイツの企業が製造しているIKVというシリーズのセキュアチップです(https://www.infineon.com/.../Preferred-Security.../ikv/))。セキュアチップを使うことで,比較的安全に秘密鍵をチップ内に保存しておくことができます。右側に5本線が出ていますが,一番下はおそらく電源で,残り4本がマイコンとの通信用の線です。チップに関する詳細な情報は公開されていないのですが,本数からするとSPIという通信方式ですので,それらしき通信をしているかどうか解析できるかもしれませんので,いつかやってみようと思っています。

Fig. 13 基板の修正跡です。真ん中の12ピンのICは電源ICで,バッテリーの電圧を安定化しています。ICの下についているのがコイルです。よーく見るとエナメル線が巻かれているのがお分かりいただけると思います。電源回路は設計通り安定して動かないこともあり,技術者の経験と勘で修正が必要になることもあります。このサイズのICに手作業ではんだ付けされていますが,相当器用な方がやったのでしょう。

Fig. 14 こちらは液晶とメイン基板の間のフレキシブル基板の上に実装されたICです。調べてみたところST16141というタッチスクリーン用のコントローラのようです。

Fig. 15 バッテリーです。600mAhの容量です。ディスプレイが大きいのでバックライトで割とすぐに消費してしまうぐらいの容量ですが,ハードウェアウォレットはそれほど頻繁に使うものではないので,この程度の容量でも問題ないのだと思います。ハードウェアウォレットのような頻繁に使用せず,長期的に保有するデバイスには充電式のバッテリーは個人的にはオススメしません。2021.7.7に紹介したJadeもリチウムイオン電池を搭載していましたが,バッテリーは自己放電してしまいますし,劣化して使えなくなることも想定されるからです。

Fig. 16 おまけです。メイン基板の裏をみたら,配線のパターンが一部切断されている跡がありました。

いかがでしたでしょうか?電子回路基板を解析することで,開発時の様子が少し垣間見えるので非常に面白いと思っています。
次の記事
読者になる
一緒に新しい世界を探求していきましょう。
ディスカッション