Sun Java System Messaging Server 6 2005Q4 管理指南

配置加密和基於憑證的認證

本節包含以下小節:

Messaging Server 使用傳輸層安全性 (TLS) 協定,也稱為安全套接字層 (SSL) 協定,用於加密的通訊和基於憑證的用戶端和伺服器認證。Messaging Server 支援 SSL 版本 3.0 和 3.1。TLS 完全與 SSL 相容並包含所有必要的 SSL 功能。

如需有關 SSL 的背景資訊,請參閱「Introduction to SSL」(現改為「Managing Servers with iPlanet Console」的附錄)。SSL 以公開金鑰密碼學的概念為基礎,如「Introduction to Public-Key Cryptography」(現改為「Managing Servers with iPlanet Console」的附錄) 中所述。

如果 Messaging Server 與其用戶端之間以及該伺服器與其他伺服器之間的郵件傳輸被加密,則在通訊過程中幾乎不可能被竊取。如果連線用戶端經過認證,則侵入者幾乎不可能冒充 (仿冒) 這些用戶端。

SSL 做為 IMAP4、HTTP、POP3 以及 SMTP 應用程式層下的協定層使用。SMTP 和 SMTP/SSL 使用相同的連接埠;HTTP 和 HTTP/SSL 需要不同的連接埠;IMAP 和 IMAP/SSL、POP 和 POP/SSL 可使用相同的連接埠,也可使用不同的連接埠。對於外寄和內送郵件,SSL 均在郵件通訊的特定階段執行,如圖 19–1 中所示。

圖 19–1 與 Messaging Server 進行加密通訊

本圖說明加密的內送和外寄郵件。

SSL 提供路徑點對路徑點加密,但在每台中間伺服器上郵件並不被加密。


備註 –

若要對外寄郵件啟用加密,必須修改通道定義以包含 tls 通道關鍵字,例如 maytlsmusttls 等。如需更多資訊,請參閱傳輸層安全手冊。


請記住設定安全性過高的 SSL 連線會增加伺服器的效能負擔。在設計郵件傳送安裝和分析效能時,您可能需要根據伺服器容量來平衡安全性需要。


備註 –

由於所有 Sun Java System 伺服器均支援 SSL,並且在許多伺服器上用於透過主控台啟用和配置 SSL 的介面幾乎完全相同,因此本小節中說明的數個作業會在「Managing Servers with iPlanet Console」的 SSL 一章中更完整地說明。對於這些作業,本章僅提供摘要資訊。


透過 Administration Console 取得憑證

不論您使用 SSL 進行加密還是進行認證,您的 Messaging Server 都需要獲得伺服器憑證。該憑證可向用戶端和其他伺服器證實您的伺服器身份。如果您希望透過管理主控台獲得憑證,請執行本小節中的步驟。如果您要在指令行模式中建立自我簽名的憑證,請參閱建立自我簽署憑證

管理內部模組和外部模組

伺服器憑證可確立金鑰對用於加密和解密資料的數字的所有權和有效性。伺服器的憑證與鍵對代表該伺服器的身份。它們儲存在憑證資料庫中,該資料庫可以在伺服器內部,也可以在外部,即可抽取式硬體卡 (智慧卡) 上。

Sun Java System 伺服器使用符合公開金鑰加密系統 (PKCS) #11 API 的模組存取金鑰和憑證資料庫。給定硬體裝置的 PKCS #11 模組通常可從其供應商處獲得,並且必須安裝到 Messaging Server 中,然後 Messaging Server 才能使用該裝置。預先安裝的「Netscape 內部 PKCS # 11 模組」支援單一內部軟體記號,該記號使用伺服器的內部憑證資料庫。

為憑證設定伺服器包括為憑證及其金鑰建立資料庫以及安裝 PKCS #11 模組。如果您不使用外部硬體記號,可以在您的伺服器上建立內部資料庫,並使用內部預設模組 (該模組是 Messaging Server 的組成部分)。如果要使用外部記號,可以連線硬體智慧卡閱讀機並安裝其 PKCS #11 模組。

