Sun Java System Web Proxy Server 4.0.4 管理指南

第 5 章 使用憑證和金鑰

本章說明如何使用憑證和金鑰認證來保護 Sun Java System Web Proxy Server 的安全性。Proxy Server 加入了所有 Sun Java System 伺服器的安全性架構,並建立於工業標準和公用協定基礎上,藉此實現最大的互通功能和一致性。

本章假設您對公開金鑰加密的基本概念有一定瞭解,包括加密和解密、公開金鑰和私密金鑰、數位憑證以及加密協定。

本章包含下列小節:

保證 Administration Server 存取的安全性

Administration Server 是一種網路型使用者介面,可用來管理、增加、移除和遷移伺服器,因此需要保護其安全性。

預設的 [Administration Server] 頁面會以 HTTP 模式啟動。[Manage Servers] 標題下列出可用 Proxy Server 實例的清單。若要管理任何 Proxy Server 實例,請按一下清單中的名稱。按一下 Proxy Server 實例的名稱時,即會顯示該實例的 [Server Manager] 頁面。

按一下 [Server Manager] 頁面左上角的 [Manage Servers] 連結,即可從 [Server Manager] 頁面返回至 [Administration Server] 頁面。

安全性功能 (諸如基於憑證的認證,建立信任資料庫、配置 SSL、請求及安裝憑證、設定安全性喜好設定等) 都能套用至 Administration Server 和個別的 Proxy Server 實例。若要對 Administration Server 進行安全性的相關配置,請使用 [Preferences] 標籤,以及出現在 [Administration Server] 頁面上的 [Security] 標籤。若要對 Proxy Server 實例進行安全性的相關配置,請使用 [Preferences] 標籤,以及出現在該代理伺服器實例之 [Server Manager] 頁面上的 [Security] 標籤。

若要以安全模式啟動 Administration Server,必須使用 HTTPS 而非預設的 HTTP 加以存取。

安全性功能將在下列小節中詳細說明。

基於憑證的認證

認證是指確認身份的程序。在網路互動的環境下,認證是一方對另一方進行的信任識別。憑證是支援認證的一種方式。

憑證由數位資料組成,這些資料用於指定個人、公司或其他實體的名稱,並證明憑證中包含的公開金鑰屬於該實體。

用戶端和伺服器都可以擁有憑證。伺服器認證是指用戶端對伺服器所進行的信任識別,亦即識別應負責特定網路位址上伺服器的組織。用戶端認證是由伺服器對用戶端所進行的信任識別,亦即識別應使用用戶端軟體的人。用戶端可以擁有多個憑證,就像使用者可以具有數個不同的識別部分一樣。

憑證是由憑證授權單位 (或簡稱 CA) 所核發並加上數位簽名。CA 可以是出售憑證的公司,也可以是負責為貴公司企業內部網路或企業外部網路核發憑證的部門。您可以決定要將哪些足堪信任的 CA,當作其他使用者身份的驗證者。

憑證所包含的資訊如下。


備註 –

必須首先安裝伺服器憑證,然後才能啟動加密。


建立可信任的資料庫

在請求伺服器憑證之前,您必須建立信任資料庫。在 Proxy Server 中,Administration Server 和每個伺服器實例都可以擁有自己的信任資料庫。信任資料庫只能在本機電腦上建立。

建立信任資料庫時,您需要指定用於金鑰組檔案的密碼。您還需要此密碼來啟動使用加密通訊的伺服器。如需有關選擇密碼時應考量的準則清單,請參閱選擇增強式密碼

您在信任資料庫中所建立並儲存的公開金鑰和私密金鑰,稱為金鑰組檔案。金鑰組檔案可用於 SSL 加密。在請求並安裝伺服器憑證時,您需要用到該金鑰組檔案。安裝憑證之後,會將憑證儲存在可信任的資料庫中。

金鑰組檔案會以加密形式儲存於下列目錄中。

server-root/alias/proxy-serverid-key3.db

Administration Server 只能有一個信任資料庫。每個伺服器實例都可以擁有自己可信任的資料庫。

Procedure建立信任資料庫

  1. 存取 Administration Server 或 Server Manager,然後按一下 [Security] 標籤。

  2. 按一下 [Create Database] 連結。

  3. 鍵入信任資料庫的密碼。

  4. 再次鍵入密碼並按一下 [OK]。

使用 password.conf

依預設,Proxy Server 會在啟動前,提示管理員鍵入金鑰資料庫密碼。若要重新啟動無人看管狀態的 Proxy Server,您必須將密碼儲存在 password.conf 檔案中。僅當您的系統受到適當保護時才能這樣做,以免洩漏該檔案和金鑰資料庫。

一般而言,您無法以 /etc/ rc.local/etc/inittab 檔案啟動 UNIX 上啟用 SSL 的伺服器,因為該伺服器首先需要密碼,然後才能啟動。儘管將密碼以一般文字格式儲存在檔案中,即可自動啟動啟用 SSL 的伺服器,但是這種方法並不安全。伺服器的 password.conf 檔案應為超級使用者或安裝伺服器的使用者所擁有,並且只能讓所有者讀取和寫入。

在 UNIX 上,將啟用 SSL 的伺服器密碼保留在 password.conf 檔案中會帶來很大的安全性風險。任何能夠存取檔案的人,都能存取啟用 SSL 的伺服器密碼。將啟用 SSL 的伺服器密碼保留在 password.conf 檔案中之前,請考量可能帶來的安全性風險。

在 Windows 上,若您有 NTFS 檔案系統,即使您不使用 password.conf 檔案,也應限制存取內含該檔案的目錄以保護此目錄。Administration Server 使用者和 Proxy Server 使用者應該具有該目錄的讀取和寫入權限。保護該目錄可以防止其他使用者建立假的 password.conf 檔案。您無法藉由限制存取的方式,保護 FAT 檔案系統上的目錄或檔案。

自動啟動啟用 SSL 的伺服器

Procedure自動啟動啟用 SSL 的伺服器

  1. 請確定 SSL 已經啟用。

  2. 在 Proxy Server 實例的 config 子目錄中,建立新的 password.conf 檔案。

    • 若您使用的是 Proxy Server 隨附的內部 PKCS #11 軟體加密模組,請鍵入下列資訊:internal: 您的密碼

      • 如果對硬體加密或硬體加速器使用的是其他 PKCS #11 模組,請指定 PKCS #11 模組名稱,後接密碼,例如:nFast:您的密碼

        即使已建立 password.conf 檔案,在啟動 Proxy Server 時,系統仍將一直提示您提供密碼。

申請和安裝 VeriSign 憑證

VeriSign 是 Proxy Server 建議的憑證授權單位。該公司的技術簡化了憑證請求程序。VeriSign 的優勢在於能夠直接將憑證傳回伺服器。

為伺服器建立憑證信任資料庫之後,您便可以請求憑證並將其提交給 CA (憑證授權單位)。如果公司有自己的內部 CA,則可以向該部門申請憑證。如果計劃從商業 CA 處購買憑證,請選擇一個 CA 並索要所需的特定格式資訊。

Administration Server 只能有一個伺服器憑證。每個伺服器實例都可以擁有自己的伺服器憑證。

Procedure請求 VeriSign 憑證

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  2. 按一下 [Request VeriSign Certificate] 連結。

  3. 檢視所顯示頁面上列出的步驟,然後按一下 [OK]。

    [VeriSign Enrollment Wizard] 將引導您完成相關程序。

Procedure安裝 VeriSign 憑證

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  2. 按一下 [Install VeriSign Certificate] 連結。

  3. 除非您計劃使用外部加密模組,否則請在 [Cryptographic Module] 下拉式清單中選取 [Internal]。

  4. 鍵入金鑰組檔案密碼或 PIN。

  5. 從下拉式清單中選取要擷取的 [Transaction ID],然後按一下 [OK]。

申請和安裝其他伺服器憑證

除了 VeriSign 之外,您還可以向其他憑證授權單位請求憑證並加以安裝。貴公司或組織可能會提供自己的內部憑證。本小節說明如何請求和安裝其他類型的伺服器憑證。

本小節包含下列主題:

CA 所需的資訊

