パスワードを忘れた? アカウント作成
13497010 story
携帯電話

スマートフォンのセンサーからPINコードを割り出す手法 37

ストーリー by headless
推測 部門より
ユーザーのパーミッションを得る必要がないスマートフォンの各種センサーから取得したデータと機械学習により、高い成功率でPINコードを推測できるという研究結果が発表された(論文: PDF南洋理工大学のニュースリリースHackReadの記事)。

画面に表示されたキーパッドからPINを入力する際には押すキーの位置によって端末の傾きの変化などが異なる。そのため、センサーから取得したデータを処理することでPINを推測する研究は過去にも発表されている。データの取得方法としては、PIN全体の入力パターンを1つのデータとして取得する方法と1桁ごとに取得する方法が考えられる。全体を取得する場合は4桁でも10,000パターンのデータが必要なため、過去の研究では50パターンに限定するという手法がとられていた。今回の研究では1桁ごとに取得する方法を用いており、少ないパターンのデータですべての組み合わせに対応できるほか、桁数の異なるPINにも対応可能となる。

攻撃のシナリオとしては、まずターゲットの端末に送り込んだ攻撃用アプリでプリセットしたPINのパターンを入力させてデータを取得し、アルゴリズムに学習させる。次に実際のPINコード入力時のデータを取得し、学習結果からPINを推測するというものだ。学習データを取得する際には、前後のキー入力の組み合わせによる変化をカバーするため、厳選した70パターンのPINコードを5回ずつ入力させ、検証用に50パターンのランダムなPINコードも入力させている。研究ではボタンをPIN入力用のキーパッドと同じ配置にしたアプリを使用しているが、カジュアルゲームなどを装って学習データを取得する方法が提示されている。

結果としては、加速度センサー+ジャイロセンサーのデータとMLPニューラルネットワークの組み合わせによる成功率が最も高く、良好な測定条件では20回の試行で最高83.7%の成功率だったとのこと。50パターンのPINに限定した過去の研究成果では試行1回で74%の成功率が最高だ。今回の研究で条件をそろえた場合にはMLPニューラルネットワークでは60%の成功率しか得られなかったが、ランダムフォレストでは99.5%の成功率になったとのこと。

このほか、3人の被験者から取得したデータを用いる実験も行われており、本人のデータのみを使用した場合よりも3人のデータを使用する方が成功率が高くなっている。さらに、他の2人のデータのみを使用した場合にも6%前後の成功率が得られ、まったくランダムな推測をする場合の30倍の成功率だという。

