先週、HTCのブロックチェーンスマホのセキュリティ面の問題(修正済み)についての記事を書きましたが、Samsung Galaxy S10やSirin LabsのFinneyなどのブロックチェーンスマホについても解説できないかとリクエストを頂いたので、調べてみました。スマホのハードウェアについてはあまり専門ではないのですが、一般的な話として普通のスマホがどういうふうに暗号鍵のセキュリティを扱っているかについても合わせてどうぞ。(今回の記事はかなり長いです、ごめんなさい。)

普通のスマホ:Secure Enclave, TrustZone

スマートフォンのセキュリティについて、一番意識されるのは物理的なハックではなく、ウィルスです。スマホがウィルスに感染したとき、OS(AndroidやiOS)が意図せぬ動作をする可能性があるので、暗号鍵やパスワード、指紋、顔認証などの認証情報はOS自体がそもそも見ることのできない隔離された領域に保管するのが普通です。この概念はハードウェアウォレットと同じイメージですね。

暗号鍵などを格納するセキュアな領域をARM系のプロセッサではTrustZone、AppleのプロセッサではSecure Enclaveと呼びます。例えばSecure Enclaveには専用のプロセッサーがあり、メモリはメインのOSと共有しますが暗号化されています。セキュア領域に鍵を格納したり、鍵を出さずに署名などが行えるので、おそらくモバイルウォレットのすべてがここに秘密鍵を格納しているはずです。

先週の記事に登場したHTC Exodus 1の秘密鍵もこのような保管のされ方をしています。弱点としては、セキュア領域の実装に脆弱性が発覚した場合や、ハードウェアウォレットだと独自のディスプレイがあったりするところ、画面や入力の制御はOSの機能なのでウィルスやマルウェアの内容によっては誤送金をしてしまう可能性があります。(ハードウェアウォレットのように、「実際は何を署名させられているか確認する」ことが難しい)

セキュリティ重視:独立したセキュリティチップ

Google Pixel 3など一部のスマートフォンではCPUとは別の場所に完全に独立したセキュリティチップがあったりします。この場合は、セキュリティチップ専用のメモリなどまであります。Googleが開発したTitan Mの場合は、物理的に独立したチップを使うことによってCPUの脆弱性を利用した攻撃やサイドチャネル攻撃、起動途中の攻撃に強くなっています。

※サイドチャネル攻撃=暗号化や復号化するときの「クセ」を観察し、それを元に暗号鍵を入手しようとする攻撃。

TREZORへのサイドチャネル攻撃についての記事:

Details about the Side-Channel Attacks on Trezor One Hardware Wallet
Following Trezor’s post detailing the latest firmware update’s security improvements, we can now present the side-channel analysis…

ただし、このようなチップを生産する際にGoogleが自社生産したとおり、サプライチェーンを抑える必要があることは大きな課題です。(Huawei問題のように国家ぐるみでバックドアを仕込んでいるとかの話になりうるので)

Samsung Galaxy S10のコールドウォレット

米国・カナダ・韓国で販売されたSamsung Galaxy S10には、設定メニューから有効化することで使えるSamsung Blockchain Walletというイーサリアムウォレットが最初から入っています。他の地域のものにはインストールすらできないようです。ビットコインには非対応です。

「コールドウォレット」と謳ってはいますが、Samsung Knoxの説明を読むと結局は普通のスマートフォンと同様、ARMのTrustZoneを利用した秘密鍵保管のようです。 他の機種でモバイルウォレットを使うのと本質的に違いはなさそうです。
(※TrustZoneのソフトウェアはネットから隔離されているので、一応コールドとも言えるのでしょうが、ハードウェアはオンラインのOSと一部シェアしているので完全にコールドと言い切るのは。。。)

Sirin Labs Finneyのセキュリティ

Sirin Labsがセキュリティ面を強調するスマートフォン・FinneyにはSirin OSというAndroid 8.1のフォークが搭載されていて、セキュリティを前面に押し出しまくっているのですが、今回見た中では一番まともだと思いました。

Sirin OSには最初からProtonMailやTrustCallなどの暗号化メール・通話アプリが入っているようですが、上記以外に余計なアプリは入っておらず、本家Androidに非常に近いです。(それが一番アップデートも早く長く対応できてセキュアです。個人的にはAppleとGoogleの端末がいいと思います。)

他にも、侵入防止システム(IPS)を搭載しているようですが、詳細がわからなかったのでどれくらいのものかは不明です。IPSとは簡単に言えばファイアウォールをもう少し賢くしたものです。

同じく搭載されているらしいトークン交換サービス(TCS)は簡単に言えばSirinが運営するBitPayのような決済サービスだと思います。(おそらくSirinが決済を中継して受け手のほしい通貨にする)

一番の目玉はハードウェアウォレット機能。個人的にFinneyのすごいところは、これが大半のハードウェアウォレットよりかっこいいところです。また、ちゃんとウォレット専用の画面と操作系統があるので、セキュリティ面に文句はありません。ただ、取り外せないので、常に持ち運ぶスマホにハードウェアウォレットが付いていることがスマートなのかは人によって判断が分かれるところでしょう。(特に重さや大きさの面で)(ハードウェアウォレットの画面が上部からぴょこっと出てきます https://shop.sirinlabs.com/products/finney )

まとめ

今のところ基本的に「ブロックチェーンスマホ」はマーケティングの産物で、普通のスマホと大差ありません。セキュリティアップデートの面ではOSを開発しているAppleやGoogleが出す端末が一番セキュアだと思います。ハードウェアウォレット機能に関してはFinneyが抜きん出てました。

今回記事の内容についてリクエストがあってとても嬉しかったです。もし何か意見があれば、コメント欄や何らかの方法で教えて下さい。