在您開始請求程序之前,請確實瞭解 CA 所要求的資訊為何。CA 所要求的資訊格式雖有不同,但通常會要求您提供下列資訊。這些資訊中的大部分在憑證更新時通常都是不需要的。

所有資訊會合併成一系列的屬性值組合 (稱為辨別名稱 (DN)),用於唯一識別憑證的主體。

如果從商業 CA 處購買憑證,則必須在 CA 核發憑證之前與之聯絡,以查明他們所需的其他資訊。多數 CA 都要求您提供身份證明。例如,CA 需要驗證您的公司名稱,以及公司授權由誰管理伺服器,並且可能會詢問您是否具有所提供資訊的合法使用權限。

某些商業 CA 向出具較為詳細身份證明的組織或個人提供內容更為詳細、準確的憑證。例如,您可以購買一份憑證,宣告 CA 已經驗證您是 www.example.com 電腦的合法管理員,此外您的公司已營業三年,並且無尚在審理中的客戶訴訟案件。

申請其他伺服器憑證

Procedure請求其他伺服器憑證

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  2. 按一下 [Request Certificate] 連結。

  3. 指定這是新的憑證,還是更新的憑證。

    許多憑證在固定時間 (例如六個月或一年) 後會過期。某些 CA 會自動給您傳送一個更新的憑證。

  4. 指定您要如何提交憑證請求:

    • 若要使用電子郵件提交請求,請選取 [CA Email Address],並為這些請求輸入適用的電子郵件地址。

      • 若要使用 CA 的網站提交請求,請選取 [CA URL],並為此類請求鍵入相應的 URL。

  5. 從 [Cyptographic Module] 下拉式清單中,選取請求憑證時,要用於金鑰組檔案的加密模組。

  6. 鍵入金鑰組檔案的密碼。

    除非您選取的並非內部加密模組,否則在建立信任資料庫時便會指定此密碼。伺服器會使用該密碼來取得您的私密金鑰,並加密要傳送至 CA 的訊息。接著伺服器會將您的公開金鑰和加密的訊息傳送至 CA。CA 會使用公開金鑰為您的訊息解密。

  7. 提供您的識別資訊,如姓名和電話號碼。

    此資訊的格式因 CA 而異。這些資訊中的大部分在憑證更新時通常都是不需要的。

  8. 再次檢查您的資訊以確保準確性,然後按一下 [OK]。

    資訊越準確,批準憑證的速度可能就越快。如果請求是發送至憑證伺服器,則在提交請求前,會提示您驗證表單資訊。

    伺服器會產生包含您的資訊之憑證申請。該申請包含透過私密金鑰建立的數位簽名。CA 使用數位簽名來驗證該請求在從伺服器電腦路由至 CA 的過程中未被竄改。只有在極少數情況下請求才會遭到竄改,此時 CA 通常會透過電話與您連絡。

    如果選擇以電子郵件傳送請求,則伺服器會傳送一則電子郵件訊息,內含向 CA 提出的請求。一般而言,憑證接著就會以電子郵件方式傳送給您。如果已指定連結至憑證伺服器的 URL,您的伺服器便會使用此 URL 向憑證伺服器提交請求。您可能會收到以電子郵件或其他方式傳來的回應,視 CA 而定。

    CA 會通知是否同意將憑證核發給您。多數情況下,CA 透過電子郵件傳送您的憑證。如果您的組織使用的是憑證伺服器,也許可以使用憑證伺服器的表單來搜尋憑證。


    備註 –

    並非每個從商業 CA 處申請憑證的使用者都會取得憑證。許多 CA 在核發憑證之前,都會要求您提供身份證明。另外,核准時間快則一天,慢則數星期才會完成。您負責向 CA 快速提供所有必要資訊。


    收到憑證後立即安裝。在此期間,您仍然可以使用未啟用 SSL 的 Proxy Server。

安裝其他伺服器憑證

CA 所傳來的憑證會以您的公開金鑰加密,因此只有您可以將其解密。只有輸入信任資料庫的正確密碼,才能解密並安裝您的憑證。

憑證包括下列三種類型

憑證鏈是由連續憑證授權單位簽署的一系列階層式憑證。CA 憑證用於識別憑證授權單位,並用來簽署該授權單位所核發的憑證。反過來,CA 憑證又可以由父 CA 的 CA 憑證簽名,如此類推,直到根 CA。


備註 –

如果 CA 未自動將其憑證傳送給您,請主動提出請求。許多 CA 會在電子郵件中放入他們的憑證和您的憑證,而您的伺服器將同時安裝這兩個憑證。


CA 所傳來的憑證會以您的公開金鑰加密,因此只有您可以將其解密。安裝該憑證時,Proxy Server 將使用您指定的金鑰組檔案密碼將其解密。如以下程序所述,您可以將電子郵件儲存在伺服器可以存取的位置上,也可以複製電子郵件的文字,並準備將其貼到 [Install Certificate] 表單中。

Procedure安裝其他伺服器憑證

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  2. 按一下 [Install Certificate] 連結。

  3. 在 [Certificate For] 旁,選取要安裝的憑證類型:

    • 本伺服器

      • 伺服器憑證鏈

      • 憑證授權單位

        如需有關特定設定的更多資訊,請參閱線上說明。

  4. 從下拉式清單中選取加密模組。

  5. 鍵入金鑰組檔案密碼。

  6. 如果您在步驟 3 中選取 [Server Certificate Chain] 或 [Certification Authority],則請鍵入憑證名稱。

  7. 執行下列任一操作以提供憑證資訊:

    • 選取 [Message Is In This File],然後鍵入內含 CA 憑證的檔案的完整路徑名稱。

      • 選取 [Message Text] (含標頭),然後複製並貼上 CA 憑證的內容。請確實納入 [Begin Certificate] 和 [End Certificate] 標頭,包括開頭和結尾的連字符。

  8. 按一下 [OK]。

  9. 指出是要增加新的憑證還是更新現有憑證。

    • [Add Certificate],如果要安裝新憑證。

      • [Replace Certificate],如果要安裝更新的憑證。

        憑證將儲存在伺服器的憑證資料庫中。例如︰

        server-root/alias/ proxy-serverid-cert8.db

遷移先前版本的憑證

Sun ONE Web Proxy Server 3.6 (亦稱為 iPlanet Web Proxy Server) 遷移至 Sun Java System Web Proxy Server 4 時,包括信任資料庫和憑證資料庫在內的檔案都會自動更新。

請確定 Proxy Server 4 Administration Server 對舊的 3.x 資料庫檔案具有讀取權限。這些檔案包括位於 3.x-server-root/alias 目錄中的 alias-cert.db alias-key.db

只有在伺服器啟用安全性的情況下,才會遷移金鑰組檔案和憑證。您也可以使用 Administration Server 和 Server Manager 中 [Security] 標籤下的 [Migrate 3.x Certificates] 選項,使金鑰和憑證自行遷移。如需有關特定設定的資訊,請參閱線上說明。

在先前版本中,多個伺服器實例是使用別名來參照憑證和金鑰組檔案。Administration Server 管理全部的別名及別名所包含的憑證。在 Sun Java System Web Proxy Server 4 中,Administration Server 和每個伺服器實例都有自己的憑證和金鑰組檔案,稱為信任資料庫,而非別名。

Administration Server 為自己管理信任資料庫及資料庫包含的憑證,Server Manager 則為伺服器實例管理信任資料庫及資料庫包含的憑證。憑證和金鑰組資料庫檔案是根據使用它們的伺服器實例加以命名的。如果是在先前版本中,多個伺服器實例共用同一個別名,則遷移時會根據新的伺服器實例,重新命名憑證和金鑰組檔案。

將遷移與伺服器實例關聯的整個可信任的資料庫。所有列在先前資料庫中的 CA 都會遷移至 Proxy Server 4 資料庫中。如果出現重複的 CA,請使用以前的 CA,直到它過期。請勿嘗試刪除重複的 CA。

Proxy Server 3.x 憑證會遷移至受支援的網路安全性服務 (NSS) 格式。憑證的命名是根據用來存取該憑證的 Proxy Server 頁面而定,也就是從 Administration Server 的 [Security] 標籤或是 Server Manager 的 [Security] 標籤。

