L'implication du transfert X11 est qu'il ouvre un canal du serveur vers le client. Dans une simple session SSH, le client est plus fiable que le serveur :toute personne contrôlant le client peut exécuter des commandes sur le serveur (en supposant un accès au shell), mais l'inverse n'est pas vrai. Avec le transfert X11, le serveur est susceptible d'obtenir un accès shell au client.
Dans une session texte, il y a un canal limité du serveur vers le client :le serveur détermine la sortie qui est affichée sur le client, et peut en particulier essayer d'exploiter les séquences d'échappement dans le terminal s'exécutant sur le client,
Dans une session X11, le serveur peut renvoyer des commandes X11 au client. X11 n'a pas été conçu dans un souci de sécurité, il a été conçu avec l'idée que tous les programmes que vous affichez sont exécutés par vous et donc fiables de toute façon. Par défaut, SSH soumet les commandes du serveur à des restrictions via l'extension X11 SECURITY. L'extension SECURITY désactive certaines attaques évidentes telles que les saisies au clavier et l'injection de touches, mais en autorise d'autres comme le vol de focus.
Disons que j'ouvre une connexion SSH vers someserver
, avec le transfert X11 activé. Le principal risque est que si someserver
est malveillant, alors someserver
peut faire toutes sortes de choses désagréables aux fenêtres/applications que j'ai ouvertes sur mon propre ordinateur.
Par exemple, someserver
peut ouvrir des fenêtres sur mon ordinateur, peut fermer d'autres fenêtres que j'ai ouvertes, peut espionner le contenu d'autres fenêtres que j'ai ouvertes, peut espionner les touches que je tape dans d'autres fenêtres, peut injecter des frappes de touches et des événements de souris usurpés dans d'autres fenêtres I sont ouvertes, et gâchent généralement toutes les autres fenêtres que j'ai ouvertes sur ma machine - même si certaines de ces autres fenêtres sont des applications locales exécutées localement.