2019-11-03

Macのパスワードを入力

新しく購入した iPod touch 第7世代にApple IDを設定(iPod touchにサインイン)しようとしたときのこと。これまで見たことのない謎画面が出現。

Macのパスワードを入力

Mac “imac1”のロック解除に使用するパスワードを入力してください。

Apple ID、保存済みのパスワード、iCloudに保存されたその他のデータはこのパスワードによって保護されています。パスワードは暗号化されるためAppleが読み取ることはできません。

は? なぜMacのパスワード? なんのこっちゃ。Apple IDのパスワードならさっき入力して認証されてるけど? おまけに今はiOSデバイスの設定をしているのだが……

だいたい「Macのパスワード」ってなんじゃらほい? Macの(すなわち装置自体の)パスワードというくらいだから、ファームウェアパスワードのことか? そんなもんiPod touchに入力してどうする。

意味がわからない。

アップルのサポートに電話して聞いてみたところ、2ファクタ認証を設定した状態でiCloudキーチェーンを使っているとこのような画面が出るらしい。ここでいうMacのパスワードとは、Mac上の(同じApple IDでiCloudにサインインしている)ローカルアカウントのログインパスワードを意味しているそうな。

そう言われても、iCloudキーチェーンなんぞオンにした覚えがない(アップルの同期サービスは挙動がつかめないので積極的に使う気になれない)。

確認してみると、所有している複数のMacのうち、iMac上でオンになっているアカウントを発見した。 しかし、オンにした覚えがない。

そういえば直近このiMacで、Time Machineからユーザデータを復元するテストを行っていた。 検証してみると、ユーザデータ復元後の初回ログイン時の設定項目に、iCloudキーチェーンの設定があり、デフォルトで勝手にオンになる(ユーザがオフを選ばない限りオン)という兇悪仕様になっていた。 テスト時には、よく確認せずに次へ次へとクリックして進んでしまったので見逃したようだ。

バックアップされていたアカウントでは、もともと使っていなかったんだからリストアするときに設定をそのまま(オフのまま)引き継げよ、アホなのか? と思うのは私だけだろうか?

とりあえず、ログインパスワードを入力することにしたが、このiMacのローカルアカウントは検証用なので一時的にパスワードをカラにしてある。 しかし、iPod touchの「Macのパスワードを入力」画面では、パスワード欄が空だと先に進めない。しかたないので数字だけの短いパスワードをiMacのローカルアカウントに設定し直して、それをiPod touch側に入力すると、

パスワードが違います。

デバイスのパスワードをもう一度入力してください。

と表示される。

パスワードは絶対に間違っていない。このカシオミニを賭けてもいい。

それならば、と、iMacのiCloudキーチェーンをオフにして、他すべての手持ちデバイスでiCloudキーチェーンが使われていないことを確認してから、再度iPod touchでのサインイン操作をやり直した。

それでも、「Macのパスワードを入力」画面が表示される!? iCloudキーチェーンをオフにしたのになぜ? 話が違うじゃん。

試しに「デバイスを選択」で、パスワード入力に使うデバイスを切り替えようとすると、同じデバイス imac1 が複数(うじゃうじゃ)表示される。カオスである。これでは、どのパスワードを入力しろと言っているのか分かるはずもない。

Mac上の設定でiCloudキーチェーンをオフにして、サインアウトした後、https://appleid.apple.com のデバイスリストから削除しても、すでに削除されているデバイスのパスワードを入力しろと表示され続ける。

さすがアップル、ネットワーク系サービスの設計がサイコーだ。まったく予期したように動作しない。かつて故スティーブ・ジョブズがiCloudの発表で口にした “It just works” という自虐ネタとしか思えない言葉が脳裏に浮かんだ。

この記事を書いている時点で、アップルのサポート情報に、「Macのパスワードを入力」画面について解説した資料は一切存在しない。電話サポートのアドバイザーも、この画面についての細かい挙動や仕組みについて情報は持ち合わせていない様子、まさに謎である。