Procedure遷移憑證

  1. 從本機電腦存取 Administration Server 或 Server Manager,然後選取 [Security] 標籤。

  2. 按一下 [Migrate 3.x Certificates] 連結。

  3. 指定用來安裝 3.6 伺服器的根目錄。

  4. 指定此電腦的別名。

  5. 鍵入管理員的密碼,然後按一下 [OK]。

使用內建根憑證模組

Proxy Server 隨附的可動態載入根憑證模組,包含多個 CA (包括 VeriSign 在內) 的根憑證。根憑證模組可以讓您將根憑證升級到更高的版本,且方法較以往更容易。以前,您需要逐一刪除舊的根憑證,然後再逐一安裝新的根憑證。若要安裝眾所皆知的 CA 憑證,現在您只要將根憑證模組檔案更新至更高的版本,因為它在未來版本的 Proxy Server 中都可使用。

由於根憑證已實作為 PKCS #11 加密模組,因此您永遠無法刪除它所包含的根憑證。管理這些憑證時,並不會出現刪除選項。若要從伺服器實例中移除根憑證,請刪除伺服器 alias 目錄中的下列項目,以停用根憑證模組:

若要復原根憑證模組,您可以將該延伸從 server-root/bin/proxy/lib (UNIX) 或 server-root\\ bin\\proxy\\bin (Windows) 複製到 alias 子目錄。

可以修改根憑證的信任資訊。信任資訊將寫入正在編輯的伺服器實例的憑證資料庫中,而非返回至根憑證模組本身。

管理憑證

對於自己的憑證和伺服器上安裝之 CA 所核發的憑證,您可以針對其信任設定加以檢視、刪除或編輯。

Procedure管理憑證

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  2. 按一下 [Manage Certificates] 連結。

    • 如果要使用內部加密模組管理預先配置的憑證,將會顯示所有已安裝憑證的清單,其中包括憑證的類型和有效日期。所有憑證都儲存在 server-root/alias 目錄中。

      • 如果使用的是外部加密模組 (如硬體加速器),則必須先鍵入每個特定模組的密碼,然後按一下 [OK]。憑證清單將會更新,以便在模組中包含這些憑證。

  3. 按一下您要管理的憑證名稱。

    此時會出現內含該憑證類型之管理選項的頁面。只有 CA 憑證才允許您設定或取消設定用戶端信任。某些外部加密模組將不允許刪除憑證。

  4. 指定必要的動作。

    下列選項可用:

    • [Delete certificate] 或 [Quit],適用於內部取得的憑證

      • [Set client trust]、[Unset server trust] 或 [Quit],適用於 CA 憑證

        憑證資訊中包含所有者和核發憑證的機構。信任設定允許您設定用戶端信任或取消設定伺服器信任。以 LDAP 伺服器憑證來說,您必須設定信任該伺服器。

安裝和管理 CRL 和 CKL

憑證撤銷清單 (CRL) 和洩漏金鑰清單 (CKL) 宣告用戶端或伺服器使用者不應再信任的所有憑證或金鑰。如果憑證中的資料發生變更 (例如某使用者在憑證過期之前調職或離職),則該憑證將被撤銷,其資料將出現在 CRL 中。如果金鑰被竄改或被洩漏,則該金鑰及其資料將顯示在 CKL 中。CRL 和 CKL 都由 CA 產生並定期更新。請與特定的 CA 連絡以取得這些清單。

本小節說明如何安裝及管理 CRL 和 CKL。

Procedure安裝 CRL 或 CKL

  1. 從 CA 取得 CRL 或 CKL 並下載至本機目錄。

  2. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  3. 按一下 [Install CRL/CKL] 連結。

  4. 選取以下任一選項:

    • Certificate Revocation List

      • Compromised Key List

  5. 鍵入相關檔案的完整路徑名稱,然後按一下 [OK]。

    此時會出現 [Add Certificate Revocation List] 或 [Add Compromised Key List] 頁面,列出 CRL 或 CKL 的資訊。如果資料庫中已存在 CRL 或 CKL,螢幕上會顯示 [Replace Certificate Revocation List] 或 [Replace Compromised Key List] 頁面。

  6. 增加或替代 CRL 或 CKL。

Procedure管理 CRL 和 CKL

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  2. 按一下 [Manage CRL/CKL] 連結。

    此時會出現 [Manage Certificate Revocation Lists /Compromised Key Lists] 頁面,列出所有已安裝的 CRL 和 CKL 及其過期日期。

  3. 從 [Server CRLs] 或 [Server CKLs] 清單中選取憑證。

  4. 選取 [Delete CRL] 或 [Delete CKL] 以刪除 CRL 或 CKL。

  5. 退出並返回至管理頁面

設定安全性喜好設定

一旦取得憑證之後,即可開始保護伺服器的安全性。Sun Java System Web Proxy Server 提供了多種安全性元素,在本小節中將對其加以討論。

加密是指轉換資訊的程序,因此除指定的收件者之外,其他人無法理解此資訊。解密是指轉換加密資訊的程序,讓資訊再次變得能夠理解。Proxy Server 支援安全通訊端層 (SSL) 和傳輸層安全性 (TLS) 加密協定。

密碼是一種加密演算法 (數學函數) ,用於加密或解密。SSL 和 TLS 協定包含大量密碼組。有些密碼會比其他密碼更強、更安全。一般而言,密碼使用的位元越多,解密資料便越困難。

在任何雙向加密程序中,雙方都必須使用相同的密碼。由於有大量密碼可供使用,因此必須讓伺服器使用最常用的密碼。

在安全連線時,用戶端和伺服器一致使用雙方均具有的最強密碼來進行通訊。您可以從 SSL 2.0、SSL 3.0 和 TLS 協定中選擇密碼。


備註 –

在 SSL 2.0 之後,SSL 的安全性和效能進行了各種改進。除非用戶端無法使用 SSL 3.0,否則請勿使用 SSL 2.0。用戶端憑證不一定適用 SSL 2.0 加密。


僅加密程序本身不足以確保伺服器的機密資訊安全。金鑰必須搭配加密密碼一起使用,才能產生實際的加密效果,或是為先前加密的資訊進行解密。加密程序使用兩個金鑰來達到這個效果:公開金鑰和私密金鑰。使用公開金鑰加密的資訊只能透過相關聯的私密金鑰進行解密。公開金鑰附屬於憑證一起發佈。僅相關聯的私密金鑰才會受到保護。

如需有關各種密碼組的說明以及金鑰和憑證的更多資訊,請參閱「SSL 簡介」。

您可以指定伺服器可以使用的密碼。除非您有不使用特定密碼的充分理由,否則應該選取全部密碼。不過建議您不要啟用未採用最佳化加密的密碼。


注意 – 注意 –

請勿選取 [Enable No Encryption, Only MD5 Authentication]。如果用戶端沒有其他可用的密碼,伺服器會預設為使用此設定,因此不進行任何加密。


本小節包含下列主題:

SSL 和 TLS 協定

Proxy Server 支援用於加密通訊的 SSL 和 TLS 協定。SSL 和 TLS 與應用程式無關,並且可以在其上放置更高層級的協定 (不需設定)。

SSL 和 TLS 協定支援多種密碼,這些密碼用於讓伺服器和用戶端互相認證、傳輸憑證以及建立階段作業金鑰。用戶端和伺服器可以支援各種密碼組或密碼集,這取決於各種因素,例如所支援的協定、公司有關加密強度的策略以及政府對加密軟體的出口限定。在其他函式中,SSL 和 TLS 交換協定將決定伺服器和用戶端如何協商以確定將用於通訊的密碼組。

使用 SSL 與 LDAP 通訊

您應該要求 Administration Server 使用 SSL 與 LDAP 進行通訊。


備註 –

在此情況下,Proxy Server 扮演 SSL 用戶端的角色,且必須已匯入用來簽署 SSL 伺服器 LDAP 憑證的根 CA 憑證。若 LDAP 的 SSL 憑證不是由眾所皆知的 CA 核發,則必須將所使用的 CA 根金鑰匯入 Proxy Server 金鑰庫中。


