K Kibo 入手

iPhoneのキーボードは実際にどこまでのデータを見られるのか

キーボード拡張が読めるのは、自分が接続されている入力欄と、その周辺のごく限られた情報だけです。境界がどこにあるのか、そして「読めること」と「送れること」がなぜ別の問題なのかを整理します。

キーボード拡張は、自分が接続されているテキスト入力欄を読むことができます。この一文はまったく正しいのですが、多くの人がこの文から想像する範囲より、実際の権限はかなり狭いところで止まっています。

拡張に渡されているもの

入力欄をタップしたとき、iOSがキーボードに渡すのは、そのアプリではありません。渡されるのは、その一つの入力欄に対する狭い窓口だけです。テキストドキュメントプロキシと呼ばれるもので、そこから得られるのは、カーソルの直前にある文字、直後にある文字、現在選択されている範囲、そして入力欄自身の属性をあらわす少数の情報です。

この属性は普段ほとんど意識されませんが、キーボードが場面に合った見た目になるのは、これのおかげです。

キーボードがこれらを使って行うのは、文の区切りのあとで大文字にする、変換候補を出す、次の語の前に空白が要るかを判断するといった、入力の当たり前の処理です。受け取る文字列も文書全体ではなくカーソル周辺の文脈で、しかもアプリ側が要求より少ない量しか渡さないこともあります。特に長い文書では、近くの一定範囲だけが渡されるのが普通です。

さらに、この関係は入力欄ごと、入力の回ごとに区切られています。カーソルを別の欄へ移せば、キーボードが話している相手は別のプロキシに変わり、前の欄の記憶は引き継がれません。

見えないもの

境界の外側にあるものの一覧は、内側の一覧よりかなり長く、しかもキーボード側の行儀ではなくシステムによって強制されています。

「読めること」と「送れること」は別の問題

キーボードにまつわる不安の大半は、この区別に集約されます。入力中の欄を読むことはキーボードであることそのものに含まれていて、純正キーボードも自動修正や予測のために同じ文字を同じ理由で読んでいます。実際にリスクを伴う問いは、その文字が端末の外へ出られるかどうかで、そちらは別のスイッチが管理しています。

フルアクセスが切れていれば、拡張にネットワークアクセスはなく、送り先が存在しません。有効にすると、この制限が個別の権限のメニューではなく一つのスイッチとしてまとめて外れます。iOSの確認文があれほど強い調子なのはそのためです。能力が生まれたことは伝えられても、そのキーボードが実際に使うかどうかまでは伝えられないからです。

結果として、信じるか信じないかではなく、二つの実務的な確認が残ります。

  1. フルアクセスを切ったままで普通に入力できるか。文字入力にはいかなる権限も要らないので、権限を与えるまで動かないキーボードは、入力に不要なものを求めていることになります。
  2. 要求してくる場合、理由が具体的か。「すべての機能を使うために必要」では何も説明していません。「貼り付けボタンに必要」なら、スイッチを切ってそのボタンだけが止まることを自分で確かめられます。

キーボードは、端末上のほとんどのものより近い距離であなたの文章に接していますが、見えている範囲はブラウザのタブより狭いとも言えます。読むこと自体は仕事のうちで、確認する価値があるのは、その周りのサンドボックスが開いているかどうかのほうです。

よくある質問

サードパーティ製キーボードは、ほかのアプリで打った内容も見られますか。

見られません。拡張は入力中のアプリで画面に表示されているあいだだけ読み込まれ、渡されるのはフォーカスされている一つの入力欄への接続だけです。ほかのアプリを覗く手段はなく、入力していないあいだはそもそも動作していません。

キーボードにパスワードを読まれることはありますか。

セキュアな入力欄からは読まれません。パスワード欄や決済シートは自身をセキュアとして扱い、どのキーボードを追加していても、どんな権限を持っていても、iOSがその欄では純正キーボードに切り替えます。

入力欄を読めるのなら、フルアクセスの有無に意味はあるのですか。

読むことと送ることが別だからこそ意味があります。フルアクセスがなければ拡張にネットワークアクセスはなく、読んだ内容が端末の外へ出る経路がありません。その制限をまとめて外すのがフルアクセスで、警告文が指しているのはその点です。

自分のキーボードで試す

Kiboは、本物のメカニカルキー音とテーマ、RGBバックライト効果を備えたiPhone向けの無料カスタムキーボードです。アカウント登録も広告もなく、フルアクセスをオフにしたままでも使えます。

App Storeでダウンロード

関連ガイド

ガイド一覧