Autorizzazioni X Window
# Autorizzazioni X Window

Nell'X Window System, i programmi si connettono all'X server, eventualmente via rete. Dato che la rete potrebbe essere accessibile ad altri utenti, un metodo per proibire l'accesso a programmi fatti girare da utenti diversi dal quello che ha effettuato il login è necessario.

Ci sono cinque meccanismi standard di accesso che controllano se una applicazione client può collegarsi ad un X server. Possono essere raggruppati in tre categorie:

* accesso basato su host
* accesso basato su cookie
* accesso basato su utente

In più, come in ogni altra connessione di rete, si può usare il tunneling

## Accesso Host-based (basato su host)

Il metodo di accesso host-based consiste nello specificare un insieme di host che sono autorizzati a connettersi all'X server. Questo sistema è considerato obsoleto, dato che permette ad ogni utente che ha un accesso a tale host di connettersi al display. Il programma xhost e tre tipi di richieste dell'X Window System core protocol vengono usati per attivare questo meccanismo e mostrare i cambiamenti nella lista di host autorizzati.

## Cookie-based access (Accesso basato su cookie)

I metodi di autorizzazione basati su host comportano la scelta di un magic cookie (un pezzo arbitrario di dati) e il passaggio di questo al server all'avvio; ogni client che può provare la conoscenza di questo cookie è quindi autorizzato a connettersi al server.

Questi cookie sono creati da un programma separato e salvato di default nel file .Xauthority nella directory home dell'utente. Come risultato di ciò, ogni programma fatto girare dal client sul computer locale può accedere a questo file e perciò al cookie necessario ad venir autorizzato dal server. Se l'utente vuole far partire un'applicazione da un altro computer in rete, il cookie deve essere copiato in quel computer. Come il cookie viene copiato dipende da sistema a sistema: per esempio, sulle piattaforme Unix-like, scp può essere usato per copiare il cookie.

I due sistemi che usano questo metodo sono MIT-MAGIC-COOKIE-1 e XDM-AUTHORIZATION-1. Nel primo metodo, il client semplicemente invia il cookie quando gli viene richiesto di autenticarsi. Nel secondo metodo, viene salvata anche una chiave segreta nel file .Xauthority. Il client crea una stringa concatenando la data corrente, un identificatore transport-dependent e il cookie, cifra la stringa risultante e la invia al server.

L'applicazione xauth è un'utility per accedere al file the .Xauthority.

## User-based access (Accesso basato su utente)

Il metodo di accesso basato su utente lavora autorizzando l'utente specifico a collegarsi al server. Quando un client stabilisce una connessione ad un server, deve provare di essere controllato da un utente autorizzato.

I due metodi basati sull'autenticazione degli utenti sono SUN-DES-1 e MIT-KERBEROS-5. Il primo sistema è basato su un meccanismo di chiamata di procedura remota sicura sviluppato in SunOS. Il secondo meccanismo è basato sulla registrazione fidata in un server Kerberos.

## Tunneling

La connessione tra client e server attraverso una rete può essere protetta usando un protocollo di tunneling sicuro tipo SSL o SSH.

