x11授权如何工作?(MIT Magic Cookie)

Sir*_*hog 5 unix linux cookies authorization solaris

我感兴趣的是一个深入的答案,解释x11授权是如何工作的,尤其是MIT Magic Cookies.

我知道它实际上做的是禁止访问除登录用户以外的所有其他人,还有一些控制机制可以控制客户端应用程序是否可以连接到Xdisplay服务器.

我还发现有五种标准访问控制机制,它们可以分为三大类:

1.基于主机访问

2.基于cookie访问

3.基于用户访问

但是从这一点开始,我真的不明白这些工作的方式以及它们用于授权的方式.

I-V*_*I-V 9

好吧,首先在机器上有一个文件〜/ .Xauthority.请注意(通常在具有GUI的计算机上)此文件的错误权限,可能导致登录屏幕循环...(花了我几个小时才明白).

正如您所提到的,有5种机制:

  1. 主机访问:服务器具有主机访问列表(如果此列表中存在网络地址,则允许连接).列表使用xhost命令管理.注意:这不允许同时连接多个连接.我不太了解这种方法,因为我没有真正使用它.但你可以看到man XserverGRANTING ACCESS部分:)

  2. MIT-magic-cookie-1:生成128位密钥("cookie"),将其存储在〜/ .Xauthority(或XAUTHORITY envvar指向的位置).客户端发送到服务器平原!服务器检查它是否有此"cookie"的副本,如果是,则允许连接.密钥由DMX生成.

  3. XDM-authorization-1:同样,存在〜/ .Xauthority中的密钥.该密钥由2部分组成 - 56位DES加密密钥和64位随机数据​​用作认证者.当您连接到服务器时,客户端生成192位数据:ctime与48位标识符相结合(对于tcp/ip:ip地址+端口,对于本地连接,它是PID和32位唯一ID).DES密钥用于加密数据,然后将其发送到服务器.服务器通过解密然后验证64位验证器和其他数据来验证用户.

  4. sun-des-1:它使用非对称加密,服务器有一个公钥,用于解密请求.它还使用"主机列表".这需要网络中的一些额外机制,我没有这样的网络,所以我不太了解这种机制.

  5. 服务器解释:它可以用很多方式实现......但一般来说,客户端向服务器发送2个字符串.第二个字符串是用户条目(例如用户名),第一个字符串是条目类型(例如localuser).

注意:第2,第3和第4机制将密钥存储在〜/ .Xauthority中,因此任何有权访问此文件的人都可以连接到假装为"你"的服务器.

xauth命令可以解析Xauthority文件并提取有趣的值.

$ xauth 
Using authority file /home/ME/.Xauthority
xauth> list        
ME/unix:10  MIT-MAGIC-COOKIE-1  5e443c146376d0bdadfd712bfe7654be
ME/unix:0  MIT-MAGIC-COOKIE-1  c48ddba801384dce3aaaa9d442931ea12
xauth> info
Authority file:       /home/ME/.Xauthority
File new:             no
File locked:          no
Number of entries:    2
Changes honored:      yes
Changes made:         no
Current input:        (stdin):2
xauth> 
Run Code Online (Sandbox Code Playgroud)
  • 数据被更改....

  • “更多信息”是什么意思?我已经告诉你协议......如果你要求实现那么你错了,因为每个服务器都可以以不同的方式实现它并且没有答案......没有搜索,你要么尝试通过ip或通过名称(使用 dns)。你是什​​么意思“搜索/回答”? (2认同)
  • 我告诉你的是它的确切运作方式.没有"隐藏"信息.你刚刚在评论中说过你不能在互联网上搜索它,因为你的互联网是"白名单".所以我真的错过了什么.我甚至告诉过你如何构建cookie以及服务器如何解析它.不仅仅是向您展示代码,而且您可以单独执行,因为它是一个开源代码 (2认同)
  • 抱歉,但我想不出还有什么可补充的。我曾经实现过一个客户,我在这里告诉你我所知道的一切,这对我有用。当然,如果您有任何具体问题,我很乐意帮助您!我只是真的不明白你认为缺少了什么:/而且我并不是故意冒犯你:) (2认同)