見出し画像

No267 サイドチャネル攻撃という盗聴の話

2022年7月に韓国の研究チームが、タッチ決済時にスマホの「内部音」(電磁ノイズ)を利用して決済情報を盗み取ることができるという発表しました。

本来のルート(チャネル)が強くガードされている場合、違ったチャネル経由で情報を盗み取ることをサイドチャネル攻撃と呼びます。

今回はサイドチャネル攻撃という一風変わった盗聴方式について解説します。


1. タッチ決済での決済情報を盗み取る

この件については、ITmedia NEWSで詳細をご覧いただけます。
https://www.itmedia.co.jp/news/articles/2207/13/news041.html
「タッチ決済時の「〇〇Pay」の音をこっそり盗聴し、決済アプリを乗っ取る攻撃 韓国の研究チームが指摘」

いわゆるタッチ決済を行う場合、日本ではNFC(Near Field Communicatoin:いわゆる非接触通信)がメジャーですが、MST(Magnetic Secure Transmission:安全な磁気通信)という方式もあるそうです。

このMSTという方式、筆者は初めて聞いたのでWikipediaで調べたのですが、日本語のページがありませんでした。おそらく日本ではほとんど使われていないのでしょう。

ただ、従来の磁気カードリーダがそのまま使える(=お店は投資しなくていい)ため、スマホ決済以前にキャッシュレス決済が広がっていた国ではかなり普及しているそうです。

さて、このMSTでは、カードリーダにスマホを掲げると、スマホから磁気カードが置かれた時と同様の磁気パターンを発生させます。磁気カードリーダはスマホから発信された信号を磁気カードのものと誤解して決済を行う、という仕組みです。

ここから、詳しく書くとかなり面倒なので、ザクっと省略しますと、磁気カードリーダ向けにスマホが磁気を発生する時にノイズが出ます。それを録音すれば発生させた磁気の強さがわかる。それを解析すれば認証時の情報がわかる、というものです。

余談
 上記では納得できない方への細かい説明です。
 さて、MST対応のスマホは磁気を発生させるMSTコイルという部品が載っています。
 コイルというのは電磁石のように磁界を発生させる、ごくありふれた部品です。
 決済時にはこのMSTコイルを動作させると、磁石ですから周りのパーツを引き寄せる力が働きます。この時、スマホが(ごくごく微かに)歪み、小さな音が出るそうです。
 この音は磁界の強さによって異なるため、録音すれば全てがわかるという理屈です。


2. サイドチャネル攻撃

一般的に情報の盗聴を行おうとする場合、その通信内容そのものを入手しようとします。

盗聴を防ぐ側としては、通信内容を暗号化する、経路を変える(電話で伝える、人が運ぶ、など)などを行います。

盗もうとする側は暗号化を解いたり、送信経路を知ろうとしたりします。

それに対して、そういった正規のチャネル以外からのアプローチをサイドチャネル攻撃と言います。

最初に書いたMSTに対する攻撃などは典型的なサイドチャネル攻撃です。
広義では盗聴先の関係者を脅して暗号鍵を入手するのもサイドチャネル攻撃と言えます。(通常はこういった人の弱みを利用した攻撃はソーシャルエンジニアリングに含みます)

以下では、筆者が見聞きしたサイドチャネル攻撃の例を示します。


3. ログインへのサイドチャネル攻撃

随分と古い話ですが、筆者が仕事を始めた頃の話です。
(筆者は最後の昭和入社世代ですので、もう30年以上も前の話です)
当時、UNIXと呼ばれるエンジニア向けのOSに触れることができ、その優れた設計に感心していました。

その中で不思議な事象がありました。

UNIXでも利用前にはログインという手続きが必要なのですが、パスワードを間違った場合、エラーになるまでに妙な待ち時間があるのです。
当時のUNIXのログインシステムは、非常にシンプルなものでしたから、パスワードが正しいかどうかのチェックにそんなに時間がかかるのは解せません。
現に、ログインに成功した場合はパスワードの入力直後にログインができます。

なぜこんな動きになるのかと疑問だったのですが、後にこれが不正ログイン対策であることを知りました。

