Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux x11授权是如何工作的?(麻省理工学院魔法饼干)_Linux_Unix_Cookies_Authorization_Solaris - Fatal编程技术网

Linux x11授权是如何工作的?(麻省理工学院魔法饼干)

Linux x11授权是如何工作的?(麻省理工学院魔法饼干),linux,unix,cookies,authorization,solaris,Linux,Unix,Cookies,Authorization,Solaris,我感兴趣的是一个深入的答案,解释X11授权到底是如何工作的,尤其是麻省理工学院的魔法饼干 我知道它实际上是禁止除登录用户之外的所有人访问,还有一些控制机制控制客户端应用程序是否可以连接到Xdisplay服务器 我还发现有五种标准的访问控制机制,它们可以分为三大类: 基于主机的访问 基于cookie的访问 基于用户的访问 但是从这一点开始,我真的不明白这些工作方式,以及它们到底使用什么方式来进行授权。好吧,首先,机器上有一个文件~/.Xauthority。 请注意(通常在具有GUI的计算机上)此文

我感兴趣的是一个深入的答案,解释X11授权到底是如何工作的,尤其是麻省理工学院的魔法饼干

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

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

  • 基于主机的访问
  • 基于cookie的访问
  • 基于用户的访问

  • 但是从这一点开始,我真的不明白这些工作方式,以及它们到底使用什么方式来进行授权。

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

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

  • 主机访问:服务器具有主机访问列表(如果此列表中存在网络地址,则允许连接)。使用
    xhost
    命令管理列表。注意:这不允许同时进行多个连接。我对这个方法不太了解,因为我并没有真正使用它。但您可以看到
    manxserver
    授予访问权限部分:)

  • MIT-magic-cookie-1:生成128位密钥(“cookie”),将其存储在~/.Xauthority中(或Xauthority envvar指向的位置)。客户端将其发送到服务器普通版!服务器检查是否有此“cookie”的副本,如果有,则允许连接。密钥由DMX生成

  • XDM-AUTHORITY-1:同样,在~/.Xauthority中存储了一个密钥。该密钥由两部分组成——56位DES加密密钥和64位用作身份验证的随机数据。 当您连接到服务器时,客户端将生成192bit的数据:ctime和48bit的标识符(对于tcp/ip:ip地址+端口,对于本地连接,它是PID和32位唯一id)。DES密钥用于加密数据,然后将其发送到服务器。服务器通过解密用户,然后验证64位验证器和其他数据来验证用户

  • sun-des-1:它使用非对称加密,服务器有一个公钥,他用它来解密输入请求。它还使用“主机列表”。这需要一些额外的机制在网络中,我没有这样的网络,所以再次,我不理解这个机制

  • 服务器解释:它可以通过多种方式实现。。。但一般来说,客户端向服务器发送2个字符串。第二个字符串是用户条目(如username),第一个字符串是条目类型(如localuser)

  • 注意:第二、第三和第四种机制将密钥存储在~/.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> 
    
    • 数据已更改

    这可能会对你有所帮助,我正在寻找一个更深入的搜索/答案,特别是针对我已经提到的麻省理工魔法饼干,如果你能添加更多信息,你的答案会更好。谢谢“更多信息”是什么意思?我已经告诉你协议了。。。如果您要求实现,那么您就错了,因为每个服务器都可以以不同的方式实现它,对此没有答案。。。没有搜索,您可以尝试通过ip或名称(使用dns)进行连接。你说的“搜索/回答”是什么意思?我的意思是,我试图找到一个关于它是如何工作的好解释,而不仅仅是它的工作原理。。。。那一个我也可以在谷歌上。。。。所以我需要的是一个关于麻省理工学院魔法饼干如何工作的结构合理、解释清楚的答案。。。它具体做什么,还有什么解释:)我告诉你的正是它的工作原理。没有“隐藏”信息。你刚才在评论中说,你不能在互联网上搜索,因为你的互联网是“白名单”。所以我真的错过了一些东西。我甚至告诉过你如何构建cookie以及服务器如何解析它。更重要的是向您展示了代码,您可以单独完成,因为它是一个开放源代码。很抱歉,我不想再添加任何内容。我曾经实现过一个客户机,我在这里告诉了你我知道的一切,它对我起了作用。当然,如果你有任何具体的问题,我愿意帮助你!我真的不明白你认为遗漏了什么:/我不是有意冒犯你:)