L'implicazione dell'inoltro X11 è che apre un canale dal server al client. In una semplice sessione SSH, il client è più fidato del server:chiunque abbia il controllo del client può eseguire comandi sul server (supponendo l'accesso alla shell), ma non è vero il contrario. Con l'inoltro X11, è probabile che il server ottenga l'accesso shell al client.
In una sessione di testo, esiste un canale limitato dal server al client:il server determina l'output visualizzato sul client e può in particolare tentare di sfruttare le sequenze di escape nel terminale in esecuzione sul client,
In una sessione X11, il server può inviare comandi X11 al client. X11 non è stato progettato pensando alla sicurezza, è stato progettato con l'idea che tutti i programmi che stai visualizzando siano eseguiti da te e quindi affidabili comunque. Per impostazione predefinita, SSH sottopone i comandi dal server a restrizioni tramite l'estensione X11 SECURITY. L'estensione SECURITY disabilita alcuni attacchi ovvi come l'acquisizione della tastiera e l'inserimento di tasti, ma ne consente altri come il furto del focus.
Diciamo che apro una connessione SSH a someserver
, con l'inoltro X11 abilitato. Il rischio principale è che se someserver
è dannoso, quindi someserver
può fare ogni sorta di cose sgradevoli alle finestre/applicazioni che ho aperto sul mio computer.
Ad esempio, someserver
può aprire finestre sul mio computer, può chiudere altre finestre che ho aperto, può spiare il contenuto di altre finestre che ho aperto, può spiare i tasti che digito in altre finestre, può iniettare sequenze di tasti contraffatte ed eventi del mouse in altre finestre avere aperto, e in genere pasticciare con tutte le altre finestre che ho aperto sulla mia macchina, anche se alcune di quelle altre finestre sono applicazioni locali in esecuzione localmente.