Apple IDにおける 2段階認証の問題点

最近、MicrosoftTwitterEvernoteLinkedInなども相次いで 2段階認証 (two-step verification) のサポートをはじめ、主要なサービスでは必須の機能という感じになってきました*1Appleでも 3月にアメリカ、イギリスなどから開始され、5月には対象国が拡大しました。日本でも使えるようになった…と思っていたのですが、どうも一部のユーザにフライングで設定項目が表示されただけで、正式なサービス開始ではないようです*2


さてその Apple IDの 2段階認証について、先週 ElcomSoftが問題点を指摘する記事を公開して一部で話題になりました。

Apple Two-Factor Authentication and the iCloud « Advanced Password Cracking – Insight

In its current implementation, Apple’s two-factor authentication does not prevent anyone from restoring an iOS backup onto a new (not trusted) device. In addition, and this is much more of an issue, Apple’s implementation does not apply to iCloud backups, allowing anyone and everyone knowing the user’s Apple ID and password to download and access information stored in the iCloud. This is easy to verify; simply log in to your iCloud account, and you’ll have full information to everything stored there without being requested any additional logon information.

結論を先に書くと、Apple IDの 2段階認証で保護されるのは My Apple IDへのログイン、iTunes Storeでの購入など一部に限られ、iCloud上に保存されたデータの保護には役に立たない、というものです (AppleFAQにもちゃんと書いてはあるのですが)。実際、iCloud.comへのログインでは 2段階認証は使われておらず、Apple IDの 2段階認証を有効にした状態でも、Apple IDとパスワードのみでログインできてしまいます。iCloud上にバックアップしてある iPhoneiPadなどのバックアップデータを全く新しい別の機器にリストアすることも可能です。

このように Apple IDの 2段階認証はやや中途半端な感じではありますが、現状では仕方のない面もあります。GoogleFacebookMicrosoftなど多くのサービスでは TOTP (Time-based One-Time Password Algorithm) に準拠した仕組みを導入しており、認証アプリや SMSなどで 2段階認証用のコードを送信するのが主流となっています。しかし Appleでは iCloudFind My iPhone (「iPhoneを探す」) 機能を使って独自の 2段階認証を実現しています。そのため iPodiPadなど SMSを受信できない機器でも認証コードを受け取ることができるというメリットがあります*3。また複数の機器で認証コードを受け取ることもできます。一方で、信頼できるデバイスとして登録した機器をバックアップデータを利用してリストアしようとした場合、他に登録機器がない場合には認証コードを受け取る手段がなくなってしまいます。そのため今の仕組みのまま iCloudへのアクセスに 2段階認証を適用することができないのかもしれません。

しかし Apple IDの 2段階認証では iOS機器を信頼できるデバイスとして登録する以外に、SMSを受信可能な携帯番号を登録することもできます(ただし現在はアメリカ、イギリス、オーストラリア、ニュージランド、アイルランドのみ対応)。Find My iPhoneと SMSをユーザが併用することによって、上記の iCloudの問題も解決できるような気もしますが、どうなんでしょうか*4


Appleユーザとしては iCloud上のデータも 2段階認証で保護してほしいところです。Appleになにか良策はあるのでしょうか…?


(参考)
日本ではまだ正式サービス前のようですが、2段階認証を有効にするとどうなるか、簡単に紹介しておきます。

Apple IDの2段階認証を有効にするには、「信頼できるデバイス」を設定する必要があります。登録済みの iOS機器が一覧表示されるのでこの中から複数選択することができます。または認証コードを SMSで受信するための携帯番号を追加することもできます(前述のとおり現在は対応している国が限られます)。
f:id:ukky3:20130603125109p:plain
f:id:ukky3:20130603125158p:plain
f:id:ukky3:20130603125222p:plain

2段階認証を有効にした状態で My Apple IDにログインをすると、IDとパスワードを入力したあとに本人確認の画面が表示されます。ここでさきほど登録した「信頼できるデバイス」の中から確認コードを送信するものを一つ選んで送信します。
f:id:ukky3:20130603125253p:plain

あとはデバイスに送られてきた確認コード (4桁の数字) を入力することでログインできます*5
f:id:ukky3:20130603125321p:plain


なお、2段階認証を有効にすると、パスワードリセットの方法が変わるので注意が必要です。
2段階認証が無効の状態では、以下のうちどちらかの方法を選択してパスワードをリセットすることができます。

  • Eメール認証 (あらかじめ登録した修復用メールアドレスにメールを送信する)
  • セキュリティ質問に答える

f:id:ukky3:20130603154727p:plain

ところが 2段階認証を有効にすると、以下の両方の情報が必要になります。

  • 復旧キー
  • 信頼できるデバイスによる確認コード

f:id:ukky3:20130603154804p:plain
f:id:ukky3:20130603154813p:plain

2段階認証を有効にすると、もともとあった「修復用メールアドレス」と「セキュリティ質問」の設定項目は表示されなくなり、パスワードリセットにも使えません*6


詳しくは以下の FAQをどうぞ。2段階認証を利用する場合の注意点なども詳しく解説されています。
Apple ID の 2 ステップ確認についてよくお問い合わせいただく質問 (FAQ) - Apple サポート

*1:他には Google, Facebook, Dropbox, Yahoo!なども対応しています。

*2:私のアカウントでは利用可能になっていたので設定してありますが、正式サポートではないとすると、再設定が必要になるのかもしれません。

*3:Google Authenticatorのような認証アプリを使えば同じような気もします。

*4:登録した携帯番号が iPhoneのもので、その iPhoneを信頼できるデバイスとして登録したら結局同じなんですが…。

*5:パスコードによるロックがされた状態でも通知はされますが、確認コードは通知エリアに表示されません。パスコードを入力してロックを解除すると確認コードが表示されます。

*6:2段階認証を無効にするとまた設定できるようになります。