不論是內部還是外部 PKCS #11 模組,均可透過主控台進行管理。若要安裝 PKCS #11 模組,請:

  1. 將硬體卡閱讀機連線至 Messaging Server 主機機器並安裝驅動程式。

  2. 使用主控台中的 PKCS #11 管理介面為已安裝的驅動程式安裝 PKCS #11 模組。

(如需更完整的說明,請參閱「Managing Servers with iPlanet Console」中有關 SSL 的章節。)

安裝硬體加密加速器。如果您使用 SSL 進行加密,則可以透過安裝硬體加密加速器來提昇伺服器加密和解密郵件的效能。加密加速器通常由永久安裝在您伺服器機器上的硬體板以及軟體驅動程式構成。Messaging Server 支援遵循 PKCS #11 API 的加速器模組。(它們實質上是不儲存自身金鑰的硬體記號;它們使用內部資料庫儲存金鑰。)安裝加速器時,首先要按照製造商的指定安裝硬體和驅動程式,然後透過安裝 PKCS #11 模組完成安裝,過程與安裝硬體憑證記號類似。

Procedure請求伺服器憑證

您可以透過在主控台中開啟伺服器,然後執行憑證安裝精靈來請求伺服器憑證。可以從 [主控台] 功能表或 Messaging Server [加密] 標籤存取該精靈。使用精靈執行以下作業:

步驟
  1. 產生憑證請求。

  2. 透過電子郵件將請求傳送給發放憑證的憑證授權機構 (CA)。

    收到 CA 的電子郵件回應後,將其儲存為文字檔案並使用憑證安裝精靈進行安裝。

    (如需更完整的說明,請參閱「Managing Servers with iPlanet Console」中有關 SSL 的章節。)

Procedure安裝憑證

安裝與請求是不同的程序。收到 CA 對您憑證請求的電子郵件回應並將其儲存為文字檔案後,請再次執行憑證安裝精靈以將該檔案作為憑證進行安裝:

步驟
  1. 指定您要安裝已獲得的憑證。

  2. 當系統提示您將憑證文字貼入某欄位時,依此執行。

  3. 將憑證暱稱從 server-cert 變更為 Server-Cert

    如果您不想變更此憑證暱稱,則可以透過將 configutil 參數設定為 encryption.rsa.nssslpersonalityssl 來變更系統所需的憑證暱稱。

    (如需更完整的說明,請參閱「Managing Servers with iPlanet Console」中有關 SSL 的章節。)


    備註 –

    此程序也是安裝 CA 憑證 (如下文所述) 時應執行的程序,您的伺服器會使用 CA 憑證來確定是否信任用戶端提供的憑證。


安裝信任的 CA 之憑證

您還可以使用憑證安裝精靈來安裝憑證授權機構的憑證。CA 憑證可驗證 CA 本身的身份。您的伺服器會在認證用戶端和其他伺服器的程序中使用這些 CA 憑證。

例如,如果您將企業設定為除了進行基於密碼的認證之外還要進行基於憑證的用戶端認證 (請參閱第157 頁的「設定基於憑證的登入」),則需要安裝所有發放用戶端可能提供之憑證的可信任 CA 的 CA 憑證。這些 CA 可以是您組織內部的,也可以是外部的,代表商業授權機構、政府授權機構或其他企業。(如需有關使用 CA 憑證進行認證的更多詳細資訊,請參閱「Managing Servers with iPlanet Console」中的「Introduction to Public-Key Cryptography」。)

Messaging Server 在安裝後,最初只包含數個商業 CA 的 CA 憑證。如果您需要增加其他商業 CA 或您的企業要開發自己的 CA 以供內部使用 (使用 Sun Java System Certificate Server),則需要取得並安裝其他 CA 憑證。


備註 –

Messaging Server 自動提供的 CA 憑證最初並未標記為信任其用戶端憑證。如果您要信任由這些 CA 發放的用戶端憑證,則需要編輯信任設定。如需說明,請參閱第 153 頁的「管理憑證和信任的 CA」。


若要請求並安裝新的 CA 憑證,請:

Procedure請求並安裝新的 CA 憑證

