加速度計を使用してスマートフォンのキーストロークを傍受する

カリフォルニア大学デイビス大学のハオ・チェンとリアン・カイの2人の研究者は、組み込みの加速度計で測定したデバイスの変位、揺れ、振動を測定することで、Android OSの画面キーボードでどのキーが押されたかを判断する方法を見つけました[注 perev。:およびジャイロスコープ] 。 これは重要です。加速度計からのデータは潜在的な攻撃ベクトルとは見なされなかったため、スマートフォンやタブレットのどのアプリケーションでも自由に利用できるためです。



WindowsまたはMacのデスクトップまたはラップトップコンピューターでキーストロークを傍受するのは非常に簡単です。適切なプログラムをインストール(またはトロイの木馬が自動的に実行)し、盗まれたキーコードを保存または送信する場所を設定します。 ただし、スマートフォンに関しては、いわゆるサイドチャネルが使用されない限り、洗練されたアクセス制限システムによりこのアプローチはほとんど不可能になります。 厳密に言えば、サイドチャネルは、攻撃者が暗号システムに侵入するのに役立つ情報のオープンソースです。 広い意味では、サイドチャネルはルーターのライトであり、送信されたデータのビートに合わせて点滅するか、物理キーボードのキーを押す音になります。 [注 perev。:仮説的な可能性は言及されていませんが、実際に実現されたさまざまな攻撃。 リンクを見つけるのを手伝ってくれる人には感謝します。 証明 、#3.2.2、#4.2.1]言い換えれば、サイドチャンネルは潜在的な危険が見落とされるシステム特性です。



この場合、2人の研究者がAndroidデバイスの空間方向データ(XYZ空間で携帯電話の方向を設定する3つの角度のセット)を使用して、ユーザーが画面のどこをクリックしたかを判断しました。 原則として、各キーには、識別できる3つの軸に沿った角度変化の一意の画像があります(以下を参照)。 精度は電話モデルによって異なります。HTCEvo 4Gは30ミリ秒ごとに方向データを更新し、Motorola Droidは110ミリ秒ごとに更新します。 一般に、研究者は10ボタンキーボードで71.5%の精度を達成しました。 残りの28.5%は、キーの近接によるエラーです。 プログラム(ちなみにTouchLoggerと呼ばれる)は、一般に、クリックごとに列または行を正しく識別できますが、特定のキーを認識するのに十分なデータがない場合があります。





もちろん、完全なQWERTYキーボードは、10ボタンの数字キーパッドよりもクリックを認識するのが難しいですが、原理のデモンストレーションしかありません。70%の精度は、電話に入力されたデータの機密性を侵害するのに十分すぎるほどです。 さらに、このペーパーでは、タブレットなどの大型デバイスでは、キーボードの制御が簡単になるはずであるとさらに述べています。 ジャイロスコープをカメラと組み合わせて使用​​して、TouchLoggerの解像度と精度を高めることができます。



最後に、このサイドチャネルはAndroidの単なるセキュリティホールではないことに注意することが重要です:加速度計とジャイロスコープのデータは、Android 3.0、IOS 4.2、およびすべての最新のブラウザーに実装されているDeviceOrientation APIを介して利用できます。 言い換えると、このエクスプロイトではAndroid端末にTouchLoggerをインストールする必要がありますが、理論上は誰かがChenとTsaiの仕事を取り、JavaScriptで実装し、それを使用してインターネットをサーフィンするときにパスワードとクレジットカード情報を盗むことができます。



新しい科学者の記事、TouchLoggerの記事[ PDF ]



All Articles