Xのアプリを削除したのにパスワードなしで
ログインできた理由
(キーチェーン)

  • iPhoneでアプリを削除しても、キーチェーンに保存された認証情報は端末に残ります。
  • キーチェーンはAppleが用意したパスワード専用の保管領域で、アプリの通常データとは独立しています。
  • そのため再インストール後にログイン画面でアカウント候補が表示され、タップだけで認証が完了します。
  • 認証情報を完全に消すには、「パスワード」アプリからXのアカウントを手動で削除する必要があります。

関連記事

1. Xの再インストールとログイン

「Xを再インストールしたのに、パスワードを入力なしにログインできました。なぜですか?」という質問がありました。

Xのアプリをいったん削除したのに、パスワード入力なしでログインできた。
不審に思うのは自然なことです。
しかし、よく確認してみると、乗っ取りでも不具合でもなく、iOSの設計による動作でした1

2. アプリを削除しても消えないデータがある

iPhoneでアプリを削除すると、そのアプリが保存していたデータはすべて消える、と思うのは自然です。

アプリを削除しても消えないデータがある 削除される 設定データ キャッシュ メッセージ アプリの通常領域 残る パスワード ログイントークン 認証情報 キーチェーン領域 VS

たしかに、メッセージのテキストや設定など、アプリが通常の領域に保存したデータは消えます。

ただし、「キーチェーン」に保存されたデータは別です。

3. ログイン画面にアカウントの候補がある?

実は、今回の質問では、パスワードの入力はなかったものの、Xのログイン画面は表示されていました。

なぜパスワードなしでログインできるのか 再インストール 候補が表示 タップで完了 キーチェーンに認証情報が残っているため パスワード入力なしで認証が通る

アカウントの候補が表示され、タップするだけでログインできた状態になっていたのです。

これは、Xのサーバー側ではセッションがログアウト済みになっていても、再ログインに必要な認証情報がキーチェーンに残っていたため。
キーチェーンに保存されているパスワードは、自分でパスワードを入力することなしにスムーズに認証されます。

キーチェーンとは キーチェーン 暗号化保存 データを安全に管理 アプリ独立領域 削除しても残る アクセス制限 同じアプリのみ参照可 Face ID連携 生体認証で保護

キーチェーンは、パスワードやログイントークンなどの認証情報を安全に保管するためにAppleが用意した仕組みです。
iOSが管理するセキュリティを高めるための特別な保管場所で、通常のアプリデータとは独立した領域に存在します。
また、データは暗号化されて保存され、同じアプリ以外からはアクセスできません2

そのため、アプリを削除しても、キーチェーンに入っているデータはそのまま端末に残る設計になっています3

4. 気になる方向け:キーチェーンの認証情報を削除する方法

とくにセキュリティ上の問題がある状態ではないですが、端末に認証情報を残るのが気になる場合には、iOSのパスワードアプリから削除することもできます。

ホーム画面の「パスワード」アプリを直接開来ます。
Face IDまたはパスコードで認証したあと、一覧からXのアカウントを探して削除すると、キーチェーンに保存されていた認証情報が消えます4
そうすれば、次にXを再インストールしたときは、パスワードの入力が求められます。

  1. 「全セッションからログアウト」はXのサーバー側で発行済みのセッショントークンをすべて無効化する操作です。端末上のキーチェーンに保存されたデータには直接影響しません。 – IOS Tips: Using keychain to store password, access token On iOS App
  2. キーチェーンはAES-256-GCMで暗号化されており、Secure Enclaveと連携して保護されます。パスワードだけでなく、ログイン後に発行されるセッショントークンやアクセストークンも保管対象です。 – Keychain data protection – Apple Support
  3. アプリのキーチェーンデータはアンインストール後も残り、ユーザーが削除する手段はなく、端末を初期化しない限り残り続けます。 – IOS Saves Credentials for Deleted Apps – Apple Community
  4. iOSのパスワードアプリはiOS 18およびmacOS Sequoiaで独立したアプリとして提供されました。それ以前のバージョンでは「設定」内の「パスワード」から同様の操作が可能です。 – Keychain (software) – Wikipedia