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 a otros usuarios , es necesario un método para impedir el acceso a los programas ejecutados por usuarios distintos del que ha iniciado sesión.
Existen cinco mecanismos estándar de control de acceso que determinan si una aplicación cliente puede conectarse a un servidor de visualización X. Estos se pueden agrupar en tres categorías:
- acceso basado en el host
- acceso basado en cookies
- acceso basado en el usuario
Además, al igual que con cualquier otra conexión de red, se puede utilizar la tunelización .
Acceso basado en el host
El método de acceso basado en host consiste en especificar un conjunto de hosts autorizados para conectarse al servidor de visualización X. Este sistema presenta una seguridad inferior, ya que permite que cualquier usuario con acceso a dicho host se conecte a la pantalla. El xhostprograma y tres solicitudes del protocolo principal del Sistema X Window se utilizan para activar este mecanismo y para mostrar y modificar la lista de hosts autorizados. Un uso indebido xhostpuede otorgar, de forma inadvertida, acceso completo a un servidor de visualización X a cualquier host de Internet.
Acceso basado en cookies
Los métodos de autorización basados en cookies consisten en elegir una cookie mágica (un dato arbitrario) y enviarla al servidor de visualización X cuando se inicia; cualquier cliente que pueda demostrar que conoce esta cookie queda autorizado a conectarse al servidor.
Estas cookies son creadas por un programa independiente y se almacenan .Xauthority, por defecto, en un archivo en el directorio personal del usuario. Como resultado, cualquier programa ejecutado por el cliente en el equipo local puede acceder a este archivo y, por lo tanto, a la cookie necesaria para ser autorizado por el servidor. Si el usuario desea ejecutar un programa desde otro equipo de la red, la cookie debe copiarse a ese otro equipo. La forma de copiar la cookie depende del sistema operativo: por ejemplo, en plataformas tipo Unix , se puede usar scp para copiarla.
Los dos sistemas que utilizan este método son MIT-MAGIC-COOKIE-1y XDM-AUTHORIZATION-1. En el primer método, el cliente simplemente envía la cookie cuando se le solicita para autenticarse. En el segundo método, también se almacena una clave secreta.Xauthority en el archivo. El cliente crea una cadena concatenando la hora actual, un identificador dependiente del transporte y la cookie, cifra la cadena resultante y la envía al servidor.
La aplicación xauth es una utilidad para acceder al archivo. Se puede definir .Xauthorityuna variable de entorno para modificar el nombre y la ubicación de dicho archivo de cookies.XAUTHORITY
El protocolo Inter-Client Exchange (ICE), implementado por la biblioteca Inter-Client Exchange para la comunicación directa entre clientes X11, utiliza el mismo MIT-MAGIC-COOKIE-1método de autenticación, pero cuenta con su propia utilidad iceauth para acceder a su .ICEauthorityarchivo, cuya ubicación puede modificarse mediante la variable de entorno ICEAUTHORITY. ICE es utilizado, por ejemplo, por DCOP y el protocolo X Session Management (XSMP).
Acceso basado en el usuario
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 con un servidor, debe demostrar que está siendo controlado por un usuario autorizado.
Los dos métodos basados en la autenticación de usuarios mediante sistemas de gestión de identidades en red son SUN-DES-1y MIT-KERBEROS-5. El primer sistema se basa en un mecanismo seguro del sistema de llamadas a procedimientos remotos ONC desarrollado en SunOS . El segundo mecanismo se basa en que tanto el cliente como el servidor confíen en un servidor Kerberos .
Un tercer método se limita a conexiones locales, utilizando llamadas al sistema para preguntar al kernel qué usuario se encuentra en el otro extremo de un socket local. El xhostprograma puede utilizarse para agregar o eliminar localuserentradas localgroupcon este método. [ 1 ]
Construcción de túneles
La utilidad SSH (cuando se invoca con la opción -Xo la opción ForwardX11) crea un túnel para el tráfico X11 desde los clientes invocados remotamente al servidor local. Para ello, establece en el sitio remoto la DISPLAYvariable de entorno que apunta a un socket TCP local abierto allí por sshd, que luego crea un túnel para la comunicación X11 de vuelta a ssh. A continuación, sshd también llama a xauth para agregar en el sitio remoto una cadena MIT-MAGIC-COOKIE-1 .Xauthority, que luego autoriza a los clientes X11 a acceder al servidor X local del usuario ssh.
Las conexiones X11 entre cliente y servidor a través de una red también pueden protegerse mediante otros protocolos de canal seguro, como Kerberos / GSSAPI o TLS , aunque estas opciones se utilizan ahora 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)
- Sistema X Window