Sun 企業辯證機制使用指南

獲取一項使用 SEAM 的服務的存取權限

為了讓一位使用者能夠存取特定的伺服器之上的特定服務,使用者必須取得兩樣東西。第一是一張能賦予許可證的服務(簡稱為 TGT)的證書。一旦能賦予許可證的服務將此證書解密之後,該服務便會建立使用者所要求存取的第二張伺服器證書。然後這第二張證書便可以用來要求伺服器之上服務的存取權限。在伺服器成功地解密第二張證書之後,使用者就會取得存取的權限。這整個過程將在下方詳細加以描述。

為能賦予許可證的服務取得一張證書

  1. 要開始辯證的過程,客戶端必須向特定使用者主管的辯證伺服器提出要求。此要求是以未加密的狀態送出。因為要求中沒有任何安全性的資訊,所以就不需要加密。

  2. 當辯證服務收到要求之後, KDC 資料庫中的使用者的主管名稱會被查詢。如果符合一位主管的話,辯證服務便會取得該主管的專用密鑰。然後辯證服務會生成一個作業階段密鑰,以供客戶端及能賦予許可證的服務(稱為作業階段密鑰 1)使用,並且生成一張許可證以供能賦予許可證的服務(許可證 1)使用。此許可證亦稱謂能賦予許可證的許可證 (TGT)。這兩個作業階段密鑰及許可證都是利用使用者的專用密鑰來加密的,然後便會將資訊送回給客戶端。

  3. 客戶端會利用此資訊,以使用者主管的專用密鑰來解密作業階段密鑰 1 及 許可證。既然只有使用者和 KDC 資料庫知道此專用密鑰,封包中的資訊應該是安全的。客戶端將資訊貯存在證書快取記憶體中。

通常這時使用者會被提示要輸入其個人密碼。如果輸入的密碼和用來建構 KDC 資料庫中所存專用密鑰的密碼相同的話,客戶端就可以成功地解密辯證服務所送的資訊。那麼客戶端就有一張與能賦予許可證的服務配合使用的證書了。客戶端已經準備要求一張伺服器的證書。

圖 7-2 為能賦予許可證的服務取得一張證書

Graphic

為一個伺服器取得一張證書

  1. 在要求一個特定伺服器的存取權限時,客戶端必須先向辯證服務取得一張該伺服器的證書(請參見 "為能賦予許可證的服務取得一張證書")。然後客戶端向能賦予許可證的服務提出要求,其中包括服務主管名稱、許可證 1、以及一個以作業階段密鑰 1 加密的辯證器。許可證 1 最初是由能賦予許可證的服務之辯證服務使用服務密鑰所加密的。

  2. 因為能賦予許可證的服務之服務密鑰即是能賦予許可證的服務,因此便可以解密許可證 1。許可證 1 中的資訊包括作業階段密鑰 1,因此能賦予許可證的服務也可以解密辯證器。這時,便以能賦予許可證的服務來辯證使用者主管。

  3. 一旦辯證成功之後,能賦予許可證的服務就會為使用者主管及伺服器(作業階段密鑰 2)生成一個作業階段密鑰,並且為伺服器(許可證 2)生成一張許可證。接著作業階段密鑰 2 及許可證 2 便可以使用作業階段密鑰 1 來加密。因為只有客戶端及能賦予許可證的服務知道作業階段密鑰 1,此資訊便可以安全地透過網路來傳送。

  4. 當客戶端收到此資訊封包時,它會使用作業階段密鑰 1 來解密資訊,此密鑰一直被貯存在證書快取記憶體中。既然客戶端已經取得一張能與伺服器配合使用的證書,現在客戶端就可以要求該伺服器之上一項特定服務的權限存取。

圖 7-3 取得一張伺服器的證書

Graphic

取得一個特定服務的存取權限

  1. 要要求一項特定服務的存取權限,客戶端必須先向辯證伺服器取得能賦予許可證的服務的一張證書,並且向能賦予許可證的服務取得一張伺服器證書(請參見 "為能賦予許可證的服務取得一張證書""為一個伺服器取得一張證書")。客戶端可以向伺服器送出一個要求,包括許可證 2 及另一個辯證器。辯證器是加密的使用作業階段密鑰 2。

  2. 許可證 2 是能賦予許可證的服務以該服務密鑰所加密的。因為服務主管知道服務密鑰,該服務便可以解密許可證 2 並且取得作業階段密鑰 2。然後作業階段密鑰 2 可以用來解密辯證器。如果辯證器被成功解密的話,客戶端就會取得該服務的存取權限。

圖 7-4 取得一個特定服務的存取權限

Graphic