Procedure在 Administration Server 上以 SSL 連線啟用 LDAP

  1. 存取 Administration Server,然後按一下 [Global Settings] 標籤。

  2. 按一下 [Configure Directory Service] 連結。

  3. 在所顯示的表格中,按一下目錄服務連結。

    此時會顯示 [Configure Directory Service] 頁面。若尚未建立 LDAP 型的目錄服務,請從 [Create New Service of Type] 下拉式清單中選取 [LDAP Server],然後按一下 [New] 以配置目錄服務。如需有關 LDAP 型目錄服務所顯示之特定欄位的更多資訊,請參閱線上說明。

  4. 選取 [Yes]、使用 SSL 進行連線,然後按一下 [Save Changes]。

經由 Proxy Server 進行 SSL 通道傳輸

向前執行 Proxy Server (代理伺服器),並且用戶端請求經由代理伺服器與安全伺服器進行 SSL 連線時,代理伺服器會開啟與安全伺服器的連線,並在不干預安全作業事件的情況下,進行雙向資料複製。此程序稱為 SSL 通道傳輸,並在下圖中說明。

圖 5–1 SSL 連線

顯示從用戶端經由代理伺服器以 SSL 連線至安全伺服器的圖表

若要以 HTTPS URL 使用 SSL 通道傳輸,用戶端必須同時支援 SSL 和 HTTPS。HTTPS 是使用 SSL 和一般 HTTP 進行實作的。不支援 HTTPS 的用戶端仍可使用 Proxy Server 的 HTTPS 代理處理功能存取 HTTPS 文件。

SSL 通道傳輸為較低層級的活動,並不會影響應用程式層級 (HTTPS)。SSL 通道傳輸和沒有使用代理伺服器的 SSL 一樣安全。存在於兩者之間的代理伺服器並不會以任何方式影響安全性,或是降低 SSL 的功能。

使用 SSL 會將資料流加密,以致代理伺服器無法存取實際的作業事件。因此,存取記錄便無法列出來自遠端伺服器的狀態碼或標頭長度。此程序也能防止代理伺服器或任何第三方竊聽作業事件。

由於代理伺服器絕對看不到資料,因此無法驗證用戶端和遠端伺服器之間所使用的通訊協定是否為 SSL。因此代理伺服器也無法防止其他協定由此通過。您應該限定 SSL 連線僅連接至眾所皆知的 SSL 連接埠,即網際網路網址分配機構 (IANA) 所指定的連接埠 443 (針對 HTTPS) 和 563 (針對 SNEWS)。若網站在其他連接埠上執行安全伺服器,則可以使用 connect://.* 資源明訂例外,允許連線至特定主機的其他連接埠。

SSL 通道傳輸功能實際上是與協定無關、類似 SOCKS 的一般功能,因此也可以將此功能用於其他服務。除 HTTPS 和 SNEWS 協定外,Proxy Server 還可以為支援 SSL 的所有應用程式處理 SSL 通道傳輸。

配置 SSL 通道傳輸

下列程序說明如何配置 Proxy Server 以進行 SSL 通道傳輸。

Procedure配置 SSL 通道傳輸

  1. 從 Server Manager 存取伺服器實例,然後按一下 [Routing] 標籤。

  2. 按一下 [Enable/Disable Proxying] 連結。

  3. 從下拉式清單中選取 connect://.*.443 資源。

    connect:// 方法為內部代理伺服器表示法,該表示法在代理伺服器外部並不存在。如需有關 connect 的更多資訊,請參閱SSL 通道傳輸的技術詳細資訊

    若要允許連線至其他連接埠,可以在範本中使用類似的 URL 式樣。如需有關範本的更多資訊,請參閱第 16 章, 管理範本和資源

  4. 選取 [Enable Proxying Of This Resource],然後按一下 [OK]。


    注意 – 注意 –

    如果代理伺服器配置錯誤,則可能會有人利用伺服器,使 telnet 連線看似來自代理主機而不是實際的連線主機。因此,請勿使用超過絕對必要數量的連接埠,並請對代理伺服器使用存取控制以限制用戶端主機。


SSL 通道傳輸的技術詳細資訊

SSL 通道傳輸在內部使用 CONNECT 方法時,以目標主機名稱和連接埠號為參數,後跟空白行:

CONNECT energy.example.com:443 HTTP/1.0

下列範例顯示的是來自 Proxy Server 的成功回應,後跟空白行:

HTTP/1.0 200 Connection establishedProxy-agent: Sun-Java-System-Web-Proxy-Server/4.0

接著就會在用戶端和遠端伺服器之間建立連線。資料可進行雙向傳輸,直至其中一方關閉連線。

從內部來看,為了使根據 URL 式樣的一般配置機制發揮優點,主機名稱和連接埠號會自動對映至 URL,如下所示:

connect://energy.example.com:443

connect:// 是 Proxy Server 所使用的內部表示法,用於簡化配置,並與其他 URL 式樣更為一致。在 Proxy Server 的外部,connect URL 並不存在。若 Proxy Server 從網路收到此類 URL,則會將其標記為無效,並拒絕服務該請求。

為偵聽通訊端啟用安全性

您可以透過執行下列作業來保護伺服器偵聽通訊端的安全性:


備註 –

您只能在反向代理模式中啟用安全性,不能在正向代理模式中啟用。


開啟安全性

必須先開啟安全性,然後才能為偵聽通訊端配置其他安全性設定。您可以在建立新偵聽通訊端或編輯現有偵聽通訊端時開啟安全性。

Procedure建立偵聽通訊端時開啟安全性

  1. 存取 Administration Server 或 Server Manager,然後按一下 [Preferences] 標籤。

  2. 按一下 [Add Listen Socket] 連結。

  3. 提供所需的資訊。


    備註 –

    建立偵聽通訊端之後,使用 [Edit Listen Sockets] 連結來配置安全性設定。


  4. 若要開啟安全性,請從 [Security] 下拉式清單中選取 [Enabled],然後按一下 [OK]。

    如果尚未安裝伺服器憑證,則只能選擇 [Disabled]。如需有關特定設定的更多資訊,請參閱線上說明。

Procedure編輯偵聽通訊端時開啟安全性

  1. 存取 Administration Server 或 Server Manager,然後按一下 [Preferences] 標籤。

  2. 按一下 [Edit Listen Sockets] 連結。

  3. 按一下要編輯的偵聽通訊端連結。

  4. 從 [Security] 下拉式清單中選取 [Enabled],然後按一下 [OK]。

    如果尚未安裝伺服器憑證,則只能選擇 [Disabled]。

為偵聽通訊端選取伺服器憑證

您可以在 Administration Server 或 Server Manager 中配置偵聽通訊端,以便使用您已申請並安裝的伺服器憑證。


備註 –

必須至少安裝一份憑證。


Procedure為偵聽通訊端選取伺服器憑證

  1. 存取 Administration Server 或 Server Manager,然後按一下 [Preferences] 標籤。

  2. 按一下 [Edit Listen Sockets] 連結。

  3. 按一下要編輯的偵聽通訊端連結。

  4. 從 [Security] 下拉式清單中選取 [Enabled],然後按一下 [OK]。

    如果尚未安裝伺服器憑證,則只能選擇 [Disabled]。

  5. 從 [Server Certificate Name] 下拉式清單中,為偵聽通訊端選取伺服器憑證,然後按一下 [OK]。

選取密碼

若要保護 Proxy Server 的安全性,應該啟用 SSL。您可以啟用 SSL 2.0、SSL 3.0 和 TLS 加密協定並選取各種密碼組。可以在 Administration Server 的偵聽通訊端上啟用 SSL 和 TLS 協定。在 Server Manager 的偵聽通訊端上啟用 SSL 和 TLS,即可設定特定伺服器實例的相關安全性喜好設定。必須至少安裝一份憑證。


備註 –

您必須將 Proxy Server 配置為執行反向代理伺服器功能,才能在偵聽通訊端上啟用 SSL。


預設設定允許大多數常用密碼。除非有充分理由不使用特定密碼組,否則應該選取全部密碼。

[TLS Rollback] 的預設和建議設定皆為 [Enabled]。此設定可將伺服器配置為可偵測「中間人版本回復」的攻擊企圖。為了與某些未正確實作 TLS 規格的用戶端實現互通功能,可能需要將 [TLS Rollback] 設定為 [Disabled]。