步驟
  1. 聯絡憑證授權機構 (可以透過 Web 或電子郵件) 並下載其 CA 憑證。

  2. 將收到的憑證文字儲存為文字檔案。

  3. 如上一節所述,使用憑證安裝精靈安裝憑證。

    如需更完整的說明,請參閱「Managing Servers with iPlanet Console」中有關 SSL 的章節。

管理憑證和信任的 CA

您的伺服器可以具有任意數量的信任 CA 憑證以用於認證用戶端。

透過在主控台中開啟您的伺服器,然後在 [主控台] 功能表中選擇 [憑證管理指令],您可以檢視 Messaging Server 中已安裝的憑證、編輯其信任設定,或刪除任何憑證。如需說明,請參閱「Managing Servers with iPlanet Console」中有關 SSL 的章節。

建立密碼檔案

在任一 Sun Java System 伺服器上,當您使用憑證安裝精靈請求憑證時,該精靈會建立一個鍵對,該鍵對將儲存在內部模組的資料庫或外部資料庫 (智慧卡) 中。然後,精靈會提示您輸入密碼,它會使用該密碼來加密私密金鑰。以後只有使用同一密碼才能解密該金鑰。精靈不會保留密碼,也不會將其儲存在任何位置。

在已啟用 SSL 的大多數 Sun Java System 伺服器上,啟動時系統會提示管理員提供解密鍵對所需密碼。但在 Messaging Server 上,為緩解必須多次輸入密碼 (至少有三個伺服器程序需要輸入密碼) 所造成的不便,同時為便於伺服器自動重新啟動,系統會從密碼檔案中讀取密碼。

密碼檔案名為 sslpassword.conf 且位於目錄 msg_svr_base/config/ 中。檔案中的項目都各成一行,格式為

moduleName:password

其中 moduleName 是要使用的 (內部或外部) PKCS #11 模組的名稱,password 是解密該模組之鍵對的密碼。密碼以明文 (未加密) 形式儲存。

Messaging Server 提供預設版本的密碼檔案,其中包含以下單一項目 (用於內部模組和預設密碼):

Internal (Software) Token:netscape!

在安裝內部憑證時,如果指定了預設密碼以外的其他密碼,則需要編輯密碼檔案中的以上一行以反映您所指定的密碼。如果要安裝外部模組,則需要在該檔案中新增一行,其中要包含模組名稱以及您為其指定的密碼。


注意 – 注意 –

由於在伺服器啟動時,系統不會提示管理員輸入模組密碼,因此請務必確保對伺服器的正確的管理員存取控制和伺服器主機機器及其備份的適當的實體安全性,這一點極為重要。


建立自我簽署憑證

如果您希望在指令行模式中建立自我簽署憑證,請遵循本小節中的說明。若要使用憑證精靈建立憑證,請參閱透過 Administration Console 取得憑證

Procedure建立自我簽署憑證