パスワード間違いをするとどうして時間がかかるのでしょうか?

実はエラーの発生時には、時間がかかっているのではなく、わざと無駄な時間を費やしていたのです。その時間も毎回ランダム(例えば0.5秒~1.0秒の間)に変わります。

これはコンピュータ側でのログイン処理時間がバレないための仕組みなのです。
処理時間がバレると一体何がマズいのでしょうか?

ログイン処理というのは以下の2つの処理の合計時間です。
(下記のそれぞれの処理時間はいずれも1秒もかかりません)
 A 入力されたログインIDがデータベースに存在するかを確認する
 B 入力されたパスワードが該当ログインIDのパスワードかを確認する。

通常のログインでは、A+Bの時間がかかります。
一方ログインエラーでは、ログインIDが間違っている場合と、パスワードが間違っている場合とで、所要時間が違います。
 パスワード間違い: A+Bの時間
 ログインID間違い: Aの時間のみ

攻撃を仕掛ける方にとっては、ログインID間違いが短時間に戻ってくれば「あ、このログインIDはないんだな」とわかってしまうわけです。
つまり、攻撃側にわざわざ情報を与えてしまうわけです。

それを避けるために上記のようにランダムな待ち時間を加えることでIDがないからエラーなのか、パスワードが間違っていてエラーなのかをわからないようにしているのです。

UNIXでは30年以上も前に既に情報セキュリティ対策を行っていたわけで、これを知った時には筆者ははかなり驚きました。


4. 電磁波を読み取るサイドチャネル攻撃

これは2021年に聞いた話ですが、最近ではスマホの画面内容をスマホから洩れ出る電磁波を拾うことで再現できるそうです。

その機器というのは電磁波を拾うアンテナ+それを記録するPC+解析アプリです。
スマホ内部のメインボード(主要部品が載っている基板)から液晶パネルに繋がるケーブル(電線)から洩れ出る電磁波を拾えば、スマホで表示している画面を再現できるはずだ、というわけです。

その機器というのも十分に持ち運べる大きさ(デモではちょっと大きめのビジネスバッグを使っていました)でした。
ターゲットの人物が待合室でスマホを触っていたところ、盗聴機器を仕込んだビジネスバッグを持つ男が横に座り本を読み始めます。
ターゲットが席を立つと、男はおもむろにバッグからPCを取り出し、解析アプリを動かすと鮮明なスマホの画像が動画として再生されるではありませんか!

スパイ映画さながらのことが現実に行えるという意味で衝撃的でした。

もっとも、これには多少の脚色があることを付記しておきます。

まず、このデモは特定のスマホに特化しています。つまりそのスマホから何を表示するとどんな電磁波が出るのか?という情報が丁寧にデータ化されています。
つまり、いきなり全くの他人のスマホをキレイに再生できるわけではありません。

また、この情報は既にスマホメーカの開発陣には周知されていて、既にメーカ側では対策を打っているようですので、新機種では同様の仕組みで再現できる可能性はかなり低いです。

というわけでスグに実用化できるような性質のものではありませんが、考慮をしていない現在のスマホは電磁波ダダ漏れであることは、知っておいて損はありません。

5. まとめ

サイドチャネル攻撃という攻撃手段があります。

特定の攻撃手法というよりは、本来なルートのデータ盗聴以外の方法全てを指す用語で、それが示す内容は多岐にわたります。

今回はそのうち、電磁波を読み取るタイプの攻撃と処理時間に着目した攻撃を紹介しました。

サイドチャネル攻撃には、これ以外にもCPUの動作のクセを利用した攻撃、コンピュータが使用する電力差によって処理内容を推測する攻撃なども存在しています。

また機会があれば、これらについても解説したいと思います。

次回もお楽しみに。

(本稿は 2022年7月に作成しました)

本Noteはメルマガ「がんばりすぎないセキュリティ」からの転載です。
当所はセミナーなどを通して皆さんが楽しく笑顔でITを利用いただくために、 難しいセキュリティ技術をやさしく語ります。
公式サイトは https://www.egao-it.com/ です。


この記事が気に入ったらサポートをしてみませんか?