停用 [TLS Rollback] 將導致連線無法抵擋版本回復的攻擊。版本回復攻擊機制讓第三方強制用戶端和伺服器使用較舊、較不安全的協定 (如 SSL 2.0) 進行通訊。由於 SSL 2.0 協定有已知缺陷,若無法偵測「版本回復」的攻擊企圖,第三方便更容易截取已加密的連線並進行解密。

Procedure啟用 SSL 和 TLS

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Preferences] 標籤。

  2. 按一下 [Edit Listen Sockets] 連結,然後按一下要編輯的偵聽通訊端連結。

    對於安全的偵聽通訊端,系統會顯示可用的密碼設定。

    若未啟用偵聽通訊端的安全性,則不會列出 SSL 和 TLS 資訊。若要使用密碼,請確定已在選取的偵聽套接字上啟用了該安全性。如需更多資訊,請參閱為偵聽通訊端啟用安全性

  3. 選取與所需加密設定對應的核取方塊,然後按一下 [OK]。

  4. 為 Netscape Navigator 6.0 同時選取 TLS 和 SSL 3.0。此外也為 [TLS Rollback] 選取 [TLS],並確認 SSL 3.0 和 SSL 2.0 皆已停用。

    一旦在伺服器上啟用 SSL 之後,其 URL 便會使用 https 而非 http。指向啟用 SSL 伺服器上文件的 URL 格式如下: https://servername.domain .dom: port,例如 https://admin.example.com:443

    如果使用預設的安全 HTTP 連接埠 (443),則不需要在 URL 中輸入連接埠號。

全域配置安全性

安裝啟用 SSL 的伺服器時,會在 magnus.conf 檔案 (全域安全性參數的伺服器主要配置檔案) 中建立指令項目。

SSLSessionTimeout

SSLSessionTimeout 指令用於控制 SSL 2.0 階段作業的快取,其語法為:

SSLSessionTimeout seconds

其中 seconds 是快取的 SSL 階段作業保持有效的秒數。預設值為 100。如果指定了 SSLSessionTimeout 指令,秒數的值將自動限定為 5 到 100 秒之間。

SSLCacheEntries

指定可以快取的 SSL 階段作業的數目。

SSL3SessionTimeout

SSL3SessionTimeout 指令用於控制 SSL 3.0 和 TLS 階段作業快取,其語法為:

SSL3SessionTimeout seconds

其中 seconds 是快取的 SSL 3.0 階段作業保持有效的秒數。預設值為 86400 秒 (24 小時)。如果指定了 SSL3SessionTimeout 指令,秒數的值將自動限定為 5 到 86400 秒之間。

Procedure設定 SSL 配置檔案指令的值

  1. 從 Server Manager 存取伺服器實例。

  2. 確定為要配置的偵聽套接字啟用了安全性。

    如需更多資訊,請參閱為偵聽通訊端啟用安全性

  3. 手動編輯 magnus.conf 檔案,並為下列設定提供值:

    • SSLSessionTimeout

    • SSLCacheEntries

    • SSL3SessionTimeout

    如需有關 magnus.conf 的更多資訊,請參閱「Sun Java System Web Proxy Server 4.0.4 Configuration File Reference」

使用外部加密模組

Proxy Server 支援下列使用外部加密模組的方法,如智慧卡或記號環網路:

啟動 FIPS-140 加密標準之前,必須增加 PKCS #11 模組。

本小節包含下列主題:

安裝 PKCS #11 模組

Proxy Server 支援公開金鑰加密標準 (PKCS) #11,該標準定義在 SSL 和 PKCS #11 模組之間通訊所使用的介面。PKCS #11 模組用於與 SSL 硬體加速器建立標準連結。所匯入的外部硬體加速器之憑證和金鑰儲存在 secmod.db 檔案中,此檔案是在安裝 PKCS #11 模組時產生的。此檔案位於 server-root/alias 目錄中。

使用 modutil 工具安裝 PKCS #11 模組

您可以使用 modutil 工具,以 .jar 檔案或物件檔案的形式安裝 PKCS #11 模組。

Procedure使用 modutil 工具安裝 PKCS #11 模組

  1. 確定包括 Administration Server 在內的所有伺服器都已停止。

  2. 移至包含資料庫的 server-root/alias 目錄。

  3. server-root/bin/proxy/admin/bin 增加到 PATH 中。

  4. server-root/bin/proxy/admin/bin 中找到 modutil

  5. 設定環境。

    • 在 UNIX 上:setenv

      LD_LIBRARY_PATH server-root/bin/proxy/lib:${LD_LIBRARY_PATH}

    • 在 Windows 上,將以下內容增加到 PATH

      LD_LIBRARY_PATH server-root/bin/proxy/bin

      您可以在 server-root/proxy-admserv/start 下找到電腦的 PATH。

  6. 在終端機視窗中,鍵入 modutil

    將列出各種選項。

  7. 執行所需的動作。

    例如,若要在 UNIX 中增加 PKCS #11 模組,請輸入:

    modutil -add (PKCS#11 檔案的名稱) -libfile (PKCS #11 的 libfile) -nocertdb -dbdir . (您的 db 目錄)

使用 pk12util 工具匯出

使用 pk12util 可讓您從內部資料庫匯出憑證和金鑰,並將其匯入內部或外部 PKCS #11 模組。您可以將憑證和金鑰始終匯出至內部資料庫,但多數外部記號不會允許\您匯出憑證和金鑰。依預設,pk12util 使用名為 cert8.dbkey3.db 的憑證和金鑰資料庫。

Procedure從內部資料庫匯出憑證和金鑰

  1. 移至包含資料庫的 server-root/alias 目錄。

  2. server-root/bin/proxy/admin/bin 增加到您的 PATH。

  3. server-root/bin/proxy/admin/bin 中找到 pk12util

  4. 設定環境。

    • 在 UNIX 上:

      setenv LD_LIBRARY_PATH/ server-root/bin/proxy/lib:${LD_LIBRARY_PATH}

    • 在 Windows 上,將以下內容增加到 PATH

      LD_LIBRARY_PATH server-root/bin/proxy/bin

      您可以在下列目錄下找到電腦的 PATH: server-root/proxy-admserv/start

  5. 在終端機視窗中,鍵入 pk12util

    將列出各種選項。

  6. 執行所需的動作。

    例如,在 UNIX 中鍵入

    pk12util -o certpk12 -n Server-Cert [-d /server/alias] [-P https-test-host]

  7. 鍵入資料庫密碼。

  8. 鍵入 pkcs12 密碼。

Procedure將憑證和金鑰匯入內部或外部 PKCS #11 模組

  1. 移至包含資料庫的 server-root/alias 目錄。

  2. server-root/bin/proxy/admin/bin 增加到您的 PATH。

  3. server-root/bin/proxy/admin/bin 中找到 pk12util

  4. 設定環境。

    例如︰

    • 在 UNIX 上:

      setenv LD_LIBRARY_PATH/ server-root/bin/proxy/lib:${LD_LIBRARY_PATH}

      • 在 Windows 上,將以下內容增加到 PATH

        LD_LIBRARY_PATH server-root/bin/proxy/bin

        您可以在 server-root/proxy-admserv/start 下找到電腦的 PATH。

  5. 在終端機視窗中,鍵入 pk12util

    將列出各種選項。

  6. 執行所需的動作。

    例如,在 UNIX 中輸入:

    pk12util -i pk12_sunspot [-d certdir][-h “nCipher”][-P https-jones.redplanet.com-jones-]

    -P 必須跟在 -h 之後,且為最後一個引數。

    鍵入正確的記號名稱,包括大寫字母和引號之間的空格。

  7. 鍵入資料庫密碼。

  8. 鍵入 pkcs12 密碼。

使用外部憑證啟動伺服器

如果伺服器憑證安裝至外部 PKCS #11 模組 (例如硬體加速器) 中,將無法使用該憑證來啟動伺服器,除非編輯 server.xml 檔案,或是依下述方式指定憑證名稱。

伺服器會自動嘗試使用名為 Server-Cert 的憑證進行啟動。然而,外部 PKCS #11 模組中的憑證,會在其識別碼中包括模組的其中一個記號名稱。例如,安裝於外部智慧卡讀取器上名為 smartcard0 的伺服器憑證,就會命名為 smartcard0:Server-Cert

若要使用安裝在外部模組中的憑證啟動伺服器,必須為伺服器執行所在的偵聽通訊端指定憑證名稱。

Procedure選取偵聽通訊端的憑證名稱

如果未啟用偵聽通訊端的安全性,則不會列出憑證資訊。若要選取偵聽通訊端的憑證名稱,必須先確定已在該偵聽通訊端上啟用安全性。如需更多資訊,請參閱為偵聽通訊端啟用安全性

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Preferences] 標籤。

  2. 按一下 [Edit Listen Sockets] 連結。

  3. 按一下要與憑證建立關聯的偵聽通訊端連結。

  4. 從 [Server Certificate Name] 下拉式清單中,選取偵聽通訊端的伺服器憑證,然後按一下 [OK]。

    該清單包含所有已安裝的內部和外部憑證。

    您也可以藉由手動編輯 server.xml 檔案,要求伺服器改使用該伺服器憑證啟動。 將 SSLPARAMS 中的 servercertnickname 屬性變更為:

    $TOKENNAME:Server-Cert

    若要尋找 $TOKENNAME 應使用的值,請移至伺服器的 [Security] 標籤,並選取 [Manage Certificates] 連結。登入到儲存 Server-Cert 的外部模組時,$TOKENNAME:$NICKNAME 表單的清單中將顯示其憑證。

    如果未建立信任資料庫,則在請求或安裝外部 PKCS #11 模組的憑證時,會自動建立一個。建立的預設資料庫沒有密碼,且無法存取。外部模組可以工作,但您不能申請和安裝伺服器憑證。如果已建立沒有密碼的預設資料庫,請使用 [Security] 標籤上的 [Create Database] 頁面來設定密碼。