步驟
  1. 以超級使用者的身份登入或成為超級使用者 (root)。

  2. /opt/SUNWmsgsr/config/sslpassword 中指定 certutil 的憑證資料庫密碼。例如:


    # echo "password" > /opt/SUNWmsgsr/config/sslpassword

    其中 password 是您特定的密碼。

  3. 移至 sbin 目錄,並產生憑證資料庫 (cert8.db) 和金鑰資料庫 (key3.db)。例如:


    # cd /opt/SUNWmsgsr/sbin
    # ./certutil -N -d /opt/SUNWmsgsr/config -f /opt/SUNWmsgsr/config/sslpassword
  4. 產生預設的自我簽署根憑證授權單位憑證。範例:


    # ./certutil -S -n SampleRootCA -x -t "CTu,CTu,CTu"
    -s "CN=My Sample Root CA, O=sesta.com" -m 25000
    -o /opt/SUNWmsgsr/config/SampleRootCA.crt
    -d /opt/SUNWmsgsr/config
    -f /opt/SUNWmsgsr/config/sslpassword   -z /etc/passwd
  5. 產生主機的憑證。例如:


    ../certutil -S -n Server-Cert -c SampleRootCA -t "u,u,u"
    -s "CN=hostname.sesta.com, o=sesta.com" -m 25001
    -o /opt/SUNWmsgsr/config/SampleSSLServer.crt
    -d /opt/SUNWmsgsr/config -f /opt/SUNWmsgsr/config/sslpassword
    -z /etc/passwd

    其中 hostname.sesta.com 是伺服器主機名稱。

  6. 驗證這些憑證。例如:


    # ./certutil -V -u V -n  SampleRootCA -d /opt/SUNWmsgsr/config
    # ./certutil -V -u V -n  Server-Cert -d /opt/SUNWmsgsr/config
  7. 列示這些憑證。例如:


    # ./certutil -L -d /opt/SUNWmsgsr/config
    # ./certutil -L -n Server-Cert -d /opt/SUNWmsgsr/config
  8. 使用 modutil 來列出可用的安全性模組 (secmod.db)。例如:


    # ./modutil -list -dbdir /opt/SUNWmsgsr/config
  9. 如範例所示,將憑證資料庫檔案的所有者變更為郵件伺服器使用者和群組。


    chown mailsrv:mail /opt/SUNWmsgsr/config/cert8.db
    chown mailsrv:mail /opt/SUNWmsgsr/config/key3.db
    
  10. 重新啟動郵件傳送服務以啟用 SSL。


    備註 –

    之前,憑證和金鑰檔案總是位於 Messaging Server 配置目錄中。現在,可以使用 local.ssldbpath (指定憑證和金鑰檔案位置) 和 local.ssldbprefix (指定憑證和金鑰檔案字首) 來指定這些檔案的位置)


啟用 SSL 和選取密碼算法

您可以使用主控台啟用 SSL 並選取一組加密密碼算法,Messaging Server 可在其與用戶端的加密通訊中使用該組密碼算法。

關於密碼算法

密碼算法是在加密程序中用於加密和解密資料的演算法。某些密碼算法比其他密碼算法強,這表示未經授權者更難解密由這些密碼算法加密的郵件。

密碼透過將金鑰 (一長串數字) 套用於資料來對其進行加密。通常,加密期間密碼算法使用的金鑰越長,在沒有正確的解密金鑰的情況下解密資料就越困難。

當某個用戶端啟動與 Messaging Server 之間的 SSL 連線時,會告知伺服器其用於加密的密碼算法和金鑰長度。在任何加密通訊中,雙方必須使用相同的密碼算法。由於有大量的常用密碼算法和金鑰組合,因此伺服器在支援加密方面應非常靈活。Messaging Server 可支援多達 6 種密碼算法和金鑰長度組合。

表 19–2 列出 Messaging Server 支援以與 SSL 3.0 配合使用的密碼。該表格概括的資訊在「Managing Servers with iPlanet Console」的「Introduction to SSL」小節中有更詳細說明。

表 19–2 Messaging Server 的 SSL 密碼算法

密碼算法 

說明 

具有 128 位元加密和 MD5 郵件認證的 RC4 

最快的加密密碼算法 (由 RSA 開發),是密碼算法與加密鍵極高強度的組合。 

具有 168 位元加密和 SHA 郵件認證的三重 DES 

較慢的加密密碼算法 (美國政府標準),但卻是密碼算法與加密鍵最高強度的組合。 

具有 56 位元加密和 SHA 郵件認證的 DES 

較慢的加密密碼算法 (美國政府標準),是密碼算法與加密鍵中等強度的組合。 

具有 40 位元加密和 MD5 郵件認證的 RC4 

最快的加密密碼算法 (由 RSA 開發),是密碼算法與加密鍵較低強度的組合。 

具有 40 位元加密和 MD5 郵件認證的 RC2 

較慢的加密密碼算法 (由 RSA 開發),是密碼算法與加密鍵較低強度的組合。 

不加密,只有 MD5 郵件認證 

不加密,僅使用郵件摘要進行認證。 

除非您有充分的理由不使用特定密碼算法,否則應支援以上所有密碼算法。但請注意,某些國家/地區的出口法規限制使用某些加密密碼算法。此外,有些用戶端軟體是在美國出口控制法放寬之前生產的,這些軟體不能使用較高強度的加密。請注意,雖然 40 位元密碼算法可以防範隨意的竊取者,但它們並不安全,不能阻止有目的的侵入。

