IBM Security Directory Integrator 7.2 版


使用已加密 IBM Security Directory Integrator 配置檔

簡介

若要為資料提供機密性,IBM® Security Directory Integrator 可以加密配置檔、內容檔中的內容值、伺服器使用者登錄檔及 JavaScript 檔。

IBM Security Directory Integrator 加密涉及加密轉換,其會使用金鑰或金鑰組。金鑰/金鑰組需要在金鑰儲存庫檔中進行管理。

加密轉換可以是公開金鑰加密或秘密金鑰加密。依預設,IBM Security Directory Integrator 使用公開金鑰加密(秘密金鑰加密選項在 IBM Security Directory Integrator 7.0 中引進。 在此之前,只支援公開金鑰加密)。

請參閱:

公開金鑰加密使用由公開金鑰及私密金鑰組成的金鑰組。公開金鑰用於加密,而私密金鑰用於解密。目前只有 RSA 密碼支援進行公開金鑰加密。可以使用標準 JRE 公用程式 keytoolIkeyman 來產生及管理公開/私密金鑰組。如需使用關聯公開和私密金鑰管理憑證的相關資訊,請參閱管理金鑰、憑證及金鑰儲存庫

IBM Security Directory Integrator 資料加密是由下列系統內容配置的(這些內容可以在 global.properties 或 solution.properties 中設定):

金鑰儲存庫的密碼及金鑰/金鑰組自己的密碼(如果與金鑰儲存庫密碼不同)都是在「伺服器」的隱藏檔中指定的(金鑰儲存庫的存取是由密碼保護的,會在建立金鑰儲存庫時進行定義,定義者為建立金鑰儲存庫的人員,且僅當提供現行密碼時才可變更。此外,金鑰儲存庫中的私密金鑰可以由自己的密碼進行保護)。

轉換的名稱可以是 RSA 或部分秘密金鑰轉換(例如,AES/CBC/PKCS5Padding)。轉換名稱中內容的詳細討論位於 http://www.ibm.com/developerworks/java/jdk/security/60/secguides/JceDocs/api_users_guide.html#trans;「Java™ 安全性」的一般資訊(IBM Security Directory Integrator 所使用的內容)位於 http://www-128.ibm.com/developerworks/java/jdk/security/60/secguides/jsse2Docs/JSSE2RefGuide.html

註:
  1. "com.ibm.di.server.encryption.*" 內容不只影響配置的加密,也影響內容檔、JavaScript 檔及「伺服器 API 使用者登錄」的加密。
  2. 如果您變更加密金鑰及(或)加密轉換,「伺服器」無法解密之前已加密的檔案。若要解決此問題,請使用舊金鑰解密舊檔案(您必須具有可用的舊金鑰才能這樣做),並使用新金鑰進行加密。檔案的加密及解密可以使用 cryptoutils 工具來完成。
  3. 標準 RSA 演算法具有其所能使用資料長度的限制。IBM Security Directory Integrator 使用自訂方法,其會將輸入資料分割為足夠小的大小相等區塊,並分別加密每一個區塊。
  4. 在不同的加密執行時,使用 RSA 加密的資料會導致不同的密碼文字。此效果是 PKCS#1 填補綱目與 RSA 搭配使用的特性。
  5. 秘密金鑰(對稱的)密碼可以是區塊密碼或串流密碼。串流密碼一次加密一個訊息位元,而區塊密碼會使用許多位元,並將它們作為單一單位進行加密。區塊密碼(例如,AES)使用回饋模式(因此純文字的型樣不會保留為密文),以及填補綱目(允許加密資料,其長度不是密碼區塊大小的倍數)。串流密碼(例如,RC4)不使用回饋模式及填補綱目。
  6. 如果轉換涉及區塊密碼,則必須使用部分填補綱目(例如,"PKCS5Padding"),否則「伺服器」無法加密其長度不是密碼區塊大小倍數的資料。(串流密碼不使用填補,因此它們不會受到此限制的影響)。
  7. 金鑰/金鑰組的演算法必須符合所指定轉換中的演算法。例如,如果轉換是 RSA,則必須提供 RSA 金鑰組;如果轉換是 DES/ECB/PKCS5Padding,則您必須提供 DES 金鑰。您可以使用 keytool 公用程式產生新的秘密金鑰,請參閱 管理金鑰、憑證及金鑰儲存庫
  8. JKS 金鑰儲存庫不支援秘密金鑰,因此如果您想要使用秘密金鑰加密,則應使用部分其他金鑰儲存庫類型,例如 JCEKS。
  9. 使用回饋模式中的區塊密碼時,其需要起始設定向量 (IV),已加密資料會具有起始設定向量的字首,並作為純文字。IV 無需保持秘密,但必須無法預期。這是為何針對正在加密的資料產生隨機 IV 的原因。產生隨機資料有時可能根據資源而定,因此如果效能是個問題,則可能要考量非 IV 回饋模式 (ECB)。
  10. 加密所支援的秘密金鑰轉換,視 Java 安全性提供者的功能而定。依預設,IBM Security Directory Integrator 使用 IBMJCE 提供者。受支援的區塊密碼為:DES、AES、DESede (Triple DES)、Blowfish 及 RC2。它們可用於任何下列回饋模式 - ECB、CBC、CFB、OFB、PCBC。唯一可用的填補綱目為 "PKCS5Padding"。MARS 區塊密碼不應用於加密,因為它不支援填補 (http://www-128.ibm.com/developerworks/java/jdk/security/50/secguides/JceDocs/api/com/ibm/crypto/provider/Mars.html)。受支援的串流密碼是 RC4 及 ARCFOUR(基本為兩個不同名稱下的相同密碼)。SEAL 串流密碼需要大型金鑰(160 位元),因此在 IBM Security Directory Integrator JRE 上配置未限定 IBM SDK 原則之後,才能使用該密碼 (http://www.ibm.com/developerworks/java/jdk/security/60/#sdkpol)。

分隔 PKI 加密及 SSL 的憑證

從頭建立已加密 IBM Security Directory Integrator 配置檔

這是如何從頭建立已加密 IBM Security Directory Integrator 配置檔。

使用 cryptoutil 指令行工具

  1. 使用「配置編輯器」建立一般的未加密 IBM Security Directory Integrator 配置檔。
  2. 使用 cryptoutils 指令行工具來加密此配置檔,如 "IBM Security Directory Integrator 加密公用程式" 一節中所述。
  3. 若要執行這個已加密配置檔,您必須在安全模式(如「伺服器安全模式」一節所述)中啟動 IBM Security Directory Integrator 伺服器。
  4. 若要編輯這個已加密配置檔,您可以使用 "編輯已加密的 IBM Security Directory Integrator 配置檔" 一節中所述兩個選項的其中一個。

編輯已加密的 IBM Security Directory Integrator 配置檔

您可以首先使用 cryptoutils 指令行工具解密已加密的配置檔,如 "IBM Security Directory Integrator 加密公用程式" 一節中所述。然後,您可以使用「配置編輯器」編輯解密的配置,最後再使用 cryptoutils 工具加密配置檔。



意見