[iOS] パスコード入力回数制限を回避できる、外部キーボードを使った脆弱性が報告される

(11)

パスコード(パスワード)は連続で複数回間違えると、一定時間が経過するまで再入力不可能という状態になります。 ですが、条件により、この制限を回避出来てしまう脆弱性が報告されています。
以前から知られていた物なのか分からないのですが、これを利用した総当たり攻撃(Brute force attack)のデモも公開されていましたので、一緒にご紹介。用心しましょう。

ちなみに、今回の話は脱獄には無関係です・・・!!

スポンサーリンク

影響のある範囲について

*iPhone、iPad共にiOS 6.1.2 & iOS 6.1.3で再現可能でした。(他のバージョンでも再現できるかもしれません)

今回報告された手法ではロック画面のパスコード入力は影響範囲外です。ロック解除のためのパスコードは影響を受けないようなので、とりあえずこの点は安心。

ではどこが影響を受けるのか?という事ですが、設定アプリの「パスコードロック」項目・「機能制限」項目などが影響範囲内となっています。
パスコードロックの設定・機能制限の設定へアクセスするには機能をオンにした際のパスコード入力が必要ですが、今回の手法を使うとパスコード入力に何度失敗しても連続で挑戦できると言う事になります。

ios-passcode-brute-force-attack-bluetooth-keyboard-02ios-passcode-brute-force-attack-bluetooth-keyboard-03

条件

また、影響を受ける範囲内だとしても、簡単なパスコードを使っている事が条件です。
簡単なパスコードとは『数字キーのみで構成されたパスコード』です。英数字キーボードを使うパスコードは影響を受けません。

ios-passcode-brute-force-attack-bluetooth-keyboard-04

パスコード入力回数制限

これらの項目にアクセスする際には設定しておいたパスコードを入力する必要がありますが、連続6回間違えると1分間再入力が出来ないペナルティが課せられます。
1分後にもう一度間違えると5分間のペナルティ、5分後にもう一度間違えると15分間のペナルティ、15分後にもう一度間違えると60分のペナルティが課せられ、それ以降は1度間違える度に60分のペナルティとなります。
要するに、10回目以降は1時間に1回しかパスコードを入力する機会が与えられないと言う事です。
今回はこの制限を回避して、連続で何回もパスコード入力が出来る様になってしまう脆弱性の話。

ios-passcode-brute-force-attack-bluetooth-keyboard-05ios-passcode-brute-force-attack-bluetooth-keyboard-06

回避手法について

Un lapin Nabaztag氏によると、今回の手法はBluetoothキーボードなど、外部キーボードを使用するとのこと。
ということで、早速試してみる!外部キーボードにはMac miniで使っていたApple Wireless Keyboardを使用。

Apple Wireless Keyboard (JIS) MC184J/B
アップル (2011-07-22)
売り上げランキング: 307

試す

設定アプリ > 一般 > 「パスコードロック」・「機能制限」のどちらでも良いので、6回連続でパスコード入力を失敗させます。これで「1分後にやり直してください」となり、キーをタップしても一切入力が出来ない状態となります。
この状態で外部キーボードから数字を入力してみましょう。はい、1分間のペナルティ中にもかかわらず入力が出来てしまいました!あら、不思議。
もちろん正解のパスコードを入力すれば、設定画面へアクセスすることができます。そうなれば正解のパスコードも把握出来ていますので、パスコードを変更したり設定を変更したり、機能制限を解除したい…やりたい放題。ナンテコッタ!

ios-passcode-brute-force-attack-bluetooth-keyboard-07ios-passcode-brute-force-attack-bluetooth-keyboard-08

また、外部キーボードから間違えたパスコードを入力し続けたとします。その場合は5分・15分・60分とペナルティ表示はある物の、何も影響されること無くパスコード入力は続行可能。
更に、1度外部キーボードから入力&パスコード入力に失敗した後は、画面のキーをタップして入力も有効になってしまいます。
下記の画像をご覧ください。パスコード入力に1001回失敗した時の画像です。今回は色々とズルをしたため速くなっていますが、順番に入力し続けたとしても約10分弱で1000通りのパスコードを試すことが出来たと言う状況です。
0000 ~ 9999」まで1万通りを試せばいつかは正解のパスコードに当たるわけですから、がんばれば数時間で解除出来ちゃうと言うことに。

ios-passcode-brute-force-attack-bluetooth-keyboard-09

総当たり攻撃のデモ

0000 ~ 9999」まで全ての順番に試していく総当たり攻撃(Brute force attack)のデモをUn lapin Nabaztag氏が公開していますので見てみましょう。
このデモでは「Apple iPad Camera Connection Kit」を使って「Teensy 3.0」という開発ボードをiPadに接続し、自動で0000 ~ 9999まで入力させています。
入力はゆっくり行われていますので、9999に到達するまでには13~15時間程度でしょうか。

対策方法!

今回の手法ではロック画面上でのパスコード入力回数制限は回避出来ませんので、その点は大丈夫だと思います。
ただし、ロックを解除した状態だとこの手法が使えてしまいますので、対策が必要です。

今回の条件は「簡単なパスコード(数字)」であるということですので、数字キーボードを使用したパスコードではなく、英数字キーボードを使用したパスコードにしましょう。(機能制限って出来るのかな?)

ios-passcode-brute-force-attack-bluetooth-keyboard-10

パスコードを使用していない私には、なんの関係も無かった! でも、面白かったです。

コメント

  1. 使用してないんかい!

  2. 記事とは別ですが、IOS7に摸倣したフォントがあります。
    日本語だけを細字に出来ないでしょうか?

  3. 今まで機能制限パスコードを忘れた場合には、iOSの復元しかなかったので、一部の人には朗報かも。
    ただし、ロック画面パスコードは分かっているか、していないこと。
    さらに、ブルートゥースキーボードを持っていないと、買いに行かないといけないですが。

  4. 簡単なパスワードで無いときに数字だけを設定していると、
    任意の桁の数字暗証番号となってテンキーが表示されるのですがその場合は使えるのでしょうか。

    • あ!それがありましたね・・・検証し忘れていました・・・
      その場合では数字キーボードとなりますので、今回の対象範囲内となります。これは桁数に関係無く、外部キーボードから連続入力が可能となってしまいます。

  5. 僕も機能制限パスワードをわすれてしまってこれを実践してみたいと思うのですが
    この方法はIOS7.0.2でも使えますか?

  6. ちなみに、iOS7.0.3(iPadmini Retina)では出来ませんでした。

  7. iOS7.1.2で可能でしょうか?

    • いえ、以前のアップデートで対策されたかと思います

  8. 外部キーボードとはBluetoothキーボード以外の普通のpcのキーボードではダメなのでしょうか?