若要啟用 SSL 並選取加密密碼算法,請執行以下指令行步驟:

啟用或停用 SSL:

configutil -o nsserversecurity -v [ on | off ]

啟用或停用 RSA 密碼算法:

configutil -o encryption.rsa.nssslactivation -v [ on | off ]

指定記號:

configutil -o encryption.rsa.nsssltoken -v tokenname

指定憑證:

configutil -o encryption.rsa.nssslpersonalityssl -v certname

請注意,如果您啟用 RSA 密碼算法,還必須指定記號和憑證。

選擇密碼算法喜好設定:

configutil -o encryption.nsssl3ciphers -v cipherlist

其中,cipherlist 是以逗號分隔的密碼清單。


備註 –

若要啟用外寄郵件的 SSL 加密,您必須修改通道定義以包含 tls 通道關鍵字 (例如 maytlsmusttls 等)。如需更多資訊,請參閱傳輸層安全手冊。


設定基於憑證的登入

除了基於密碼的認證之外,Sun Java System 伺服器還支援透過檢查使用者的數位憑證對使用者進行認證。在基於憑證的認證中,用戶端會與伺服器建立 SSL 階段作業,然後向伺服器提交使用者的憑證。伺服器會評估提交的憑證是否真實。如果憑證被證實,則認為使用者通過認證。

若要設定您的 Messaging Server 以進行基於憑證的登入,請:

Procedure設定基於憑證的登入

步驟
  1. 為您的伺服器獲得伺服器憑證。(如需詳細資訊,請參閱透過 Administration Console 取得憑證)

  2. 執行憑證安裝精靈以安裝所有信任的憑證授權機構 (將對您伺服器要認證的使用者發放憑證的機構) 的憑證。(如需詳細資訊,請參閱安裝信任的 CA 之憑證)

    請注意,只要伺服器的資料庫中至少有一個可信任的 CA,伺服器便會請求每個連線用戶端提供用戶端憑證。

  3. 開啟 SSL。(如需詳細資訊,請參閱啟用 SSL 和選取密碼算法)

  4. (可選擇) 編輯伺服器的 certmap.conf 檔案,以便伺服器可根據提交的憑證中的資訊相應地搜尋 LDAP 使用者目錄。

    如果使用者憑證中的電子郵件位址與使用者目錄項目中的電子郵件位址相符,則無需編輯 certmap.conf 檔案,並且無需根據使用者項目中的憑證最佳化搜尋或驗證提交的憑證。

    如需 certmap.conf 之格式和您可做之變更的詳細資訊,請參閱「Managing Servers with iPlanet Console」中的 SSL 一章。

    執行這些步驟後,當用戶端建立 SSL 階段作業以便使用者可以登入 IMAP 或 HTTP 時,Messaging Server 便會請求用戶端提供使用者的憑證。如果用戶端提交的憑證是由已被伺服器確立為信任的 CA 所發放的,並且憑證中的身份符合使用者目錄中的項目,則使用者通過認證並被授予存取權 (取決於控制該使用者的存取控制規則)。

    啟用基於憑證的登入時,無需禁止基於密碼的登入。如果允許基於密碼的登入 (此為預設狀態),並且您已執行本節所述的作業,則系統同時支援基於密碼的登入和基於憑證的登入。在這種情況下,如果用戶端建立 SSL 階段作業並提供憑證,則使用基於憑證的登入。如果用戶端不使用 SSL 或不提供憑證,則伺服器會請求提供密碼。

如何使用 SMTP 代理最佳化 SSL 效能

大多數網站不應使用 SMTP 代理,因為它會增加 SMTP 協定的額外延遲時間。但是,廣泛使用 SSL 來保護 SMTP 連線的大型網站可能希望使他們在 SSL 加速器硬體方面的投資收益最大化,方法是在專用於 SSL 和代理的伺服器上對所有協定執行所有 SSL 作業。SMTP 代理允許透過前端代理伺服器處理 SSL,而在單獨的 MTA 機器上處理郵件佇列。這樣,為每項作業最佳化的硬體便可分別配置和購買。

請參閱啟用 POP Before SMTP,以取得有關如何安裝 SMTP 代理伺服器的說明。