ユーザーのパーミッションを得る必要がないスマートフォンの各種センサーから取得したデータと機械学習により、高い成功率でPINコードを推測できるという研究結果が発表された(
論文: PDF、
南洋理工大学のニュースリリース、
HackReadの記事)。
画面に表示されたキーパッドからPINを入力する際には押すキーの位置によって端末の傾きの変化などが異なる。そのため、センサーから取得したデータを処理することでPINを推測する研究は過去にも発表されている。データの取得方法としては、PIN全体の入力パターンを1つのデータとして取得する方法と1桁ごとに取得する方法が考えられる。全体を取得する場合は4桁でも10,000パターンのデータが必要なため、過去の研究では50パターンに限定するという手法がとられていた。今回の研究では1桁ごとに取得する方法を用いており、少ないパターンのデータですべての組み合わせに対応できるほか、桁数の異なるPINにも対応可能となる。
攻撃のシナリオとしては、まずターゲットの端末に送り込んだ攻撃用アプリでプリセットしたPINのパターンを入力させてデータを取得し、アルゴリズムに学習させる。次に実際のPINコード入力時のデータを取得し、学習結果からPINを推測するというものだ。学習データを取得する際には、前後のキー入力の組み合わせによる変化をカバーするため、厳選した70パターンのPINコードを5回ずつ入力させ、検証用に50パターンのランダムなPINコードも入力させている。研究ではボタンをPIN入力用のキーパッドと同じ配置にしたアプリを使用しているが、カジュアルゲームなどを装って学習データを取得する方法が提示されている。