FIPS-140 標準

透過 PKCS#11 API,您可以與執行加密作業的軟體或硬體模組進行通訊。一旦將 PKCS #11 安裝在 Proxy Server 上之後,即可將伺服器配置為遵守 FIPS-140 標準。FIPS 代表聯邦資訊處理標準。只有 SSL 3.0 才包含這些程式庫。

Procedure啟用 FIPS-140

  1. 依據 FIPS-140 中的說明安裝該 Plug-in。

  2. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Preferences] 標籤。

  3. 按一下 [Edit Listen Sockets] 連結。

    對於安全偵聽通訊端,[Edit Listen Sockets] 頁面會顯示可用的安全性設定。

    若要使用 FIPS-140,請確定已在選取的偵聽套接字上啟用了該安全性。如需更多資訊,請參閱為偵聽通訊端啟用安全性

  4. 從 [SSL Version 3] 下拉式清單中選取 [Enabled] (如果尚未選取)。

  5. 選取適當的 FIPS-140 密碼組,然後按一下 [OK]:

    • 啟用168 位元加密的三重 DES 和 SHA 認證 (FIPS)

      • 啟用 56 位元加密的 DES 和 SHA 認證 (FIPS)。

設定用戶端安全性需求

執行所有步驟保護伺服器的安全性之後,即可為用戶端設定其他安全性需求。

用戶端認證對於 SSL 連線並非必要,但卻能加強確保加密資訊能傳送給正確的收件人。您可以在反向代理伺服器中使用用戶端認證,以確定您的內容伺服器不會與未經授權的代理伺服器或用戶端共用資訊。

本小節包含下列主題:

要求用戶端認證

您可以為 Administration Server 和每個伺服器實例啟用偵聽通訊端,以要求用戶端認證。啟用用戶端認證時,需要提供用戶端憑證,然後伺服器才能針對查詢傳送回應。

Proxy Server 支援的用戶端憑證認證方式,是將用戶端憑證中的 CA,與可信任 CA (能簽署用戶端憑證) 加以比對。您可以藉由 [Security] 標籤,在 [Manage Certificates] 頁面上檢視可信任 CA (能簽署用戶端憑證) 的清單。

您可以對 Proxy Server 進行配置,拒絕不具有來自可信任 CA 用戶端憑證的所有用戶端。若要接受或拒絕信任的 CA,必須為 CA 設定用戶端信任。如需更多資訊,請參閱管理憑證

若憑證已過期,Proxy Server 會記錄錯誤、拒絕憑證並向用戶端傳回訊息。您也可以在 [Manage Certificates] 頁面上檢視哪些憑證已經過期。

您可以對伺服器進行配置,以便從用戶端憑證收集資訊並使其與 LDAP 目錄中的使用者項目匹配。此程序可以確定用戶端具有有效的憑證,且在 LDAP 目錄中有對應項目。而且還可以確定用戶端憑證與 LDAP 目錄中的憑證相匹配。若要瞭解如何執行此操作,請參閱將用戶端憑證對映到 LDAP

您可以將用戶端憑證和存取控制結合使用,以便除了來自可信任的 CA 以外,與憑證關聯的使用者還必須與存取控制規則 (ACL) 相匹配。如需更多資訊,請參閱使用存取控制檔案

Procedure申請用戶端認證

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Preferences] 標籤。

  2. 按一下 [Edit Listen Sockets] 連結。

  3. 按一下要求用戶端認證的偵聽通訊端連結。

  4. 使用 [Client Authentication] 下拉式清單要求針對偵聽通訊端進行用戶端認證,然後按一下 [OK]。

反向代理伺服器中的用戶端認證

在反向代理伺服器中,您可以根據下列任一分析藍本配置用戶端認證:

如需有關如何配置這些分析藍本的資訊,請參閱在反向代理伺服器中設定用戶端認證

在反向代理伺服器中設定用戶端認證

安全反向代理伺服器中的用戶端認證可以進一步確保連線的安全。下列指示說明如何根據所選擇的分析藍本配置用戶端認證。


備註 –

每個分析藍本都假設您同時具有安全的用戶端至代理伺服器連線,以及代理伺服器至內容伺服器連線。


Procedure配置 Proxy-Authenticates-Client 分析藍本

  1. 請依照第 14 章, 使用反向代理伺服器中「設定反向代理伺服器」的指示,配置安全的用戶端至代理伺服器以及安全的代理伺服器至內容伺服器分析藍本。

  2. 從 Server Manager 存取伺服器實例,然後按一下 [Preferences] 標籤。

  3. 按一下 [Edit Listen Sockets] 連結,然後在所顯示的表格中,按一下所需偵聽通訊端的連結。

    (使用 [Add Listen Socket] 連結可配置和增加偵聽通訊端。)

  4. 指定用戶端認證需求:

    1. 若要允許具有有效憑證之所有使用者進行存取,請執行下列操作:

      在 [Security] 區段中,使用 [Client Authentication] 設定來要求對此偵聽通訊端進行用戶端認證。如果尚未安裝伺服器憑證,則不會顯示此設定。

    2. 若要僅允許具有有效憑證,且在存取控制中指定為可接受使用者的使用者進行存取,請執行下列操作:

      1. 在 [Security] 區段中,保持 [Client Authentication] 設定為關閉狀態。如果尚未安裝伺服器憑證,則不會顯示此設定。

      2. 在此伺服器實例的 Server Manager [Preferences] 標籤上,按一下 [Administer Access Control] 連結。

      3. 選取 [ACL],然後按一下 [Edit] 按鈕。

        此時會顯示 [Access Control Rules For] 頁面 (若出現提示則請先認證)。

      4. 開啟存取控制 (若尚未選取 [Access control Is On] 核取方塊,請加以選取)。

      5. 將 Proxy Server 設定為以反向代理伺服器身份進行認證。

        如需更多資訊,請參閱設定反向代理伺服器

      6. 在所需的存取控制規則上按一下 [Rights] 連結,於下方框架內指定存取權限,然後按一下 [Update] 更新此項目。

      7. 按一下 [Users/Groups] 連結。在下方框架中,指定使用者和群組、選取 SSL 做為認證方法,然後按一下 [Update] 更新此項目。

      8. 在上方框架中按一下 [Submit] 以儲存項目。

        如需有關設定存取控制的更多資訊,請參閱第 8 章, 控制對伺服器的存取

Procedure配置 Content Server-Authenticates-Proxy 分析藍本

  1. 請依照設定反向代理伺服器中的指示,配置安全的用戶端至代理伺服器以及安全的代理伺服器至內容伺服器分析藍本。

  2. 在內容伺服器上開啟用戶端認證。

    您可以修改此分析藍本,建立用戶端與 Proxy Server 之間的不安全連線,以及與內容伺服器的安全連線,這樣內容伺服器便會對此 Proxy Server 進行認證。若要執行上述操作,必須關閉加密功能,並要求代理伺服器僅依照以下所述的程序初始化憑證。

