實作屬性加密功能時,請考量下列事項:
一般而言,在修改屬性加密配置時,最理想的做法是先匯出資料,再進行配置變更,然後匯入新配置的資料。
如此可確保所有配置變更均能保有其完整性,而不會有功能上的缺失。否則,某些功能可能會有所缺失,而破壞資料的安全性。
在現有的資料庫上修改屬性加密配置,可能會對系統效能造成嚴重的影響。
例如,假設您有一個含有現行資料的資料庫實例。此資料庫含有先前所儲存之具有 mySensitiveAttribute 屬性的項目。此屬性的值以純文字格式儲存於資料庫與索引檔案中。若您日後決定為 mySensitiveAttribute 屬性加密,則資料庫實例中所有的資料皆必須先匯出再重新匯入資料庫,以確保伺服器能夠使用屬性加密配置,更新資料庫與索引檔案。若能一開始就為屬性加密,即可避免此時所造成的效能影響。
以解密格式匯出資料時若使用了錯誤的密碼,匯出即會遭到拒絕。
若使用者要以解密格式匯出資料,伺服器將依其安全機制提示使用者提供密碼。若使用者所提供的密碼不正確,伺服器即會拒絕解密匯出作業。您可以直接輸入密碼,或提供密碼所在檔案的路徑。請注意,此檔案具有與 SSL 密碼檔案相同的語法。請參閱配置憑證資料庫密碼。
演算法可進行變更,但若變更過程有誤,結果中的索引功能即可能有所缺失。
若要變更用以加密資料的演算法,請匯出資料、修改屬性加密配置,再匯入資料。若未遵循此程序,依據初始加密演算法所建立的索引將會無法運作。
因為加密屬性的開頭會加上密碼標記以表示其已使用加密演算法,所以匯入資料的動作將由內部伺服器作業負責。因此,目錄伺服器可讓您在變更演算法之前以加密格式匯出資料。
變更伺服器的 SSL 憑證會使您無法將加密的資料解密。
屬性加密功能會使用伺服器的 SSL 憑證產生本身的金鑰,用以執行後續的加密與解密作業。因此,對加密的資料進行解密時,SSL 憑證是不可或缺的項目。若未先將資料解密即變更憑證,即無法進行資料解密。為避免陷入此窘境,請先以解密格式匯出資料,然後在變更憑證後重新匯入資料。
若要以加密格式傳輸資料,亦即在兩個伺服器實例間匯出及匯入資料,則兩個伺服器實例皆必須使用相同的憑證。
如需相關資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.2 管理指南」中的「Encrypting Attribute Values」。