キーボード入力のセキュリティを保護
別名:Secure Event Input、セキュア入力
公開日:
定義
「キーボード入力のセキュリティを保護」は、Macのターミナルの設定です。コンピュータ上やネットワーク上のほかのアプリが、ターミナルで入力した内容を検出して記録するのを防ぎます。Secure Event InputというmacOSの仕組みを基にしており、この仕組みはキーボードを傍受するプロセスにキー入力が渡らないようにします。
この設定に出会うきっかけは2つあります。ターミナルでパスワードを入力するので自分でオンにする場合と、キーボードショートカット、テキスト展開ツール、プッシュトゥトークのキーが反応しなくなり、その原因を調べているうちに知る場合です。
保護と副作用は同じものです。macOSは、キーボードを監視する便利なツールと有害なツールを区別できません。そのため、セキュア入力がオンの間は、どのツールもキー入力を受け取れません。
ターミナルで「キーボード入力のセキュリティを保護」をオンにする方法
この設定は、Appleのターミナルアプリにあるメニュー項目1つだけです。Appleは使う前の注意として、ほかのアプリがターミナルからのキー入力を必要としていないことを確認するよう案内しています。
- Macでターミナルアプリを開きます。
- メニューバーの「ターミナル」をクリックします。
- 「キーボード入力のセキュリティを保護」を選択します。
- もう一度「ターミナル」メニューを開き、「キーボード入力のセキュリティを保護」の横にチェックマークがあることを確認します。チェックマークはオンになっていることを示します。
「キーボード入力のセキュリティを保護」をオフにする方法
ターミナルを開いたあとにショートカットやテキストスニペットが動かなくなった場合は、まずこのメニュー項目を確認してください。同じ項目で設定のオンとオフを切り替えます。
- ターミナルを最前面に表示します。
- メニューバーの「ターミナル」をクリックします。
- 「キーボード入力のセキュリティを保護」にチェックマークが付いている場合は、1回選択してチェックマークを外します。
- iTerm2を使っている場合は、代わりにメニューバーの「iTerm2」をクリックし、そこで「Secure Keyboard Entry」を選択します。このメニュー項目はiTerm2独自のものです。
- 別のアプリに切り替えて、動かなくなっていたショートカットやスニペットを試します。
Secure Event Inputとは?
Secure Event Inputは、このメニュー項目の土台にあるシステムの仕組みです。これに関するAppleの開発者向けノート「Technical Note TN2150」によると、この機能はMac OS X 10.3で追加されたもので、キーボードイベントがキーボード傍受プロセスに傍受されないようにキーボード入力を保護します。このノートは2007年のもので、Appleのドキュメントアーカイブに収められていますが、この動作についてのApple自身の説明であることに変わりはありません。
アプリがこの仕組みを使うのに、メニュー項目は必要ありません。Appleのノートによると、標準のパスワードフィールドは必要なときだけ、つまりフィールドに入力している間だけキーボードイベントを保護します。ターミナルの「キーボード入力のセキュリティを保護」はこれとは異なり、通常の入力中も保護をオンのままにすることを自分で選ぶものです。
キーボードショートカットやテキスト展開ツールが動かなくなるのはなぜ?
ほかのアプリが前面にあるときにキーに反応するツールは、キーボードを監視する必要があります。Appleのノートでは、プロセスがキーボードを監視する方法としてイベントタップなどを挙げ、便利な例としてマクロ、アクセシビリティツール、キーボードのカスタマイズツールを挙げています。テキスト展開ツール、グローバルホットキー、押したまま話すキーは、いずれもこのグループに入ります。
ノートはそのうえで規則を示しています。いずれかのプロセスがSecure Event Inputを有効にしている間は、そのプロセスが前面にあるか背面にあるかにかかわらず、システムはどの傍受プロセスにもキーボードイベントを渡しません。そのため、セキュア入力をオンにしたままのアプリがあると、そのアプリのウインドウ内だけでなく、Mac全体でキーボードツールが動かなくなることがあります。Appleは開発者に対し、必要なときだけ有効にし、フォーカスが移ったら無効にするよう求めています。
- テキスト展開:入力した略語がツールに届かないため、何も展開されません。
- グローバルショートカット:ほかのアプリが待ち受けているショートカットが反応しません。
- プッシュトゥトークのキー:キーが押されたり離されたりするのを待っているツールが、それを検知できません。
- キーリマッパーやマクロツール:変更や再生の対象となるキーを受け取れません。
iTerm2の「Secure Keyboard Entry」
iTerm2はAppleの製品ではない別のターミナルアプリで、独自の切り替え項目が「iTerm2」→「Secure Keyboard Entry」にあります。iTerm2のドキュメントによると、これを有効にすると、コンピュータ上のほかのプログラムが入力内容を見られないようにOSが防ぎます。また、ほかのプログラムのグローバルホットキーが無効になる場合があるとしています。
iTerm2のFAQには、この設定による影響がさらに2つ書かれています。1つは、openコマンドを使ったときにアプリのウインドウが前面に出ないことがある点です。FAQはこれを、機密性の高いテキストを入力している間にアプリがキーボードフォーカスを奪うのを防ぐmacOSのセキュリティ機能だと説明しています。もう1つは、Logitechマウスでのスクロールの問題です。どちらの場合も、FAQは「iTerm2」→「Secure Keyboard Entry」をオフにするよう案内しています。
「キーボード入力のセキュリティを保護」はオンのままにしておくべき?
ターミナルで何を入力するか、どのツールに頼っているかによります。プロンプトでパスワードや機密情報をよく入力し、キーボードツールを使わないなら、オンのままでも困ることはありません。テキスト展開ツール、ランチャーのショートカット、音声入力のキーを使っているなら、オンの間はそれらが使えなくなります。
また、保護の手段はこれだけではありません。macOSは、アプリがキーボードを監視する前に許可を求めます。その一覧は「システム設定」→「プライバシーとセキュリティ」→「入力監視」で確認できます。信頼できないアプリをこの一覧から削除すれば、ターミナルだけでなくすべてのアプリが保護されます。
よくある質問。
ターミナルの「キーボード入力のセキュリティを保護」は何をする機能ですか?
Appleによると、コンピュータ上やネットワーク上のほかのアプリが、ターミナルで入力した内容を検出して記録するのを防ぐことができます。オンにするには「ターミナル」→「キーボード入力のセキュリティを保護」を選択します。チェックマークが付いていればオンです。
Macで「キーボード入力のセキュリティを保護」をオフにするにはどうすればよいですか?
ターミナルを開き、メニューバーの「ターミナル」をクリックして「キーボード入力のセキュリティを保護」を選択し、チェックマークを外します。iTerm2では、この項目は「iTerm2」メニューにあります。
Macでテキスト展開ツールが動かなくなったのはなぜですか?
よくある原因の1つはセキュア入力です。いずれかのアプリがSecure Event Inputを有効にしている間、macOSはキーボードを監視するツールにキー入力を渡さないため、展開ツールには入力した内容が届きません。ターミナルアプリの「キーボード入力のセキュリティを保護」を確認し、パスワードフィールドの外をクリックしてください。
ターミナルやiTerm2を開いているとグローバルホットキーが使えないのはなぜですか?
「キーボード入力のセキュリティを保護」がオンになっている可能性が高いです。iTerm2のドキュメントには、この設定によってほかのプログラムのグローバルホットキーが無効になる場合があると書かれています。Appleも、オンにする前に、ほかのアプリがターミナルからのキー入力を必要としていないことを確認するよう注意しています。
Secure Event Inputと「キーボード入力のセキュリティを保護」は同じものですか?
Secure Event Inputは、キーボード傍受プロセスからキー入力を隠すmacOSの仕組みです。「キーボード入力のセキュリティを保護」はターミナルのメニュー項目で(iTerm2にも別にあります)、ターミナルで入力している間、その保護をオンのままにします。
パスワードフィールドはセキュア入力をオンにしますか?
はい。Appleの開発者向けノートによると、標準のパスワードフィールドは必要なときだけキーボードイベントを保護するため、保護が働くのはフィールドに入力している間です。キーボードツールが反応しなくなったら、パスワードフィールドの外をクリックしてからもう一度試してください。