La saisie sécurisée est activée : que signifie le cadenas sur l’icône de Comoji ?
Comoji ajoute gratuitement l’autocomplétion :emoji: façon Slack à toutes les apps de votre Mac.
Si vous avez ouvert le menu de Comoji parce que taper :fire ne donnait soudain plus rien, et que la première ligne indique La saisie sécurisée est activée avec un petit cadenas sur l’icône de la barre des menus, cette page vous explique pourquoi. En bref : macOS a cessé de transmettre les frappes à Comoji, volontairement, et Comoji vous le signale au lieu de rester silencieux. La plupart du temps, le cadenas disparaît tout seul en quelques secondes. Il arrive qu’il reste bloqué, et dans ce cas une solution fonctionne toujours : fermer la session de votre Mac puis vous reconnecter. Les détails suivent. Une précision d’emblée, puisque le cadenas s’affiche sur notre icône : ce n’est pas un bug de Comoji, c’est un bug de la saisie de texte sécurisée d’Apple. Comoji se contente de signaler cet état ; il ne peut ni le provoquer ni le lever.

Qu’est-ce que la saisie sécurisée ?
La saisie sécurisée, qu’Apple appelle aussi Saisie sécurisée au clavier ou secure event input, est un mode du serveur de fenêtres de macOS. Tant qu’elle est active, les frappes vont uniquement à l’app qui l’a demandée, et à rien d’autre. Toutes les interceptions d’événements clavier du système se taisent : autocomplétion des emoji, expanseurs de texte, gestionnaires de presse-papiers, outils de remappage de touches, écho de saisie des lecteurs d’écran, tous sans exception. C’est le mécanisme qui empêche tout autre logiciel de voir le mot de passe que vous tapez dans Safari, et c’est une bonne conception.
Les apps l’activent quand un champ de mot de passe prend le focus et la désactivent quand le focus le quitte. L’écran verrouillé l’active pendant le déverrouillage. Terminal et iTerm2 proposent un élément de menu Saisie sécurisée au clavier qui la laisse active tant que la fenêtre est au premier plan. Les gestionnaires de mots de passe l’activent autour de leurs invites de déverrouillage.
Pourquoi Comoji affiche un cadenas
Comoji fonctionne en guettant un deux-points suivi de quelques lettres, puis en proposant des complétions au niveau du curseur. Quand la saisie sécurisée est active, la partie qui écoute ne reçoit rien, si bien qu’aucune fenêtre ne peut apparaître, quoi que vous tapiez. Avant cette version, ce silence ne se distinguait pas d’un Comoji en panne, désactivé dans l’app en cours ou privé d’une autorisation, et on comprend que des gens aient relancé l’app, accordé à nouveau les autorisations ou nous aient écrit. Désormais, l’icône porte un badge en forme de cadenas exactement tant que la saisie sécurisée est active, et le premier élément du menu nomme l’app qui la détient : l’état est visible au lieu d’être mystérieux.
Le badge rappelle aussi un choix délibéré de Comoji : il ne complète jamais dans les champs de mot de passe. C’était déjà vrai avant l’existence du badge. Comoji vérifie si le champ actif est un champ de texte sécurisé et s’en tient à l’écart, en plus du blocage au niveau du système. Le cadenas ne change pas le comportement, seulement ce que vous pouvez voir.
Le cas normal : le cadenas va et vient
Cliquez dans un champ de mot de passe de votre navigateur et regardez la barre des menus : le cadenas apparaît. Cliquez dans le champ du nom d’utilisateur ou dans le corps de la page, et il disparaît. Ouvrez Terminal avec la Saisie sécurisée au clavier activée, et le cadenas reste affiché jusqu’à ce que vous passiez à une autre app ou désactiviez l’option. Dans tous ces cas, rien ne cloche : l’élément de menu vous indique seulement quelle app est responsable, et Comoji reprend dès que l’app libère la saisie.
Le cas bloqué : le cadenas ne disparaît jamais
Parfois, le cadenas reste affiché alors que vous tapez dans un champ tout à fait ordinaire, ou le menu indique que la saisie sécurisée est détenue par une app que vous avez déjà quittée, ou par loginwindow plusieurs minutes après le déverrouillage de l’écran. C’est une saisie sécurisée bloquée, et c’est un bug de macOS, pas quelque chose que Comoji ou l’app nommée peut défaire de l’extérieur.
Comoji n’a aucun moyen d’activer la saisie sécurisée, et aucune app, Comoji compris, ne peut la désactiver à la place d’une autre. Tout ce qui écoute le clavier se tait au même moment, et Comoji est simplement celui qui vous le dit.
Voici ce qui se passe. Le serveur de fenêtres tient un compteur par processus : chaque fois qu’une app active la saisie sécurisée, le compteur augmente ; chaque fois qu’elle la désactive, il diminue ; et la session reste en mode sécurisé tant que le compteur de chaque app n’est pas revenu à zéro. Une app qui l’active plus souvent qu’elle ne la désactive, ou qui se ferme alors que son compteur est encore positif, laisse toute la session verrouillée. Nous avons vu Chrome le faire après avoir restauré des onglets contenant un champ de mot de passe, et nous avons vu l’écran verrouillé le faire sur une version récente de macOS, en activant la saisie sécurisée plusieurs fois par déverrouillage et en ne la désactivant qu’une fois. Aucune autre app ne peut faire baisser un compteur qui ne lui appartient pas. C’est la garantie de sécurité qui fonctionne comme prévu, et c’est précisément pour cela que c’est si gênant quand le compteur fuit.
Comment la débloquer, du plus simple au plus radical
- Lisez le nom de l’app sous La saisie sécurisée est activée dans le menu de Comoji (ou survolez l’icône de la barre des menus). S’il s’agit d’un navigateur, cliquez dans un champ de texte normal de ce navigateur, ou changez d’onglet. Cela suffit souvent à la libérer.
- S’il s’agit de Terminal ou d’iTerm2, ouvrez le menu de cette app et désactivez Saisie sécurisée au clavier.
- Quittez complètement l’app nommée avec
Command-Qet rouvrez-la. Si son compteur était positif à sa fermeture, le cadenas peut survivre ; passez alors à l’étape suivante. - Si le menu indique que l’app détentrice est déjà fermée, ou nomme loginwindow alors que votre écran est déverrouillé, fermez la session puis reconnectez-vous depuis le menu Pomme. Fermer la session met fin à la session qui détient le compteur en fuite ; un redémarrage fonctionne aussi mais prend plus de temps. Évitez de verrouiller l’écran entre-temps, car chaque verrouillage et déverrouillage peut provoquer une nouvelle fuite.
Vous pouvez vérifier l’état dans Terminal avant et après. La première commande affiche le processus que la session enregistre comme propriétaire, et la seconde transforme ce numéro en nom :
ioreg -l -w 0 | grep -o '"kCGSSessionSecureInputPID"=[0-9]*'
ps -p <that number> -o comm=Si la première commande n’affiche rien, la saisie sécurisée est désactivée et Comoji reçoit de nouveau les frappes. Un numéro correspondant à un processus que ps ne trouve pas, c’est le cas bloqué dans sa forme la plus pure.
La solution qui marche toujours : fermer la session et se reconnecter
Chacune des étapes ci-dessus est un raccourci qui fonctionne parfois. Fermer la session est la solution qui fonctionne toujours, car le compteur en fuite vit dans votre session et la fermer y met fin. Enregistrez votre travail, choisissez Fermer la session dans le menu Pomme, reconnectez-vous, et le cadenas a disparu ; Comoji démarre avec vos éléments de connexion et répond immédiatement. Il nous a fallu un Chrome bloqué, un écran verrouillé bloqué et une matinée de tâtonnements pour en arriver là : si le cadenas a survécu à l’app qui l’a causé, venez directement ici. Un redémarrage complet produit le même effet et prend plus de temps.
Ce que Comoji fait, et ne fait pas, à ce sujet
Comoji interroge l’indicateur une fois par seconde, une requête au coût imperceptible, et identifie le processus propriétaire de la même façon que ioreg. Il ne peut pas désactiver la saisie sécurisée, et ce serait un grave problème de sécurité s’il le pouvait. Il ne peut pas non plus voir ce que vous tapez tant que le cadenas est affiché, ce qui est tout l’intérêt de ce mode. Ce qu’il peut faire, c’est éviter que le silence ressemble à une panne, et vous donner le nom de l’app à aller secouer.
Si vous vous demandez ce que Comoji fait des deux autorisations qu’il détient, la page sécurité publie l’intégralité de sa surface réseau et les tests qui la garantissent. La détection de la saisie sécurisée sur la page des fonctionnalités en est la version courte ; la même visite présente les interrupteurs par app et par site, qui sont autre chose que le cadenas : ceux-là relèvent de votre choix, alors que le cadenas relève de macOS.
Un badge, une ligne de menu, et une reconnexion quand le système se comporte mal. Comoji préfère vous le dire clairement plutôt que de vous laisser accuser le mauvais coupable.
Questions fréquentes
Pourquoi Comoji affiche-t-il un cadenas dans la barre des menus ?
Le cadenas signifie que la saisie sécurisée de macOS est active : les frappes ne sont transmises qu’à l’app qui l’a demandée, et Comoji ne peut pas les voir. Il apparaît quand un champ de mot de passe ou l’écran verrouillé a le focus, ou quand Terminal a la Saisie sécurisée au clavier activée, et disparaît dès que l’app la libère. L’élément de menu « La saisie sécurisée est activée » nomme l’app responsable.
Comment désactiver la Saisie sécurisée au clavier sur un Mac ?
Dans Terminal ou iTerm2, ouvrez le menu de l’app et décochez Saisie sécurisée au clavier. Pour un navigateur ou un gestionnaire de mots de passe, cliquez dans un champ qui n’est pas un mot de passe ou quittez l’app. Si le réglage reste actif après la fermeture de l’app responsable, fermez votre session macOS et reconnectez-vous : cela réinitialise la session qui détient l’état en fuite.
Pourquoi la saisie sécurisée reste-t-elle active après avoir quitté l’app ?
Le serveur de fenêtres de macOS tient, pour chaque processus, un compteur des demandes de saisie sécurisée, et une app qui se ferme alors que son compteur est encore positif laisse la session verrouillée sans que personne ne puisse la libérer. Chrome, après la restauration d’un onglet contenant un champ de mot de passe, et l’écran verrouillé sur certaines versions de macOS sont connus pour le faire. Fermer la session puis se reconnecter règle le problème.
Comoji fonctionne-t-il dans les champs de mot de passe ?
Non, et c’est voulu. macOS bloque toute écoute du clavier quand un champ de mot de passe a le focus, et Comoji vérifie de son côté si le champ actif est un champ de texte sécurisé pour s’en tenir à l’écart. Le badge en forme de cadenas rend simplement cet état du système visible, pour qu’une fenêtre silencieuse ne soit pas prise pour une app en panne.
Téléchargez Comoji gratuitement pour Mac
L’autocomplétion :emoji: façon Slack et Discord, partout sur votre Mac. Gratuit.