さっぱり分からないので調べてみた。

数台のiOSデバイスとMacを初期化して、同じApple IDでiCloudにサインインするとどうなるか検証してみた。 iOSは 9.3.5、12.4.1、13.1.3 の3つのバージョンで、macOSは Lion 10.7.5 〜 Catalina 10.15 まで9つのバージョンで試したところ、iOSではいずれの版でも、macOSでは OS X El Capitan 以降で「Macのパスワードを入力」させる画面が表示されるようだ。 ※2ファクタ認証に正式に対応しているのは El Capitan 以降。

いままで遭遇したことがなかったが、iOSだけでなくmacOSでも同様の画面が表示されるということが判明した。

また、状況によっては今回のケースとは逆に、MacからiCloudにサインインしようとすると、別のiOSデバイスのパスコードの入力を求められる場合もあるし、サインインしようとしているデバイスと同じデバイスの過去のパスワード/パスコードを尋ねてくる場合もある。かと思えば、Macのパスワードを聞かれない場合もある(Apple IDのパスワードと、確認コードの入力だけで処理が終わる)。

——そもそもMacのパスワードってなに?——

Macのパスワードなるものは一体なんなのか、ダイアログのメッセージやアップルのサポートでは「Macのロックを解除するパスワード」だと説明されるが、正確にはMacのロックを解除するパスワード(ローカルアカウントのログインパスワード)ではない。 エンドツーエンドで暗号化された情報にアクセスするためのパスワードである。

ログインパスワードを変更しても、エンドツーエンドで暗号化された情報にアクセスするためのパスワードは自動的に更新されない。“iCloud”環境設定に「Apple ID設定をアップデート」という警告が表示されている状態だと、この2つのパスワードは同期していない。

Apple ID設定をアップデート

再度サインインするまで、一部のアカウントサービスは利用できません。

前述の怪現象、絶対に間違いないローカルアカウントのパスワードを入力したのに「パスワードが違います」と怒られた直接の原因はこれだったのだ。

“It just works”

ログインパスワードを変更したら、手作業でApple ID設定をアップデートを行う必要がある。これに気付かないと私のような憂き目にあう。

macOS Catalinaでは、ログインパスワードを変更すると同時にApple ID設定をアップデートするよう促される。UIに少し改善あり(しかし、何か根本が間違っているような気がする)。

アップルのサポート文書を読み解いていくと、もともとiCloudキーチェーンが導入された初期の段階では、iCloudキーチェーンのデータはiCloudセキュリティコードという別のコードで保護されていた。それが、2ファクタ認証導入にともない、iCloudセキュリティコードに代わってデバイスのパスコード/パスワードによる保護に変更された。という歴史があるようだ。

このMacのロック解除に使用するパスワードは、新しいデバイスでサインインするときに、Apple ID、保存済みのパスワード、iCloudに保存されたその他のデータにアクセスするのに使用されます。

私は人間が古いので、ローカルアカウントの保護に使用するパスワードを、別の機器を認証するために「使い回し」するという発想が気持ち悪くて嫌だが、スマホ世代の若者は平気なのだろうか。

でもって、iOS最優先の設計なためか、アップルのiCloudセキュリティ関連のサポート文書においては「iOSデバイスのパスコード」を入力するような記述はたくさんあるが「Macのパスワード」を入力についての記事は見つからない。Macのパスワードを入力する機能は、建て増し旅館的に追加された迷宮なのでドキュメントが整備されていないに違いない。

Mac上のUIで、Macについての操作にも関わらず「パスコードをあとで入力」というボタンが表示されたりすることもある(Macには パスコード など存在しないので用語が不適切)。

さらなる問題: iOSと違って、macOSはマルチユーザシステムであり複数のアカウントを作成することができる。 しかもMacはマルチブートすら可能である(同一デバイス上で同一のApple IDを使ってサインインしている、異なるパスワードを持ったユーザアカウントが複数存在しうる)という点をまるで考慮していない。