Procedure配置 Proxy-Authenticates-Client and Content Server-Authenticates-Proxy 分析藍本

  1. 請依照配置 Proxy-Authenticates-Client 分析藍本中的指示,配置 Proxy-Authenticates-Client 分析藍本。

  2. 在內容伺服器上開啟用戶端認證。

將用戶端憑證對映到 LDAP

本小節說明 Proxy Server 採用何種程序,將用戶端憑證對映至 LDAP 目錄中的項目。將用戶端憑證對映至 LDAP 之前,還必須配置必要的 ACL。如需更多資訊,請參閱第 8 章, 控制對伺服器的存取

伺服器收到來自用戶端的請求時,會在處理前索取用戶端的憑證。某些用戶端會在向伺服器傳送申請的同時傳送用戶端憑證。

伺服器將嘗試檢視該 CA 是否與 Administration Server 中的某個可信任 CA 匹配。如果不存在相符的項目,Proxy Server 將會結束連線。如果存在相符的項目,伺服器將繼續處理請求。

伺服器驗證憑證是來自可信任的 CA 之後,便會透過執行下列操作將憑證對映至 LDAP 項目:

伺服器使用憑證對映檔案 (稱為 certmap.conf) 來確定 LDAP 搜尋的執行方式。對映檔案將告知伺服器要採用用戶端憑證中的哪些值,如一般使用者名稱、電子郵件地址等。伺服器將使用這些值來搜尋 LDAP 目錄中的使用者項目,但伺服器必須先確定要從 LDAP 目錄中的何處開始搜尋。憑證對映檔案也會告訴伺服器開始搜尋的位置。

一旦伺服器知道從何處開始搜尋以及所搜尋的內容之後,便會在 LDAP 目錄 (第二個點) 中執行搜尋。如果找不到任何相符項目或找到多個相符項目,並且設定對映必須驗證憑證,則搜尋將會失敗。

下表列出了預期的搜尋結果運作方式。您可以在 ACL 中指定預期的運作方式。例如,您可以指定找不到相符憑證時,Proxy Server 就只接受您。如需有關如何設定 ACL 喜好設定的更多資訊,請參閱使用存取控制檔案

表 5–1 LDAP 搜尋結果

LDAP 搜尋結果 

憑證驗證「開啟」 

憑證驗證「關閉」 

未找到項目 

認證失敗 

認證失敗 

恰好找到一個項目 

認證失敗 

認證成功 

找到多個項目 

認證失敗 

授權失敗 

伺服器在 LDAP 目錄中找到相符的項目和憑證之後,即可使用該資訊處理作業事件。例如,某些伺服器使用憑證到 LDAP 的對映來確定對某個伺服器的存取權限。

使用 certmap.conf 檔案

憑證對映用於確定伺服器在 LDAP 目錄中查找使用者項目的方式。您可以使用 certmap.conf 檔案來配置將憑證 (依名稱指定) 對映至 LDAP 項目的方式。您可以編輯此檔案並增加項目,以便與 LDAP 目錄的組織相符,並列出您希望使用者擁有的憑證。您可根據 subjectDN 中所使用的使用者 ID、電子郵件地址或其他值,對使用者進行認證。特別是,對映檔案可定義以下資訊:

憑證對映檔案位於以下位置:

server-root/userdb/certmap.conf

該檔案包含了一個或多個已命名對映,每個對映都套用於不同的 CA。對映具有下列語法:

certmap name issuerDNname :property [ value]

第一行用於指定項目的名稱以及形成 CA 憑證中區別名稱的屬性。name 為任意名稱,可依照您的喜好加以定義。不過,issuerDN 必須與核發用戶端憑證之 CA 的核發者 DN 完全相符。例如,以下兩個核發者 DN 行僅在分隔屬性的空格上有所差異,但伺服器將其視為兩個不同的項目:

certmap sun1 ou=Sun Certificate Authority,o=Sun,c=UScertmap sun2 ou=Sun Certificate Authority, o=Sun, c=US


備註 –

如果您使用的是 Sun Java System Directory Server,在確定核發者 DN 符合情況遇到問題時,請檢查 Directory Server 錯誤記錄以取得有用的資訊。


已命名對映中的第二行和隨後的行可以使屬性與值相匹配。certmap.conf 檔案具有六項預設特性。您也可以使用憑證 API 來自訂特性。預設特性為:

表 5–2 x509v3 憑證的屬性

屬性 

說明 

c

國家/地區 

o

組織 

cn

共用名稱 

l

位置 

st

狀態 

ou

組織單元 

uid

UNIX/Linux 使用者 ID 

email

電子郵件地址 

如需有關這些特性的更多資訊,請參閱對映範例中所述範例。

建立自訂特性

用戶端憑證 API 可用來建立您自己的特性。建立自訂對映後,就可以參照以下格式的對映:

name:library path_to_shared_libraryname :InitFN name_of_ init_function

例如︰

certmap default1 o=Sun Microsystems, c=US default1:library /usr/sun/userdb/plugin.so default1:InitFn plugin_init_fn default1:DNComps ou o c default1:FilterComps l default1:verifycert on

對映範例

certmap.conf 檔案中應至少包含一個項目。下列範例說明了 certmap.conf 的不同使用方式。

範例 #1 只有一個預設對映的 certmap.conf 檔案

certmap default defaultdefault:DNComps ou, o, cdefault:FilterComps e, uiddefault:verifycert on

以此為例,伺服器在包含 ou=orgunit, o=org, c=country 項目的 LDAP 分支點開始搜尋,其中斜體文字將由用戶端憑證中主體 DN 的值所替代。

然後,伺服器會使用憑證上電子郵件地址和使用者 ID 的值,在 LDAP 目錄中搜尋相符的項目。找到相符的項目時,伺服器會比對用戶端傳送的憑證與儲存在目錄中的憑證,以驗證該憑證。

範例 #2 具有兩個對映的 certmap.conf 檔案

以下範例檔案中包括兩個對映:一個用於預設,另一個用於美國郵政局。

certmap default defaultdefault:DNCompsdefault:FilterComps e, uid

certmap usps ou=United States Postal Service, o=usps, c=USusps:DNComps ou,o,cusps:FilterComps eusps:verifycert on

伺服器收到美國郵政局以外的人傳來憑證時會使用預設對映,該對映會從 LDAP 樹狀結構的頂層開始,搜尋與用戶端電子郵件地址和使用者 ID 相符的項目。如果憑證來自美國郵政服務,則伺服器會從包含組織單位的 LDAP 分支開始搜尋相符的電子郵件地址。此外,伺服器還會驗證該憑證。其他憑證則不加以驗證。


注意 – 注意 –

憑證中的核發者 DN (即 CA 的資訊) 必須與對映第一行中所列的核發者 DN 相同。在前一個範例中,來自核發者 DN (即 o=United States Postal Service,c=US) 的憑證就不相符,因為 DN 中 oc 屬性之間沒有空格。


範例 #3 搜尋 LDAP 資料庫

下列範例使用 CmapLdapAttr 特性在 LDAP 資料庫中搜尋名為 certSubjectDN 的屬性,該屬性的值與用戶端憑證中的整個主體 DN 完全相符。本範例假設 LDAP 目錄中包含具有 certSubjectDN 屬性的項目。

certmap myco ou=My Company Inc, o=myco, c=USmyco:CmapLdapAttr certSubjectDNmyco:DNComps o, c myco:FilterComps mail, uid myco:verifycert on

如果用戶端憑證的主題為:

uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

伺服器將首先搜尋包含以下資訊的項目:

certSubjectDN=uid=Walt Whitman, o=LeavesOfGrass Inc, c=US

如果找到一個或多個匹配的項目,伺服器將繼續驗證各項目。如果找不到相符的項目,伺服器會使用 DNComps FilterComps 來搜尋相符的項目。在本範例中,伺服器會在 o=LeavesOfGrass Inc, c=US 之下的所有項目中搜尋 uid=Walt Whitman

