簡體   English   中英

x11授權如何工作? (麻省理工學院魔術曲奇)

[英]How does x11 authorization works? (MIT Magic Cookie)

我對深入的答案感興趣,該答案解釋了X11授權(特別是MIT Magic Cookies)的工作原理。

我知道它的實際作用是禁止訪問除登錄用戶之外的其他所有用戶,還有一些控制機制可以控制客戶端應用程序是否可以連接到Xdisplay服務器。

我還發現有五種標准訪問控制機制,它們可以分為三大類:

  1. 基於主機的訪問
  2. 基於Cookie的訪問
  3. 基於用戶的訪問

但是從現在開始,我還不太了解這些工作的方式以及它們用於執行授權的確切方式。

好吧,首先在機器上有一個〜/ .Xauthority文件。 請注意,(通常在具有GUI的計算機上)此文件的錯誤權限會導致登錄屏幕循環...(花了我幾個小時來理解)。

正如您提到的,有5種機制:

  1. 主機訪問:服務器具有主機訪問列表(如果此列表中存在網絡地址,則允許連接)。 該列表是使用xhost命令管理的。 注意:這不允許同時進行多個連接。 我對此方法一無所知,因為我並未真正使用它。 但是您可以看到man Xserver GRANTING ACCESS部分:)

  2. MIT-magic-cookie-1:生成128位密鑰(“ cookie”),並將其存儲在〜/ .Xauthority中(或XAUTHORITY envvar指向的位置)。 客戶端將其發送到服務器平原 服務器檢查它是否具有此“ cookie”的副本,如果有,則允許連接。 密鑰由DMX生成。

  3. XDM-authorization-1:同樣,〜/ .Xauthority中存儲了一個密鑰。 該密鑰由2部分組成-56位DES加密密鑰和64位隨機數據​​用作身份驗證器。 當您連接到服務器時,客戶端生成192bits的數據:ctime與48bits標識符組合在一起(對於tcp / ip:ip address + port,對於本地連接,它是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> 
  • 數據已更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM