Sun 企業辯證機制使用指南

第 1章 SEAM 簡介

本章將簡單介紹 SEAM 的產品。

何謂 SEAM?

SEAM Sun 企業辯證機制)是一種客戶端/伺服器架構,具有強大的使用者辯證功能以及資料的整合性和保密性,可以提供透過網路交易的安全。辯證 可以保證網路交易的發件方及收件方的真實身份。SEAM 也可以確認來回傳送的資料有效性整合性)並且會在傳輸過程中將資料加密保密性)。您可以使用 SEAM 來安全地登入其他的機器、執行指令、交換資料、並且傳送檔案。此外,SEAM 還提供辯證服務,管理員能夠限制對於服務及機器的存取。此外,作為一位 SEAM 的使用者,您還可以規定其他人對您帳號的存取。

SEAM 是一種單一簽入 的系統,亦即您只需要在每次的作業階段向 SEAM 自我辯證一次,該作業階段中所有後續的交易都會自動受到安全防護。在 SEAM 將您辯證之後,您就不需要在每一次使用 SEAM 式的指令時,如 ftprsh,或是每次存取 NFS 檔案系統上的資料時進行自我辯證。這表示您不必在每次使用這些服務時,透過網路來傳遞您的密碼,以避免密碼被中途竊取。

SEAM 係以麻省理工學院 (MIT) 所開發的 Kerberos V5 網路辯證協定為基礎。使用過 Kerberos V5 的人會發覺 SEAM 的用法非常類似。因為 Kerberos V5 是業界在網路安全方面的一種既定標準,SEAM 也支援與其他系統的互相操作性。換句話說,因為 SEAM 可以與使用 Kerberos V5 的系統配合使用,甚至在機種相異的網路之上也能確保安全的交易。此外,SEAM 也可以提供領域之間以及單一領域之內的辯證及安全。


註解 -

因為 SEAM 是基於並設計來與 Kerberos V5 交互操作,本手冊經常會將 “Kerberos” 及 “SEAM” 這兩個詞交換使用-。例如,“Kerberos 範疇”或 “SEAM 式的公用程式。”(此外,“Kerberos” 及 “Kerberos V5” 也可以互相交換使用。)本使用手冊會在必要時指出其差別所在。


SEAM 在執行 Solaris 應用程式時有極大的彈性。您可以設置 SEAM 為同時允許網路服務的 SEAM 式及非 SEAM 式要求,如 NFS 服務、telnet、及 ftp 等。亦即目前的 Solaris 應用程式即使在未安裝 SEAM 的系統之上可以仍然運作。當然,您也可以設置 SEAM 以只允許 SEAM 式的網路要求。

此外,如果開發了其他的安全機制,應用程式也不一定要繼續配合 SEAM 的規格。因為 SEAM 是專門設計來模組整合入通用安全服務 API 的,利用 GSS-API 的應用程式可以充分利用最適於它們所需的安全機制。

SEAM 如何運作

下列為 SEAM 辯證系統的一般性概觀。如需更加詳細的說明,請參見 "辯證系統如何運作"

從使用者的觀點,SEAM 在開始 SEAM 作業階段之後就幾乎看不見。如 rshftp 等的指令功能和平常差不多。通常您只需要登入並且提供一個 Kerberos 密碼,便可以初始化 SEAM 作業階段。

SEAM 系統是建立在許可證的概念之上。一張許可證是一組電子資訊,以作為一位使用者或是一項如 NFS 服務等的服務識別根據。正如您的駕駛執照可以證明您的身份並且指明您的駕駛許可一樣,一張許可證也可以證明您的身份及您的網路存取權限。當您執行一個 SEAM 式的交易-,如 rlogin 登入另一個機器時-您會顯而易見地將一個索取許可證的要求傳至一個密鑰分配中心 或是 KDC,它會存取一個資料庫以辯證您的身份。接著 KDC 會傳回一張許可證以賦予您存取其他機器的權限。“顯而易見”是表示您不需要特別要求一張許可證,它會自動隨著 rlogin 指令而發生。因為只有經過辯證的客戶端可以取得一項特定服務的許可證,另一個客戶端便無法以一個假設的身份來使用 rlogin

許可證有特定的相關屬性。例如,一張許可證可能是可轉遞(表示不需要一個新的辯證過程便可在另一個機器之上使用),或者是遠期(直到一個特定的時間之後才有效)。許可證的使用方式-例如,哪些使用者可以取得何種類型的許可證-是在安裝或管理 SEAM 時由政策來決定的。


註解 -

您會經常看到證書許可證等詞彙。就廣義的 Kerberos 來說,這些詞是可以互相取代的。不過就技術上而言,證書是一張許可證加上該作業階段的密鑰。其不同之處會在 "獲取一項使用 SEAM 的服務的存取權限" 中詳細說明。


下列各節將簡短說明 SEAM 的辯證過程。

初始的辯證﹕能賦予許可證的許可證

Kerberos 辯證有兩個階段﹕一個是證明所有後續辯證的初始辯證,而另一個是後續的辯證。

圖 1-1 會說明如何採行初始的辯證﹕

圖 1-1 SEAM 作業階段的初始辯證

Graphic

  1. 一個客戶端(一位使用者、或是一項如 NFS 的服務)會向密鑰分配中心要求一張能賦予許可證的許可證 (TGT) 以開始一個 SEAM 作業階段。通常在登入時會自動完成。

    要為特定的服務取得其他的許可證,您就需要一張能賦予許可證的許可證。讓我們把它比喻為護照。能賦予許可證的許可證就像一本護照一樣可以證明您的身份,並且讓您取得許多不同的“簽證” - 其中所謂的“簽證”(許可證)不是用於國外而是用於遠端的機器或是網路服務之上。就像護照和簽證一樣,能賦予許可證的許可證及其他各種的許可證也需要規定有效期限。不同之處在於 “Kerberos 化” 指令會自動注意到您有一本護照並且為您取得簽證-,您便不需要自行執行此種操作。

  2. KDC 會建立一張能賦予許可證-的許可證,再以加密的格式將其送回給客戶端。客戶端會使用客戶端的密碼來解密這張能賦予許可證的許可證。

  3. 取得一張有效的能賦予許可證的許可證之後,只要此許可證繼續保持有效的情況之下,客戶端都可以要求各種的網路操作許可證,如 rlogintelnet 等。通常許可證可以持續幾個小時之久有效。每一次客戶端執行一個獨特的網路操作,便會向 KDC 要求一張該操作的許可證。

後續的辯證

在客戶端收到初始的辯證之後,其後的每一個辯證都會依照 圖 1-2 中所示的樣式進行﹕

圖 1-2 取得一項服務的存取權限

Graphic

  1. 客戶端向 KDC 要求一項特定服務的許可證(如 rlogin 登入另一個機器),將其能賦予許可證的許可證送給 KDC 以作為身份證明。

  2. 然後 KDC 便會將該特定服務的許可證傳送給客戶端。

    例如,假設使用者 joe 在伺服器 boston 之上使用 rlogin。因為他已經被辯證過了(亦即他已經擁有一張能賦予許可證的許可證),作為 rlogin 指令的一部份,他會自動並且顯而易見地取得一張許可證。此許可證可以讓他持續 rlogin 登入 boston 好幾次,直到到期為止。如果 joe 想要 rlogin 登入機器 denver 中,他可以如步驟 1 中所述的方式來取得另一張許可證。

  3. 客戶端會將許可證傳送給伺服器。

  4. 伺服器會允許客戶端的存取。

您可能會注意到在這些步驟中,伺服器似乎並未與 KDC 進行任何的通訊。其實伺服器會向 KDC 登錄,就像第一個客戶端一樣,這就是它們之間的通訊。我們在此略過不談。

SEAM 式的指令

哪些是像 joe 這樣的使用者可以使用的 SEAM 式(或 “Kerberos 化”)指令?如下所示﹕

這些應用程式與名稱相同的 Solaris 應用程式一樣,只不過它們是使用 Kerberos 主管來辯證交易,因此提供的是 Kerberos 式的安全機制。(請參見 "主管" 中有關主管的資訊。)

這些指令會在 "SEAM 指令" 中詳細說明。

主管

SEAM 中的一個客戶端可以由其主管而識別出來。一位主管是可以讓 KDC 指派許可證的獨特實體。主管可能是一位使用者,如 joe,或是一項服務,如 nfstelnet

依照慣例,一個主管名稱會分為三個部份﹕主要實例、及範疇。例如,一個典型的 SEAM 主管名稱如下﹕joe/admin@ENG.ACME.COM,其中﹕

下列為所有有效的主管名稱﹕

範疇

範疇是一個邏輯網路,就像一個領域一樣,可以在相同的 主 KDC 之下定義一組系統(請見下方)。圖 1-3 中說明範疇是如何彼此相關的。有些範疇是階層式的(一個範疇是另一個範疇的上層母集)。其他有些範疇則是非階層式的,必須明確定義兩個範疇之間的對映關係。SEAM 具有許可不同範疇之間的辯證功能;每個範疇在其 KDC 之內都只需要一個其他範疇的主管項目。

圖 1-3 範疇

Graphic

範疇及伺服器

每個範疇都必須包括維護主管資料庫主要版本的一個伺服器,稱為 主 KDC 伺服器。此外,每個範疇都應該包含至少一個從屬 KDC 伺服器,其中並且包含幾份主管資料庫的副本。主及從屬 KDC 伺服器都能建立用以進行辯證的許可證。

範疇也可以包括兩種額外的 SEAM 伺服器類型。一個 SEAM 網路應用程式伺服器是可以存取 Kerberos 化應用程式的伺服器(如 ftptelnet、及 rsh)。範疇也可以包括 NFS 伺服器,以提供使用 Kerberos 辯證的 NFS 服務。

圖 1-4 會說明假設的範疇所包含的內容。

圖 1-4 一個典型的範疇

Graphic

安全服務

除了使用者的安全辯證之外,SEAM 還會提供兩項安全服務﹕

目前 SEAM 部份的各種 Kerberos 化應用程式當中,只有 ftp 指令能讓使用者在執行階段(亦即“瞬間”的意思)變更安全服務。開發者可以利用 RPCSEC_GSS 程式寫作介面,將其 RPC 式的應用程式設計為選擇一項安全服務。

SEAM 元件

就像 MIT 的 Kerberos V5 發行版一樣,SEAM 包括﹕

此外,SEAM 產品還包括下列項目﹕