近年のアップルお得意の、Macには購入時初回セットアップで作成した管理者アカウントが1つしか存在しないという前提の 雑な設計のUI/UX だ。 macOSはiOSじゃないんだがね。

まあ、一般的なMacユーザはそれでも困らないのだろう。

——他のデバイスで承認——

Macのパスワードが分からない場合、同じApple IDでサインイン済みの他のデバイスから承認するという代替手段がある。

が、何度も検証を行っていると、他のデバイスに承認を求めるメッセージが表示されないことがあった(承認しようにもできないジャン)。

“It just works”

加えて、他のデバイスで承認処理をしたにも関わらず、承認を求めたデバイス側の処理が承認待ちのままで次のステップに進まないケースもあった(30分待っても承認が終わらないので諦めた)。

“It just works”

承認は完了したように見えてもなぜかエラーになることも。

iCloud の設定中にエラーが起きました

Mac での iCloud の設定中にエラーが発生しました。もう一度サインインしてみてください。

“It just works”

Apple IDのパスワードと、確認コードを入力した後、しばらく待たされた挙句、Macのパスワードを入力画面は表示されず、エラーも警告も表示されないまま、最初のApple IDのパスワード入力画面に戻ってしまうケースもあった。他のデバイスで承認にすらたどり着けず、堂々巡りでサインインできない。

なにが悪いのかさっぱり分からない。

“It just works”

——暗号化データをリセットするとどうなる?——

他のデバイスで承認できない場合でも「暗号化データをリセット」するという選択肢が残されている。

しかし、暗号化されたデータをリセットしようとすると、いかにもデータが全部、きれいさっぱり消えるような脅迫めいたメッセージが表示される。

エンドツーエンドの暗号化データをリセットしてもよろしいですか?

iCloudに保存されているエンドツーエンドの暗号化データは完全に削除されます。データにはiCloud上のメッセージ、保存されたパスワード、ホームデータが含まれる場合があります。

「リセット」ボタンのクリックを躊躇させる内容だ。男一匹、勇気を出して押してみた。ポチッとな。

  • ローカルストレージ上のデータは消えない(これは、まあ妥当、アップルもそう言っている)
  • サーバー上のデータも消えない(あれ?)

予想に反して、サーバー(クラウド)上のデータも消えない(リセット後、他のMacの新規アカウントで同期するとデータが表示される)。もし、消えるなら、それを逆手にとってサーバーデータを消す方法として使えるかと思ったが、ダメみたい。

“It just works”

アップルのサポート文書には現時点で細かな挙動について解説がないので、あくまで個人的な検証結果に基づく推測だが暗号化データをリセットすることにより「これまでにエンドツーエンドで保護されるデータへのアクセスを許可されていたデバイスのリストを消去し、リセットを要求したデバイスのみを新たにアクセスが許可されたものとして登録する」という処理が行われるのだろう。

リセットを行うことで、前述の「デバイスを選択」画面に同じデバイスが複数(うじゃうじゃ)表示されるトラブルが解消されることからも、それは明らかだ。

つまり「どのデバイスにエンドツーエンドで保護されたデータへのアクセスを許すか」という情報がリセットされるだけで、ユーザが保存しているデータそのものは消えない。

ただし、リセットに使用したデバイスを除く、他のすべてのデバイスの「Apple ID設定をアップデート」する必要があるので、iOSデバイスやMacをたくさん所有している人は余計な手間がかかる(普段から消しても消しても表示される、ゴキブリのようにしつこい「iCloudのパスワードを入力してください」ダイアログに馴らされているMacユーザなら大丈夫かもね)。

※サーバー上のデータが消えないというのは今回の検証結果をふまえた筆者の見解であり、記事を読んでいる皆様のデータが消えないことを保証するものではありません。正しい挙動はアップルに聞いてください。リセットは自己責任で。

関連記事: 「許可するには管理者の名前とパスワードを入力してください」 「Apple T2と起動セキュリティユーティリティ

0 件のコメント:

コメントを投稿