X жүйесінде қолданбаларға қауіпсіздік: хост, cookie және пайдаланушы негізінде қол жеткізуді басқару. Желілік қосылыстардағы қауіпсіздік үшін туннельдеу.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
X терезесі жүйесінде бағдарламалар X клиенттері ретінде іске қосылады, сондықтан олар X дисплей серверіне қосылады, мүмкін компьютерлік желі арқылы. Желі басқа пайдаланушыларға қолжетімді болуы мүмкін болғандықтан, жүйеге кірген пайдаланушыдан өзге пайдаланушылар іске қосқан бағдарламаларға рұқсатсыз кіруді болдырмау үшін бір әдіс қажет. Клиенттік қолданбаның X дисплей серверіне қосылу мүмкіндігін анықтайтын бес стандартты кіруді бақылау механизмі бар. Оларды үш категорияға бөлуге болады: хостқа негізделген кіру, cookie-ге негізделген кіру және пайдаланушыға негізделген кіру. Бұған қоса, кез келген басқа желілік қосылым сияқты, туннельдеуді де пайдалануға болады.
In the X Window System, programs run as X clients, and as such they connect to the X display server, possibly via a computer network. Since the network may be accessible to other users, a method for forbidding access to programs run by users different from the one who is logged in is necessary. There are five standard access control mechanisms that control whether a client application can connect to an X display server. They can be grouped in three categories:
access based on host
access based on cookie
access based on user
Additionally, like every other network connection, tunneling can be used.
Хостқа негізделген қол жеткізу
Хостқа негізделген қол жеткізу әдісі X дисплей серверіне қосылуға рұқсат етілген хосттар жиынтығын көрсетуден тұрады. Бұл жүйе нашар қауіпсіздікке ие, себебі мұндай хостқа қол жеткізген кез келген пайдаланушы дисплейге қосыла алады. Бұл механизмді қосу және рұқсат етілген хосттар тізімін көру және өзгерту үшін xhost бағдарламасы және үш X Window System негізгі протоколының сұраныстары пайдаланылады. xhost-ты дұрыс пайдаланбау нәтижесінде Интернеттегі кез келген хостқа X дисплей серверіне толық қол жеткізімділік берілуі мүмкін.
The host based access method consists in specifying a set of hosts that are authorized to connect to the X display server. This system has inferior security, as it allows every user who has access to such a host to connect to the display. The xhost program and three X Window System core protocol requests are used to activate this mechanism and to display and change the list of authorized hosts. Improper use of xhost can inadvertently give every host on the Internet full access to an X display server.
Cookie-ке негізделген қол жеткізу
Cookie-ге негізделген авторизациялау әдістері, кездейсоқ деректерден (magic cookie) тұратын мәнді таңдауға және оны X дисплей сервері іске қосылғанда беруге негізделген; осы cookie-ді білетінін дәлелдей алатын әрбір клиент серверге қосылуға рұқсат алады. Бұл cookie-лер жеке бағдарлама арқылы жасалады және әдетте пайдаланушының үй каталогындағы Xauthority файлында сақталады. Нәтижесінде, клиенттің жергілікті компьютерде іске қосылған әрбір бағдарламасы осы файлға, демек сервердің авторизациясы үшін қажетті cookie-ге қол жеткізе алады. Егер пайдаланушы бағдарламаны желідегі басқа компьютерден іске қосуды қаласа, cookie сол компьютерге көшірілуі керек. Cookie-ні қалай көшіру жүйеге байланысты мәселе: мысалы, Unix сияқты платформаларда cookie-ні көшіру үшін scp қолданылуы мүмкін. Бұл әдісті қолданатын екі жүйе – MIT MAGIC COOKIE 1 және XDM AUTHORIZATION 1. Бірінші әдісте клиент тек сұралғанда cookie-ні жібереді. Екінші әдісте Xauthority файлында құпия кілт сақталады. Клиент ағымдағы уақытты, байланыс тәуелді идентификаторды және cookie-ні біріктіріп, тізбек жасайды, нәтижедегі тізбені шифрлайды және серверге жібереді. Xauth бағдарламасы – Xauthority файлына қол жеткізуге арналған құрал. XAUTHORITY орта айнымалысы осы cookie файлының атауын және орналасқан жерін өзгерту үшін анықталуы мүмкін. Inter Client Exchange (ICE) протоколы, Inter Client Exchange Library арқылы X11 клиенттері арасында тікелей байланыс үшін сол MIT MAGIC COOKIE 1 авторизациялау әдісін пайдаланады, бірақ өзінің ICEauthority файлына қол жеткізу үшін iceauth құралына ие, оның орналасқан жерін ICEAUTHORITY орта айнымалысымен өзгертуге болады. ICE, мысалы, DCOP және X сессиясын басқару протоколы (XSMP) сияқты бағдарламалармен қолданылады.
The cookie based authorization methods are based on choosing a magic cookie (an arbitrary piece of data) and passing it to the X display server when it is started; every client that can prove having knowledge of this cookie is then authorized connecting to the server. These cookies are created by a separate program and stored in the file Xauthority in the user's home directory, by default. As a result, every program run by the client on the local computer can access this file and therefore the cookie that is necessary for being authorized by the server. If the user wants to run a program from another computer on the network, the cookie has to be copied to that other computer. How the cookie is copied is a system dependent issue: for example, on Unix like platforms, scp can be used to copy the cookie. The two systems using this method are MIT MAGIC COOKIE 1 and XDM AUTHORIZATION 1. In the first method, the client simply sends the cookie when requested to authenticate. In the second method, a secret key is also stored in the Xauthority file. The client creates a string by concatenating the current time, a transport dependent identifier, and the cookie, encrypts the resulting string, and sends it to the server. The xauth application is a utility for accessing the Xauthority file. The environment variable XAUTHORITY can be defined to override the name and location of that cookie file. The Inter Client Exchange (ICE) Protocol implemented by the Inter Client Exchange Library for direct communication between X11 clients uses the same MIT MAGIC COOKIE 1 authentication method, but has its own iceauth utility for accessing its own ICEauthority file, the location of which can be overridden with the environment variable ICEAUTHORITY. ICE is used, for example, by DCOP and the X Session Management protocol (XSMP).
Пайдаланушыға негізделген қол жеткізу
Пайдаланушыға негізделген қатынау әдістері белгілі бір пайдаланушыларға серверге қосылуға рұқсат беру арқылы жұмыс істейді. Клиент серверге қосылым орнатқанда, ол уәкілетті пайдаланушы басқаратынын дәлелдеуі керек. Желілік сәйкестікті басқару жүйелерін пайдалану арқылы пайдаланушыларды аутентификациялауға негізделген екі әдіс – SUN DES 1 және MIT KERBEROS 5. Бірінші жүйе SunOS-та жасалған ONC қашықтықтан процедура шақыру жүйесінің қауіпсіз механизміне негізделген. Екінші механизм клиент пен сервердің Kerberos серверіне сенім білдіруіне негізделген. Үшінші әдіс тек жергілікті қосылымдармен шектеледі, жүйелік шақыруларды пайдаланып ядродан жергілікті сокеттің екінші жағындағы пайдаланушыны анықтау үшін сұраныс жібереді. Осы әдіспен xhost бағдарламасын localuser және localgroup жазбаларын қосу немесе жою үшін қолдануға болады.
The user based access methods work by authorizing specific users to connect to the server. When a client establishes a connection to a server, it has to prove being controlled by an authorized user. The two methods based on authenticating users using networked identity management systems are SUN DES 1 and MIT KERBEROS 5. The first system is based on a secure mechanism of the ONC remote procedure call system developed in SunOS. The second mechanism is based on both client and server trusting a Kerberos server. A third method is limited to local connections, using system calls to ask the kernel what user is on the other end of a local socket. The xhost program can be used to add or remove localuser and localgroup entries with this method.
Туннельдеу
SSH құралы (X опциясымен немесе ForwardX11 опциясымен шақырылғанда) қашықтан қосылған клиенттерден X11 трафигін жергілікті серверге туннельдейді. Ол мұны қашықтағы жайтта DISPLAY орта айнымалысын sshd арқылы ашылған жергілікті TCP сокетіне бағыттап орналастыру арқылы істейді, содан кейін X11 байланысын ssh-ке қайтарады. Sshd сондай-ақ xauth-ты шақырып, қашықтағы жайтта MIT MAGIC COOKIE 1 жолын Xauthority-ге қосады, бұл қашықтағы X11 клиенттеріне ssh пайдаланушысының жергілікті X серверіне қол жеткізуге рұқсат береді. Желідегі клиент пен сервер арасындағы X11 қосылымдарын Kerberos/GSSAPI немесе TLS сияқты басқа қауіпсіз арна протоколдарымен де қорғауға болады, бірақ мұндай опциялар қазір SSH-ге қарағанда әлдеқайда сирек қолданылады.
The SSH utility (when invoked with option X or option ForwardX11) tunnels X11 traffic from remotely invoked clients to the local server. It does so by setting at the remote site the DISPLAY environment variable to point to a local TCP socket opened there by sshd, which then tunnels the X11 communication back to ssh. Sshd then also calls xauth to add at the remote site an MIT MAGIC COOKIE 1 string into Xauthority there, which then authorizes X11 clients there to access the ssh user's local X server. X11 connections between client and server over a network can also be protected using other secure channel protocols, such as Kerberos/GSSAPI or TLS, although such options are now far more rarely used than SSH.