設定更強密碼

透過 Server Manager [Preferences] 標籤中的 [Set Cipher Size] 選項可以選擇使用 168 位元、128 位元或 56 位元大小的祕密金鑰進行存取,或者不予限制。您可以指定不符合限定條件時使用的檔案。如果未指定檔案,Proxy Server 會傳回「Forbidden」狀態。

如果所選取的存取用金鑰大小與 [Security Preferences] 下目前的密碼設定不一致,Proxy Server 會警告您需要啟用金鑰大小更大的密碼。

金鑰大小限制的實作是根據 obj.conf 中的 NSAPI PathCheck 指令,而不是 Service fn=key-toosmall。該指令為:

PathCheck fn="ssl-check" [secret-keysize=nbits ] [bong-file=filename ]

其中,nbits 是所需的最小秘密金鑰位元數,filename 是不符合限定條件時所提供的檔案名稱。

若未啟用 SSL,或是未指定 secret-keysize 參數,則 PathCheck 會傳回 REQ_NOACTION。如果目前階段作業的秘密金鑰大小小於指定的 secret-keysize,在未指定 bong-file 的情況下,函數會傳回 REQ_ABORTED 以及 PROTOCOL_FORBIDDEN 狀態。如果指定了 bong-file,則函數會傳回 REQ_PROCEED,而路徑變數會設定為 bong-file filename。而且,如果不符合金鑰大小限制,目前階段作業的 SSL 階段作業快取項目將失效,這樣下次當同一個用戶端連線到伺服器時,將發生完整的 SSL 訊號交換。


備註 –

在 [Set Cipher Size] 表單中增加 PathCheck fn=ssl-check 時,表單會移除在物件中找到的所有 Service fn=key-toosmall 指令。


Procedure設定更強的加密

  1. 從 Server Manager 存取伺服器實例,然後按一下 [Preferences] 標籤。

  2. 按一下 [Set Cipher Size] 連結。

  3. 從下拉式清單中選取要套用更強密碼的資源,然後按一下 [Select]。您也可以指定常規表示式。

    如需更多資訊,請參閱第 16 章, 管理範本和資源

  4. 選取金鑰大小的限定:

    • 168 位元或更大

      • 128 位元或更大

      • 56 位元或更大

      • 無限定

  5. 指定要拒絕存取的訊息檔案所在位置,然後按一下 [OK]。

    如需有關密碼的更多資訊,請參閱「SSL 簡介」。

其他安全性考量

除了某些人會嘗試破解您的加密外,還有其他安全性風險存在。網路面臨的風險來自外部和內部的駭客,他們使用各種方法嘗試存取您的伺服器以及伺服器上的資訊。除了在伺服器上啟用加密外,還應採取額外的安全防護措施。例如,將伺服器電腦放在安全的房間內,不允許任何不可信任的使用者將程式上傳至您的伺服器。本小節說明幾項能讓伺服器更安全無虞的重要措施。

本小節包含下列主題:

限制實體存取

這種簡單的安全方法經常會被遺忘。將伺服器電腦放在上鎖的房間中,只有經過授權的人才能進入。此一策略可以防止任何人攻擊伺服器電腦本身。而且要保護好電腦的管理 (root) 密碼 (如果有)。

限制管理存取權

如果使用遠端配置,請確定設定了存取控制,以便只對少數使用者和電腦進行管理。如果您要讓 Administration Server 提供一般使用者對 LDAP 伺服器或本機目錄資訊的存取權限,請考慮維護兩部 Administration Server,並使用叢集管理。這樣,啟用 SSL 的 Administration Server 就能當做主伺服器,而另一部 Administration Server 則可提供一般使用者存取。如需有關叢集的更多資訊,請參閱第 6 章, 管理伺服器叢集

您還應為 Administration Server 開啟加密功能。如果未將 SSL 連線用於管理,則透過不安全的網路執行遠端伺服器管理時應該格外小心。因為任何人都可以截取您的管理密碼並重新配置您的伺服器。

選擇增強式密碼

您可以在伺服器中使用多個密碼:管理密碼、私密金鑰密碼、資料庫密碼等等。管理密碼是最重要的密碼,因為任何具有該密碼的使用者都可配置電腦上的任何 (和所有) 伺服器。私密金鑰密碼則是次重要的密碼。任何取得私密金鑰和私密金鑰密碼的人,都能建立假伺服器 (偽裝成您的伺服器),或者截取和變更進出伺服器的通訊資訊。

密碼最好是便於自己記住,他人又無法猜到。例如,您可以將 MCi12!mo 記為「My Child is 12 months old!」小孩的名字或生日則是不良密碼的範例。

建立難以破解的密碼

使用這些準則來建立較強的密碼。不必對一個密碼套用以下所有規則,但使用的規則越多,您的密碼就越難以被破解。提供下列幾個提示:

變更密碼或 PIN

定期變更您的信任資料庫/金鑰組檔案密碼或 PIN。如果在 Administration Server 中啟用 SSL,則啟動伺服器時需要此密碼。定期變更密碼可以增加對伺服器的額外保護。

您只能在本機電腦上變更此密碼。如需變更密碼時應考量的準則清單,請參閱建立難以破解的密碼

Procedure變更信任資料庫/金鑰組檔案密碼

  1. 存取 [Administration Server] 或 [Server Manager],然後按一下 [Security] 標籤。

  2. 按一下 [Change Key Pair File Password] 連結。

  3. 從 [Cryptographic Module] 下拉式清單中,選取您要變更密碼的安全性代表字元。

    依預設,內部金鑰資料庫的記號為 [Internal]。若已安裝 PKCS #11模組,則將列出所有安全性代表字元。

  4. 鍵入您目前的密碼。

  5. 鍵入您的新密碼。

  6. 再次鍵入新密碼並按一下 [OK]。

    請確定您的金鑰組檔案已受到保護。Administration Server 將金鑰組檔案儲存在 server-root/alias 目錄中。

    瞭解檔案是否儲存在備份磁帶上,或是否能被其他人截取。如果儲存了該檔案,則必須像保護伺服器一樣盡力保護您的備份。

限制伺服器上的其他應用程式

仔細檢查與伺服器在同一部電腦上執行的所有應用程式。有人可能利用伺服器上執行的其他程式漏洞,避開伺服器的安全性功能。請停用所有不必要的程式和服務。例如,UNIX sendmail 常駐程式很難有安全的配置,因此可將其設定為在伺服器電腦上執行其他可能有害的程式。

UNIX 和 Linux

仔細選擇從 inittabrc 程序檔啟動的程序。請勿從伺服器電腦執行 telnetrlogin。您亦不應在伺服器電腦上執行 rdist。這除了可用來分布檔案之外,也能用來更新伺服器電腦上的檔案。

Windows

仔細考慮哪些磁碟機和目錄要與其他電腦共用。而且,要考量哪些使用者具有帳號或 Guest 權限。請特別留意在伺服器上安裝的程式,允許其他人在伺服器上安裝程式時也要特別小心。其他人員的程式可能會有安全漏洞。更糟的是有人可能會上傳惡意程式,目的就是破壞您的安全性。在您的伺服器上安裝程式之前一定要仔細檢查這些程式。

防止用戶端快取 SSL 檔案

透過在 HTML 檔案的 <HEAD> 區段中增加以下行,可以防止用戶端快取加密前的檔案:

<meta http-equiv="pragma" content="no-cache">

限制連接埠

停用電腦上未使用的所有連接埠。使用路由器或防火牆配置以防止與絕對最小連接埠集以外的任何連接埠進行進來的連線。這種保護方法意味著要取得電腦上的 Shell,就只能實際操作已經位於管制區域中的伺服器電腦。

瞭解伺服器的限制

伺服器提供了伺服器和用戶端之間的安全連線。用戶端取得資訊之後,伺服器既無法控制資訊的安全性,也無法控制誰能實際操作伺服器電腦本身及存取其目錄和檔案。

瞭解這些限制有助於您理解要避免哪些情形。例如,您可以透過 SSL 連線取得信用卡號,但這些號碼是否儲存在伺服器電腦上的安全檔案中呢?SSL 連線終止後,這些號碼會怎樣呢?請務必對用戶端透過 SSL 傳送給您的任何資訊實施安全保護。