En el sistema X Window , los programas se ejecutan como clientes X y, como tales, se conectan al servidor de visualización X , posiblemente a través de una red informática . Dado que la red puede ser accesible para otros usuarios , es necesario un método para prohibir el acceso a programas ejecutados por usuarios distintos de aquél que está conectado.
Hay cinco mecanismos de control de acceso estándar que controlan si una aplicación cliente puede conectarse a un servidor de pantalla X. Se pueden agrupar en tres categorías:
- acceso basado en host
- acceso basado en cookie
- acceso basado en usuario
Además, como cualquier otra conexión de red, se puede utilizar la tunelización .
Acceso basado en host
El método de acceso basado en host consiste en especificar un conjunto de hosts que están autorizados a conectarse al servidor de visualización X. Este sistema tiene una seguridad inferior, ya que permite que todos los usuarios que tengan acceso a dicho host se conecten a la pantalla. El xhost
programa y tres solicitudes del protocolo central del sistema X Window se utilizan para activar este mecanismo y para mostrar y cambiar la lista de hosts autorizados. El uso inadecuado de xhost
puede dar inadvertidamente a todos los hosts de Internet acceso completo a un servidor de pantalla X.
Acceso basado en cookies
Los métodos de autorización basados en cookies se basan en elegir una cookie mágica (un dato arbitrario) y pasarla al servidor de visualización X cuando se inicia; Todo cliente que pueda demostrar tener conocimiento de esta cookie está autorizado a conectarse al servidor.
Estas cookies son creadas por un programa separado y almacenadas en el archivo .Xauthority
en el directorio de inicio del usuario, de forma predeterminada. Como resultado, cada programa ejecutado por el cliente en la computadora local puede acceder a este archivo y por lo tanto a la cookie que es necesaria para ser autorizada por el servidor. Si el usuario desea ejecutar un programa desde otra computadora en la red, la cookie debe copiarse en esa otra computadora. La forma en que se copia la cookie es un problema que depende del sistema: por ejemplo, en plataformas similares a Unix , se puede usar scp para copiar la cookie.
Los dos sistemas que utilizan este método son MIT-MAGIC-COOKIE-1
y XDM-AUTHORIZATION-1
. En el primer método, el cliente simplemente envía la cookie cuando se le solicita que se autentique. En el segundo método, también se almacena una clave secreta en el .Xauthority
archivo. El cliente crea una cadena concatenando la hora actual, un identificador dependiente del transporte y la cookie, encripta la cadena resultante y la envía al servidor.
La aplicación xauth es una utilidad para acceder al .Xauthority
archivo. La variable de entorno XAUTHORITY
se puede definir para anular el nombre y la ubicación de ese archivo de cookies.
El protocolo de intercambio entre clientes (ICE) implementado por la biblioteca de intercambio entre clientes para la comunicación directa entre clientes X11 utiliza el mismo MIT-MAGIC-COOKIE-1
método de autenticación, pero tiene su propia utilidad iceauth para acceder a su propio .ICEauthority
archivo, cuya ubicación se puede anular con el variable de entorno ICEAUTHORITY
. ICE es utilizado, por ejemplo, por DCOP y el protocolo X Session Management (XSMP).
Acceso basado en usuarios
Los métodos de acceso basados en usuarios funcionan autorizando a usuarios específicos a conectarse al servidor. Cuando un cliente establece una conexión a un servidor, tiene que demostrar que está controlado por un usuario autorizado.
Los dos métodos basados en la autenticación de usuarios mediante sistemas de gestión de identidad en red son SUN-DES-1
y MIT-KERBEROS-5
. El primer sistema se basa en un mecanismo seguro del sistema de llamada a procedimiento remoto de ONC desarrollado en SunOS . El segundo mecanismo se basa en que tanto el cliente como el servidor confían en un servidor Kerberos .
Un tercer método se limita a las conexiones locales, utilizando llamadas al sistema para preguntar al kernel qué usuario está en el otro extremo de un socket local. El xhost
programa puede ser utilizado para agregar o quitar localuser
y localgroup
entradas con este método. [1]
Tunelización
La utilidad SSH (cuando se invoca con una opción -X
u opción ForwardX11
) canaliza el tráfico X11 desde los clientes invocados de forma remota al servidor local. Lo hace configurando en el sitio remoto la DISPLAY
variable de entorno para que apunte a un socket TCP local abierto allí por sshd, que luego canaliza la comunicación X11 de regreso a ssh. Luego, Sshd también llama a xauth para agregar en el sitio remoto una cadena MIT-MAGIC-COOKIE-1 .Xauthority
allí, que luego autoriza a los clientes X11 allí a acceder al servidor X local del usuario ssh.
Las conexiones X11 entre el cliente y el servidor a través de una red también se pueden proteger mediante otros protocolos de canal seguro, como Kerberos / GSSAPI o TLS , aunque estas opciones ahora se utilizan con mucha menos frecuencia que SSH.
Referencias
- ^ "Tipos de autenticación interpretados por el servidor" localuser "y" localgroup " " . Fundación X.Org . Consultado el 16 de enero de 2015 .
enlaces externos
- Página del manual de seguridad X (Xsecurity 7)