論文ではこのような攻撃を避けるため、センサーの最大サンプリングレートを下げる方法やPIN入力時にセンサーを無効化する方法も考えられるが、これらは一時的な対策であり、センサーへのアクセス全体を再考すべきだと述べている。パーミッション不要なセンサーはPINだけでなくユーザーのプライバシーを侵害する可能性もあるとのことだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by hakikuma (47737) on 2018年01月07日 18時38分 (#3340890)
    PIN入力時のテンキー配置が常に固定だとこういう脆弱性が発生するわけね。
    つまり、キー配置が毎回ランダムであればこの問題は解決できそう。
    • by ogino (1668) on 2018年01月07日 19時37分 (#3340918) 日記

      「シャッフル」ボタンを用意するなり、強制的にランダムだったり、それって銀行 ATM と同じですね。
      ATMの数字ボタンの並びがかわってきている? [excite.co.jp]

      そんななか、目に付いたのは、三菱東京UFJ銀行の「シャッフルボタン」だ。
      「この『シャッフルボタン』(スクランブル化)は、合併前からそれぞれ設けているもので、東京三菱銀行では平成17年5月から、UFJ銀行では18年6月から導入しています」と、広報担当者は言う。
      導入された理由は、やはり「暗証番号が他人にわからないよう、手の動きから判別されないようにするため」とのこと。

      一方、シャッフルボタンを自分で押すのではなく、ボタンそのものが勝手に入れ替わるようにしているのは、三井住友銀行だった。
      「これは、暗証番号の『ランダム表示』といって、導入のきっかけは、やはり同じ列にしていると、暗証番号が読み解かれてしまう可能性があるためです」(広報担当者)
      これは17年12月から導入されたもので、毎回、数字がランダムに表示されているとのこと。ただし、パターン数などは、「犯罪につながりかねないので、公表していません」ということだった。

      親コメント
      • by Anonymous Coward

        > ただし、パターン数などは、「犯罪につながりかねないので、公表していません」ということだった。

        それ聞いたり公表したりする必要あるんか?

        • by Anonymous Coward

          10!通りではなく、(何故か)数通りのパターンしかないってことだろうな。
          全パターン、ソースにハードコーディングしてありそう。

          • by Anonymous Coward

            「全てランダムにすると組み合わせが膨大になるので、
             テストはそのうちの何パターンかのみ行うということでよろしいでしょうか」
            「何言ってんだ。全パターンテストするんだよ」
            「……全てランダムにすると、打ち間違いやすいパターンなどもでてきますから、
             最初から限られたパターンのみ実装するということでいかかでしょうか。
             ほら、例えば8と9が入れ替わっただけのようなパターンなどは除外すべきでしょうし」
            「それもそうか」

            • by Anonymous Coward

              意外と正論かと思ってしまいしました。
              「完全ランダムに並べ替える」だと、シャッフルルーチンがバグっていて
              「希に1が無く9がダブったキーパッドが表示される」ようなへぼいヘマをかます可能性が微レ存で、
              それをテストで洗い出すのは困難だし、コードレビューレベルで動作に問題ないことを保証する手間を考えると、パターン数を絞った方が楽そうだ。

              • by hillrf2006 (32518) on 2018年01月08日 21時16分 (#3341297)

                >「希に1が無く9がダブったキーパッドが表示される」ようなへぼいヘマをかます可能性が微レ存で、

                シャッフルなんだから、仕様上、ダブルわけないじゃんって、
                だれも突っ込まなかったら、それはそれで怖い。

                親コメント
              • by Anonymous Coward

                シャッフルを謳った製品でランダムに並べ替えてもその殆どが
                「感覚的にランダムに見えない」せいで、
                結局固定パターンの使い回しにしたことがあったな。
                感覚的にはそれで充分だった。

              • by Anonymous Coward

                仕様が正しくとも、設計やら製造やらテストやらがクソなら
                いくらでもバグらせることができるでしょう(ゲームだけど座標計算しくっておかしな配置をする例 [google.com])
                って、だれも突っ込まなかったら、それはそれで怖い。

              • by nnnhhh (47970) on 2018年01月09日 12時15分 (#3341495) 日記

                仕様通りが保証されるんならテストなんかいらんじゃろ…

                親コメント
    • Re: (スコア:0, 荒らし)

      by Anonymous Coward

      キー配置が毎回ランダムであればこの問題は解決できそう。

      当たりもランダムにすれば完璧だね!

      # そして確変突入

      • by Anonymous Coward

        どんだけパチ脳なんだよ

  • >攻撃のシナリオとしては、まずターゲットの端末に送り込んだ攻撃用アプリ

    • by Anonymous Coward

      >カジュアルゲームなどを装って学習データを取得する方法が提示されている

      記事読めよ

      • だから怪しいアプリ入れちゃダメ
        情報はセンサーに限らずどこでも取っていくだろう
        何を(誰を)信用するかだよ

        親コメント
        • by Anonymous Coward

          それらセキュリティ上考慮すべきいくつかの項目があるとして
          センサー「以前」かどうかは視点によって変わるのでは?

          一般的に影響評価と対策効果(耐性)で順序は反転するだろう
          # DLP問題が難しいからDLP仮定は弱い?とか未だに混乱

      • カジュアルゲームに装うのは結構だが、偽の PIN 入力画面を用意しておけば、画面
        ロックがかかったものと思ってうっかりユーザーが入力してくれるんじゃないの。

        そうしたらセンサーのデータから云々しなくても手っ取り早いのにね。

        # だからそういう研究じゃないって

        --
        野党支持者のスラドモデレータはたいてい間抜け
  • 普段は指紋センサ使用なので
    あまりpinを入力することは無い(再起動したときくらい)のですが
    よくもまあいろいろ手段を思いつくものだとそこに感心

    いずれこれらに対抗するべくランダム配置のスクリーンキーボードとかになるのか
    そうなると面倒だなあ

    • フリック入力にするだけでも推測は難しくなりそう。
      あと途中で傾けたり持ち替えたり。

      現実的なところでは「キーパッド表示中は加速度やジャイロをOFFにして、別プロセスからも読み出せないようにする」という修正なら、OSレベルで一括対応できるし副作用は比較的少ないかもしれない。(悪影響がないとは言い切れないけど)

      --
      うじゃうじゃ
      親コメント
    • by Anonymous Coward

      机上の空論ってやつだね!

    • 入力操作がどこかのカメラから録画されていればすぐ開錠されてしまう。
      というかちょっと覗かれていただけでも。
      外で使うもんだからね。

      だから親コメの通り指紋認証にするなり、PINでの防御にあまり期待を置かない方がいいと思う。

      • by Anonymous Coward

        激しくヘドバンしながら操作するようにしたら、いずれの危険も回避出来る。

  • by Anonymous Coward on 2018年01月07日 22時02分 (#3340954)
    PINコード使って居なければ盗まれることも無いな
    ネックストラップで置き忘れないようにしているから、勝手に弄られることも無いし
    • by Anonymous Coward

      特に「PINコード」ってがっつり書いちゃうと、「例のあのPINコード」という固有名詞みたいなのを意味する様に見えちゃうけど、多分、原文はそうじゃないので要注意な。英語で「PIN」って言ったら広く一般の「暗証番号」の意味。ここでは、「数値入力ぐらいだったら、加速度・角速度センサーで取れるぞ」というのが本題。

      なお、「例のあの」は「SIMの不正使用を避けるために設定するPINコード」とか、「ウェブで電話番号を入力すると送られてくる4桁のPINコード」とか、人によってちょいちょい解釈が違ってる。

      なので、解釈がズレてることがままあると言うのに気付かずにコミュニケーションが混乱したり、英語のソフトやハードやサービスに触れてる時に「なぜ『例のあのPINコード』をここで入力させられるんだ?」と混乱することが割とよくある。

    • by Anonymous Coward

      いいこと聞いた、こいつのスマホ盗んじゃえ

  • by Anonymous Coward on 2018年01月08日 3時36分 (#3341039)

    PINコードって取得した後どうすんの?
    外部アプリから入力出来るの?
    アプリ側からPINを入力出来るならロック掛からないようにチマチマやれば、ブルートフォースで行った方が楽じゃね?
    まさか、PINコード割り出したら直接入力する為に、位置情報使って訪ねてくる?それは怖いわ。

    # GPS以外のセンサーにもパーミッション付ければ解決じゃね?バックグラウンドでハードウェアリソース使うと電池減るから、任意にオフに出来ると良いよね。

    • by Anonymous Coward

      まず、沢山集めるだろ、
      で電話番号と紐つけてPINを教えるサイトを作るんだよ。もちろん金をとる。
      スマホ盗んだヤツはそこへいくらか払えば端末を即座に解除できる。その後どうするかなんて知らんよ。もうカネはもらったから。

    • by Anonymous Coward

      このコメント [srad.jp]にも書いたけど、そのPINコードじゃないやつが危ないんじゃないかな。

      例えば、GoogleとかAmazonとかのお買い物券のスクラッチを削って出てくる数字とか。入力をバックグラウンドで監視しておいて、入力されたっぽかったら先回りして攻撃者のアカウントにチャージしちゃうという攻撃が成立する。先回りが難しいなら、最後の1桁を当てずっぽうで10回やるという方法とかでも。

      Googleギフトカードがそうかは知らないけど、以前に海外で使った何かのプリペイド携帯電話のチャージカードの取扱説明書には、「スクラッチを削って出てきたPINをSNSでこの番号に送ればチャージが完了する」という文脈で「PIN」って単語が使われてた。

      • by Anonymous Coward

        認証連携で2FAのコードを叩いてるところを盗み取るのかも
        特にTOTPだとそれを使ってパスワードリセットするとか2FA無効化の手続きを通すという攻撃はあり得る

typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...